文件名称:先进的编程-emq客户端连接认证的配置教程
文件大小:3.39MB
文件格式:PDF
更新时间:2024-06-28 03:22:43
OpenGL ES 编程指南
OpenGL ES 2.0 先进的编程 本章我们讨论一些你已经在本书学过的OpenGL ES 2.0先进的使用方法。OpenGL ES 2.0 中有很多灵活的先进渲染技术。本章我们学习下面的技术。 每个片段的光照 环境映射 粒子系统 图像后加工 投影贴图 3D 贴图使用噪声 程序贴图 每个片段的光照 第 8 章,顶点着色器我们介绍了能被应用于顶点着色器的光照方程计算每个顶点的光 照。一般的为了实现更高质量的光照方程,我们基元每个片段计算光照方程。本章我们举例 说明基于片段的计算散射、环境和镜面反射光。例子在 RenderMonkey 工作区的文件夹 Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx 下 , 显 示 的 图 片 看 图 13-1 正常映射的光照 在我们进入 RenderMonkey 工作区的着色器细节前,首先讨论例子使用的方法。最简单 的计算片段光照的方法是在片段着色器中使用顶点法线插补,移动光计算到片段着色器。然 而对散射而言,每顶点计算光照这不是好的效果。更先进的方法是变形法线矢量,因为线性 插补的原因,将产生人工痕迹,而光照质量仅仅得到有限的提高。为实现更高质量的光照, 基于每个片段计算光照,使用法线匹配额存储每个纹理的法线将提供更多优良的细节。 正常的映射是一个 2D 贴图存储着每个纹理的矢量。红色通道代表 x 构成,绿色通道代 表 y 构成,蓝色通道代表 z 构成。正常的映射像 GL_RGB8 使用 GL_UNSIGNED_BYTE 类 型,值范围在[0, 1]。着色器里那些值需要重新定标到[-1, 1]范围。下面的片段着色器代码显 示了你应该为映射做的事情。 // Fetch the tangent space normal from normal map