欢迎光临散文网 会员登陆 & 注册

shader渲染:法线贴图的使用

2022-08-26 13:42 作者:游戏开发RAIN  | 我要投稿

有的时候,我们用unity做项目的时候,像那些模型啥的,一般正常情况我们都是用默认的纹理映射来实现渲染。虽然基本的效果是有的,但是细节感还是不强,就比如一个砖块,或者一堵墙,我们直接就是贴图就完事了,看起来很假,那么这个时候我们怎么让它看起来更加真实呢?

这个时候,法线贴图的使用将视非常不错的选择。我这里也做了一个法线贴图的应用,一起看下效果吧;

从图中可以很清楚的看清他们的对比,左边用了法线贴图,你会发现它的细节感很强,凹凸分明,很真实的效果。而右边从头到尾开起来都是像平板一样的。

但是效果还行。如果这里我换成不规则石头模型,你就更加能看出他们的对比了。为什么我们要给模型加法线贴图,就是为了让模型渲染的更加的真实好看。

一般情况下如果要模型真实好看,那么尽量的把模型做成面数比较多的高模,但是这样一来,计算量就比较大了。影响性能。这个时候我们可以使用法线贴图来帮助我们达到效果。同时不影响性能。那么这个怎么做呢?接下来说原理。

既然要让低模有高模的渲染效果,这就首先需要记录下来高模的法线信息,并且把它保存在一张纹理里面,然后我们用低模时,就用高模的法线信息,这样我们就让低模具备了高模的渲染效果了。

这是为什么呢?主要就是因为高模面数多,然后每个面的法线方向都不一样,所以每个面的光照都不会一样,就会有凹凸的感觉了。看起来就更加真实。

这是因为我们的眼睛会受到模型光照的影响,光暗的地方看起来就像凹槽,而亮点的地方就像凸起一样。看个图就明白了。

从这个图中,是不是就能感受到明显的凹凸感?其实这是一张图,我只不过把它翻转了一下而已。好了,接下来就是代码了。

关键代码就是这些了,其他的都是常规定义。


shader渲染:法线贴图的使用的评论 (共 条)

分享到微博请遵守国家法律