
1. Screen-Space Grass 231
float4 TDeviceSize [2]; // rtt size in TDeviceSize [ 0]. xy
float4 TTimer [1]; // game time in TTimer [ 0 ] . w
void vsmain( float3 inPos : POSITION ,
float3 inTex : TEXCOORD ,
//
out float4 outPos : POSITION ,
out float4 outTex0 : TEXCOORD0 )
{
outPos=inPos ;
//
outTex0=inTex ;
// hal f p ixel o f f s et
outTex0 . xy+= TDeviceSize [1].zw ; // 0.5f / rtt size in [1].zw
}
float _blend( float val , float val0 , float val1 , float res0 ,
float res1 )
{
if( val <= val0 ) return res0 ;
if( val >= val1 ) return res1 ;
//
return res0 +(val−val0 ) ( res1−res0 )/(val1−val0 );
}
float4 psmain( float4 inTex0 : TEXCOORD0 ,
float2 inSPos : VPOS ):COLOR ...