在Irrlicht在场景中绘制3D三角形

时间:2014-07-19 16:29:19

标签: irrlicht

我想在我的场景上绘制一个自定义的红色3D三角形。我已经按照一些教程编写了这段代码:

while(device->run()) {
    driver->beginScene();
    driver->setTransform(ETS_WORLD, matrix4());
    driver->setMaterial(material);
    driver->draw3DTriangle(myTriangle, SColor(0,255,0,0));
    smgr->drawAll();
    driver->endScene();
}

但这仅显示我的3D场景,并且没有红色三角形的迹象。我检查了它的坐标并且它们很好,我认为它只是一个渲染问题。

1 个答案:

答案 0 :(得分:1)

smgr->drawAll()将清除整个屏幕并显示您的场景。因此,在driver->draw3DTriangle()之后调用它将擦除您的三角形。如果您反转渲染函数顺序,这将正常工作。见下文:

while(device->run()) {
    driver->beginScene();
    smgr->drawAll();
    driver->setTransform(ETS_WORLD, matrix4());
    driver->setMaterial(material);
    driver->draw3DTriangle(myTriangle, SColor(0,255,0,0));
    driver->endScene();
}