gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:15:26 25 4
gpt4 key购买 nike

我正在尝试创建一个立方体。我希望立方体本身清晰(黑色,因为背景是黑色的),但我希望 12 条线细而白。这样做的唯一方法是创建线条并将它们放在边缘之上吗?或者是否有不同的方法来处理它?<​​/p>

原因是我必须创建在盒子内弹跳的球。

也许我应该只执行 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();

最佳答案

您可以只绘制“线框”立方体。您会看到边缘但看不到面孔。将填充模式设置为线和渲染线而不是多边形。

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();

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

最终您会不想使用固定功能 - 它已被弃用。但这将为您提供一个熟悉矩阵和照明等的环境。当您有严肃的 gem 需要渲染时,您会将其放入缓冲区并将其大块发送到 GPU,让您的 GLSL 着色器处理显卡上的数据。

欢迎使用图形!

关于C++ OpenGL 具有可见边的空立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com