《C语言成像与光线追踪程序设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)C.D.沃特金森(Christopher D.Watkins)等著;刘 颖译
  • 出 版 社:北京:科学出版社
  • 出版年份:1995
  • ISBN:7030048474
  • 页数:367 页
图书介绍:

前言 1

绪论 3

0.1 本书的组织 3

0.2 第一部分 4

0.2.1 数学模块 4

0.2.2 图形面模块 4

0.2.3 使用这些模块 4

0.3.3 光线——物体相交测试 5

0.3.5 复习光线追踪程序代码 5

0.3.4 阴影、纹理和光照 5

0.3.2 光线追踪程序 5

0.3.1 光线追踪理论 5

0.3 第二部分 5

0.3.6 怎样使用光线追踪程序 6

0.4 第三部分 6

0.5 第四部分 6

0.6 第五部分 6

0.7 第六部分 6

0.8 第七部分 6

0.10 总结 7

0.9 软件和硬件要求 7

第一部分 标准和通用模块 11

第一章 标准和C语言 11

1.1 为什么选用C语言 11

1.2 编程语言的概念 11

1.3 变量和数据类型 12

1.4 运算符 13

1.5 程序控制 15

1.6 函数 16

1.8 指针和数组 17

1.7 宏 17

1.9 内存 18

1.10 结构 18

1.11 typedef 19

1.12 输入输出(I/O) 19

1.13 文件I/O 20

1.14 编程风格 21

1.15 参考读物 21

1.16 光线跟踪 21

2.1.1 BkDefs.文件 23

第二章 数学模块 23

2.1 头文件 23

2.1.2 BkMath. 头文件 24

2.2 编译这些模块 26

2.3 Bkath.C 程序 26

2.4 基本数学函数 38

2.4.1 Radians和Degrees函数 38

2.4.2CosD和SinD 函数 39

2.4.3 Power函数 39

2.4.6 Exp10函数 40

2.4.5 Log函数 40

2.4.7 Sign和Intsign函数 41

2.4.8 IntSqrt 函数 41

2.4.9 IntPower函数 41

2.4.10 MIIN和MAX函数 42

2.5 向量和矩阵函数 42

2.5.1 Vec和VecInt函数 43

2.5.2 UnVec 和UnVecInt函数 43

2.5.3 VeDot函数 43

2.5.4 V ecCross函数 44

2.5.5 VecLen函数 45

2.5.6 VecNormalize函数 46

2.5.7 V ecMatxMult函数 46

2.5.8 VecSub和VecSubInt函数 46

2.5.9 VeeAdd 函数 47

2.5.10 VecAdd3 函数 47

2.5.11 VecCopy和VecCopyInt函数 47

2.5.13 VecScalMult\VecscalMultl和VecScalMultInt函数 48

2.5.14 VecAddScalMultl和VecScalMultInt函数 48

2.5.12VecLinComb函数 48

2.5.15 VecNull 和VecNulllnt函数 49

2.5.16 VecElemMult函数 49

2.5.17 VecMin和VecMax函数 49

2.5.18 VccNegate函数 49

2.6 仿射变换例程 49

2.6.1 ZeroMdtrlx函数 49

2.6.2 Translate3D函数 50

2.6.3 Scale3D函数 50

2.6.5 Muluply3D函数 51

2.6.4 Rotate3D函数 51

2.6.6 MatCopy函数 52

2.6.7 PrepareMatnx 函数 52

2.6.8 PrepareInvMatrix 52

2.6.9Tansform 函数 52

2.7 伪随机数的生成 53

2.7.1 InitRand 函数 53

2.7.2 Rand函数 53

2.7.3 RandInt函数 53

3.1 BkGlobs.H头文件 55

第三章 图形界面模块 55

3.2 BkGraph.H头文件 56

3.3 BkGraph.C程序 57

3.3.1 Plot函数 68

3.3.2 Clear_Palette函数 68

3.3.3 Set_Palette函数 68

3.3.4 Imt_Palette 68

3.3.5 Imt_Palette 函数 68

3.3.10 MinI和MaxI函数 69

