| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- mixin PickingAlphaCull
- {
- raster
- {
- scissor = true;
- };
- code
- {
- cbuffer Uniforms
- {
- float4x4 gMatWorldViewProj;
- float4 gColorIndex;
- float gAlphaCutoff;
- }
- void vsmain(
- in float3 inPos : POSITION,
- in float3 inNorm : NORMAL,
- in float2 uv : TEXCOORD0,
- out float4 oPosition : SV_Position,
- out float4 oNorm : NORMAL,
- out float2 oUv : TEXCOORD0)
- {
- oPosition = mul(gMatWorldViewProj, float4(inPos.xyz, 1));
- oNorm = float4(inNorm, 0);
- oUv = uv;
- }
- SamplerState gMainTexSamp;
- Texture2D gMainTexture;
- float4 fsmain(
- in float4 inPos : SV_Position,
- in float4 inNorm : NORMAL,
- in float2 uv : TEXCOORD0,
- out float4 oNorm : SV_Target1) : SV_Target0
- {
- float4 color = gMainTexture.Sample(gMainTexSamp, uv);
- oNorm = (inNorm + float4(1,1,1,0)) / 2;
- if(color.a < gAlphaCutoff)
- discard;
-
- return gColorIndex;
- }
- };
- };
|