搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Cg教程:可编程实时图形权威指南
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    7115124302
  • 作      者:
    ( )Randima Fernando,( )Mark J.Kilgard著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2004
收藏
内容介绍
  Cg是最早的为可编程图形硬件设计的高级编程语言,《Cg 教程:可编程实时图形权威指南》教你如何编写Cg程序。 《Cg 教程:可编程实时图形权威指南》共10章,第1章简要介绍Cg语言。随后的每一章分别介绍Cg中的一个概念和技术的说明,包括最简单的Cg程序,参数、纹理和表达式,如何进行顶点变换,如何用Cg实现光照模型,如何用Cg顶点程序实现模型的动画和变换,如何实现环境贴图,如何实现凹凸贴图,雾、卡通光照、投影聚光、阴影贴图和复合技术,目前可用的Cg的顶点和片断的简要描述(Profile)等内容。每章的结尾提供了习题,以帮助你进一步学习,探索更多的Cg知识。《Cg 教程:可编程实时图形权威指南》另外还附有5个关于Cg基础知识的附录。
  《Cg 教程:可编程实时图形权威指南》适合开发三维游戏和应用软件的程序员及项目管理人员、实时三维美工人员和学习计算机图形学的学生阅读,也可供任何对学习实时渲染技术当前发展动态有兴趣的人士阅读参考。
展开
精彩书评
  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,纽约大学教授
展开
目录
第1章 简介 1
1.1 什么是Cg 1
1.1.1 为可编程图形硬件设计的语言 2
1.1.2 Cg的数据流模型 2
1.1.3 图形处理器的特殊性和中央处理器的通用性 3
1.1.4 Cg性能的基本原理 3
1.1.5 与传统编程语言共存 4
1.1.6 Cg的其他方面 5
1.1.7 Cg程序的有限执行环境 6
1.2 顶点、片段和图形流水线 7
1.2.1 计算机图形硬件的发展史 7
1.2.2 四代计算机图形硬件 8
1.2.3 图形硬件流水线 12
1.2.4 可编程图形流水线 15
1.2.5 Cg提供了顶点和片段的可编程能力 19
1.3 Cg的发展史 19
1.3.1 Microsoft和NVIDIA协作开发了Cg和HLSL 21
1.3.2 非交互的着色语言 21
1.3.3 三维图形的编程接口 23
1.4 Cg环境 24
1.4.1 标准三维编程接口:OpenGL和Direct3D 24
1.4.2 Cg编译器和运行库(Runtime) 26
1.4.3 CgFX工具箱和文件格式 28
1.5 练习 31
1.6 补充阅读 31

第2章 最简单的程序 33
2.1 一个简单的顶点程序 33
2.1.1 输出结构(Output Structure) 34
2.1.2 标识符 35
2.1.3 结构成员 36
2.1.4 向量 36
2.1.5 矩阵 37
2.1.6 语义 38
2.1.7 函数 39
2.1.8 输入和输出语义是不同的 39
2.1.9 函数体 40
2.2 编译你的例子 42
2.2.1 顶点程序Profile 42
2.2.2 Cg编译错误类别 43
2.2.3 依赖Profile的错误 44
2.2.4 标准:多重入口函数 45
2.2.5 下载和配置顶点和片段程序 46
2.3 一个简单的片段程序 47
2.4 用顶点和片段示例程序渲染 50
2.4.1 用OpenGL渲染一个三角形 51
2.4.2 用Direct3D渲染一个三角形 51
2.4.3 获得同样的结果 52
2.5 练习 54
2.6 补充阅读 54

第3章 参数、纹理和表达式 55
3.1 参数 55
3.1.1 Uniform参数 55
3.1.2 const类型限制符 58
3.1.3 Varying参数 58
3.2 纹理样本 60
3.2.1 样本对象 61
3.2.2 纹理采样 62
3.2.3 在对一个纹理采样的时候,发送纹理坐标 62
3.3 数学表达式 63
3.3.1 操作符 63
3.3.2 依赖于profile的数值数据类型 65
3.3.3 标准库内置的函数 68
3.3.4 二维扭曲 71
3.3.5 重影效果 74
3.4 练习 78
3.5 补充阅读 79