3.3.9 Line函数 69

3.3.7 Swap函数 69

3.3.6 CyCle_Palette函数 69

3.3.8 Circle函数 69

3.3.11 Tmvial Reject函数 70

3.3.12 Chp_To_Screen函数 70

3.3.13 Imt_Graphics函数 70

3.3.14 Set_Graphics_Mode函数 70

3.3.15 Wait_For_Key函数 70

3.3.16 Exit_Graphics函数 70

3.4.2 Init_Perspective函数 71

3.4.3 Map_Coordmates函数 71

3.3.17 Fitle 函数 71

3.4.1 Init_Plotting函数 71

3.4 二维画图函数 71

3.4.5 Cartesian_Plot_3D函数 72

3.4.6 Cylmdrical_Plot_3D函数 72

3.4.7 Spherical Plot_3D函数 73

3.4.8 Draw_Line_3D函数 73

3.5.1 Put)_Pixel函数 74

3.5 像素函数 74

3.5.2 Get_Pixel函数 75

3.6 设置坐标轴和调色板的函数 75

3.6.1 Put_Axis_And _Palette函数 75

3.6.2 Display_Axis函数 75

3.6.3 Display_Palette函数 76

3.6.4 Axis_And_Palette 函数 76

3.7 使用模块 76

4.2 Plants.C 文件 77

4.1 Crystal.C文件 77

第四章 使用模块 77

4.3 S移花接木——3D,C程序 83

4.4 三维圆周运动模拟示例程序 86

4.5 真实物体 94

第二部分 光线追踪 97

第五章 光线追踪程序数学模块 97

第六章 光线追踪理论 121

6.1 即时光线追踪 123

6.2 光线的反射 126

6.3 折射 128

6.4 问题,问题,问题! 131

6.5 答案,答案,答案! 132

6.6 细节 133

第七章 光线追踪程序 135

7.1 投影 135

7.2 图像质量和变形 137

7.3 防变形方法 137

7.4 均匀采样 138

7.7 简单的照像机模型 139

7.6 结果 139

7.5 统计密集采样 139

7.8 trace函数 140

7.9 背景 141

第八章 光线—物体相交测试 165

8.1 物体的定义 165

8.1.1 光线的参数表示 165

8.1.2 与球面相交 166

8.1.3 与二次曲面相交 167

8.2 曲面法线计算 167

8.3 与平面物体相交 168

8.4 三角形小块 174

8.5 构造复杂物体 181

8.6 构造实体几何 185

8.6.1 包围体 186

8.6.2 包围面 187

8.7 层次树 188

8.8 搜索物体 192

8.9 其它算法 199

9.1 阴影模型 201

第九章 看见光亮 201

9.1.1 背景色(K) 202

9.1.2 漫反射颜色(K) 202

9.1.3 镜面反射迭加(K) 203

9.1.4 反射率(K)及折射率(K) 203

9.2 纹理,纹理,纹理 204

9.3 映射图象 204

9.4 实体纹理构造 205

9.5 噪声及扰动 206

9.6 实体纹理样式 215

9.7 球面纹理 220

9.8 制造波纹 221

9.9 凹凸纹理 222

9.10 大气 223

9.11 阴影 224

9.12 关于代码 226

第十章 光线追踪程序代码 227

10.1 分离和解释程序 228

10.1.1 预处理 229

10.1.2 记号分析程序 229

10.2 基本体文件 230

10.3 扫描 231

10.4 追踪 231

10.5 相交 232

10.6 包围平面 232

10.7 阴影处理 233

10.8 通向BOB的途径 234

10.9 内存问题 234

10.10 构成画面 234

11.1 运行Bob 235

第十一章 如何使用光线追踪程序 235

11.3 统计数字 237

11.2 Bob 237

11.4 输入文件(B)格式 239

11.5 输入文件布局 240

11.6 预处理程序 240

11.6.1 宏 241

11.7 EDL分析程序 242

11.7.1 studio结构 242

11.6.2 包含指令 242

11.7.2 studio参数 243

11.8 光源 246

11.9 表面 248

