C opengl空心立方体带有可见边缘
C++ OpenGL Empty Cube with Visible Edges
我正在尝试创建一个立方体。我希望立方体本身清晰(黑色,因为背景是黑色),但是我希望这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();
您只需绘制'线框'立方体即可。您会看到边缘,但没有面孔。将填充模式设置为电线和渲染线而不是多边形。
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个四边形。但是由于这是"第一天",所以这可能是一个容易的开始。
最终,您完全不使用固定功能 - 它已弃用。但这将为您带来一个使矩阵和照明等舒适的环境。当您有认真的宝石渲染时,您会将其放在缓冲区中,然后将其放到大块的GPU上,使您的GLSL着色器Process Process Process Process图形卡上的数据。
欢迎使用图形!
也许我应该做glbegin(gl_lines),甚至不用担心 表面要碰撞,因为我可以创建 数学上?
正确。您已经知道您的立方体的边界。
做一些线,然后弹跳你的球。
您可以将多边形模式(GlpolyGonmode,在此处读取)设置为GL_LINE,以实现同一件事。
也许我应该只做glbegin(gl_lines),甚至不必担心表面会发生碰撞,因为我只能用数学上的数学创建?
OpenGL不会帮助您进行任何形式的碰撞。
作为主题的某种篇章,请考虑使用更现代的方法。即使您不使用较新的OpenGL版本,也有效地删除了即时模式图。
这是一个不错的开始
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 如何在全屏模式下(在OpenGL中)使背景透明
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- OpenGl glm rotate
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- OpenGL在启用深度测试时不会丢弃我的碎片
- OpenGL相机和相机空间转型的困惑
- OpenGL将纹理四边形渲染为(0,0)
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 发布旋转矩阵(openGL/glm)
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- OpenGL 16 位模板缓冲区?
- 将QOpenGLWidget子类转换为使用Metal而不是OpenGL的子类是否可行?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 在 openGL 中多次绑定缓冲区
- C opengl空心立方体带有可见边缘