首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matrix3D.append: m44而不是AGAL()

Matrix3D.append: m44而不是AGAL()
EN

Stack Overflow用户
提问于 2014-01-28 11:17:09
回答 1查看 296关注 0票数 1

如何移动这样的计算:

代码语言:javascript
复制
var a : Matrix3D = ...
var b : Matrix3D = ...
a.append( b );

在着色器中?

我目前的方法是:

代码语言:javascript
复制
setProgramConstantsFromMatrix( VERTEX, 0, a, true );
setProgramConstantsFromMatrix( VERTEX, 4, b, true );


"mov vt0, vc0\n" + 
"mov vt1, vc1\n" + 
"mov vt2, vc2\n" + 
"mov vt3, vc3\n" + 
"m44 vt4, vc4, vt0\n"

在vt4中产生错误的结果。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-01-28 17:56:16

在着色器中,你不需要指定vt1,2和3。着色器将“知道”它正在被发送一个矩阵,并自动加载以下3个寄存器(总共4个寄存器)和所需的详细信息。自己加载可能会导致不可预知的结果。

还要注意,应用matrix3D乘法的顺序很重要。在AS3中还有一个预置方法,它将matrix3D参数放在乘法运算的右侧。append方法将matrix3D参数放在乘法运算的左侧。然后,您可能需要颠倒应用m44的顺序。也就是说,你可以将vt1设置为b,然后将(m44)乘以a。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21396176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档