CG教程-可编程实时图形权威指南

出版时间:2004-9  出版社:人民邮电出版社  作者:Randima Fernando Mark J.Kilgard  页数:280  字数:348000  译者:洪伟  
Tag标签:无  

内容概要

Cg是最早的为可编程图形硬件设计的高级编程语言,本书教你如何编写Cg程序。
  本书共10章,第1章简要介绍Cg语言。随后的每一章分别介绍Cg中的一个概念和技术的说明,包括最简单的Cg程序,参数、纹理和表达式,如何进行顶点变换,如何用Cg实现光照模型,如何用Cg顶点程序实现模型的动画和变换,如何实现环境贴图,如何实现凹凸贴图,雾、卡通光照、投影聚光、阴影贴图和复合技术,目前可用的Cg的顶点和片断的简要描述(Profile)等内容。每章的结尾提供了习题,以帮助你进一步学习,探索更多的Cg知识。本书另外还附有5个关于Cg基础知识的附录。
  本书适合开发三维游戏和应用软件的程序员及项目管理人员、实时三维美工人员和学习计算机图形学的学生阅读,也可供任何对学习实时渲染技术当前发展动态有兴趣的人士阅读参考。

书籍目录

第1章 简介 11.1 什么是Cg 11.1.1 为可编程图形硬件设计的语言 21.1.2 Cg的数据流模型 21.1.3 图形处理器的特殊性和中央处理器的通用性 31.1.4 Cg性能的基本原理 31.1.5 与传统编程语言共存 41.1.6 Cg的其他方面 51.1.7 Cg程序的有限执行环境 61.2 顶点、片段和图形流水线 71.2.1 计算机图形硬件的发展史 71.2.2 四代计算机图形硬件 81.2.3 图形硬件流水线 121.2.4 可编程图形流水线 151.2.5 Cg提供了顶点和片段的可编程能力 191.3 Cg的发展史 191.3.1 Microsoft和NVIDIA协作开发了Cg和HLSL 211.3.2 非交互的着色语言 211.3.3 三维图形的编程接口 231.4 Cg环境 241.4.1 标准三维编程接口:OpenGL和Direct3D 241.4.2 Cg编译器和运行库(Runtime) 261.4.3 CgFX工具箱和文件格式 281.5 练习 311.6 补充阅读 31第2章 最简单的程序 332.1 一个简单的顶点程序 332.1.1 输出结构(Output Structure) 342.1.2 标识符 352.1.3 结构成员 362.1.4 向量 362.1.5 矩阵 372.1.6 语义 382.1.7 函数 392.1.8 输入和输出语义是不同的 392.1.9 函数体 402.2 编译你的例子 422.2.1 顶点程序Profile 422.2.2 Cg编译错误类别 432.2.3 依赖Profile的错误 442.2.4 标准:多重入口函数 452.2.5 下载和配置顶点和片段程序 462.3 一个简单的片段程序 472.4 用顶点和片段示例程序渲染 502.4.1 用OpenGL渲染一个三角形 512.4.2 用Direct3D渲染一个三角形 512.4.3 获得同样的结果 522.5 练习 542.6 补充阅读 54第3章 参数、纹理和表达式 553.1 参数 553.1.1 Uniform参数 553.1.2 const类型限制符 583.1.3 Varying参数 583.2 纹理样本 603.2.1 样本对象 613.2.2 纹理采样 623.2.3 在对一个纹理采样的时候,发送纹理坐标 623.3 数学表达式 633.3.1 操作符 633.3.2 依赖于profile的数值数据类型 653.3.3 标准库内置的函数 683.3.4 二维扭曲 713.3.5 重影效果 743.4 练习 783.5 补充阅读 79第4章 变换 814.1 坐标系统 814.1.1 物体空间 824.1.2 齐次坐标 834.1.3 世界空间 834.1.4 建模变换 834.1.5 眼睛空间 844.1.6 视变换 854.1.7 剪裁空间 864.1.8 投影变换 864.1.9 标准化的设备坐标 874.1.10 窗口坐标 884.2 理论应用 884.3 练习 894.4 补充阅读 89第5章 光照 915.1 光照和光照模型 915.2 实现基本的每个顶点的光照模型 935.2.1 基本的光照模型 935.2.2 一个基本的每个顶点光照的顶点程序 995.2.3 每个顶点光照的片段程序 1085.2.4 单个顶点光照结果 1085.3 单个片段光照 1085.3.1 实现每个片段的光照 1105.3.2 用于每个片段光照的顶点程序 1115.3.3 用于每个片段光照的片段程序 1115.4 创建一个光照函数 1135.4.1 声明一个函数 1135.4.2 一个光照函数 1155.4.3 结构 1155.4.4 数组 1165.4.5 流控制 1185.4.6 计算漫反射和镜面反射光照 1195.5 扩展基本模型 1195.5.1 距离衰减 1205.5.2 增加一个聚光灯效果 1225.5.3 平行光 1265.6 练习 1275.7 补充阅读 128第6章 动画 1296.1 随时间运动 1296.2 一个有规律搏动的物体 1306.2.1 顶点程序 1316.2.2 位移计算 1326.3 粒子系统 1346.3.1 初始化条件 1356.3.2 向量化计算 1366.3.3 粒子系统的参数 1366.3.4 顶点程序 1376.3.5 修饰你的粒子系统 1396.4 关键帧插值 1406.4.1 关键帧的背景知识 1406.4.2 插值方法 1436.4.3 基本的关键帧插值 1456.4.4 带光照的关键帧插值 1466.5 顶点混合 1476.5.1 顶点混合理论 1476.5.2 在顶点程序中的顶点混合 1496.6 练习 1516.7 补充阅读 152第7章 环境映射技术 1537.1 环境映射 1537.1.1 立方贴图纹理 1547.1.2 生成立方贴图 1557.1.3 环境映射的概念 1557.1.4 计算反射向量 1557.1.5 环境映射的一些假设 1577.2 反射环境映射 1587.2.1 应用程序指定的参数 1597.2.2 顶点程序 1597.2.3 片段程序 1637.2.4 控制贴图 1647.2.5 顶点程序与片段程序 1647.3 折射环境映射 1657.3.1 折射的物理原理 1667.3.2 顶点程序 1687.3.3 片段程序 1707.4 菲涅耳效果和颜色色散 1717.4.1 菲涅耳效果 1717.4.2 颜色色散 1727.4.3 应用程序指定的参数 1737.4.4 顶点程序 1747.4.5 片段程序 1757.5 练习 1777.6 补充阅读 178第8章 凹凸映射 1798.1 凹凸映射一个砖墙 1798.1.1 砖墙的法向量贴图 1808.1.2 把凹凸贴图存储成法向量贴图纹理 1818.1.3 对一个砖墙的简单凹凸映射 1838.1.4 带镜面反射的凹凸映射 1878.1.5 凹凸映射其他几何图形 1908.2 凹凸映射一个砖铺的地板 1928.3 凹凸映射一个圆环 1978.3.1 圆环的数学表示 1978.3.2 凹凸映射的圆环的顶点程序 2008.4 凹凸映射纹理的多边形网格 2028.4.1 考察单独一个三角形 2028.4.2 一些告诫 2048.4.3 推广到一个多边形的网格 2068.5 把凹凸映射和其他效果结合在一起 2068.5.1 印花贴图(Decal Map) 2068.5.2 光泽贴图 2078.5.3 投射自己的几何阴影(Geometric Self-Shadowing) 2078.6 练习 2088.7 补充阅读 209第9章 高级论题 2119.1 雾 2119.1.1 均匀的雾 2129.1.2 雾的属性 2139.1.3 雾的数学运算 2139.1.4 直觉化公式 2159.1.5 用Cg创建均匀的雾 2169.2 非真实性渲染 2189.2.1 卡通着色 2189.2.2 实现卡通着色 2199.2.3 集成在一起 2229.2.4 卡通着色技术存在的一些问题 2249.3 投影贴图 2249.3.1 投影纹理如何工作 2259.3.2 实现投影纹理贴图 2279.3.3 投影纹理贴图的代码 2289.4 阴影映射 2319.5 合成 2339.5.1 把输入映射到输出像素 2349.5.2 基本的合成操作 2359.6 练习 2389.7 补充阅读 239第10章 Profile和性能 24110.1 Profile描述 24110.1.1 DirectX8的顶点着色器Profile 24110.1.2 OpenGL的基本NVIDIA顶点程序Profile 24210.1.3 OpenGL的ARB顶点程序Profile 24210.1.4 DirectX 9的顶点着色器Profile 24310.1.5 OpenGL高级NVIDIA顶点程序Profile 24310.1.6 DirectX 8的像素着色器Profile 24310.1.7 用于OpenGL的基本NVIDIA片段程序Profile 24410.1.8 DirectX 9像素着色器Profile 24510.1.9 OpenGL的ARB片段程序Profile 24510.1.10 OpenGL高级NVIDIA片段程序Profile 24510.2 性能 24610.2.1 使用Cg标准库 24610.2.2 充分利用统一参数 24710.2.3 使用顶点程序与片段程序 24710.2.4 数据类型和它们对性能的影响 24810.2.5 充分利用向量化 24810.2.6 使用纹理来编码函数 24910.2.7 自由使用重组(Swizzling)和取反(Negation) 24910.2.8 只对必须着色的像素进行着色 25010.2.9 简短的汇编代码并不是更快的性能所必须的 25010.3 练习 25110.4 补充阅读 251附录A Cg入门 253A.1 获得本书的配套示例 253A.2 获得Cg工具箱 253附录B Cg运行库 255B.1 什么是Cg运行库 255B.2 为什么使用Cg运行库 255B.2.1 未来的证明 255B.2.2 不存在依赖问题 256B.2.3 输入参数管理 256B.3 Cg运行库是如何工作的 256B.3.1 头文件(Header File) 257B.3.2 创建一个环境 258B.3.3 编译一个程序 258B.3.4 载入一个程序 258B.3.5 修改程序的参数 259B.3.6 执行程序 260B.3.7 释放资源 260B.3.8 处理错误 261B.4 更多的细节 261附录C CgFX文件格式 263C.1 什么是CgFX 263C.2 格式纵览 263C.2.1 技巧(Technique) 264C.2.2 过程(Pass) 265C.2.3 渲染状态 265C.2.4 变量和语义 266C.2.5 注解(Annotation) 266C.2.6 一个CgFX文件的示例 267C.3 支持CgFX格式的Cg插件 269C.4 学习更多有关CgFX的知识 269附录D Cg关键字 271附录E Cg标准库函数 273E.1 数学函数 273E.2 几何函数 277E.3 纹理贴图函数 278E.4 导数函数 280E.5 调试函数 280

