Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash AGAL-夹持空间M44 op、va0、vc0的位置_Flash_Stage3d_Agal - Fatal编程技术网

Flash AGAL-夹持空间M44 op、va0、vc0的位置

Flash AGAL-夹持空间M44 op、va0、vc0的位置,flash,stage3d,agal,Flash,Stage3d,Agal,M44 op,va0,vc0-这是什么意思? 这是顶点着色器的第一行。 我多次看到它,但我不理解以下内容: Vc0-空3d矩阵-对象的位置 顶点坐标 为什么我们要在矩阵上乘向量 提前谢谢你 vc0-空3d矩阵 为什么是空的?在这种情况下(大多数情况下)是MVP(模型视图投影)矩阵。 va0-局部空间(模型空间)中的顶点坐标。为了使一个物体改变它的位置。方向、比例和为了使摄影机可见,需要对其应用变换。那条线就是这么做的 顶点着色器通过vc0(顶点常量寄存器0)中的传递投影矩阵,平移和旋转传递顶点缓

M44 op,va0,vc0-这是什么意思? 这是顶点着色器的第一行。 我多次看到它,但我不理解以下内容: Vc0-空3d矩阵-对象的位置 顶点坐标

为什么我们要在矩阵上乘向量

提前谢谢你

vc0-空3d矩阵 为什么是空的?在这种情况下(大多数情况下)是MVP(模型视图投影)矩阵。 va0-局部空间(模型空间)中的顶点坐标。为了使一个物体改变它的位置。方向、比例和为了使摄影机可见,需要对其应用变换。那条线就是这么做的


顶点着色器通过vc0(顶点常量寄存器0)中的传递投影矩阵,平移和旋转传递顶点缓冲区(va0)中的每个顶点。
顶点缓冲区是正在渲染的模型中的顶点列表。
投影矩阵是模型的矩阵x3d,附加了相机矩阵x3d和透视矩阵x3d的倒数。
透视矩阵3d可以这样设置:

projectionmatrix.perspectiveFieldOfViewRH(45.0, swfWidth / swfHeight, 1, 15000);
…其中“45.0”是视野,“swfWidth/swfHeight”是宽度与高度的比例,“1”是近剪裁平面,“15000”是远剪裁平面。

将模型的顶点乘以着色器中的投影矩阵,可以将模型定向到剪辑空间中的正确位置。这就是为什么计算结果可以立即发送到输出位置寄存器(op)。

谢谢您的回答!我在研究椋鸟过滤器,以研究AGAL是如何工作的。我发现矩阵并不是空的,它是用来描述物体边界的向量(物体是二维的)。Va0包含对象边界的顶点位置(只有一个)-我看到代码行很重要,但是,我无法理解为什么我们应用变换,如果Va0有边界坐标,矩阵3D有边界,为什么存在这种变换不清楚。它不完全像这样。要渲染四边形,仍然需要4个顶点。所以va0不是一个边界-它是一个顶点。实际上,若你们在标准化设备坐标(NDC)中传递顶点位置,你们可以避免着色器中的矩阵乘法。该坐标的范围为-1..+1(x和y)和0..1(z)。再次感谢!我想现在已经很清楚了,但是当我在矩阵的rawData中看到以下内容时,我仍然感到困惑:M.rawData=Vector。(@10da4da9)0=0.0156251=0.2=0.3=0.4=0.0156256=0.7=0.8=0.9=0.10=1 11=0.12-13=2.9334120750427246=0.15=1固定长度=16[0x10]我理解我的话听起来可能很愚蠢,因为我在这个领域还有很大的差距。如果你有一些帮助的链接,我会很高兴的。非常感谢你的解释!它仍然有点复杂,可能我需要更多关于这个主题的理论(矩阵类型等等)。我会搜索。顺便问一下,在着色器中使用矩阵的频率如何?在大多数情况下,我在设置运算寄存器时见过一次。只要是有用的计算,你可以随意使用矩阵。在一个着色器中,我还传入模型的旋转矩阵(x、y和z位置值设置为0),用于反射光计算。一开始很难理解,但是是的,搜索一些AGAL教程。谢谢!你能给我看看这个矩阵吗,我的意思是矩阵中有16个数字?在您的情况下,它是0 0 1 0 0 1 0 0 1 0 0 1?还是我错了?你能给我发一份AGAL教程吗?我发现AdobeDocs页面对解释Matrix3D很有用。。。这一页可能是AGAL的一个很好的开始。。。我认为,在你之前的评论中,你试图描述一个“单位矩阵”——一个没有旋转、没有平移、刻度为1的矩阵3d。如果这是您的意思,'identity'矩阵3d的.rawData属性将返回以下数字向量:1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0