刚开始学习OpenGL,感觉这个挺有趣的(在绘制三维模型时,空间想象能力要求比较高,不然很头疼的)。
新东西,新心情。。。来一发红色三角形。
我就是要通过OpenGL来绘制一个红色的三角形。现在我们来看一下代码:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存
glLoadIdentity(); // 重置当前的模型观察矩阵
glTranslatef(0.0f, 0.0f, -5.0f); // 移入屏幕5个单位
glColor3f(1.0f, 0.0f, 0.0f); // 颜色设置为红色
glBegin(GL_TRIANGLES); // 开始绘制三角形
glVertex3f(0.0f, 1.0f, 0.0f); // 上顶点
glVertex3f(-1.0f, -1.0f, 0.0f); // 左下顶点
glVertex3f(1.0f, -1.0f, 0.0f); // 右下顶点
glEnd(); // 结束绘制
glFlush(); // 强制刷新缓冲
}
void initGL()
{
glViewport(0, 0, 300, 300); // 重置当前的视口
glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵
gluPerspective(45.0f, (GLfloat)300 / (GLfloat)300, 0.1f, 100.0f); // 设置视口的大小
glMatrixMode(GL_MODELVIEW); // 选择模型观察矩阵
glLoadIdentity(); // 重置模型观察矩阵
glShadeModel(GL_SMOOTH); // 平滑投影
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 深度测试类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 透视修正
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv); // 初始化GLUT
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设置显示模式(这里是单缓存和RGB颜色模式的窗口)
glutInitWindowSize(300, 300); // 设置窗口大小
glutInitWindowPosition(300, 300); // 设置窗口初始位置
glutCreateWindow("第一个OpenGL程序"); // 创建一个窗口
initGL(); // OpenGL的设置
glutDisplayFunc(display); // 注册一个绘图函数
glutMainLoop(); // 进入GLUT事件处理循环
return 0;
}
关于投影矩阵,深度缓存这些东西,下次更加熟悉之后再写一下。。。
OpenGL源码:
http://www.eyesourcecode.com/forum-OpenGL-1.html
分享到:
相关推荐
本教程将引导你完成创建你的第一个OpenGL程序。 **1. 准备工作** 在开始之前,你需要确保安装了必要的库文件。这些文件通常包含DLL(动态链接库)、INCLUDE(头文件)和LIB(库文件)。DLL文件夹中包含GLU.DLL、...
自己调试的第一个OpenGL程序,内含一个立方体旋转示例的VC6.0的工程以及调试程序时包含的头文件glew.h,glut.h。调试方法可以用VC6.0打开工程文件,将压缩包里的.dll文件放在C:WINDOWS和C:WINDOWS\System32的目录...
#### 四、编写第一个OpenGL程序 以下是一个简单的OpenGL程序示例: ```c #include void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glFlush(); } int main(int ...
这是博文《第一个 OpenGL 程序:旋转的立方体(VS2022 / MFC)》的源码,详细内容见博客文章 https://blog.csdn.net/blackwoodcliff/article/details/132282723
在本项目中,我们将探讨如何在Microsoft Visual C++ 6.0(简称VC++6.0)环境中搭建OpenGL开发环境,并编写你的第一个OpenGL程序。 首先,安装OpenGL并不是直接通过安装一个软件包来完成的。它主要依赖于图形硬件...
计算机图形学中的OpenGL程序设计基础主要围绕着如何在OpenGL环境中进行程序设计,实现图形的绘制与渲染。本章节内容涵盖五个主要部分:通过GLUT使用窗口系统、几何图元与场景表达、OpenGL中的变换、OpenGL中的照明...
- 第一个OpenGL程序:绘制简单的2D图形,如点、线和多边形。 2. **Chapter 05**: 三维几何和坐标变换 - 三维空间的理解:介绍XYZ坐标系和向量的概念。 - 矩阵操作:讲解如何使用矩阵进行旋转、平移和缩放。 - ...
OpenGL程序设计,含有各种示例代码,共有20个示例,第1 章 OpenGL的程序框架__Windows、OpenGL程序框架的建立。 第2 章 OpenGL的基本图形__在OpenGL图形界面上作一些简单的图形。 第3 章 OpenGL的组合图形__用简单...
这个"OpenGL第一个示例",特别是第八版中的"triangles"示例,是初学者入门OpenGL编程的经典起点。它旨在教授如何使用OpenGL库在屏幕上绘制基本的几何形状,如三角形。 在OpenGL中,所有渲染都始于一个叫做顶点的...
4. **第一个OpenGL程序**:一个简单的OpenGL程序通常包括初始化、绘制和主循环三个部分。以下是一个基本的OpenGL程序,它会在窗口中央画一个白色矩形: ```c #include void myDisplay(void) { glClear(GL_...
glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(myDisplay); glutMainLoop(); return 0; } ``` **程序解析**: 1. **初始化OpenGL环境**:通过`glutInit`函数设置主窗口参数。 2. **定义窗口属性**:...
在程序中,窗口标题被设置为“李树柳的第一个OpenGL程序”,窗口大小设为500x500像素,并且通过`glutInitWindowPosition`和`glutInitWindowSize`函数使其位于屏幕中央。此外,通过`glClearColor`设置了背景色为黄色...
1. **OGL01_...**:虽然没有提供具体的文件名,但通常第一个章节可能是介绍OpenGL的基础知识,如安装环境、基本设置和第一个OpenGL程序的编写。 2. **OGL02_FistProg**:这可能涉及到编写你的第一个OpenGL程序,...