将Flash 11 RC1与新的Molehill API一起使用,我想启用背面剔除。测试版文档很模糊,但是这个例子暗示Molehill希望前向三角形逆时针旋转,这很正常。
但是当我的多边形逆时针旋转时,我会得到完全相反的行为 - 换句话说,就好像与其自身的例子相反,Molehill期望前向三角形顺时针旋转。由于文档从未明确说明哪个绕组是正确的,我很难过。
我不想只是翻转我所有的三角形,直到它看起来就像我对Molehill真正想要的100%一样,因为这很有可能隐藏一个根本的误解。
我正在使用简单的透视投影(关于.transpose()的说明如下:因为copyRawDataFrom需要按照列主要顺序排列的数据,我讨厌查看代码的方式,我决定只输入row-major和transpose之后的矩阵 - 所以起诉我:P):
var y:Number = 1.0 / Math.tan(pFOV / 2.0);
var x:Number = y / pAspectRatio;
_projectionMatrix.copyRawDataFrom(new<Number>[
x , 0 , 0 , 0,
0 , y , 0 , 0,
0 , 0 , pFar/(pNear-pFar) , pFar*pNear/(pNear-pFar),
0 , 0 , -1 , 0
]);
_projectionMatrix.transpose();
任何线索?
答案 0 :(得分:0)
您可以使用Context3D.setCulling更改molehill中的背面剔除。 看到: http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/display3D/Context3D.html#setCulling()
哪一侧是正面还是背面取决于您的模型输入数据,因此试验和错误确实是您最好的选择。只有两个选项:)