小编Ale*_*alm的帖子

转换顺序:投影纹理(HLSL)

当我在nvidia 阅读关于投影纹理(9.3.2)的这篇文章时,我遇到了这个图:

http://http.developer.nvidia.com/CgTutorial/elementLinks/252equ01.jpg

编写转换的顺序使我感到困惑.这是因为我学会了从左到右阅读矩阵乘法,也因为我认为变换序列应按此顺序排列:

http://http.developer.nvidia.com/CgTutorial/elementLinks/fig4_1.jpg

现在我的问题如下:

因为矩阵乘法不是可交换的,所以乘法的顺序是什么?

如果它确实与正常对象的转换序列顺序相同,为什么它会像这样写?

按照相同的顺序顺序,我的意思是像这个hlsl代码:

float4 worldPosition        = mul(input.Position, World);
float4 viewPosition         = mul(worldPosition, View);
output.Position             = mul(viewPosition, Projection);
Run Code Online (Sandbox Code Playgroud)

最后(这是可选的,但对于其他想知道相同的人可能有用),如何编写HLSL代码来执行此投影纹理乘法,或者如果通过XNA传递完整的Matrix,您将如何进行转换.

xna transformation matrix hlsl

6
推荐指数
1
解决办法
911
查看次数

标签 统计

hlsl ×1

matrix ×1

transformation ×1

xna ×1