OpenGL入门学习(一)-- 创建OpenGL基础框架详解

本文详细介绍了在Ubuntu 12.04环境下使用Qt5.0.2配置OpenGL开发环境的过程,包括安装必备库文件、Qt项目工程配置、编译命令等。通过实践,展示了如何创建空白窗口、初始化OpenGL环境、设置窗口属性,并最终实现绘制一条直线的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenGL 简介

OpenGL 基础框架

要学习OpenGL,还是从最基础的开始,先配置环境,然后创建一个空白的窗口,接着画顶点、线、三角形。

1 配置环境

环境: Ubuntu12.04 + Qt5.0.2

1.1 安装所需库文件:

扩展阅读

sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libglut-dev

1.2 Qt配置项目工程:

在Qt的xx.pro工程文件中,加入所需的OpenGL库文件:

LIBS += -lGL -lglut -lGLU -lGLEW

否则会报错:

undefined reference to 'glClear' 

之类的链接错误,所以一定记得配置库文件。

1.3 编译

编译提供了几个常用的:

qmake:
qmake

用来生成Makefile,然后执行

make

来生成可执行文件,默认的名称为项目名称。

./xxx

为了方便,我们写一个脚本来自动执行这些操作,创建run.sh,加入以下代码:

qmake
make
./xxx

然后修改脚本的权限:

chmod 755 run.sh

以后就可以直接执行

./run.sh

来执行编译、运行等一系列命令。

g++编译

2 OpenGL的“第一次”

代码详见github:

参考
扩展阅读

首先加入头文件:

#include <GL/glut.h>

然后先写main函数:

int main(int argc, char *argv[])
{
    glutInit(&argc, argv); //初始化glut
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//显示模式  
    glutInitWindowPosition(50, 100);//视窗左上角位于屏幕的初始位置 
    glutInitWindowSize(400, 300);//视窗的大小,单位像素
    glutCreateWindow("My first OpenGL Program");//视窗标题栏名称
    glutMainLoop();//注意:必须加入glutMainLoop才能显示窗口!
    return 0;

}

[扩展阅读:显示模式]()

现在就有了视窗。

现在加入两个函数,定义和实现都写在main函数前面。第一个函数是init初始化函数,

void init(void){
    glClearColor(1.0, 1.0, 1.0, 0.0);//清屏颜色  
    glMatrixMode(GL_PROJECTION);//设置模式
    glLoadIdentity();
    gluOrtho2D(0.0, 200.0, 0.0, 150);
}

只有设置离初始化函数init的glClearColor函数后,出现的窗口才会清空颜色,变为纯白。

然后加入第二个函数:linesegment:

void linesegment (void) {  
glClear (GL_COLOR_BUFFER_BIT);//清颜色缓存    
glColor3f (1.0, 0.0, 0.0); //绘图颜色设定    
glBegin (GL_LINES);  //图元:线段  
glVertex2i (180, 15);  
glVertex2i (10, 145); 
glEnd();   
glFlush ();  
}  

这个函数的作用为:绘制一条直线。glClear清除窗口显示的颜色的缓存,并用glColor3f来设置颜色。从glBegin到glEnd就是绘制的部分,GL_LINES表示绘制的是线段,设置两个顶点glVertex2i,OpenGL会自动绘制由这两点构成的线段。glFlush命令强制刷新缓冲区,保证我们的设置由缓冲区设置到窗口上。

现在就有了这个绘制:

748416-20151226135417062-1122591231.png

转载于:https://www.cnblogs.com/zeonyu/p/5077383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值