博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
法线贴图的一些总结
阅读量:7056 次
发布时间:2019-06-28

本文共 1067 字,大约阅读时间需要 3 分钟。

总的来说法线贴图就是一张RGB图记录了XYZ的法线信息,无它,但关键是一个切线空间,推荐以下几篇文章。

http://www.cnblogs.com/shuifenzi/articles/2551364.html

http://www.cnblogs.com/jim-game-dev/archive/2016/04/19/5410529.html

摘出文章中一些最关键的知识点:

1.模型顶点中的纹理坐标,就定义于切线空间。普通2维纹理坐标包含U、V两项,其中U坐标增长的方向, 即切线空间中的tangent轴,V坐标增加的方向,为切线空间中的bitangent轴。所以可以根据这一点计算从切线空间到物体空间的变换,这是求切线空间最核心一点。

2.通常我们所见的法线纹理还是基于原法线信息构建的坐标系来构建出来的。那种偏蓝色的法线纹理其实就是存储了在每个顶点各自的Tangent Space中,法线的扰动方向。

3.之所以用切线空间来表示法线,是因为切线空间是相对于每一个顶点的,也就是说这个法线信息是基于每一个顶点的相对值,可以理解成是一种扰动。所以即便把该纹理应用到一个完全不同的网格上,也可以得到一个合理的结果。可进行UV动画。比如,我们可以移动一个纹理的UV坐标来实现一个凹凸移动的效果,这种UV动画在水或者火山熔岩这种类型的物体会会用到。

4.在计算中一般将光源位置方向等变换到切线空间中去计算,而不是反过来。主要是考虑效率的问题,切线空间中计算大部分在VS中,而世界空间中计算大部分在PS中。使用NormalMap的先决条件--逐像素著色。

5.NormalMap看来可以增加细节,但是它的缺点也很明显。最大缺点是不能平视。因为NormalMap只是改变的表面上的光照结果,并没有改变表面上的形状。而且NormalMap因为不能实现自身内部的遮挡,因此不能表现平面上凹凸起伏比较大的场合。NormalMap只能用在大家对遮挡关系不敏感的场合,比如场景等,而用NormalMap的人物不太经得起特写,放大了,角度刁钻了都容易穿帮。

6.BumpMap。这种贴图是一种灰度图,用表面上灰度的变化来描述目标表面的凹凸。早期发明NormalMap的时候还没有MAX这种这么方便生成NormalMap的方法,NormalMap都是从BumpMap计算得到的,因此其实通过很简单的算法就可以从BumpMap算出NormalMap的。

转载于:https://www.cnblogs.com/liding/p/6880683.html

你可能感兴趣的文章
自己的微博
查看>>
php取整函数ceil,floor,round,intval函数的区别
查看>>
NH5-Nhibernate映射中的三种关系
查看>>
SpringBoot项目启动时自动执行指定方法
查看>>
设计模式(行为型模式)——命令模式(Command)
查看>>
vi常用命令
查看>>
Office 2013 兼容性测试(四)——部署遥测处理器
查看>>
Struts1和Struts2的区别和对比
查看>>
Forms开发中触发器的执行顺序
查看>>
SEO博客三个月没更新排行骤步康复
查看>>
JQuery 插件开发的入门介绍
查看>>
马哥2016全新Linux+Python高端运维班第五周作业
查看>>
联想扬天A4680R台式电脑增加内存不识别的解决方案
查看>>
(5)Powershell别名(Alias)
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
linux配置NTP Server
查看>>
PBDOM操作XML文档轻松入门
查看>>
双机热备 纯软 镜像 实战 安装前准备
查看>>
我的友情链接
查看>>