《图形着色器 理论与实践 原书第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)贝利,(美)坎宁安著;刘鹏译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302315995
  • 页数:339 页
图书介绍:可编程的图形着色器,即,将用户程序加载到图形处理器(GPU)以取代早期的固定功能流水线的工作方式,已经愈发成为现代计算机图形学的一个关键特性。本书详细解释了GLSL图形着色器编程的理论和方法,以及与之相关的OpenGL API函数,并介绍了一个灵活易用的工具glman,以帮助用户开发、测试和调试着色器程序。本书适合计算机图形学专业学生和自学者作为教材或者参考读物使用。

第1章 固定功能管线 1

传统的视见方案 1

顶点操作 1

管线的片元处理 3

图形管线中的状态 4

传统视见机制的实现方案 5

顶点处理操作 5

渲染处理操作 6

固定管线中的齐次坐标 9

顶点数组 10

本章小结 13

本章练习 14

第2章 OpenGL着色器的发展 16

着色器发展史 17

OpenGL着色器发展史 19

OpenGL 2.0/GLSL 1.10 19

OpenGL 3.x/GLSL 3.30 19

OpenGL 4.0/GLSL 4.00 20

OpenGL 4.x/GLSL 4.x0 21

内部原因 21

OpenGL ES 22

处理不同版本 22

本书方案 22

变量名命名规则 23

本章练习 23

第3章 着色器基本概念 24

图形管线中的着色器 24

顶点着色器 26

片元着色器 29

细分着色器 31

几何着色器 34

GLSL着色器语言 35

应用程序与着色器之间的数据传递 38

在应用程序中定义attribute变量 38

在应用程序中定义uniform变量 40

GLSL新版本之间的转换方式 42

本章练习 44

第4章 glman的使用 45

使用glman 46

加载GLIB文件 47

编辑GLIB文件和着色器文件 47

生成GLIB场景 47

窗口和视见操作 47

转换操作 48

定义几何对象 48

定义纹理 50

定义着色器名 50

其他命令 51

定义uniform变量 51

GLIB文件示例 53

纹理和噪声 54

使用纹理 55

使用噪声纹理 55

glman界面窗口功能 56

生成并显示场景的硬拷贝 56

全局场景转换 57

眼睛转换 57

对象拾取和转换 57

纹理转换 58

显示帧速率 58

其他功能项 59

本章练习 59

第5章 GLSL着色器语言 61

着色器语言的成因 61

图形卡功能项 62

通用GLSL语言 63

共享命名空间 64

函数扩展和操作符功能项 64

新增函数 64

新增变量类型 65

新增函数参数类型 65

具体实现 65

忽略的语言功能项 66

新增矩阵和向量类型 66

名称集 67

向量构造函数 67

矩阵和向量扩展函数 68

矩阵和向量的扩展操作 70

新增函数 71

混合操作 75

新增函数参数类型 75

const变量 76

兼容模式 76

定义兼容模式 76

OpenGL 2.1内建数据类型 77

综述 81

本章练习 81

第6章 光照 82

ADS光照模型 82

ADS光照模型函数 83

光源类型 85

固定光源 85

有向光源 86

聚光灯 86

构建基于着色器的光照机制 88

固定着色 88

平滑着色 89

Phong着色方案 89

各向异性着色 90

本章练习 91

第7章 顶点着色器 92

图形管线中的顶点着色器 93

顶点着色器的输入数据 93

源自顶点着色器的输出数据 94

几何体 94

顶点着色器之后的固定功能处理 96

顶点着色器和细分着色器之间的关系 96

顶点着色器和几何着色器之间的关系 96

利用顶点着色器替换固定功能图形操作 97

标准的顶点处理过程 97

基于顶点着色器的固定功能管线扩展 97

顶点修正 98

顶点着色器中的问题 100

生成法线 100

综述 101

本章练习 102

第8章 片元着色器和表面外观 103

片元着色器的基本功能 104

片元着色器的输入数据 104

片元着色器的in变量 105

坐标系 106

片元着色器处理机制 107

源自片元着色器的输出数据 107

利用片元处理器替换固定功能处理 107

着色机制 107

传统的纹理贴图 108

伪色 108

片元着色器后续步骤 110

其他着色器效果 110

像素丢弃 111

Phong着色 111

