这一块讲的内容多且杂还难,作为一个新手只能按照目前的理解写个笔记,很可能我的想法是错的,望指正。
参考:Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
GAMES101-现代计算机图形学学习笔记(作业03)_CCCCCCros____的博客-CSDN博客_games101作业3
直线与三角形的重心坐标(Barycentric Coordinates)的推导与应用 - 知乎
【图形学】GAMES101 Assignment3 作业框架分析_Mine268的博客-CSDN博客
【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)_BonChoix的专栏-CSDN博客
计算机图形学五:局部光照模型(Blinn-Phong 反射模型)与着色方法(Phong Shading)_吃人的博客-CSDN博客
计算机图形学七:纹理映射(Texture Mapping)及Mipmap技术_吃人的博客-CSDN博客
1.图形管线 Real-time Rendering Pipeline
2.Blinn-Phong光照模型
包含三种,分别是环境光照(Ambient)、漫反射(Diffuse)、高光(Specular)。
这个地方抓住几个关键词:反射系数、半程向量、法线、观察视角、距离、入射角。
个人理解:光照模型是通过给定光线影响三维空间中模型的每个点的着色,然后将三维模型点的着色向量最终如深度值一样存储在每个像素点当中。
3.着色频率
包含Flat Shading、Gouraud Shading、Phong Shading。三者的渲染效果一般是依次提高,但复杂度也随之提升。
4.重心插值
因为三角形三个顶点的坐标和内部某点坐标的关系:
因此通过给点了三角形的三个顶点数据,我们可以用他的位置坐标计算出alpha, beta, gamma。然后通过这三个参数对三角形内的其他诸如颜色、法线等其他信息进行插值。当然除了重心插值还有其他的插值方式。
5.纹理映射
个人直观理解为将一个贴图贴在模型表面。在这会遇到两种情况。
1)贴图的像素无法覆盖屏幕像素点。称之为贴图太小了,导致多个屏幕像素点才对应一个贴图像素点。这时候就可以采用插值来解决问题。
2)与1)相对应的情况就是贴图太大了,导致一个屏幕像素点要容纳多个贴图像素信息。这个时候可以采用mipmap技术,这个东西我也不大清楚,老师讲的也比较少。不过大概的内容就是将贴图不断分块求平均。值得注意的是在不同角度下,不同的屏幕像素点对应的贴图像素点的个数是不一样的。
6.纹理应用
1)Bump Maps凹凸贴图
原理大概是在给每个点记录法线的基础上增加了一个扰动,最终导致法线发生变化进而影响该点的着色信息。这一块需要用到切线空间的知识。
2)Displacement mapping 位移贴图
这一块我也不太清楚。个人理解应该是可以相当于真实改变模型表面的点的位置了。
3)噪声
可以使用噪声定义空间任何一个点的纹理,效果更逼真。
总结:
感觉学到这里,内容越来越深了。有一个很大的难点就是因为老师上课讲的都是比较理论抽象的知识点,没有结合编程实验例子,对初学者不容易弄清楚当前的理论知识点是作用在渲染管线的哪个阶段,并且是怎么起到作用的。