From 6ed87ad9424935782b310a3a877a2ca4d886f1da Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Wed, 1 Apr 2020 11:55:51 -0700 Subject: [PATCH 1/5] * Fixed 069_2D_Forward_Shader_Compatibility_Forward --- .../Shaders/2D/Sprite-Lit-Default.shader | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader b/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader index 7c469036f33..0fdc1ac1cae 100644 --- a/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader +++ b/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader @@ -43,6 +43,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float3 positionOS : POSITION; float4 color : COLOR; float2 uv : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID }; struct Varyings @@ -51,6 +52,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float4 color : COLOR; float2 uv : TEXCOORD0; float2 lightingUV : TEXCOORD1; + UNITY_VERTEX_OUTPUT_STEREO }; #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" @@ -83,6 +85,8 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" Varyings CombinedShapeLightVertex(Attributes v) { Varyings o = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.positionCS = TransformObjectToHClip(v.positionOS); o.uv = TRANSFORM_TEX(v.uv, _MainTex); @@ -118,6 +122,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float4 color : COLOR; float2 uv : TEXCOORD0; float4 tangent : TANGENT; + UNITY_VERTEX_INPUT_INSTANCE_ID }; struct Varyings @@ -128,6 +133,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float3 normalWS : TEXCOORD1; float3 tangentWS : TEXCOORD2; float3 bitangentWS : TEXCOORD3; + UNITY_VERTEX_OUTPUT_STEREO }; TEXTURE2D(_MainTex); @@ -139,6 +145,8 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" Varyings NormalsRenderingVertex(Attributes attributes) { Varyings o = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(attributes); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.positionCS = TransformObjectToHClip(attributes.positionOS); o.uv = TRANSFORM_TEX(attributes.uv, _NormalMap); @@ -174,6 +182,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float3 positionOS : POSITION; float4 color : COLOR; float2 uv : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID }; struct Varyings @@ -181,6 +190,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" float4 positionCS : SV_POSITION; float4 color : COLOR; float2 uv : TEXCOORD0; + UNITY_VERTEX_OUTPUT_STEREO }; TEXTURE2D(_MainTex); @@ -190,6 +200,8 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" Varyings UnlitVertex(Attributes attributes) { Varyings o = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(attributes); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.positionCS = TransformObjectToHClip(attributes.positionOS); o.uv = TRANSFORM_TEX(attributes.uv, _MainTex); From bf8c0663ff7fb46e4e0e9f40564427711598aa55 Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Wed, 1 Apr 2020 17:48:40 -0700 Subject: [PATCH 2/5] * Fixed custom particle data shader not compatible with XR. --- .../Scenes/029_Particles/Shaders/CustomParticleData.shader | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader b/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader index 00cde1e7ffa..9915e336dc6 100644 --- a/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader +++ b/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader @@ -26,6 +26,7 @@ float4 vertex : POSITION; float4 uv : TEXCOORD0; float3 uv2 : TEXCOORD1; + UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f @@ -35,11 +36,14 @@ UNITY_FOG_COORDS(1) float4 vertex : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO }; v2f vert (appdata v) { v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; o.uv2 = v.uv2; From 3c57721caa6b459f207c37d030b0a62193dc40bf Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Wed, 1 Apr 2020 18:08:45 -0700 Subject: [PATCH 3/5] * Fixed formatting. --- .../Scenes/029_Particles/Shaders/CustomParticleData.shader | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader b/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader index 9915e336dc6..e37def1b919 100644 --- a/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader +++ b/TestProjects/UniversalGraphicsTest/Assets/Scenes/029_Particles/Shaders/CustomParticleData.shader @@ -43,7 +43,7 @@ { v2f o; UNITY_SETUP_INSTANCE_ID(v); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; o.uv2 = v.uv2; From ff9c6a815813d9c247af477ba361bd2b97bb0139 Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Thu, 2 Apr 2020 12:48:59 -0700 Subject: [PATCH 4/5] * Fixed 046_Camera_OpaqueTexture not working in XR. --- .../046_Camera_OpaqueTexture/CameraOpaque.shader | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader b/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader index aef65e2ff74..1ac54ee4cee 100644 --- a/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader +++ b/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader @@ -25,6 +25,7 @@ { float4 vertex : POSITION; float2 uv : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f @@ -32,14 +33,17 @@ float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; float4 screenUV : TEXCOORD1; + UNITY_VERTEX_OUTPUT_STEREO }; - TEXTURE2D(_CameraOpaqueTexture); + TEXTURE2D_X(_CameraOpaqueTexture); SAMPLER(sampler_CameraOpaqueTexture_linear_clamp); v2f vert (appdata v) { v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = TransformObjectToHClip(v.vertex); o.uv = v.uv; o.screenUV = ComputeScreenPos(o.vertex); @@ -48,14 +52,15 @@ half4 frag (v2f i) : SV_Target { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i) // sample the texture half2 screenUV = i.screenUV.xy / i.screenUV.w; half v = 0.05; screenUV += (frac(screenUV * 80) * v) - v * 0.5; half4 col = half4(-0.05, 0, -0.05, 1); - col.r += SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 1.1) + 0.5).r; - col.g += SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, screenUV).g; - col.b += SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 0.9) + 0.5).b; + col.r += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 1.1) + 0.5).r; + col.g += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, screenUV).g; + col.b += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 0.9) + 0.5).b; return col; } ENDHLSL From 5647b7423dba04e94bfaf4dc9e62dfefde956850 Mon Sep 17 00:00:00 2001 From: Fabien Houlmann Date: Mon, 6 Apr 2020 13:40:36 -0400 Subject: [PATCH 5/5] use DeclareOpaqueTexture.hlsl --- .../046_Camera_OpaqueTexture/CameraOpaque.shader | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader b/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader index 1ac54ee4cee..767f44637d3 100644 --- a/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader +++ b/TestProjects/UniversalGraphicsTest/Assets/Scenes/046_Camera_OpaqueTexture/CameraOpaque.shader @@ -20,6 +20,7 @@ #pragma multi_compile_fog #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareOpaqueTexture.hlsl" struct appdata { @@ -36,9 +37,6 @@ UNITY_VERTEX_OUTPUT_STEREO }; - TEXTURE2D_X(_CameraOpaqueTexture); - SAMPLER(sampler_CameraOpaqueTexture_linear_clamp); - v2f vert (appdata v) { v2f o; @@ -52,15 +50,15 @@ half4 frag (v2f i) : SV_Target { - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i) + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); // sample the texture half2 screenUV = i.screenUV.xy / i.screenUV.w; half v = 0.05; screenUV += (frac(screenUV * 80) * v) - v * 0.5; half4 col = half4(-0.05, 0, -0.05, 1); - col.r += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 1.1) + 0.5).r; - col.g += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, screenUV).g; - col.b += SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture_linear_clamp, ((screenUV - 0.5) * 0.9) + 0.5).b; + col.r += SampleSceneColor(((screenUV - 0.5) * 1.1) + 0.5).r; + col.g += SampleSceneColor(screenUV).g; + col.b += SampleSceneColor(((screenUV - 0.5) * 0.9) + 0.5).b; return col; } ENDHLSL