带有可见边的C++ OpenGL空立方体

cal*_*kon 3 c++ opengl

我正在尝试创建一个立方体.我希望立方体本身是清晰的(黑色,因为背景是黑色的),但我希望12条线条变得薄而白.唯一的方法是创建线条并将它们放在边缘上吗?或者有不同的方法来接近它吗?

原因是我必须创造出在盒子里面弹跳的球.

也许我应该做glBegin(GL_LINES),甚至不担心表面会碰撞,因为我可以用数学方法创建它?

我只是这样创造我的方面:

glBegin(GL_POLYGON);
glVertex3f( -0.5, -0.5,  0.5 );
glVertex3f( -0.5,  0.5,  0.5 );
glVertex3f( -0.5,  0.5, -0.5 );
glVertex3f( -0.5, -0.5, -0.5 );
glEnd();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ens 6

您只需绘制"线框"立方体即可.您将看到边缘但没有面孔.将填充模式设置为连线并渲染线而不是多边形.

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);  // this tells it to only render lines

glBegin(GL_LINES);

// endpoints of 1 line/edge
glVertex3f( ... 
glVertex3f( ...

// endpoints of second line/edge
glVertex3f( 
glVertex3f( 

// on up thru all 12 lines/edges

glEnd();
Run Code Online (Sandbox Code Playgroud)

现在,这不是最有效的.您可以使用线条,或者只绘制6个四边形.但由于这是"第一天",这可能是一个简单的开始.

最终你根本不想使用固定功能 - 它已被弃用.但这将为您提供一个适应矩阵和照明等的环境.当您有严格的宝石渲染时,您将把它放入缓冲区并以大块的形式发送到GPU,让您的GLSL着色器处理显卡上的数据.

欢迎来图文!