OpenGL中是否有办法仅渲染内部面部,而外部面部仍然覆盖/遮挡内部面部?为了更好地理解我想要完成什么,如果我切一个随机定位的圆柱体,我只会看到一个椭圆。
我试过:
glEnable(GL_CULL_FACE);
glEnable(GL_BACK);
但在这种情况下,我看到了圆柱体的整个内部,而外表面只是消失而没有覆盖任何东西。
谢谢
GL_BACK
不能"启用"。剔除的面由glCullFace
选择:
glEnable(GL_BACK);
glCullFace(GL_BACK);
请注意,glEnable(GL_BACK)
将导致INVALID_ENUM
错误。
面剔除取决于卷绕顺序。另请参阅面部剔除。
例如,如果您的脸是顺时针方向,并且您想剔除背面,那么您必须:
glFrontFace(GL_CW);
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
请注意,重要的是,所有面都具有相同的绕组顺序(顺时针或逆时针(。