媒体关注与评论

  Cg(用于图形的C语言)是用于快速创建特殊效果和在多种平台上体验实时电影质量图像的一个完整的编程环境。通过提供一个全新的抽象层,Cg使得开发人员更加直接地面对OpenGL DirectX Windows Linux Mac OS X和一些游戏平台(例如Xbox),而不需要直接使用图形硬件的汇编语言进行编程。Cg是由NVIDIA公司与Microsoft公司密切合作开发的,它与OpenGL API和Microsoft DirectX 9.0的HLSL都兼容。  本书解释了如何在当今的可编程GPU构架上实现基本和高级的技术。  主要涉及的方面包括:3D变换、每个顶点和每个像素的光照、顶点混合与关键帧插值、环境贴图、凹凸贴图、雾、性能优化、投影纹理、卡通着色、合成。  “Cg是释放新一代可编程图形硬件能力的关键。本书是对Cg的最权威的介绍,而且将是任何编写高质量实时图形的人所必需的。本书将教你如何使用Cg来创建在以前的实时应用程序中从来没有出现过的效果。”  ——Larry Gritz,Advanced RenderMan(Morgan Kaufman,2000年)一书的作者  “一本非常重要和及时的书,像素级的程序性纹理——云、火和水的动画,以及所有有关的程序技巧——终于从电影屏幕来到了桌面电脑。通过一种像C的语言来使用这种计算的力量将引导我们进入一个令人激动的图形新领域。”  ——Ken Perlin,纽约大学教授

图书封面

图书标签Tags

评论、评分、阅读与下载


    CG教程-可编程实时图形权威指南 PDF格式下载


用户评论 (总计3条)

 
 

  •   入门的Shader编程书籍,图形程序员必备。
  •   很好的教程,看过了,挺经典的。。。
  •   刻苦拜读中
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7