背面剔除Molehill

时间:2011-10-02 08:11:33

标签: flash actionscript-3 culling molehill

将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();

任何线索?

1 个答案:

答案 0 :(得分:0)

您可以使用Context3D.setCulling更改molehill中的背面剔除。 看到: http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/display3D/Context3D.html#setCulling()

哪一侧是正面还是背面取决于您的模型输入数据,因此试验和错误确实是您最好的选择。只有两个选项:)