场景视觉环境:背景、天空、雾
一月 16, 2024
1、环境
1 | scene.clearColor - 改变「背景」颜色 |
2、天空盒
手动创建
1 | var skybox = BABYLON.Mesh.CreateBox("skyBox", 100.0, scene); |
设置infiniteDistance属性,这使得skybox跟随摄像机的位置
1 | skybox.infiniteDistance = true; |
消除箱子上所有的反光(太阳不会反射在天空上)
1 | skyboxMaterial.disableLighting = true; |
接下来,我们将我们特殊的天空纹理应用于它。此纹理必须已准备好成为天空盒,位于专用目录中,在我们的示例中名为“天空盒”:
1 | skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("textures/skybox", scene);skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX\_MODE; |
3、雾
1 | scene.fogMode = BABYLON.Scene.FOGMODE\_EXP; |
以下是可用的模式:
- BABYLON.Scene.FOGMODE_NONE - 默认一个,雾被停用。
- BABYLON.Scene.FOGMODE_EXP - 雾密度遵循指数函数。
- BABYLON.Scene.FOGMODE_EXP2 - 与上面相同,但速度更快。
- BABYLON.Scene.FOGMODE_LINEAR - 雾密度遵循线性函数。
如果选择EXP, 或EXP2模式,则可以定义密度选项(默认为0.1):
1 | scene.fogDensity = 0.01; |
否则,如果你选择LINEAR模式,那么你可以定义雾从哪里开始,雾从哪里结束:
1 | scene.fogStart = 20.0; |
最后,无论哪种模式,您都可以指定雾的颜色(默认为BABYLON.Color3(0.2, 0.2, 0.3)):
1 | scene.fogColor = new BABYLON.Color3(0.9, 0.9, 0.85); |
查看评论