xyww?
在shader编程中的vs阶段
void SkyVS(float3 posL : POSITION0,
out float4 oPosH : POSITION0,
out float3 oEnvTex : TEXCOORD0)
{
oPosH = mul(float4(posL, 1.0f), gWVP).xyww; //?
oEnvTex = posL;
}
oPosH = mul(float4(posL, 1.0f), gWVP).xyww; 什么意思?
xyww是啥意思?
[解决办法]
那个w一般是1 , 你传进来的gwvp是4*4的,所以用1.0f来凑数,然后.xyww是个四元向量,w是用来深度缓冲和雾化等计算的。
[解决办法]
打个比方:
float4 aaa = { 1, 2, 3, 4 };
float4 bbb;
bbb = aaa.xyww;
相当于
bbb.x = aaa.x;
bbb.y = aaa.y;
bbb.z = aaa.w;
bbb.w = aaa.w;
[解决办法]