OpenGL超级宝典 第4版 中文版PDF+英文版+源代码 见
第一章 OpenGL的介绍
用二维的方式观察3D的世界,仍然是3D世界,因为其能够触发大脑判断它的深度。这个效果与它的颜色的改变、纹理、光照、着色以及各种不同的颜色强度(由于光照的原因)。接下来就学习基本概念。
透视:是指直线之间的角度,正是它产生了三维的幻觉。
颜色和着色:通过增加颜色来创建实心物体,更加具有真实感。在立方体的每一面涂上不同的颜色可以帮助我们识别这个物体的各个不同的面。
光照和阴影:通过未每个面添加适当的阴影,不仅可以使这个立方体看上去更像是一个实心物体,而且好像在某个角度被光所照射。
纹理贴图:图形硬件所处理的几何图形越多,它所需要的渲染时间也就越多。所以就想了一个办法,用更为简单的图形代替。通过一幅图像向向一个多边形提供额外细节的技巧称为纹理贴图,所提供的图像称为纹理,而纹理中每个单独的元素称为纹理单元。最后,在一个物体的表面上拉伸和压缩纹理单元的过程叫过滤。
雾:给场景中的物体添加模糊效果,提供了令人信服的宽敞开放的空间幻觉。
混和(blending)和透明:混和是屏幕上颜色或物体的组合。它类似于双重曝光照片所实现的效果,也就是两幅图像形成一种层次感。
抗锯齿:由于图像是由不连续的像素所组成的,因此我们可以在屏幕上看到锯齿效果。通过细心地将这些直线与背景颜色相混合,我们可以消除锯齿边缘,这种混合技巧称为抗锯齿(antialiasing)。
学习了3D的基本概念,接下来了解3D编程的基本原则。
1. 立即模式和保持模式,两种不同的方法进行3D图形的底层API编程,OpenGL同时支持这两种方法。
2. 坐标系统,有2D笛卡尔坐标,坐标裁剪,视口,3D笛卡尔坐标。
3. 投影:从3D到2D,用于创建几何图形的3D坐标将投影到一个2D表面。投影分为两种一种是正投影,另一种是透视投影。
总结:本章教了我们通过透视、隐藏直线消除、颜色、着色和其它技巧来创建深度幻觉,并学习了两种把3D投影到2D屏幕的方法。
第二章 使用OpenGL进行绘图的过程,包括合成和选择颜色、清除屏幕、绘制矩形并设置视口和裁剪区域,对图像进行缩放,使它与窗口的大小匹配。了解各种OpenGL数据类型以及生成OpenGL程序所需要的头文件。OpenGL状态机奠定了许多操作的基础;扩展机制使我们能够访问自己所使用的硬件驱动程序所支持的所有OpenGL特性,不必考虑所用的开发工具;学习如何检查OpenGL错误,确保程序中并未出现任何非法的状态改变或渲染命令。
1. 管线(pineline)这个术语用于描述一种过程。
2. OpenGL是API而不是编程语言,简单、清晰,并且容易为厂商所扩展。数据类型都以GL开头,随后是它们对应的C数据类型。函数名约定,<函数库前缀><根命令><可选的参数数量><可选的参数类型>。
3. OpenGL状态机,是一个抽象的模型,表示一组状态变量的集合。OpenGL使用了一种状态机来追踪所有的OpenGL状态变量。许多状态只是简单的打开或关闭。例如glEnable(GL_LIGHTING),打开光照效果。另外,还提供了一种可以保持和恢复的机制,使用堆栈原理,命令如下void glPushAttrib(GLbitfield mask); void glPopAttrib(GLbitfield mask);