javascript - 如何确保灯不会照亮 Angular 落后面的墙壁?

标签 javascript babylonjs

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

enter image description here

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

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

提前谢谢您。沃伊泰克

最佳答案

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

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

关于javascript - 如何确保灯不会照亮 Angular 落后面的墙壁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467540/

相关文章:

javascript - Babylon.JS 中网格位置更新时触发事件

javascript - 如何使用drawtext在babylon JS动态纹理中插入换行符?

javascript - Chrome V8 错误

javascript - 将 Promise.all([promise 列表]) 转换为 ramda

next.js - Next Js 中的 @Babylonjs (ES6) 因意外 token 'export' 而失败

android - Cordova 网络应用程序

glsl - 使用GLSL在平面上渲染平滑的引用网格

javascript - 使用 Javascript 生成 SVG 路径的库?

javascript - Knockout.js 中的 if 语句绑定(bind)短路

javascript - Coffeescript 函数调用的括号