11.9.1 凹凸纹理 250

11.9.2 加纹理的表面 252

11.10 基本体 253

11.10.1 球 253

11.10.2 环 254

11.10.5 圆锥 255

11.10.4 三角形小块 255

11.10.3 多边形 255

11.11 变换 256

11.12 图像纹理 257

11.13剪切 257

11.14有关说明 259

第三部分 生成光线追踪程序所城需的物体数据库 263

第十二章 过程物体数据库 263

12.1 生长的树 264

12.2 环形与环面 267

12.3 一个令人困惑的物体 270

12.5一块吸收性极好的海绵 273

12.6 一个六角形 275

12.7 更为复杂的数据库 277

第十三章 Z缓冲区数据 279

13.1 Z缓冲区数据的线框轮廓 279

13.2 光线追踪的Z缓冲区数据库 280

13.3 生成Z缓冲区数据库的程序 285

13.4 生成Z缓冲区数据库的分形程序 291

13.6 三维Julia集 294

13.5 三维Mandelbrot集 294

13.7 使用四元数的分形 298

13.8 四元数数学 299

13.9 生成四元数分形数据库 309

13.10 地形Z缓冲区 309

13.11 Smooth.EXE 313

13.12 移动山脉 314

14.1.1 基本体支持和操作 317

14.1.2 物体支持和操作 317

第十四单章 三维数据库建横器 317

14.1 数据库建模程序的功能 317

第四部分 物体数据库的CAD产品 317

14.1.3 适当时间内生成数据库视图 318

14.1.4 在数据库内部自由移动 318

14.1.5 陷藏数据库细节 318

14.2 层次结构的重要性 318

14.3 Bob的数据库层次:基本体、物体、画面 319

14.2.4 高效性 319

14.2.3 区域性和可扩展性 319

14.2.1 重复利用性 319

14.2.2 灵活性 319

14.4Eb:Bob 的简单数据库建模程序 320

14.4.1 启动Ed 320

14.4.2 Ed 屏幕 320

14.4.3 告诉Ed 做什么 320

14.5.1 读写画面文件 321

14.5.2 移动观察点 321

14.5 系统模式 321

14.4.4系统参数 321

14.5.3 选择物体 322

14.5.4 实例化及删除物体 322

14.5.5 编辑物体位置和比例 322

14.5.6 修改studto定义 322

14.5.7 编辑studio参数 322

14.5.8 退出studio模式 322

14.5.9 编辑物体 322

14.5.10 编辑物体结构 322

14.5.14 退出Ed 323

14.5.13 退出物体模式 323

14.5.11 多边形的一个特例 323

14.5.12 编辑物体特征 323

14.6 Ed源代码总览 324

14.6.1 Ed源代码使用的规则 324

14.6.2 Ed 基本数据结构 324

14.6.3 Ed全局变量 325

14.6.4 Ed主要的程序元素 325

14.6 Ed输出文件的局限 326

15.1.1 直接指定调色板 329

15.1.2 多数法 329

第十五章 图像处理 329

15.1 IMG2GIF.C 329

第五部分 计算机图形学的图像处理技术 329

15.1.3 中分法 330

15.1.4 固定调色板 330

15.2 有趣有益的抖动法 331

15.3 建立,GIF文件 332

15.4 IMG2GIF.C技术说明 333

15.7 图像显示 334

15.6 改善图像质量 334

15.5.2 Palette.MAP文件格式 334

15.5 文件格式 334

15.5.1 Bob的.IMG文件格式 334

第六部分 图形硬件 347

第十六章 图形硬件驱动程序 347

16.1 24位颜色 348

16.2 Bob 结束语 360

第七部分 本书之外内容 363

第十七章 超越Bob 363

17.1 制作图形 363

17.2.2 运动模糊 364

17.2.3纹理问题 364

17.2 动画 364

17.2.1 车轮 364

17.3 实时光线追踪 365

17.4 高级光照模型 365

17.5 辐射 365

17.5.1 更多的近似 366

17.5.2 为何使用辐射模型 366

17.6 真实三维图像 366

17.7 何去何从 366