OpenGL简约笔记:用C#学面向对象的OpenGL
作者:祝威
出版时间:2019年版
内容简介
本书由浅入深地讲解OpenGL的概念和用法,通过一个个简单的实例使读者对各个知识点一目了然。书中包括渲染管道、着色器、缓存、纹理、矩阵、光照模型、阴影、帧缓存、拾取、文字、用户界面、体渲染、透明和通用计算等内容。读者掌握这些之后,就可以自由地设计和编写中等规模的三维图形程序,并且能够渲染百万数量级顶点的模型。本书相关内容将在Github上持续更新,读者可参阅更多资料。 本书适用于熟悉C、C++、C#或Java等任何面向对象编程语言的读者,本书会对这些相关的基础内容进行必要的介绍。读者只需认真实践,完全可以掌握本书内容。
目录
第1章Hello OpenGL1
1.1从这里开始认识1
1.2OpenGL是什么1
1.3如何使用OpenGL2
1.4Hello OpenGL6
1.5辅助工具22
1.6不含位置属性的顶点29
1.7总结31
1.8问题31
第2章纹理33
2.1二维纹理33
2.2其他类型的纹理40
2.3多个纹理43
2.4多个渲染方法46
2.5总结48
2.6问题48
第3章空间和矩阵50
3.1如何理解矩阵50
3.2空间和矩阵的关系52
3.3Pipeline中的空间60
3.4实例化渲染61
3.5总结63
3.6问题63
第4章几何着色器64
4.1介绍64
4.2示例:渲染法线66
4.3总结69
4.4问题69
第5章光照70
5.1Blinn?Phong光照模型70
5.2光源70
5.3反射光70
5.4Blinn?Phong算法75
5.5同时使用多个光源77
5.6阴影80
5.7凹凸映射80
5.8噪声84
5.9总结88
5.10问题88
第6章帧缓存89
6.1名词术语90
6.2附着点90
6.3将Texture附着到Framebuffer91
6.4附着Renderbuffer95
6.5示例:Render to Texture95
6.6总结99
6.7问题100
第7章阴影101
7.2Shadow Volume110
7.3模板缓存的初始化122
7.4多光源下的阴影123
7.5总结124
7.6问题124
第8章拾取125
8.1基础125
8.2在DrawArraysCmd命令下的拾取140
8.3在DrawElementsCmd命令下的拾取146
8.4拖拽顶点157
8.5总结162
8.6问题163
第9章文字164
9.1固定尺寸且始终面向Camera164
9.2字形信息169
9.3三维世界的文字174
9.4总结177
9.5问题177
第10章简单的用户界面178
10.1指定区域的贴图178
10.2控件的布局机制179
10.3控件的事件机制188
10.4CtrlImage193
10.5CtrlLabel196
10.6CtrlButton200
10.7总结202
10.8问题202
第11章轨迹球203
11.1轨迹球203
11.2使用204
11.3设计205
11.4四元数209
11.5总结210
11.6问题210
第12章体渲染211
12.1什么是体渲染211
12.2静态切片212
12.3动态切片215
12.4Raycasting217
12.5总结223
12.6问题224
第13章半透明渲染225
13.1跳跃着色法225
13.2与顺序无关的半透明渲染226
13.3Front to Back Peeling235
13.4总结240
13.5问题240
第14章Transform Feedback Object241
14.1Transform Feedback如何工作241
14.2使用Transform Feedback Object244
14.3轮流更新245
14.4粒子系统251
14.5总结254
14.6问题254
第15章Compute Shader255
15.1Compute Shader简介255
15.2图像处理257
15.3粒子系统261
15.4总结262
15.5问题263
附录264
附录AGithub入门264
附录BC#和面向对象入门277
附录C解析简单的wavefront(*.obj)文件格式298
附录D自制体数据的2种方法302