码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-29 13:08:15      阅读:224      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!