opengl编程指南笔记(三)第二章 状态管理和绘制几何物体

在最高抽象层次上,有三种绘图操作是最基本的:清除窗口、绘制几何图形、绘制光栅对象。光栅对象包括了二维图像、位图、字体之类的东西。
显示列表:将绘图命令保存在一个列表中,以后一起执行。他和立即模式对应,立即模式更易于编程,但显示列表常常具有更高的效率。
清除窗口实际是将保存图片的内存区清除为某种背景颜色。
//指定颜色缓冲区的RGBA清除颜色,如果使用的是颜色索引模式,使用glClearIndex()
glClearColor(0.0, 0.0, 0.0, 0.0); 
//类似清除颜色,这行指定深度缓冲区中的每个像素需要设定的深度值
glClearDepth(1.0); 
//把窗口清除为当前清除颜色
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


opengl允许同时清除多个缓冲区,这是因为清除通常是一种相对较慢的操作,涉及窗口中的每个像素(可能数以百万计),如果图形硬件不支持同时清除多个缓冲区,就会线性执行清除操作。


RGB值:0表示不使用这种颜色,1表示最大限度使用这种颜色。(0,0,0)表示黑色,(1,1,1)表示白色,(0.5,0.5,0.5)表示黑色和白色的中间色灰色。


在不存在网络,并且所有命令都立即执行的情况下,glFlush()可能并无作用。但编程时应该考虑到有网的情况。glFlush不等绘图完成,强制绘图命令立即执行。


一般情况下,点被画作单个像素。对于许多坐标略微不同的点,opengl可能把他们画在同一个像素上。


虽然可以在opengl函数中指定w坐标,但是这种做法极为罕见。未指定的w坐标默认为1.0


单闭合线段环:多边形的边可以一笔画下来(这就排除了多边形内嵌套多边形)
简单多边形:多边形的各条边不能相交。
凸多边形:在多边形内部任意取两个点,如果连接着两个点的线段都在这个多边形的内部,就是凸多边形。


opengl对多边形的诸多限制是为了提高绘图速度,因为简单的多边形渲染速度非常快。


曲线和曲面的无限细分可以以地球为例,地球是一个球体,但细分到我们站立的一平米内,线都是直线,面都是平面。


顶点函数glVertex*的z和w默认值分别是0,和1
glBegin(mode)标志一个顶点数据列表的开始,他描述了一个几何图元。


test  这里翻译为比较比翻译为测试好,如depth test译为深度比较。


stipple line 点描线


glClearColor是设置背景色
glColor是设置画笔色,对应状态GL_CURRENT_COLOR
默认情况下,点被画成屏幕上的一个像素,直线被画成宽度为一个像素的实线,多边形被画成实心填充的形式。
设置点大小glPointSize(像素宽度值),如果disable抗锯齿,点的宽度值四舍五入为整数,屏幕上绘制的是对齐的正方形像素区域。如果enable抗锯齿或多重采样,屏幕上绘制的将是一个圆形的像素区域。


如果启用抗锯齿,线宽将使用非整数宽度,位于边界处的像素会画的淡一点。


多边形正面:顶点以逆时针方向出现在屏幕上。


法线向量简称法线,是垂直于某个表面的方向向量。在opengl中,既可以为每个多边形指定一条法线,也可以为多边形的每个顶点分别指定一条法线。同一个多边形的顶点可能共享同一条法线(平表面),也可能具有不同的法线(曲面)。除了顶点之外,不能为多边形的其他地方分配法线。


opengl使用法线向量确定这个物体的各个顶点所接受的光照。
长度为1的向量称为单位向量或规范化的向量。法线向量只表示方向,所以他的长度是无关紧要的,法线可以指定为任意长度,但在执行光照计算前,它的长度会转换为1。使一条法线向量具有单位长度,只要把每个xyz成分初一法线长度就可以了


顶点数组相关的数组最多有8类:顶点数组、表面法线数组、rgba颜色数组、辅助颜色数组、颜色索引数组、雾坐标数组、纹理坐标数组、多边形边界标志数组。




stride  跨步,炫迈口香糖


glPrimitiveRestartIndex 理解:
http://www.cnblogs.com/shane/archive/2013/04/23/3037210.html


opengl将相关的状态变量进行归组,称为属性组attribute group,opengl大约有20个服务器属性组,2个客户端属性组。opengl有两个不同的属性堆栈:服务器属性栈和客户端属性栈,分别使用glPushAttrib()、glPopAttrib()、glPushClientAttrib()、glPopClientAttrib()入栈出栈。


opengl可能无法正确的渲染非平面多边形,所以最好使用三角形。


表面上任意两条向量的向量积,然后对他规范化,就可以得到他的单位发现向量。
向量积 也被称为矢量积、叉积(即交叉乘积)、外积,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个伪向量而不是一个标量。并且两个向量的叉积与这两个向量垂直。


用二十面体模拟一个着色球体,需要使用垂直于球体真正表面的法线向量,而不是垂直于各个面的法线向量。对于球体而言,法线向量非常简单,每个点上法线向量的方向就是从原点到对应顶点的那条向量的方向。


曲线的曲率(curvature)就是针对曲线上某个点的切线方向角对弧长的转动率,通过微分来定义,表明曲线偏离直线的程度。数学上表明曲线在某一点的弯曲程度的数值。曲率越大,表示曲线的弯曲程度越大。曲率的倒数就是曲率半径。曲率是几何体不平坦程度的一种衡量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值