OpenGL超级宝典笔记9(完)

来源:互联网 发布:知乎新版怎么回答问题 编辑:程序博客网 时间:2024/06/11 15:32


第十七章 片段着色器:增强像素处理的威力

      在本章中,我们将通过带有多种片段着色器的实例来学习,包括每像素光照、颜色变换、图形处理、凹凸贴图和程序纹理。

a)        颜色转换 包括灰度、调棕色、反色、热信号和基于片段的雾。

b)       图像处理 是片段着色器不需要顶点着色器协助的另一个领域。模糊:也许是最为常见的一种过滤器,能够平滑一些高频率的特性。锐化:与模糊正好相反。它的应用包括物体边缘更为清晰以及使文本更容易阅读。膨胀和侵蚀:都属于形态过滤器,即它们都会改变物体的形状。膨胀扩大明亮物体的大小,而侵蚀则缩小明亮物体的大小。边缘检测:对物体的边缘进行检测,边缘就是图像的颜色急剧变化的地方,而边缘检测过滤器就是要找出这些急剧变化的地方,并对它们进行强化。

c)        过程纹理贴图 就是不使用任何纹理的情况下对下一个物体进行纹理贴图,可以跳过纹理加载和纹理查找阶段,直接对纹理进行描述。过程纹理贴图既有优点又有缺点。其中一个优点是它的存储要求很低,只要能够容纳一些着色器指令就可以了。另一个优点是它实际上无限的分辨率。缺点就是如果需要表示的纹理具有相当的复杂性,它会要求一个差不多同样复杂的片段着色器,这也是它并没有被广泛使用的原因。

第十八章 高级缓冲区

      讨论OpenGL中的一些最新和最激动人心的特性,包括离屏加速渲染、异步复制像素数据的更快捷方法和纹理与颜色缓冲区的浮点颜色数据。

a)   像素缓冲区对象 是一种新类型的缓冲区对象,PBO允许驱动程序采用一些可以提高性能的快捷方式。包括对经常使用的数据进行缓存,使它们靠近GPU;避免从客户内存存到驱动程序的一次额外复制;允许从帧缓冲区的读取通过管线;数据可以在不显式地从客户内存来回复制的情况下改变用途。

b)  帧缓冲区对象FBO 允许把渲染从窗口的帧缓冲区转移到我们所创建的一个或多个离屏帧缓冲区。离屏只是意味着帧缓冲区的内容不可见,直到它首先被复制会窗口。FBO并不受窗口大小的限制;纹理可以连接到FBO,允许直接渲染到纹理,不需要显式的glCopyTexImage;FBO可以包含多个颜色缓冲区,可以同时从一个片段着色器写入。

c)   浮点纹理: GL_ARB_texture_float扩展允许使用12种新的纹理内部格式。基本颜色格式有6种,并且每种部分为16位和32位浮点格式。高动态范围,可以使用它做任何事情,不在受限于捕捉0.0-1.0范围内的256种色调,而是可以在浮点缓冲区中保存任意的数据。

原创粉丝点击