学习前提
- 学会了我方《OpenGL入门》、《OpenGL进阶》和《OpenGLShader》课程,或者具备同等水平的OpenGL编程人员
讲课方式比较
《OpenGL进阶》:我们来实现漫反射计算,通过n和l的夹角来计算漫反射的强度,为什么能通过n和l来确定这个强度呢?是因为...
《案例课程》:我们这里实现漫反射计算,然后再来实现镜面发射,最终颜色就等于漫反射+镜面反射
案例课程属于高级课程,OpenGL相关的知识我们认为是共识,如果这些东西细讲,则案例课程会非常冗长。如果不具备相当水平的同学请不要购买
注意事项
- glm库请使用课程随堂源码中的
内容介绍
本案例是我们最基本的一个技术,法线贴图。我们之所以没有在OpenGL课程里面讲,是因为法线贴图牵涉到切平面向量,而计算那个东西又是一大堆知识。在案例课中,我们使用的模型 是我们的模型转换工具处理过的,会自动计算出这些tangent数据,所以我们有条件在案例课程中来收拾这个知识点。因为你在Unity中或者其他商业引擎中,实际上也可以拿到tangent数据。 所以学完法线贴图后,就可以应用到unity的编程中去了。
如果需要看效果的话,建议下载东汉书院Windows或者Mac客户端,就可以看到实际运行效果。
实现思路
- 计算世界坐标系下的TBN矩阵
- 从法线图上获取法线
- 解码法线数据
- 通过TBN将法线转到世界坐标系
- 进行光照计算