基于解析法线的着色机制 112

各向异性着色 113

基于数据驱动的色彩方案 114

使用其他数据生成图像 115

本章练习 116

第9章 片元着色器中的表面纹理 117

纹理坐标 117

传统的纹理贴图 117

GLSL纹理贴图 118

纹理上下文 120

固定功能管线中的纹理环境 121

纹理采样参数 121

采样器 122

过程纹理 122

凹凸贴图 127

立方体贴图 132

渲染至纹理 135

渲染至纹理(glman多路渲染) 138

本章练习 140

第10章 噪声 141

噪声的基本概念 141

3种噪声类型:数值、梯度以及数值+梯度 142

三次插值和五次插值 142

噪声方程 143

其他噪声 145

分形布朗运动(FBM,1/f倍频程) 146

二维噪声和三维噪声 146

基于g1man的噪声 148

基于内建GLSL函数使用噪声纹理 149

湍流 149

不同环境中的噪声示例 151

大理石着色器 153

云彩着色器 153

木材着色器 155

与噪声相关的高级话题 156

noisegraph应用程序 156

本章练习 157

第11章 基于着色器的图像处理 159

基本概念 160

单幅图像处理 160

亮度 160

CMYK转换 161

色调转换 163

图像过滤机制 165

图像模糊操作 166

色度键图像 167

立体视图 169

3D电视 171

边检测技术 173

浮雕效果 174

卡通着色器 176

艺术视觉效果 177

图像的翻转、旋转和扭曲 178

图像混合处理 182

基于固定基图像的图像混合操作 183

反像 183

亮度 184

对比度 184

图像的自身混合操作 185

饱和度 185

锐利度 186

不同图像间的混合操作 187

其他合成方案 188

图像渐变 190

内容提示 194

本章练习 195

第12章 几何着色器的概念和示例 198

几何着色器的功能 198

新型邻接图元 200

基于输入和输出变量的布局结构 201

新增OpenGL API函数 201

新增GLSL变量以及变量类型 203

顶点着色器或细分着色器与几何着色器之间的通信 203

几何着色器中的法线 204

应用示例 205

Bezier曲线 205

收缩三角形 207

球体细分 208

3D对象轮廓边 211

本章练习 213

第13章 细分着色器 214

细分着色器定义 214

细分着色器与几何着色器 215

细分着色器概念 216

设置细分级别时的问题 219

应用示例 219

等值线 219

Bezier曲面 222

球体细分 228

基于屏幕覆盖率的整球细分 233

PN三角形 236

综述 241

本章练习 241

第14章 GLSLAPI 243

OpenGL程序处理中的着色器 243

处理OpenGL扩展 244

GLSL着色器程序的创建方式 245

创建并编译着色器对象 245

CheckGLErrors()函数 247

创建、绑定、链接并激活着色器程序 248

生成着色器程序并绑定着色器对象 248

着色器程序的链接操作 249

激活着色器程序 250

向着色器传递数据 250

在应用程序中定义uniform变量 251

兼容模式下的uniform变量 253

在应用程序中定义attribute变量 254

兼容模式下的attribute变量 255

着色器程序的C+++控制类 256

本章练习 257

第15章 基于着色器的科学可视化计算 258

基于图像的可视化技术 258

负像 258

图像边检测 259

卡通渲染 259

双曲线几何学 260

3D标量数据可视化计算 263

点云 264

剖切面 267

体探测 270

直接体渲染 271

其他转换函数 276

通过几何对象传递数据值 279

地形凹凸贴图 280

流显示 283

2D线积分卷积 283

3D线积分卷积 285

获取流线对象 286

几何可视化 289

轮廓边技术 289

刺状区 290

本章练习 292

第16章 着色器应用 295

光线干涉现象 295

衍射光栅 295

油膜 299

透镜效果 301

浴室玻璃 304

大气效果 306

彩虹 307

辉光效果 310

其他视效函数 312

glman Timer函数 313

迪斯科球 313

雾效果 315

3D几何体变形 316

算法艺术 319

Connett圆 319

运动状态下的可见信息 321

爆炸效果着色器 322

本章练习 324

参考文献 326

附录A基于GLSL程序的C++类 329

附录B Matrix4 C++类 331

附录C Vec C++类 334

附录D顶点数组类 336