From 3e908892661ced4c40a0cd5117d5f19869963315 Mon Sep 17 00:00:00 2001 From: hecomi Date: Wed, 2 Nov 2016 11:25:43 +0900 Subject: [PATCH] add culling option and fix cursor problem on transparent material. --- .../Examples/Scenes/Shaders.unity | Bin 16796 -> 20864 bytes .../Shaders/uDD_Cursor.shader | 6 ++++-- .../Shaders/uDD_Common.cginc | 2 +- .../Shaders/uDD_Standard.shader | 3 +++ .../Shaders/uDD_Unlit.shader | 3 +++ .../Shaders/uDD_Unlit_BlackMask.shader | 4 +++- .../Shaders/uDD_Unlit_Transparent.shader | 4 +++- 7 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Shaders.unity b/Assets/uDesktopDuplication/Examples/Scenes/Shaders.unity index 8e233c4daaa0ed6e1cdb924599aeffe0552181c9..d76cc0dceeebc3fc4082733bc6299fff5441d115 100644 GIT binary patch delta 6351 zcmeHKeQ;I972lhL5`kb6Qi6oYdl2O-fjmec1p_Yx0>K0lLQp!^aCz^NTzMbyz8eZ? zeUD;i@DCucEg}O7W2YYzr6{yh#1Un%W81N%)>fy}v7zOU){hC$PKTLR(%;#;o7{Jm z$cKM+XZG#gbM~CG=j`vC-FIk*mU>=W$5^n9vE~$G>`r{s$SP-6%nWP{uxtJO{aP*v z^l@zN(%$C|UHoKQL(fn93*Wn3_RrFTfxCAmugvZHVA|QjUE{H?3SC1VuCWx~om0BE ztDB$7pTKu#mGV7#1$^`!*~$CC%fgyba;*l5jtrLi5OkvDpi|RW2K#`q)L4Ae`q6^s z&}U|{)I`j)(Xne`lk_YHy$5=*-G17)mJ;i=0Q67?IoY2_j36;Gg@Gank%4@oi=N4v zvG@^mnvWTvI|k-R0|i7+r67~xHqif7q6dkduAdyySiQq=8z>YEqHF93HZxVs85@U@ z)sv7zFPHSY96CRqH*JX-+iY0&gUlJ%G4i~i=)J}3hX3xGd4AZci@RRhUVQMQc-0fX z@_%yw+mF3*%zvN=^7Evw|DV)#Pf8#9r2Z^ViZCcnD%*#1%3wzUn>nBnq{K6q@zYjv=r5Wl9BdCNk>gXe5pE2#y3S;B%P#Fbx{60NjGTj8LT05 zPR;gqZ3?o z_eP5c=%fb*PV-oCAx<+^Hh7vo*P;p-`z7XN%#Th@)l6kmTW{UNqv;`dl6x~M9$?!DS`lFz)m-Oj^ zo^%9=VN1pgm%w*GdlsD{LFdkdf%LGK4Xn>#?nulWplbq8C#3#af=-*(n6DVeaSn_O z5JeFVGS+A$I#wI8uwn6Ic{7sHwpu-5w{+;?_%{Q<27A&ymf7(zGaD-fQnEWttQqUG5D+Z28vr?z>Kvw=vxh|ehK6xVU>lr zpD=T-Wt94HChs2p%dfW|nElkLLm!{{^qKeHp`x@D9Y-b_F1u6(zW8gICE7?)J^iA3 zP8ZeFFRJHsQ9b=sJ=YWLyw#Ix`a*O<8C6eOpz@72K`!+in6!{gyU(~OwxIs)zBh`p-TbxHSh>%UFc-gxdv!` zdj1YR&eHQ&J5_K|yl$+e3#w4++#q?WOvaWowvq+G3`%B5GT#D|K<*da*-TjS z2%Mdu6GpS7-0X_igcF@SZ&s0ZiI?H`0I#1_RGj@4#^@SzyS1K%6tCtUFY%e$j)B>q{zg*qRFV7m2-2K~2vq`oI0P%)vkL2av@!4>7OWu0PbBAlM zErXuHX=xI(=OI{~g#Q7R^E z91`|TjBYQcN?tE`UN5FeUOE14d7YRpc`5L`PRsz0?6ch5&w5cR1s?>@>qVL5b%WOl z`2pl+$X#RT-TD*!I;By40}hOp9bWmunt!~yf*)`yT9Xs4IXUo(8=vSs^< z9@_Ma{nbV$<6kfTHosCnwtB+2>N(p!dSb=N`cbP!pFP<~Rv3G}=TEOxU0u-7Q~TE! zmyKymI@G!ch8b6~Ce@wUzvaT?lOH>m!7o>p@Y#WwmdTF>CTm&z%|Ksr807bzUblby zF2}e~h#%yZaE9h8J^eI6Q>h#jGsaZjQ!SvTYJ|6*sJW^=Sn3xK?Z$Y_#CxNy1$S&% zx57w3)*7>Q)VeUg5Gddi=8Y0N9b0^Udq>9i2o7mYRXW9>QH6SNp|6H9>P{oi-&xVW z;70TzqFJPn-#M>%9toCI9C$kPvu3Gka2VK#M$G{(h0-_Dhwx9~mjc=OsYSFsLJHa< z#$H~`kIo(^{5yGKUGWQTe{)!_U!~SXa&&`0iZ0MYRyNvR!-&iUYpdz9N^eS!R|cz^ znScVzT=Z$BxF*vimEga!D$ghezOnlwuOsKteKmW|c43}c^l0@6j3>{MSK2WAPCW7b z%C|Ca2x_Xd`K1w627_|0YNmpks;>%Ksurucs@o9H6R!dVwbod~ zP`=bnqcEjzC1@8--Czn+>b6rDnlEoEHODm?sFSkd{o}@z-L^QQhc-3piA~}qdQ)Xg zUEW_7-n{y57;giDF1%4uzRfbG)T-c#@fPr=^xQPwl;G#!EjUyeOOhpOqDFoJ-qf2w z;Z40Cft$HV$6XeK?V78U!av9+#4wCNR;DOh_=J2 z4uB)A=7~Jx<=#lmwT#P*SNH=NfVBW{Tz(D}Lw0O7G%?{a7?d<>Ex|vzrDU4yhN*+6KOuKlJM} z8xDU7DLhYHjkSLG?Hk+PKKuUcYtKh}MW5UvrsR4tCubx{NPQcmfY{h~UgYJf9482A zp*afnUg=)TxkE-D)Z)tckd{sHwnq*D<7{-Jd7tIJ4j##ZN0xE^Hmq$d>4qSakEf%jxH=mAVF;h>QGsBQEKf1Ll>kRPQMiG~yEd z4*~leb7{tT&@^M0o>2AWQcGNc3tPDd+o^JT_^OCTwrLo7QWTuryn#o9{CB zv2;FrWd6uYK|U~Wv{Ol|V*ReRy{-&8EY{xj>hbtTyNT-{Du`mJdP*73M*4JJnT{kB zLwPj%ctMF>g)75_k*)vc{=Y)vgZ}n~st3Lfu86eEp^hTfdKX)Y>`VbmuZXoCy;ag) zA8CtrWNH4DAT1x7rIl7hTKl)hpq5D)nm)S6P%;TcPp}W?DPr-~WoaCOW=R@P$}KrQ z#~wC$3yQDg{#W*{mfRATnOowoyX1B{tSEfFTX{|OEWuud^_EmxA$$23xWnFuGUF*j zOv-g@*n?F$C*{T)e#@^G%o|EM-_5%mdrDC5e=nH)7syAs(QV^O{NSLHwSKZ<)_$0T Uxc)c&yZc|f)n8ZR@YXT$H^}Die*gdg diff --git a/Assets/uDesktopDuplication/Resources/uDesktopDuplication/Shaders/uDD_Cursor.shader b/Assets/uDesktopDuplication/Resources/uDesktopDuplication/Shaders/uDD_Cursor.shader index 39a9a9e..5bab139 100644 --- a/Assets/uDesktopDuplication/Resources/uDesktopDuplication/Shaders/uDD_Cursor.shader +++ b/Assets/uDesktopDuplication/Resources/uDesktopDuplication/Shaders/uDD_Cursor.shader @@ -4,15 +4,17 @@ Properties { _MainTex ("Texture", 2D) = "white" {} + [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 } SubShader { -Tags { "RenderType"="Opaque" } +Tags { "RenderType"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "Queue" = "Transparent+1" } +Cull [_Cull] ZWrite Off -Offset -1, -1 +Offset -0.01, -0.01 CGINCLUDE diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc index 84b073f..c91470e 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc +++ b/Assets/uDesktopDuplication/Shaders/uDD_Common.cginc @@ -18,7 +18,7 @@ inline void uddInvertUV(inout float2 uv) #endif } -inline void uddToLinearIfNeeded(inout float3 rgb) +inline void uddToLinearIfNeeded(inout fixed3 rgb) { if (!IsGammaSpace()) { rgb = GammaToLinearSpace(rgb); diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader b/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader index 930d032..8c9f185 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Standard.shader @@ -7,11 +7,14 @@ Properties _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0, 1)) = 0.5 _Metallic ("Metallic", Range(0, 1)) = 0.0 + [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 } SubShader { Tags { "RenderType"="Opaque" } + + Cull [_Cull] CGPROGRAM diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader index 578a92c..ad98c4f 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit.shader @@ -5,6 +5,7 @@ Properties { _Color ("Color", Color) = (1, 1, 1, 1) _MainTex ("Texture", 2D) = "white" {} + [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 } SubShader @@ -12,6 +13,8 @@ SubShader Tags { "RenderType"="Opaque" } +Cull [_Cull] + CGINCLUDE #include "UnityCG.cginc" diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader index f72bc30..7c517f3 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_BlackMask.shader @@ -6,6 +6,7 @@ Properties _Color ("Color", Color) = (1, 1, 1, 1) _MainTex ("Texture", 2D) = "white" {} _Mask ("Mask", Range(0, 1)) = 0.1 + [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 } SubShader @@ -13,7 +14,8 @@ SubShader Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } -ZWrite Off +Cull [_Cull] +ZWrite On Blend SrcAlpha OneMinusSrcAlpha CGINCLUDE diff --git a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader index d6217be..6fe5b05 100644 --- a/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader +++ b/Assets/uDesktopDuplication/Shaders/uDD_Unlit_Transparent.shader @@ -5,6 +5,7 @@ Properties { _Color ("Color", Color) = (1, 1, 1, 1) _MainTex ("Texture", 2D) = "white" {} + [KeywordEnum(Off, Front, Back)] _Cull("Culling", Int) = 2 } SubShader @@ -12,7 +13,8 @@ SubShader Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } -ZWrite Off +Cull [_Cull] +ZWrite On Blend SrcAlpha OneMinusSrcAlpha CGINCLUDE