반응형
참고 : blog.hybrid3d.dev/2020-12-21-reason-for-slow-of-if-statement-in-shader
참고 : docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-if
half4 frag(VertexOutput i) : SV_Target { float4 col = i.uv.x; return color; } |
half4 frag(VertexOutput i) : SV_Target { float4 col = col.rgba; if(i.uv.y > 0.5) { col = pow(i.uv.x, 2.2) ; } else { col = i.uv.x; } return color; } |
삼항연산자로 변환하면 아래와 같다. 이는 ASE로 변환해도 내용은 순서만 살짝 다르고 똑같다.
half4 frag(VertexOutput i) : SV_Target { float4 col = i.uv.y > 0.5 ? pow(i.uv.x, 2.2) : i.uv.x; // 조건문 ? 참일때 실행값 : 거짓일때 실행값 ; return color; } |
반응형
'Technical Report > R&D test' 카테고리의 다른 글
URP BSDF.hlsl (0) | 2021.08.09 |
---|---|
cook-Torrance (0) | 2020.04.08 |
Shadowmask lightmap (0) | 2019.02.17 |
Traditional subscattering (0) | 2018.03.21 |
Unity Sprites/Cheap Outer Glow Shader (0) | 2018.02.05 |