目录
2018-08-15 本文已影响87人
代码咖啡
文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体、斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。
序
前言
第 1 章 绪论
第 2 章 GPU 图形绘制管线
-
2.1 几何阶段
- 2.1.1 从 object space 到 world space
- 2.1.2 从 world space 到 eye space
- 2.1.3 从 eye space 到 project and clip space
- 2.2 Primitive Assembly && Triangle setup
-
2.3 光栅化阶段
- 2.3.1 Rasterization
- 2.3.2 Pixel Operation
-
2.4 图形硬件
- 2.4.1 GPU 内存架构
- 2.4.2 Z Buffer 与 Z 值
- 2.4.3 Stencil Buffer
- 2.4.4 Frame Buffer
- 2.5 本章小节
第 3 章 Shader Language
- 3.1 Shader Language 原理
- 3.2 Vertex Shader Program
- 3.3 Fragment Shader Program
- 3.4 CG VS GLSL VS HLSL
- 3.5 本章小结
第 4 章 Cg 语言概述
- 4.1 开始 Cg 之旅
- 4.2 CG 特性
-
4.3 CG 编译
- 4.3.1 CG 编译原理
- 4.3.2 CGC 编译命令
- 4.4 CG Profiles
第 5 章 CG 数据类型
第 6 章 CG 表达式与控制语句
- 6.1 关系操作符(Comparison Operators)
- 6.2 逻辑操作符(Logical Operators)
- 6.3 数学操作符(Math Operators)
- 6.4 移位操作符
- 6.5 Swizzle 操作符
- 6.6 条件操作符(Conditional Operators)
- 6.7 操作符优先顺序
- 6.8 控制流语句(Control Flow Statement)
第 7 章 输入\输出与语义绑定
- 7.1 Cg 关键字
- 7.2 uniform
- 7.3 const
- 7.4 输入\输出修辞符(in\out\inout)
-
7.5 语义词(Semantic)与语义绑定(Binding Semantics)
- 7.5.1 输入语义与输入语义的区别
- 7.5.2 顶点着色程序的输入语义
- 7.5.3 顶点着色程序的输出语义
- 7.5.3 片段着色程序的输出语义
- 7.5.4 语义绑定方法
第 8 章 函数与程序设计
-
8.1 函数
- 8.1.1 数组形参
- 8.2 函数重载
- 8.3 入口函数
-
8.4 CG 标准函数库
- 8.4.1 数学函数(Mathematical Functions)
- 8.4.2 几何函数(Geometric Functions)
- 8.4.3 纹理映射函数(Texture Map Functions)
- 8.4.4 偏导函数(Derivative Functions)
- 8.4.5 调试函数(Debugging Function)
- 8.5 在未来将被解决的问题
- 开篇语:
第 9 章 经典光照模型(illumination model)
- 9.1 光源
- 9.2 漫反射与 Lambert 模型
- 9.2.1 漫反射渲染
- 9.3 镜面反射与 Phong 模型
- 9.3.1 phong 模型渲染
- 9.4 Blinn-Phong 光照模型
- 9.5 全局光照模型与 Rendering Equation
- 9.6 本章小结
第 10 章 高级光照模型
- 10.1 Cook-Torrance 光照模型
- 10.1.1 Cook-Torrance 光照模型渲染实现
- 10.2 BRDF 光照模型
- 10.2.1 什么是 BRDF 光照模型
- 10.2.2 什么是各向异性
- 10.3 Bank BRDF 经验模型
- 10.4 本章小结
第 11 章 透明光照模型与环境贴图
- 11.1 Snell 定律与 Fresnel 定律
- 11.1.1 折射率与 Snell 定律
- 11.1.2 色散
- 11.1.3 Fresnel 定律
- 11.2 环境贴图
- 11.3 简单透明光照模型
- 11.4 复杂透明光照模型与次表面散射
第 12 章 投影纹理映射(Projective Texture Mapping)
- 12.1 投影纹理映射的优点
- 12.2 齐次纹理坐标(Homogeneous Texture Coordinates)
- 12.3 原理与实现流程
- 12.4 本章小结
第 13 章 Shadow Map
- 13.1 什么是 depth map
- 13.2 Shadow map 与 shadow texture 的区别
- 13.3 Shadow map 原理与实现流程
第 14 章 体绘制(Volume Rendering)概述
- 14.1 体绘制与科学可视化
- 14.2 体绘制应用领域
- 14.3 体绘制与光照模型
- 14.4 体数据(Volume Data)
- 14.4.1 体素(Voxel)
- 14.4.2 体纹理(Volume Texture)
- 14.5 体绘制算法
第 15 章 光线投射算法(Ray Casting)
- 15.1 光线投射算法原理
- 15.1.1 吸收模型
- 15.2 光线投射算法若干细节之处
- 15.2.1 光线如何穿越体纹理
- 15.2.2 透明度、合成
- 15.2.3 沿射线进行采样
- 15.2.4 如何判断光线投射出体纹理
- 15.3 算法流程
- 15.4 光线投射算法实现
- 15.5 本章小结
附录 A:齐次坐标
附录 B:体绘制的医学历程
附录 C:模板阴影(Stencil Shadow)
参考文献
Alice 羞涩地说:“呲牙猫,请问你能告诉我应该走哪条路吗?”
呲牙猫说:“这取决于你想去哪儿。”
Alice 说:“我不怎么介意到哪儿去。”
呲牙猫回答说:“那你走哪条路都可以”
Alice 说:“只要我能到某个地方”
呲牙猫说:“只要你走的足够远,你肯定能到某个地方”。
——Lewis Carroll 的 Alice’s adventures in Wonderland
借用上面的一句话,只要你走的足够远,你肯定能到某个地方。加油!