如何制作Irrlicht的碰撞动画师双向街

时间:2014-07-07 09:47:57

标签: irrlicht

使用Irrlicht的默认内置碰撞动画我发现它只能在我的几何体的多边形的一侧工作。

我使用了以下代码:

selector = smgr->createOctreeTriangleSelector(
                q3node->getMesh(), q3node, 128);
        q3node->setTriangleSelector(selector);
ICameraSceneNode* camera =
        smgr->addCameraSceneNodeFPS(0, 100.0f, .3f, ID_IsNotPickable, 0, 0, true, 3.f);
ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(
            selector, camera, core::vector3df(30,50,30),
            core::vector3df(0,-10,0), core::vector3df(0,30,0));
selector->drop();
camera->addAnimator(anim);
anim->drop();

此外,我注意到几何体的另一面没有纹理。

有什么建议吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

禁用多边形另一边的概念称为Backface Culling

要在几何体上禁用它,请在执行任何其他操作之前执行以下操作:

q3node->setMaterialFlag(EMF_BACKFACE_CULLING, false);

答案 1 :(得分:0)

或者,您可以在两侧使用法线制作几何体。这甚至会使irrlicht做更少的计算。 无需禁用黑面剔除。