当前位置:网站首页>【TA-霜狼_may-《百人计划》】2.2 模型与材质空间
【TA-霜狼_may-《百人计划》】2.2 模型与材质空间
2022-07-01 03:24:00 【zczplus】
【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是一个笼统的说法)
折射
对于玻璃这种电介质,除了反射之外还有根据物体的折射率折射一部分光线进入物体之中,反射和折射能量的多少时根据菲尼尔定律决定。
粗糙镜面反射(补充上面的镜面反射)
磨砂质感的金属表面
粗糙镜面反射
各种毛玻璃
多层材质
除了物体本身的材质,外层还会附着其他材质如:透明油漆等
次表面散射
次表面散射的物体一般上都是半透明的物体,例如:玉石、蜡烛等;
多层皮肤模型
将皮肤看成三层,分别为:油脂层,表皮层,真皮层。
油脂层提供直接反射,在皮肤表面产生高光效果;
另外一部分光通过折射进入自表皮层,光进入这些层后部分被吸收(从而产生颜色)和散射,再从皮肤中入射点附近的出射点射出。这个过程就产生了次表面散射的效果。
改变材质表面
原因:
- 现实世界中不存在完美光滑的平面;
- 一个模型顶点携带的法线也有限。
因此使用法线贴图能做到补充
并且漫反射,高光,折射的计算都有法线参与,因此对法线做出调整,就能影响其光照计算的结果。
模型数据解析
- 顶点动画:在顶点着色器中,修改模型的顶点位置。进而达到模型运动的效果;
- 纹理动画:在片段着色器中,修改魔性的UV信息,使得采样贴图时,发生位移而产生运动效果;
- 顶点色:在渲染时,影响输出结果。控制颜色范围
纹理动画
原理 1
通过修改法线贴图,改变反射和折射的朝向。法线由1变2,反射光线也由1变2,如下图所示:
单纯修改法线,保持其他数据不变,就能改变物体的纹理外貌。
原理 2
改变UV采样点从而产生动画效果
顶点动画
在顶点着色器中对模型的顶点进行操作进而产生动画的效果。顶点着色器应用于每一个顶点,每个顶点的数据是不同的,因此同一个计算公式在不同的顶点上,计算得出的结果也是不同的
在一些三维建模软件中,动画的K帧也可以理解为一种顶点动画;
顶点色
在顶点着色器环节对顶点色进行控制,应用:阴影,线条粗细等
重心坐标颜色插值
利用顶点坐标进行插值(不是很懂,之后再看看Games101有没有讲)
顶点法线与面法线
好理解,顶点法线牛逼。
扩展
在卡通渲染中,通常将模型背面沿着法线方向外扩,然后输出一个颜色,从而达描边的效果,在没有使用平滑着色的物体中,面的大小不变,再着色则会发生外轮廓的断裂,这正是因为法线不连续造成的。
总结
顶点色的其他用途还有哪些?
- 可用于预先指定照明、阻光和其他视觉效果。
- 作为遮罩对模型进行分开渲染,包括但不限于分别进行光照计算,分别处理动画等;
- 利用顶点色着色;
模型光滑组对法线的影响?
使用平滑后,顶点根据平滑后模型重新插值法线,处在同一个平滑组下的面会出现平滑效果;如下图下半部分所示(来源):
边栏推荐
- 【TA-霜狼_may-《百人计划》】1.3纹理的秘密
- 242. 有效的字母异位词
- Valentine's Day is nothing.
- Leetcode:829. 连续整数求和
- jeecgboot输出日志,@Slf4j的使用方法
- Feature Pyramid Networks for Object Detection论文理解
- Pytorch training deep learning network settings CUDA specified GPU visible
- The difference between MFC for static libraries and MFC for shared libraries
- Take you through a circuit board, from design to production (dry goods)
- Listener listener
猜你喜欢

pytorch训练深度学习网络设置cuda指定的GPU可见

衡量两个向量相似度的方法:余弦相似度、pytorch 求余弦相似度:torch.nn.CosineSimilarity(dim=1, eps=1e-08)

idea插件备份表

FCN全卷積網絡理解及代碼實現(來自pytorch官方實現)
![[TA frost wolf \u may- hundred people plan] 1.3 secret of texture](/img/dc/ce2819258632cdcf2e130a4c05600e.png)
[TA frost wolf \u may- hundred people plan] 1.3 secret of texture

Use of comment keyword in database

Feature pyramid networks for object detection
![[深度学习]激活函数(Sigmoid等)、前向传播、反向传播和梯度优化;optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理](/img/9f/187ca83be1b88630a6c6fbfb0620ed.png)
[深度学习]激活函数(Sigmoid等)、前向传播、反向传播和梯度优化;optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理

快速筛选打卡时间日期等数据:EXCEL筛选查找某一时间点是否在某一时间段内

Edge drawing: a combined real-time edge and segment detector
随机推荐
AfxMessageBox和MessageBox的用法
Online public network security case nanny level tutorial [reaching out for Party welfare]
Pathmeasure implements loading animation
bootsrap中的栅格系统
Filter
Server rendering technology JSP
【TA-霜狼_may-《百人计划》】2.4 传统经验光照模型
Appium自动化测试基础 — APPium基本原理
214. minimum palindrome string
208. implement trie (prefix tree)
Database DDL (data definition language) knowledge points
Feature Pyramid Networks for Object Detection论文理解
242. valid Letter heteronyms
实现pow(x,n)函数
ECMAScript 6.0
Cookie&Session
Asgnet paper and code interpretation 2
后台系统右边内容如何出现滚动条和解决双滚动条的问题
Valid brackets (force deduction 20)
【快捷键】