我想在我的场景上绘制一个自定义的红色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场景,并且没有红色三角形的迹象。我检查了它的坐标并且它们很好,我认为它只是一个渲染问题。
答案 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();
}