OpenGL学习——(1)

基础概念


* 刚接触OpenGL,感觉概念比较抽象,函数库也非常强大,学习起来比较吃力,本文为自己的学习笔记,主要将厚厚的课本知识进行整理,方便今后复习,同时也可以帮助其他初学者查看知识点,减少他们在学习过程中花费的时间。*

1.光栅化——实际绘制或填充每个定点之间的像素形成线段
2.2D+透视=3D
3.投影分为:平行投影(也叫正投影)和透视投影
4.OpenGL不是一种编程语言,而是一种C运行时的函数库,它是一种过程性而不  是描述性的图形API。
5.OpenGL的错误机制:
  可以在代码中执行一种偶然健全性检查,其内部保留了一组错误标志(4个),其中每个标志代表一种不同类型的错误。当一个错误发生时,与这个错误相对应的标志就会被设置。具体用法如下:
 Glenum glGetError(void);
GL_INVALID_ENUM ——枚举参数超出范围
GL_INVALID_VALUE——数值参数超出范围
GL_INVALID_OPERATION——在当前的状态中操作非法
GL_OUT_OF_MEMORY——没有足够内存来执行这条命令
GL_NO_ERROR——没有错误出现
6.状态机
 在绘制几何图形时会有许多影响因素,在OpenGL中把这些因素叫做变量并整合为一个集合称为管线的状态。状态机是一种抽象的模型,表示一组状态变量的集合。每个状态变量可以有各种不同的值,或者只能打开或关闭。OpenGL使用状态机来追踪所有状态变量。当一个状态值被设置之后,它就一直保持这个状态,直到其他函数对它进行修改为止。
 

void glEnable(GLenum capability);//打开状态机
void glDisable(GLenum capability);//关闭状态机
void glEnable(GL_DEPATH_TEST);//打开深度测试
void Disable(GL_DEPATH_TEST);//关闭深度测试
GLboolean glIsEnabled(GLenum capability);//对某个变量进行测试
//设置变量的值的四个函数
void glGetBooleanv(GLenum pname, GLboolean *params);
void glGetDoublev(GLenum pname, GLdouble *params);
void glGetFloatv(GLenum pname, GLfloat *params);
void glGetIntegerv(GLenum pname, GLint *params);
//这些变量将一直保持被设置的值

7.OpenGL的几大类库
我们在使用OpenGL之前基本上需要在运行环境的VC目录中添加一些库文件和链接库文件,这样在实际开发中才能使用OpenGL,那么在OpenGL中有哪几个重要的库呢,下面简单介绍一下(其中的API是可移植的):
 A.glut:(免费且能自行发布)用来替代AUX的一个函数库,代表OpenGL使用工具箱,其中包含了一些GUI功能。
 B.glew:是一种可以自动初始化所有心函数指针并包含所需类型定义、变量和枚举值的扩展加载库,还有用来产生和渲染3D对象的函数。
 C.GLTools:是一个比较新的库,其中封装了之前的多个库(glut,glew),还包含了用于操作矩阵和向量的3D数学库。
8.OpenGL的基本数据类型
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值