图形渲染学习路线

383 阅读3分钟

本文日后还会随着经验加深不断更新完善,也欢迎大家补充交流。

要想深入理解渲染的过程,比如何把材质加到模型上,需要学习什么知识?如果针对 openGL 种跨平台的图形库,我们应该怎么学习呢?

一、图形学基础

学习计算机图形学中的基本概念和算法,例如3D坐标系、向量、矩阵变换、光照模型、渲染流程等。

  1. Games 系列课程,不再过多赘述。可以参看之前的总结

  2. 《计算机图形学》(第三版),作者:Foley、Van Dam、Feiner、Hughes。这是经典的计算机图形学教材,内容全面,深入浅出,讲解了计算机图形学的基本概念、原理和算法,是学习图形学的入门书籍。

  3. 《Real-Time Rendering》(第四版),作者:Tomas Akenine-Möller、Eric Haines、Naty Hoffman。这是一本非常优秀的实时渲染技术的书籍,讲解了实时渲染的基本概念、技术和实现方法,涵盖了光照、纹理、阴影、透明度等多个方面。

  4. 《Computer Graphics: Principles and Practice》(第三版),作者:John F. Hughes、Andries van Dam、Morgan McGuire、David F. Sklar、James D. Foley、Steven K. Feiner、Kurt Akeley。这是另一本非常经典的计算机图形学教材,内容涵盖了基本概念、数学基础、光线追踪、可视化、几何建模等多个方面。

  5. 在线学习资源:有一些在线的学习资源可以帮助初学者快速入门图形学,例如Khan Academy的计算机图形学课程Udacity的交互式3D图形学课程等等。

二、OpenGL渲染

学习OpenGL的基础知识,包括渲染流程、顶点缓存对象(VBO)、着色器(Shader)、纹理(Texture)等。

  1. OpenGL Programming Guide: 这是一本经典的OpenGL编程指南,适合初学者和进阶者阅读,全面介绍了OpenGL渲染的各个方面,包括着色器编程、纹理、光照、帧缓冲等内容。
  2. OpenGL Shading Language (GLSL) Cookbook: 这是一本实战性很强的OpenGL着色器编程指南,全面介绍了GLSL语言的基础知识和高级技巧,并提供了大量的代码示例和实例讲解。
  3. Learning Modern 3D Graphics Programming: 这是一份基于OpenGL 3.3和GLSL 3.3的教程,主要介绍现代的3D图形编程技术,包括着色器编程、光照、阴影、反射等。
  4. OpenGL Tutorials: 这是一个非常好的OpenGL教程网站,提供了丰富的OpenGL编程示例和代码,包括着色器编程、纹理映射、光照、阴影、反射等多个方面。

三、着色器编程

学习如何编写OpenGL着色器程序,包括顶点着色器、片元着色器等,以实现各种渲染效果。

  1. The Book of Shaders: 这是一本在线的免费着色器编程教程,通过交互式的方式,介绍了着色器的基本原理和编程技巧,并提供了大量的代码示例和实例讲解。
  2. ShaderToy: 这是一个在线的着色器编程平台,提供了丰富的着色器示例和实时渲染功能,可以方便地学习和测试各种着色器效果。

四、将材质应用到模型的一般步骤

  1. 遍历模型的面,获取面的顶点、法向量、纹理坐标等数据。
  2. 根据面的朝向,确定使用正面材质还是反面材质。
  3. 获取对应材质的纹理图片,并将其加载到OpenGL的纹理对象中。
  4. 编写着色器程序,使用材质的颜色、纹理等信息对每个像素进行着色。
  5. 将处理后的顶点数据和着色器程序传递给OpenGL进行渲染。