|
|
在rendermonkey的HLSL里有一段这样的代码,特别是Eye-linear texgen的意思我不太明白,谁能解释一下?
float4x4 view_proj_matrix: register(c0);
float reflectivePlane: register(c4);
struct VS_OUTPUT
{
float4 Pos: POSITION;
float2 texCoord: TEXCOORD0;
float3 eyeLinear: TEXCOORD1;
};
VS_OUTPUT main(float4 Pos: POSITION)
{
VS_OUTPUT Out;
// Flip, scale, mirror and translate
float4 pos = float4(6 * Pos.x, 2 * Pos.y - 14 - reflectivePlane, 6 * Pos.z, 1);
float4 pPos = mul(view_proj_matrix, float4(pos.xyz,1));
Out.Pos = pPos;
// Object-linear texgen
Out.texCoord.x = Pos.x * 0.01;
Out.texCoord.y = Pos.z * 0.01;
// Eye-linear texgen
Out.eyeLinear.x = 0.5 * (pPos.z + pPos.x);
Out.eyeLinear.y = 0.5 * (pPos.z - pPos.y);
Out.eyeLinear.z = pPos.z;
return Out;
}
|
|