LearnOpenGL 学习—入门 1

我请教下,LearnOpenGL 学习—入门 1
最新回答
紫南

2024-10-23 13:07:52

OpenGL介绍

OpenGL并非API,而是由Khronos组织制定并维护的规范。它严格规定了每个函数的执行方式及输出值,但具体实现细节由OpenGL库开发者自行决定。用户无需了解函数实现,只需按规范使用即可,不会感知到功能差异。LearnOpenGL网站提供详细介绍,包括立即渲染与核心渲染模式、拓展、状态机和对象介绍。

创建窗口(环境配置)

在绘制效果前,需创建OpenGL上下文和显示窗口。每个系统操作不同,OpenGL提供抽象层,要求开发者自行处理。GLFW库简化窗口与OpenGL上下文创建,GLAD库则负责管理OpenGL函数指针。配置GLFW和GLAD后,可开始创建窗口。

窗口创建流程

引入GLFW与GLAD库,定义main函数,实例化GLFW窗口,创建窗口对象,初始化GLAD,设置视口尺寸,注册窗口大小回调函数,实现渲染循环,使用双缓冲解决画面闪烁问题,确保资源释放。

输入控制与颜色渲染

实现GLFW输入控制,通过glfwGetKey函数检测按键状态。创建processInput函数处理输入,修改渲染循环,使用glClear函数清除颜色缓冲,设置屏幕颜色,最终得到深蓝绿色窗口,按下ESC键窗口关闭。

三角形图形渲染管线

OpenGL将3D坐标转换为2D像素,图形渲染管线包含顶点着色器、图元装配、几何着色器、光栅化、Alpha测试与混合阶段。顶点着色器处理坐标转换与顶点属性基本操作,图元装配将顶点转换为指定形状,几何着色器生成新图元,光栅化阶段将图元映射为屏幕像素,Alpha测试与混合确保最终显示。

顶点输入

定义三角形顶点数据,标准化设备坐标用于保证坐标在-1.0到1.0范围内。使用顶点缓冲对象(VBO)存储顶点数据,顶点着色器接收这些数据进行处理。

顶点着色器

通过GLSL编写顶点着色器,设置输入顶点属性,将处理后的顶点位置设置为gl_Position变量,输出顶点着色器结果。顶点着色器在GPU上执行,高效处理顶点数据。

片段着色器

片段着色器计算像素颜色输出,为三角形着色。声明输出变量FragColor,计算并输出橘黄色颜色值。

着色器程序与链接

创建着色器对象,链接顶点着色器与片段着色器,链接完成后得到着色器程序对象,激活此对象以使用编写好的着色器。

链接顶点属性

定义OpenGL如何解析顶点数据,使用glVertexAttribPointer函数配置输入数据与顶点属性对应关系,激活顶点属性以使用着色器。

顶点数组对象

顶点数组对象简化顶点属性配置,存储顶点缓冲对象和属性指针信息,允许轻松切换顶点数据和属性配置。

绘制三角形

使用glDrawArrays函数绘制三角形,配置着色器、顶点属性和VBO数据。得到橘色三角形显示。

元素缓冲对象

通过元素缓冲对象(EBO)管理顶点索引,减少重复顶点,优化绘制矩形等图形,节省内存和计算资源。

总结

遵循OpenGL规范,使用GLFW和GLAD库配置环境,编写顶点着色器和片段着色器,利用顶点数组对象管理顶点数据,绘制三角形并优化图形渲染,实现高效、灵活的图形渲染流程。