我想从 Stage3D 框架中获得正确渲染的投影结果,该框架通过其 API 呈现某种“灰盒”界面。它是灰色而不是黑色,因为我可以看到这个关键的源代码片段:
matrix3D.copyFrom (renderable.getRenderSceneTransform (camera));
matrix3D.append (viewProjection);
完全适合我需要的投影渲染技术来自一个有用的教程,该教程直接与 AGAL 一起使用,而不是任何特定的框架。其可比较的渲染逻辑片段如下所示:
cube.mat.copyToMatrix3D (drawMatrix);
drawMatrix.prepend (worldToClip);
因此,我相信对这里发生的事情的正确概括总结是,两段代码都在设置要发送到顶点着色器的正确组合矩阵,该矩阵将成为 m44 AGAL 操作的参数。一般的描述是组合矩阵将带我们从对象局部空间通过相机视图空间到屏幕或剪辑空间。
我的问题可以概括为我对正确的矩阵运算的无知。我相信我合并这两种环境的失败尝试正是因为将一个矩阵附加到另一个矩阵的语义不是,也绝不打算等同于将该矩阵附加到另一个矩阵。那么,我的要求可以这样概括。因为我无法控制框架将发出的调用顺序,例如,我必须接受追加操作,所以我只能尝试在准备要追加的矩阵的一侧修复问题。该代码不是黑盒代码,但它太复杂了,我不知道如何更改它以满足框架提出的接口要求。
是否有一些倒置、转换或其他操作序列可以让我修改设计为预先添加的 viewProjection 矩阵,以便它在添加到对象的世界空间坐标时正确显示?