欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

OpenGL 三角形要点总结

发布时间:2025/4/14 71 豆豆
生活随笔 收集整理的这篇文章主要介绍了 OpenGL 三角形要点总结 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

OpenGL 三角形

三个单词:

顶点数组对象:Vertex Array Object,VAO
顶点缓冲对象:Vertex Buffer Object,VBO
索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO

OpenGL中,任何事物都在3D空间中,屏幕和窗口却是2D像素数组,导致OpenGL的大部分工作都是关于把3D坐标转变为屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线,实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。
图形渲染管线可以被划分为两个主要部分:第一部分把你的3D坐标转换为2D坐标,第二部分是把2D坐标转变为实际的有颜色的像素。

图形渲染管线接受一组3D坐标,然后把它们转变为你屏幕上的有色2D像素输出。

图形渲染管线可以被划分为几个阶段,每个阶段将会把前一个阶段的输出作为输入。

我们以数组的形式传递3个3D坐标作为图形渲染管线的输入,用来表示一个三角形,这个数组叫做顶点数据(Vertex Data);顶点数据是一系列顶点的集合。
一个顶点(Vertex)是一个3D坐标的数据的集合。

图形渲染管线的第一个部分是顶点着色器(Vertex Shader),它把一个单独的顶点作为输入。
顶点着色器主要的目的是把3D坐标转为另一种3D坐标,同时顶点着色器允许我们对顶点属性进行一些基本处理。

OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。

顶点缓冲对象是一个OpenGL对象。就像OpenGL中的其它对象,这个缓冲有一个唯一的ID,可以使用glGenBuffers函数和一个缓冲ID生成一个VBO对象:
unsigned int VBO;
glGenBuffers(1, &VBO);

OpenGL有很多缓冲对象类型,顶点缓冲对象的缓冲类型是GL_ARRAY_BUFFER。

OpenGL提供了glDrawArrays函数,它使用当前激活的着色器,之前定义的顶点属性配置,和VBO的顶点数据(通过VAO间接绑定)来绘制图元。
glDrawArrays函数第一个参数是打算绘制的OpenGL图元的类型。
希望绘制一个三角形,传递GL_TRIANGLES给它。
第二个参数指定了顶点数组的起始索引,一般填0。
最后一个参数指定打算绘制多少个顶点,三角形是3。
 

参考:

https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/

 

总结

以上是生活随笔为你收集整理的OpenGL 三角形要点总结的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。