第4章 变换 81
4.1 坐标系统 81
4.1.1 物体空间 82
4.1.2 齐次坐标 83
4.1.3 世界空间 83
4.1.4 建模变换 83
4.1.5 眼睛空间 84
4.1.6 视变换 85
4.1.7 剪裁空间 86
4.1.8 投影变换 86
4.1.9 标准化的设备坐标 87
4.1.10 窗口坐标 88
4.2 理论应用 88
4.3 练习 89
4.4 补充阅读 89

第5章 光照 91
5.1 光照和光照模型 91
5.2 实现基本的每个顶点的光照模型 93
5.2.1 基本的光照模型 93
5.2.2 一个基本的每个顶点光照的顶点程序 99
5.2.3 每个顶点光照的片段程序 108
5.2.4 单个顶点光照结果 108
5.3 单个片段光照 108
5.3.1 实现每个片段的光照 110
5.3.2 用于每个片段光照的顶点程序 111
5.3.3 用于每个片段光照的片段程序 111
5.4 创建一个光照函数 113
5.4.1 声明一个函数 113
5.4.2 一个光照函数 115
5.4.3 结构 115
5.4.4 数组 116
5.4.5 流控制 118
5.4.6 计算漫反射和镜面反射光照 119
5.5 扩展基本模型 119
5.5.1 距离衰减 120
5.5.2 增加一个聚光灯效果 122
5.5.3 平行光 126
5.6 练习 127
5.7 补充阅读 128

第6章 动画 129
6.1 随时间运动 129
6.2 一个有规律搏动的物体 130
6.2.1 顶点程序 131
6.2.2 位移计算 132
6.3 粒子系统 134
6.3.1 初始化条件 135
6.3.2 向量化计算 136
6.3.3 粒子系统的参数 136
6.3.4 顶点程序 137
6.3.5 修饰你的粒子系统 139
6.4 关键帧插值 140
6.4.1 关键帧的背景知识 140
6.4.2 插值方法 143
6.4.3 基本的关键帧插值 145
6.4.4 带光照的关键帧插值 146
6.5 顶点混合 147
6.5.1 顶点混合理论 147
6.5.2 在顶点程序中的顶点混合 149
6.6 练习 151
6.7 补充阅读 152

第7章 环境映射技术 153
7.1 环境映射 153
7.1.1 立方贴图纹理 154
7.1.2 生成立方贴图 155
7.1.3 环境映射的概念 155
7.1.4 计算反射向量 155
7.1.5 环境映射的一些假设 157
7.2 反射环境映射 158
7.2.1 应用程序指定的参数 159
7.2.2 顶点程序 159
7.2.3 片段程序 163
7.2.4 控制贴图 164
7.2.5 顶点程序与片段程序 164
7.3 折射环境映射 165
7.3.1 折射的物理原理 166
7.3.2 顶点程序 168
7.3.3 片段程序 170
7.4 菲涅耳效果和颜色色散 171
7.4.1 菲涅耳效果 171
7.4.2 颜色色散 172
7.4.3 应用程序指定的参数 173
7.4.4 顶点程序 174
7.4.5 片段程序 175
7.5 练习 177
7.6 补充阅读 178

第8章 凹凸映射 179
8.1 凹凸映射一个砖墙 179
8.1.1 砖墙的法向量贴图 180
8.1.2 把凹凸贴图存储成法向量贴图纹理 181
8.1.3 对一个砖墙的简单凹凸映射 183
8.1.4 带镜面反射的凹凸映射 187
8.1.5 凹凸映射其他几何图形 190
8.2 凹凸映射一个砖铺的地板 192
8.3 凹凸映射一个圆环 197
8.3.1 圆环的数学表示 197
8.3.2 凹凸映射的圆环的顶点程序 200
8.4 凹凸映射纹理的多边形网格 202
8.4.1 考察单独一个三角形 202
8.4.2 一些告诫 204
8.4.3 推广到一个多边形的网格 206
8.5 把凹凸映射和其他效果结合在一起 206
8.5.1 印花贴图(Decal Map) 206
8.5.2 光泽贴图 207
8.5.3 投射自己的几何阴影(Geometric Self-Shadowing) 207
8.6 练习 208
8.7 补充阅读 209

