2012-04-29 62 views
1

我需要画一个立方体的负载,并希望它们在黑色笔画中为白色。目前,我将所有这些立方体存储在VBO中,并且我可以将它们绘制成线框,并且不填充轮廓。用笔画画一个立方体并填写OpenGL

我想绘制它们,就像在this image左侧的图像一样,只在面向相机的两侧进行抚摸,而不是像右侧那样。

我正在使用OpenGL。

+1

你应该明白,OpenGL没有“填充”和“笔画”的概念。 – 2012-04-29 10:53:07

回答

1

你想要的是remove hidden lines

如果要绘制隐藏线条的线框对象,一种方法是使用线条绘制轮廓,然后使用具有背景颜色的多边形填充构成曲面的多边形的内部。

0

你需要glEnable(GL_CULL_FACE);以便获得不可见的三角形的背面剔除自动应用。假设您的三角形的“绕线顺序”当然是一致的(顺时针或逆时针)。如果它们以相反的方向缠绕,则可以告诉OpenGL glFrontFrace(GL_CW | GL_CCW)使用哪个方向以及是否使用glCullFace(GL_BACK | GL_FRONT)剔除正面或背面三角形。

+0

感谢您的回答,但我有很多立方体彼此面前,所以剔除背面并不是真正的工作,因为我有一个正面面对另一个立方体的背面的立方体。在这种情况下,后立方体的前部也需要被剔除...如果这是有道理的。 – 2012-04-29 11:29:26

+0

如果你正在绘制它们(用白色填充实体,并勾勒框架,这是我认为你会做的),那么深度缓冲区将正常工作。如果没有,那么用OpenGL就无法做到这一点。您必须在CPU上相互剪切线路。 – Robinson 2012-04-29 11:57:23