OpenGL-基础程序
AI正在绞尽脑汁想思路ING···
BiのAI摘要
HunYuan-Lite
代码展示
我们先从基本的OpenGL程序开始吧,这是一个简单的OpenGL程序:
1 |
|
这是运行结果图:
代码解释
这段代码展示了经典的 OpenGL (GLUT) 固定渲染管线基本操作。为了方便理解,我将这些函数按照 初始化与窗口管理、状态设置、坐标变换 以及 图形绘制 四个类别进行了整理。
1. 窗口管理与初始化 (GLUT 库)
这类函数主要用于配置窗口系统和处理程序的运行流程。
| 函数名称 | 功能描述 | 核心参数说明 |
|---|---|---|
glutInit |
初始化 GLUT 库 | 接收 main 函数的命令行参数 |
glutInitDisplayMode |
设置显示模式 | GLUT_RGB (使用颜色模式), GLUT_SINGLE (单缓冲区) |
glutInitWindowPosition |
设置窗口在屏幕上的初始位置 | 窗口左上角坐标 $(x, y)$ |
glutInitWindowSize |
设置窗口的宽度和高度 | 像素值 (Width, Height) |
glutCreateWindow |
创建窗口 | 字符串参数作为窗口标题 |
glutDisplayFunc |
注册显示回调函数 | 传入负责绘图的函数指针 |
glutMainLoop |
进入 GLUT 事件处理循环 | 让程序持续运行,等待重绘或交互 |
2. 状态设置与缓冲区操作
这些函数用于配置 OpenGL 的全局状态(如颜色、点大小)或清理画布。
| 函数名称 | 功能描述 | 核心参数说明 |
|---|---|---|
glClearColor |
设置清除颜色(背景色) | RGBA 值 (0.0~1.0),此处设为黑色 |
glClear |
清除指定的缓冲区 | GL_COLOR_BUFFER_BIT 表示清除颜色缓存 |
glColor4f |
设置当前的绘制颜色 (带透明度) | RGBA 分量 |
glColor3f |
设置当前的绘制颜色 (不带透明度) | RGB 分量 |
glPointSize |
设置点的像素大小 | 浮点数,数值越大点越粗 |
glFlush |
强制刷新缓冲区 | 确保绘图命令立即执行并输出到显示设备 |
3. 矩阵与坐标变换
用于定义物体是如何投影到屏幕上的。
| 函数名称 | 功能描述 | 核心参数说明 |
|---|---|---|
glMatrixMode |
设置当前矩阵模式 | GL_PROJECTION 切换到投影矩阵堆栈 |
gluOrtho2D |
定义二维正交投影裁剪区域 | 定义视野的左、右、下、上边界范围 |
4. 几何图形绘制
OpenGL 的核心绘图逻辑,通过指定顶点来构建形状。
| 函数名称 | 功能描述 | 核心参数说明 |
|---|---|---|
glRectf |
绘制一个实心矩形 | 传入左下角坐标和右上角坐标 $(x1, y1, x2, y2)$ |
glBegin |
标记图元绘制的开始 | GL_LINES (线), GL_POINTS (点), GL_TRIANGLES (三角形) |
glVertex2f |
指定一个二维顶点 (浮点型) | 坐标 $(x, y)$ |
glVertex2i |
指定一个二维顶点 (整型) | 坐标 $(x, y)$ |
glEnd |
标记图元绘制的结束 | 必须与 glBegin 成对出现 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Bi's Blog!
评论