第9章 高级论题 211
9.1 雾 211
9.1.1 均匀的雾 212
9.1.2 雾的属性 213
9.1.3 雾的数学运算 213
9.1.4 直觉化公式 215
9.1.5 用Cg创建均匀的雾 216
9.2 非真实性渲染 218
9.2.1 卡通着色 218
9.2.2 实现卡通着色 219
9.2.3 集成在一起 222
9.2.4 卡通着色技术存在的一些问题 224
9.3 投影贴图 224
9.3.1 投影纹理如何工作 225
9.3.2 实现投影纹理贴图 227
9.3.3 投影纹理贴图的代码 228
9.4 阴影映射 231
9.5 合成 233
9.5.1 把输入映射到输出像素 234
9.5.2 基本的合成操作 235
9.6 练习 238
9.7 补充阅读 239

第10章 Profile和性能 241
10.1 Profile描述 241
10.1.1 DirectX8的顶点着色器Profile 241
10.1.2 OpenGL的基本NVIDIA顶点程序Profile 242
10.1.3 OpenGL的ARB顶点程序Profile 242
10.1.4 DirectX 9的顶点着色器Profile 243
10.1.5 OpenGL高级NVIDIA顶点程序Profile 243
10.1.6 DirectX 8的像素着色器Profile 243
10.1.7 用于OpenGL的基本NVIDIA片段程序Profile 244
10.1.8 DirectX 9像素着色器Profile 245
10.1.9 OpenGL的ARB片段程序Profile 245
10.1.10 OpenGL高级NVIDIA片段程序Profile 245
10.2 性能 246
10.2.1 使用Cg标准库 246
10.2.2 充分利用统一参数 247
10.2.3 使用顶点程序与片段程序 247
10.2.4 数据类型和它们对性能的影响 248
10.2.5 充分利用向量化 248
10.2.6 使用纹理来编码函数 249
10.2.7 自由使用重组(Swizzling)和取反(Negation) 249
10.2.8 只对必须着色的像素进行着色 250
10.2.9 简短的汇编代码并不是更快的性能所必须的 250
10.3 练习 251
10.4 补充阅读 251

附录A Cg入门 253
A.1 获得本书的配套示例 253
A.2 获得Cg工具箱 253

附录B Cg运行库 255
B.1 什么是Cg运行库 255
B.2 为什么使用Cg运行库 255
B.2.1 未来的证明 255
B.2.2 不存在依赖问题 256
B.2.3 输入参数管理 256
B.3 Cg运行库是如何工作的 256
B.3.1 头文件(Header File) 257
B.3.2 创建一个环境 258
B.3.3 编译一个程序 258
B.3.4 载入一个程序 258
B.3.5 修改程序的参数 259
B.3.6 执行程序 260
B.3.7 释放资源 260
B.3.8 处理错误 261
B.4 更多的细节 261

附录C CgFX文件格式 263
C.1 什么是CgFX 263
C.2 格式纵览 263
C.2.1 技巧(Technique) 264
C.2.2 过程(Pass) 265
C.2.3 渲染状态 265
C.2.4 变量和语义 266
C.2.5 注解(Annotation) 266
C.2.6 一个CgFX文件的示例 267
C.3 支持CgFX格式的Cg插件 269
C.4 学习更多有关CgFX的知识 269

附录D Cg关键字 271

附录E Cg标准库函数 273
E.1 数学函数 273
E.2 几何函数 277
E.3 纹理贴图函数 278
E.4 导数函数 280
E.5 调试函数 280
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证