From 31b4b886759256e3a0cb793b5801c154742f6481 Mon Sep 17 00:00:00 2001 From: lr080 Date: Sun, 29 Sep 2024 15:40:19 +0200 Subject: [PATCH] smooth transition added --- Assets/Shaders/include/GrassBladePass.hlsl | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Assets/Shaders/include/GrassBladePass.hlsl b/Assets/Shaders/include/GrassBladePass.hlsl index 074c7dc..52dcdeb 100644 --- a/Assets/Shaders/include/GrassBladePass.hlsl +++ b/Assets/Shaders/include/GrassBladePass.hlsl @@ -35,6 +35,14 @@ const int ns = 11; [MaxVertexCount(4)] #endif void geom(point v2g IN[1], inout TriangleStream triStream) { + + + + + + + + const float3 basePos = IN[0].vertex.xyz; const float3 tipPosBladeSpace = IN[0].tipOffset; const float3 tipPosObjectSpace = basePos + tipPosBladeSpace; @@ -46,6 +54,22 @@ void geom(point v2g IN[1], inout TriangleStream triStream) { const float3 basePosWS = mul(unity_ObjectToWorld, float4(basePos.xyz, 1.0)).xyz; const float cameraDistance = distance(_WorldSpaceCameraPos, basePosWS); + float randoVal = N21(basePos); + + + #if _LOD_LOD_0 + if (randoVal * 10.0 > max(1, 2 / (cameraDistance / 20))) + { + return; + } + #elif _LOD_LOD_1 + if (randoVal * 10.0 > max(1, 5 / (cameraDistance / 20))) + { + return; + } + #endif + + float halfWidth = _BladeWidth/2; g2f o;