0

美好的一天,我正在使用 Babylon JS 玩 webgl,我需要关于灯光的建议。我创建了一个测试洞穴,并在一面墙上放置了一个手电筒 (BABYLON.PointLight)。但灯光也照亮了角落后面的墙壁。看截图:

在此处输入图像描述

var light = new BABYLON.PointLight("light1", new BABYLON.Vector3(x, y, z), scene);
light.intensity = 0.5
light.range = 50;

洞穴不是一个单一的网格,而是由单独的矩形面组成。请问如何确保灯不会照亮角落后面的墙壁?

先感谢您。沃杰科技

4

2 回答 2

1

正如建议的那样,您可以为灯光添加阴影。显然在 v2.3 中引入了点光源的阴影(参见http://www.html5gamedevs.com/topic/18285-point-light-shadow-mapping/)。要尝试的另一件事可能是将范围设置为较小的数字,以便光线不会到达后墙。类似的东西yourLight.range = 0.5可能会起作用。

要记住的一件事是,场景中最多只能有 4 个灯光(确保性能的限制)。

于 2016-03-30T15:58:51.233 回答
0

灯光仅根据从像素到灯光的方向、像素的法线(表面角度)和观察方向为像素着色。因此,光本身不考虑光源是否真正到达像素,而必须使用阴影算法单独计算。

于 2015-12-26T05:07:54.127 回答