我从文件导入几何数据,对象可以分为两类:打开或关闭。
如果所有这些都被关闭了,我可以直接剔除背面,但由于其中一些没有关闭,我不能,因为用户只能看到正面。
我知道对象是打开还是关闭。所以问题是,我可以做一些像启用面部剔除,绘制所有关闭的对象然后禁用面部剔除和绘制开放网格?
如果答案是否定的,那么哪一项会带来更好的表现?
答案 0 :(得分:1)
您可以仅为某些对象启用面部剔除。由于OpenGL是一个状态机,从你调用glEnable(GL_CULL_FACE)的那一刻起,所有对象都被剔除。禁用它时,不再调用任何内容。因此,对于您的情况,您将不得不做类似的事情:
glEnable(GL_CULL_FACE);
//Draw all closed objects
glDisable(GL_CULL_FACE);
//Draw all open objects