第1部分 预备知识
第1章 3D图形学:历史回顾
PC机的硬件进展
家用游戏机的硬件进展
电影的发展
DirectX的简要历史
OpenGL概述
第2章 向量复习课程
什么是向量
规一化向量
向量算术
向量点积
向量叉积
四元数
D3DX中的向量
总结
第3章 矩阵复习课程
什么是矩阵
单位矩阵
平移矩阵
放缩矩阵
旋转矩阵
矩阵连接
矩阵与D3DX
总结
第4章 颜色与光照概要
什么是颜色
环境光照与放射光照
漫反射光照
镜面反射光照
其他光源类型
用Direct3D来汇总一切
阴影类型
总结
第5章 图形管线介绍
Direct3D管线
顶点数据与高阶表面
固定功能的变换与光照阶段
顶点着色器
裁剪器
多重纹理化
像素着色器
雾化
深度检测、模板检测和alpha检测
帧缓冲区
性能考虑
总结
第2部分 建立沙箱
第6章 设置开发环境和简单的Win32应用程序
SDK初探
S设置开发环境
一个简单的Win32应用程序
编译并运行这个简单应用程序
回顾:我们为什么那样做
总结
第7章 创建和管理Direct3D设备
什么是Direct3D设备
使用Direct3D设备进行渲染
清除设备
重温Application.h
重温Application.cpp
总结
第3部分 渲染
第8章 一切从顶点开始
什么是顶点
创建顶点
销毁顶点缓冲区
设置与改变顶点数据
渲染顶点
性能考虑
在屏幕上的某些东西
总结
第9章 使用变换
变换意味着什么
世界变换
观察变换
构建世界与观察变换
投影变换
变换与D3D设备
使用矩阵堆栈
视口
综合应用
建议的练习
性能考虑
总结
第10章 从顶点到几何图形
将顶点转化为表面
渲染表面
加载并渲染.X 文件
性能考虑
源代码
总结
第11章 固定功能光源
D3DLIGHT8结构
为光照设置设备
应用程序
源代码
总结
第12章 纹理入门
纹理——内部的机制
创建纹理
纹理和顶点
性能考虑
高级话题
应用程序
总结
第13章 纹理阶段状态
设置纹理阶段状态
混合与多重纹理化
凹凸映射
纹理坐标状态
纹理过滤和Mip贴图
纹理阶段状态与着色器
源代码
总结
第14章 深度检测与Alpha混合
深度检测
Alpha混合(Alpha Blending)
Alpha检测
性能考虑
源代码
总结
第4部分 着色器
第15章 顶点着色器
顶点着色器
着色器代码
混合和写掩码
着色器的实现
与计算几何图形一起使用着色器
与网格一起使用着色器
基本着色器
性能问题
源代码
总结
第16章 像素着色器
什么是像素着色器
像素着色器版本
像素着色器的输入、输出和操作
附属纹理读取
指令配对
纹理寻址
像素着色器的局限与告诫
测定像素着色器的支持
汇编、创建和使用像素着色器
一个非常简单的像素着色器应用程序
在顶点着色器中的简单光照
在像素着色器中的简单混合
简单的像素着色器应用
总结
第5部分 顶点着色器技术
第17章 与网格一起使用着色器
基本概念
从材质到顶点颜色
从顶点颜色到顶点数据
性能考虑
程序实现
总结
第18章 顶点着色器的简单与复杂几何操纵
沿着法线扩张顶点
用正弦波来扭曲顶点
程序实现
扩展该例子的想法
总结
第19章 布告板和顶点着色器
布告板的基本思想
布告板着色器
程序实现
其他的布告板概念
总结
第20章 工作在笛卡尔坐标之外
笛卡尔坐标系与其他坐标系
在顶点着色器中坐标系之间的映射
应用程序代码
该项技术的应用
总结
第21章 贝塞尔面片
线、曲线以及面片
用“微积分”来得到表面法线
在着色器中计算面片值
贝塞尔应用程序
贝塞尔面片的使用和优点
连接曲线和面片
总结
第22章 角色动画——矩阵调色板蒙皮
角色动画技术
地址寄存器
在着色器里的矩阵调色板蒙皮
应用程序
调色板的其他用途
总结
第23章 简单的颜色操纵
将深度编码到顶点颜色中
深度着色器
深度编码应用程序
X射线着色器
X射线应用程序
总结
第24章 在顶点着色器里实现光照
把光源向量转换到物体空间
方向光源着色器
点光源着色器
聚光灯着色器
应用程序代码
在一个着色器内的多个光源
总结
第25章 卡通阴影
着色器、纹理和复变函数
将此方法应用于卡通阴影(第1部分)
将此方法应用于卡通阴影(第2部分)
将所有一切放到着色器中
卡通阴影应用程序
关于纹理变化的概念
关于着色器变化的概念
总结
第26章 反射和折射
环境映射和立体贴图
动态地改变立体贴图
计算反射向量
计算近似近似折射向量
反射/折射顶点着色器
应用程序代码
立体贴图的其他使用
总结
第27章 阴影——平面阴影
在平面上投射阴影
平面方程
阴影矩阵
模板缓冲区与阴影
平面阴影应用程序
局限和改进之处
总结
第28章 阴影——阴影体
阴影体的解释
阴影体着色器
阴影体应用程序
阴影体的优点与缺点
总结
第29章 阴影——阴影贴图
阴影贴图概念
将光源视点渲染到纹理
纹理映射世界
深度比较顶点着色器
阴影映射像素着色器
阴影贴图应用程序
局限与改进
总结
第6部分 像素着色器技术
第30章 逐像素光照
简单的光源贴图
使用像素着色器的逐像素光照
逐像素聚光灯
逐像素聚光灯顶点着色器
逐像素聚光灯像素着色器
逐像素聚光灯应用程序
逐像素点光源
逐像素点光源顶点着色器
逐像素点光源像素着色器
逐像素点光源应用程序
局限
总结
第31章 逐像素光照——凹凸映射
凹凸映射的概念
创建并使用法线贴图
创建纹理空间基向量
凹凸映射顶点着色器
没有像素着色器的凹凸映射
凹凸映射像素着色器
局限与改进余地
总结
第32章 用逐像素方式实现的逐顶点技术
逐像素反射
使用texm3x3pad
反射凹凸映射顶点着色器
反射凹凸映射像素着色器
反射凹凸映射的应用程序
逐像素卡通阴影
逐像素卡通顶点着色器
逐像素卡通像素着色器
逐像素卡通的应用程序
总结
第7部分 其他有用的技术
第33章 渲染到纹理——全屏运动模糊
创建一个作为渲染目标的纹理
从纹理渲染目标获得表面
渲染到纹理渲染目标
渲染到动态立体贴图
运动模糊
作为后处理技术的运动模糊
运动模糊应用程序
性能涵义
总结
第34章 2D渲染——只是减掉一个“D”
放弃DirectDraw的原因
丢掉一个“D”
精灵——图像就是一切
在2D里使用顶点
一个非常简单的2D应用程序
性能涵义
可能的扩展
总结
第35章 DirectShow:用视频作为纹理
DirectShow简述
我想要我的MP3
视频到纹理滤波器的操作
准备构建纹理类
纹理滤波器类
视频纹理应用程序
总结
第36章 用像素着色器进行图像处理
后期处理的优点
用像素着色器进行全屏颜色操纵
用颜色曲线来操纵颜色
用卷积核进行图像处理
性能考虑
总结
第37章 绘制文本的更好方式
基本概念
程序实现
总结
第38章 精确的定时
低分辨率定时
高分辨率定时
关于动画的一般说法
程序实现
总结
第39章 模板缓冲区
模板缓冲区和模板检测的目的
模板缓冲区的渲染状态
模板化的狙击区域
总结
第40章 拾取:实际拾取过程的更多介绍
非常简单的2D拾取
光线拾取
采用光线拾取的地形跟踪
照片般完美的逐像素拾取过程
逐像素拾取顶点着色器
逐像素拾取应用程序
逐像素拾取的其他程序
性能问题
总结
索引
展开