Hello啊各位,鸽了挺长时间没更新,其实是博主找到新乐子了。
如标题所说,我正在学习OpenGL。
现在已经成功的调用显卡画出了一个三角形,这虽然不是什么大的成就,但已经让我很兴奋了。
我不打算在这里写出我配置opengl环境的过程,确实有些麻烦,大家对照视频自行配置,在这里只介绍三角形的核心代码。
glBegin(GL_TRIANGLES);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
这是基于c++写的;
-
glBegin(GL_TRIANGLES);
:这个函数标志着要开始绘制一系列的图元(primitive),在这里是三角形。GL_TRIANGLES
表示将要绘制一系列独立的三角形。 -
glVertex2f(-0.5f, -0.5f);
:这个函数用于指定三角形的顶点坐标。glVertex2f
表示使用二维坐标,-0.5f, -0.5f
是第一个顶点的坐标。 -
glVertex2f(0.0f, 0.5f);
:这是第二个顶点的坐标。 -
glVertex2f(0.5f, -0.5f);
:这是第三个顶点的坐标。 -
glEnd();
:这个函数标志着已经完成了一系列的图元的定义,绘制过程结束。
需要注意的是,这段代码使用了OpenGL的固定渲染管线,这是较早版本的OpenGL中的一种渲染方式。在现代OpenGL中,通常会使用着色器(Shaders)来控制渲染过程,而不是使用 glBegin
和 glEnd
函数。固定渲染管线已经在OpenGL的最新版本中被废弃,取而代之的是更灵活和强大的可编程渲染管线。
GL_TRIANGLES
是OpenGL中的一个渲染模式(Primitive Type),用于指定如何绘制顶点来构建图元(Primitive)。图元是计算机图形学中的基本几何形状,如点、线和三角形等。GL_TRIANGLES
渲染模式表示将绘制一系列独立的三角形,每个三角形由三个顶点组成。
让我详细解释一下 GL_TRIANGLES
渲染模式的工作方式:
-
顶点定义: 在使用
GL_TRIANGLES
渲染模式时,你需要提供一系列的顶点坐标,每个三个顶点表示一个三角形。每个顶点都由其在空间中的坐标(通常是二维或三维坐标)来定义。 -
连接三角形: OpenGL会自动将这些顶点连接成一个个独立的三角形。它会将前三个顶点构成第一个三角形,接着的三个顶点构成第二个三角形,以此类推。如果提供的顶点数量不是3的倍数,那么多出来的顶点将会被忽略。
-
绘制: 一旦提供了足够的顶点,OpenGL会根据指令绘制出这些三角形。每个三角形的三个顶点会按照逆时针顺序(或顺时针,取决于你的设置)连接起来,构成一个实心的三角形。
这个渲染模式非常适合绘制大量的独立三角形,比如在游戏中绘制复杂的模型或场景。然而,要注意每个三角形都是独立的,不会自动连接成复杂的形状,这需要在你的应用逻辑中考虑如何组织和连接这些三角形。
除了 GL_TRIANGLES
,OpenGL还支持其他的渲染模式,如 GL_POINTS
(绘制独立的点)、GL_LINES
(绘制独立的线段)、GL_TRIANGLE_STRIP
(绘制连续的三角形带)等。不同的渲染模式适用于不同的场景和效果。在实际应用中,根据需要选择合适的渲染模式来绘制图元。
glVertex2f
是OpenGL中用于指定顶点坐标的函数。它用于在绘制图元时告诉OpenGL在什么位置绘制这个顶点。
函数名中的 2f
表示这是一个二维的函数,因此需要传递两个浮点数作为参数来定义顶点的坐标。
下面让大家看一下画出来的三角形。