首页 > 其他 > 详细

mobile/diffuse跟点光源一起使用时光线怪异的原因

时间:2015-10-29 13:06:23      阅读:1107      评论:0      收藏:0      [点我收藏+]

新学Unity3D,很多都不明白。如果下面的理解有问题,肯请留言指出。

刚遇到这么一个问题:场景里拖了一个长方体,上了一个Mobile/Diffuse的材质,在长方体顶部加了一个点光源,移动点光源时,发现长方体的光照很怪异,移动到两边时近亮远暗,但是移动到长方体上方中间位置时,整个长方体的上表面一个明暗度。

看到Mobile/Diffuse源码的注释明白了原因:

 fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH

这个shader,只能支持一个平行光,其它的光源会按照逐顶点的shader来计算光照。

也就是说,我那个场景里,光照其实是按照逐顶点(Mobile-VertexLit.shader)来计算的。当点光源在长方体两边时(比如左侧),因为距离左侧的顶点比较近,所以光线强,距右侧顶点比较远,所以光线弱,中间的像素做插值,所以看起来光照是正常的。

但是当点光源位于长方体正上方时,因为距离左右两侧的顶点距离一样,比如左侧顶点光线强度是0.5,右侧也是0.5,这样的话,中间的像素做插值,都会变成0.5,因此才会看到整个表面光照强度一样。

 

mobile/diffuse跟点光源一起使用时光线怪异的原因

原文:http://www.cnblogs.com/yaohj/p/4919955.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!