Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

1 Binn-Phone Reflectance model

1 高光

高光:比较光滑的物体,观察的方向和反射的方向比较接近的时候。

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
只需要看n和h是否接近,就可以知道v和R是否接近。这里做了等价变换。为啥用半程向量。
如果用v和r是否接近,是phone模型,算反射方向不好算。
为啥加p这个指数呢?原因是下图cos^p的大小
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
指数p就是来控制高光面积的大小。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

2 环境光

环境光是一个常数,保证没有地方是黑色的。
下面的是比较粗略的,精确计算的话要用全局光照。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

3 着色模型

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

4 questions

如果一个点是凹下去的话,环境光理应更暗一点吧
为什么不考虑物体到观察点的距离造成的能量损失

2 着色频率

三个球用的模型一模一样,但是为啥着色后不一样了呢?这就是着色频率导致的。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
第一个图,着色应用到每个三角形。
中间的图,着色应用到每个顶点,每一个顶点做一次法线,三角形内部用插值。
第三个图,着色应用到每个像素上,

1 flat shading

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

2 Gouraud shading

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
但是三角形大了,高光就看不见了。

3 Phone shading

这里是指着色频率。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

4 比较

几何模型足够复杂的话,flat shading不一定差,但是超过了像素的话,其效率也没有phone shading快。
着色频率取决于面,顶点的频率。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

5 顶点法线

相邻的面的法线的加权平均。
顶点相关联的面的法线做加权平均。

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
下面的计算涉及到了重心坐标,
下面这里走神了。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
问题:怎么得到点所相连的三角形呢?

3 实时渲染管线

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
如何定义一个空间中的模型。
先定义所有的点,再定义三个点形成一个三角形,所以只需要对顶点进行处理。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
下面的shading,顶点如何着色,像素如何着色。所以可能在顶点处理阶段和片元处理阶段。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

2 Shader Programs

每一个顶点或者每一个像素如何运作
如果写的是顶点,就是vertex shader
如果写的是像素,就是pixel shader= fragment shader。
定义任意的顶点和任意的像素如何操作。

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
做完这个作业,后面再学OpenGL等API,就会觉的很简单。

3 推荐一个网站,直接写shader就可以显示结果。

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
有事没事在这个网址写shader ,多练习。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
GPU是并行度很高,很适合做图形学的渲染,利于做并行计算。

4 Texture Mapping

Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
有一种方法可以定义任何一个点的属性
定义任何一个点的不同属性。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
任何一个三维物体的表面都是二维的。
物体表面任何一个点和纹理表面任何一个点点的对应。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
怎么把纹理映射到不同的三角形上,是几何上的参数化,我们不用管。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
UV纹理的范围在(0,1)之内。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
纹理设计的好,就会无缝连接。
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping
知道三个顶点的uv坐标,但是如何知道三角形内部的uv坐标。
三角形顶点有各个属性。但是
Game101课程笔记_lecture08_Shading2-shading Pipeline and Texture Mapping

question

纹理和着色的区别是什么?
着色和材质有什么区别?
纹理就是逐点的属性

5 视频

https://www.bilibili.com/video/av90798049?p=8