【TA-霜狼_may-《百人计划》】2.2 模型与材质空间

渲染管线与模型基础

模型的实现原理

点连接成线,线围成面,进而组成多边形,至此一个模型空间下的模型就形成了。

UV

UV如同一个矿泉水瓶,将它划开。平铺在一个二维的坐标系中。
瓶子的每个位置(模型的每个顶点),在三维空间和二维空间中都能一一对应。在二维坐标系中的顶点对应的位置就是顶点的纹理坐标。

因此,每个顶点都能利用纹理坐标获取到贴图所存储的信息。

模型UV

在建模软件中 进行UV展开,UV会放在一个横向为U纵向为V,范围(0-1)的二维坐标系中
展开后的UV在SP中绘制贴图(漫反射贴图、法线贴图、高度贴图、金属度贴图、AO贴图)

一个模型包含的信息(以OBJ文件为例)

V 顶点坐标数据(模型空间中单个顶点的XYZ坐标)
VT 贴图坐标 (水平方向为U,垂直方向为V,范围为0-1之间)
VN 顶点法线 (当前顶点Z轴的朝向,这个Z轴就是顶点自身在模型空间中的朝向。并且顶点法线最终会决定面的朝向)
顶点色 (单个顶点的RGBA通道颜色信息)

OBJ与FBX格式的对比

fbx格式支持顶点Color,多象限UV以及LOD(细节层次模型)

材质基础

材质

有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点;
而有些物体则会散射很多光,产生一个有着更大半径的高光点

漫反射

Lambertian法简易地认为光线均匀的反射出去;

镜面反射

镜面反射就是将入射光线根据表面法线进行反射,并且只有在反射方向有能量,其他方向能量均为0;(补充:Games101中有提到,镜面反射中,反射角不一定完全等于入射角,只要在镜面反射角的一定范围都能看到该高光区域,所以这里的最后一句其他方向能量均为0是一个笼统的说法)

折射

对于玻璃这种电介质,除了反射之外还有根据物体的折射率折射一部分光线进入物体之中,反射和折射能量的多少时根据菲尼尔定律决定。

粗糙镜面反射(补充上面的镜面反射)

磨砂质感的金属表面

粗糙镜面反射

各种毛玻璃

多层材质

除了物体本身的材质,外层还会附着其他材质如:透明油漆等
多层材质

次表面散射

次表面散射的物体一般上都是半透明的物体,例如:玉石、蜡烛等;次表面散射

多层皮肤模型

将皮肤看成三层,分别为:油脂层,表皮层,真皮层。
油脂层提供直接反射,在皮肤表面产生高光效果;
另外一部分光通过折射进入自表皮层,光进入这些层后部分被吸收(从而产生颜色)和散射,再从皮肤中入射点附近的出射点射出。这个过程就产生了次表面散射的效果。
多层皮肤模型

改变材质表面

原因:

  1. 现实世界中不存在完美光滑的平面;
  2. 一个模型顶点携带的法线也有限。
    因此使用法线贴图能做到补充
    并且漫反射,高光,折射的计算都有法线参与,因此对法线做出调整,就能影响其光照计算的结果。

模型数据解析

  1. 顶点动画:在顶点着色器中,修改模型的顶点位置。进而达到模型运动的效果;
  2. 纹理动画:在片段着色器中,修改魔性的UV信息,使得采样贴图时,发生位移而产生运动效果;
  3. 顶点色:在渲染时,影响输出结果。控制颜色范围

纹理动画

原理 1

通过修改法线贴图,改变反射和折射的朝向。法线由1变2,反射光线也由1变2,如下图所示:
法线贴图的用法1
单纯修改法线,保持其他数据不变,就能改变物体的纹理外貌。

原理 2

改变UV采样点从而产生动画效果
纹理动画 2

顶点动画

在顶点着色器中对模型的顶点进行操作进而产生动画的效果。
顶点着色器应用于每一个顶点,每个顶点的数据是不同的,因此同一个计算公式在不同的顶点上,计算得出的结果也是不同的
在一些三维建模软件中,动画的K帧也可以理解为一种顶点动画;

顶点色

在顶点着色器环节对顶点色进行控制,应用:阴影,线条粗细等

重心坐标颜色插值

利用顶点坐标进行插值(不是很懂,之后再看看Games101有没有讲)
重心坐标插值

顶点法线与面法线

好理解,顶点法线牛逼。
顶点法线和面法线

扩展

在卡通渲染中,通常将模型背面沿着法线方向外扩,然后输出一个颜色,从而达描边的效果,在没有使用平滑着色的物体中,面的大小不变,再着色则会发生外轮廓的断裂,这正是因为法线不连续造成的。
开通渲染轮廓断裂

总结

顶点色的其他用途还有哪些?

  1. 可用于预先指定照明、阻光和其他视觉效果。
  2. 作为遮罩对模型进行分开渲染,包括但不限于分别进行光照计算,分别处理动画等;
  3. 利用顶点色着色;
    模型光滑组对法线的影响?
    使用平滑后,顶点根据平滑后模型重新插值法线,处在同一个平滑组下的面会出现平滑效果;如下图下半部分所示(来源):平滑组的应用
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zczplus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值