【GAMES101】08 shading2


上节课:
(binn-phong反射模型)高光反射 + 漫反射 + 环境光

漫反射项:
在这里插入图片描述

高光项 specular term

高光::物体比较光滑,,则反射方向接近镜面反射方向。
高光项产生:观察方向v和镜面反射R方向足够接近时。
在这里插入图片描述

在这里插入图片描述
那么判断n和h是否接近(n h点乘),就可以判断是否能看到高光项。
ks镜面反射系数,通常认为是白的(镜面反射)。

这里是经验模型,没考虑有多少能量被吸收max(l`n).
这里用半程向量算,而不是用反射方向算,因为h方向更好算。

为什么上面图中公式有指数p:
在这里插入图片描述
如果没有p,从0到90度都有高光项,只是强度大小的区别,显然不现实。
blinn-phong模型中,通常p=100~200。

在这里插入图片描述

环境光照项 ambient term

在这里插入图片描述
假设任意一个shading point,接收到的环境光强度相同,上图公式 I a I_{a} Ia k a k_{a} ka相当于shading point的颜色吸收系数。也就是环境光是个常数。

这里是简化了,但实际涉及到全局光照。
在这里插入图片描述

如何对所有的点着色?–着色频率 shading frequencies

在这里插入图片描述
着色频率:即把着色应用到哪些点(面)上。

上图:
左Flat shading:求每个平面的法线(三角形的两个边做叉积),对每个平面做一次着色。
中Gouraud shading:计算每个三角形顶点的法线方向。每个顶点做一次着色,三个顶点内部的颜色做插值。
右Phong shading:对每个像素做着色。对每个四边形/三角形顶点求法线,对法线方向在三角形内部插值,对任意一个像素自己的法线方向做着色。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里Phong shading 指的是着色频率,而不是前面提到的着色模型。

在这里插入图片描述
每到下面一行,有更多的三角形(和模型本身的几何结构有关)。当模型足够复杂时,逐面flat shading效果不一定差。

如何计算逐顶点法线

  1. 法一:认为顶点法线是相邻面的法线求平均。
    在这里插入图片描述
  2. 法二:认为更大的三角形面贡献的更多----->加权,求平均。

如何定义逐像素法线

求出顶点法线后,用重心坐标插值求各像素法线。
在这里插入图片描述

图形(实时渲染)管线 graphics (real-time rendering)pipeline

从三维场景到一张二维图的整个过程:管线。(在gpu里进行的操作)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(z-buffer深度缓存)

在这里插入图片描述
(如果顶点着色,那么在顶点就可以着色;如果是逐像素着色,就要在着色阶段着色)
gpu:允许自己编程解决顶点和像素的着色。(shader)

(纹理映射)
在这里插入图片描述

shader programs

shader 每个顶点或者像素都会应用,不用for循环(定义顶点或像素如何操作)
在这里插入图片描述

纹理映射 texture mapping

在这里插入图片描述
即定义不同点的基本属性。

在这里插入图片描述
物体表面和一张图有一一对应的关系。

在这里插入图片描述
将物体上的某个三角形对应到纹理上的某个三角形。
实现方法:(1.美工;2.自动映射:参数化(几何一个重大研究方向))

这里认为已知不同三角形顶点对应的纹理坐标。

纹理坐标

在这里插入图片描述
认为u v范围[0, 1],方便处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值