GAMES101第九讲Shading 3笔记

一、重心坐标(Barycentric Coordinates)

(1)为什么我们想要做插值?
①已知三角形三个顶点的属性,想要获得三角形内部平滑变化的属性(如纹理坐标,颜色,法线等)。
②使用重心坐标可以实现插值。
(2)重心坐标是对一个三角形(α,β,γ)而言的。
重心坐标1
①不同的三角形对应不同的重心坐标系。
②α,β,γ均为非负且和为1时,该点在三角形内。
③三角形内任意一点均可以用重心坐标表示。如点A的重心坐标为(1,0,0),点B的重心坐标为(0,1,0)。
④进行投影之后,该三角形可能会变成形变,那么重心坐标就可能会发生变化。
(3)从几何的角度看
重心坐标2
①以α为例,α与A相关,α的值就是A顶点对面的三角形的面积AA与三角形ABC的面积之比。
(4)重心坐标的计算公式如下:
重心坐标3
(5)重心坐标的使用
重心坐标4
①已知三个顶点的属性和某个点的重心坐标,则可以计算得到该点的属性。
②三维空间里的属性应该在三维空间里进行差值获取。

二、纹理映射

(1)以漫反射为例子来映射纹理
①对于每个像素点(通常是像素中心)的坐标,都计算出对应的纹理坐标。
②应用到纹理坐标计算出对应的颜色。
③设置颜色。
纹理映射

三、纹理放大(Texture Magnification)

(1)纹理放大(案例1)
①如果纹理较小,那么图像可能会出现锯齿。
②这是因为一个小区域内的像素可能会映射到同一个纹素。
③使用双线性插值来获得更准确的属性。
小纹理的结果
(2)双线性插值(Bilinear Interpolation)
①找到目标位置周围四个像素点。
②先进行s方向上的插值,获得u1和u2的属性。
双线性插值1
②然后对u1和u2进行t方向上的插值,即可得到目标位置的属性。
双线性插值2
(3)纹理放大(案例2)
①如果纹理较大,那么图像可能会出现摩尔纹和锯齿。
②不同位置的像素覆盖的纹素多少不同,远处的像素可能会覆盖一大片纹素。
纹理较大的结果
(4)纹理放大(案例2)的解决方法
①可以采用超采样,但这种方案的开销大。
②使用平均范围查询(Range Query)的方法。

四、Mipmap

(1)Mipmap:将图片按比例缩小
mipmap1
①允许进行范围查询。
②查询速度快,但只能做近似且为正方形的查询。
③只额外多了1/3的存储空间。
(2)求像素点对应的mipmap层数
mipmap2
①将像素点映射到纹理坐标上,可以发现原来的方形像素区域会被映射成不规则的纹理。
mipmap3
②求出映射到纹理坐标系里,当前像素点与周围两个(也可以是更多个)像素点的最大距离L。
③使用一个边长为L的方形区域来近似这块不规则区域,从而获得纹理。
mipmap4
④根据边长L可以算出对应的是mipmap里的第几层,从而获取纹理。
(3)mipmap的效果
mipmap5
①有初步的效果,但可以看到有部分地方不连续。这是因为只计算了第0、1、2等层的属性,而没有计算中间如1.5层的属性。
②可以使用三线性插值来解决,在两层mipmap之间进行第三次插值,来获取更加连续的属性。
三线性插值
③使用三线性插值的结果如下。
三线性插值的结果
(4)mipmap存在的问题
mipmap的问题
①远处的图像会变模糊。
②使用各向异性过滤可以进行改善。

五、各向异性过滤(Anisotropic Filtering)

(1)ripmap
ripmap
①在两个方向上进行缩小。
②允许进行矩形区域的范围查询。
③对于斜的区域范围查询没有太大改善。
ripmap的缺点
④存储开销多了3倍。
(2)EWA filtering
EWA filtering
①进行圆形区域的范围查询。
②需要进行多次查询。

参考文献

课程视频链接: GAMES101 Lecture09 Shading 3

pipeline and shading计算图形学中的两个重要概念。在Games101课程中,我们学习了这两个概念以及它们在游戏开发中的应用。 首先,管线(pipeline)是指图形渲染过程中的一系列阶段。这些阶段依次执行,以将3D模型转换为最终的2D图像。管线的主要阶段包括顶点处理、光栅化和片元处理。在顶点处理阶段,模型的顶点坐标被转换为屏幕空间坐标,并进行光照计算等操作。在光栅化阶段,模型的三角形被转化为像素,在屏幕上显示。在片元处理阶段,对每个像素执行颜色计算,以确定最终的像素颜色。 其次,着色(shading)是指确定模型表面每个像素的颜色和光照效果。常见的着色模型包括平面着色、高洛德着色和菲格斯特随机着色等。平面着色是最简单的一种,忽略了光照效果,给每个像素分配一个固定的颜色。高洛德着色则考虑了光照的方向和强度,使得模型表面看起来更加真实。菲格斯特随机着色则引入了随机过程,给模型表面增加纹理和细节。 在游戏开发中,管线和着色技术被广泛应用。通过管线的处理,可以实现更高的渲染效率和图像质量。而着色技术可以使游戏中的模型更加真实,增加玩家的沉浸感。此外,我们还可以通过改变管线和着色的参数来实现特殊的效果,如阴影、光线投射和折射等。 总的来说,pipeline and shading计算图形学中的重要概念。在Games101课程中,我们深入学习了这两个概念以及它们在游戏开发中的应用。通过理解和掌握管线和着色技术,我们可以实现更加高效和逼真的游戏图形效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值