SIM*_*MEL 6 graphics shader raytracing
我想知道计算几种不同光源和环境光产生的阴影的最准确方法.环境光是存在于整个"世界"中的光,具有相同的强度而没有特定的方向,并且漫射光是由点光源的直接照明而发生的照明.
鉴于Ka是表面环境反射率的系数,Ia是环境光的强度,Kd是表面漫反射率,Ip1是第一(相应)点光源的强度,N是表面法线,L1是光(相应的第一个来源)方向.
根据我的参考资料,现场颜色的强度应为:
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))
其中' .'是点积.
但根据我的理解,真实的光强度应该在光源之间进行某种平均,而不仅仅是将它们加起来,这样如果只有两个光源,则公式应如下所示:
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/2
如果有3个光源,但是第三个被阻挡并且不直接照亮表面,那么:
I=Ka.Ia+Kd(Ip1(N.L1)+Ip2(N.L2))/3
(如果有一个所有3个灯都有贡献的地方,它会变得更亮.
我的假设是对的吗?
嗯,不,光不应该平均.想一想.如果你只有一个强大的光源,并且你添加另一个非常微弱的光线,那么物体的颜色会减少吗?例如,强光有强度10,颜色(假设方向垂直于法线,没有环境光,为简单起见)将为10.然后在你添加第二个微弱的光后,用强度为0.1的颜色将是(10 + 0.1)/ 2,即5.05.因此,添加更多光线会使物体看起来更暗.这没有意义.
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |