读书人

xyww?解决方案

发布时间: 2012-02-22 19:36:54 作者: rapoo

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;
[解决办法]

探讨
x,y,z,w这四个值可以任意组合 然后输出  对不?

读书人网 >网络游戏

热点推荐