103得票3回答
如何在OpenGL中使用glOrtho()函数?

我无法理解glOrtho的用法。能否有人解释一下它的用途? 它是否用于设置x、y和z坐标范围的限制?glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); 这意味着x、y和z的范围是从-1到1?

101得票5回答
C++和OpenGL矩阵顺序(行主序与列主序)之间的混淆

我对矩阵定义感到非常困惑。我有一个矩阵类,它包含一个float[16]数组,我假设它是行主序的,基于以下观察: float matrixA[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; float matrix...

96得票2回答
片元着色器如何知道要使用哪个变量来设置像素的颜色?

我看到很多不同的片段着色器。#version 130 out vec4 flatColor; void main(void) { flatColor = vec4(0.0,1.0,0.0,0.5); } 他们都使用不同的变量来表示“输出颜色”(在这种情况下为flatColor)。那...

96得票4回答
OpenGL在最底层是如何工作的?

我知道如何编写OpenGL/DirectX程序,也了解背后的数学和概念,但是我好奇GPU和CPU之间的低级通信如何工作。 比如说,我有一个用C语言编写的OpenGL程序,显示一个三角形并将相机旋转45度。当我编译这个程序时,它会被转换成一系列的ioctl调用,然后GPU驱动程序发送适当的命令...

95得票2回答
glVertexAttribPointer澄清

我想确认一下我的理解是否正确(我本来想在SO Chat上问的,但那里已经死了!): 我们有一个Vertex Array,通过绑定它使其“当前” 然后我们有一个Buffer,将其绑定到Target 然后我们通过glBufferData填充该Target 这实际上是填充绑定到该Target的任何...

94得票11回答
OpenGL与OpenCL,该选择哪一个?为什么?

什么特点使OpenCL在计算方面比OpenGL和GLSL更具选择性?除了与图形相关的术语和不实用的数据类型之外,OpenGL还有什么实际缺点吗? 例如,可以通过将a渲染到纹理中并使用其他纹理来执行并行函数评估。通过迭代地渲染到越来越小的纹理中,可以减少操作。另一方面,任意写访问无法以任何有效...

94得票2回答
OpenGL 中的“immediate mode”是什么意思?

什么是“Immediate Mode”?给出一个代码示例。 何时必须使用即时模式而不是保留模式?每种方法的优缺点是什么?

88得票5回答
glBindVertexArrays和glBindBuffer在IT技术中的作用及其关系是什么?

我是OpenGL和图形编程的新手。目前为止,我一直在阅读一本非常详尽且写得很好的教材。然而,在代码中遇到了一个我不太理解的地方,我想在继续学习之前弄清楚这些行的意思。GLuint abuffer; glGenVertexArrays(1, &abuffer); glBindVerte...

86得票4回答
OpenGL VAO 最佳实践

我遇到了一个问题,我认为它是依赖VAO的,但我不确定。 我不太清楚如何正确使用VAO,在GL初始化期间我通常会做简单的以下操作:glGenVertexArrays(1,&vao) 跟随着一个glBindVertexArray(vao) 后来,在我的绘图管线中,我只是调用了glBind...

85得票10回答
OpenGL如何在不使用gluSphere()函数的情况下绘制球体?

有没有教程可以解释如何在OpenGL中绘制球体而不使用gluSphere()? 许多关于OpenGL的3D教程只涉及立方体。我已经搜索了很多,但是大多数绘制球体的解决方案都是使用gluSphere()。也有网站提供了绘制球体的代码,链接为这个,但是它没有解释绘制球体的数学原理。该链接还提供了...