我的整个项目在webgl中使用babylonjs制作的一个天空盒的纹理有问题,一切看起来都写得很好,但是应该是天空盒的盒子却没有显示出纹理--外面和里面都是黑色的。
代码。
var skybox = BABYLON.Mesh.CreateBox("skyBox", 1000.0, scene);
var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
skyboxMaterial.backFaceCulling = false;
skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("skybox/skybox", scene);
skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
skybox.material = skyboxMaterial;
我怀疑你在磁盘上的天盒目录结构不正确。
如果你按照babylon游乐场的例子来做skybox的话http:/www.babylonjs-playground.com#3458P (然后下载压缩包以获得完整的工作示例)
你可以看到,在你的例子中,"skyboxskybox "指的是一个名为 "skybox "的目录,其中包含6个skybox文件,即
代码似乎是正确的.你可以用F12条检查纹理是否正确加载?
我也有同样的问题。简单地添加一个免费的相机来解决这个问题。
var freeCamera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 0, 5), scene);
scene.activeCamera = freeCamera;
你应该可以看到你的天空盒了,谢谢
首先检查你的雾,它不会让你看到天空盒,尝试删除它.在我的情况是。我的情况是: 我复制了代码,但对我的场景来说,它太大了,我没有注意到变化。
var skybox = BABYLON.Mesh.CreateBox("skyBox", 800.0, scene);
到
var skybox = BABYLON.Mesh.CreateBox("skyBox", 52.5, scene);
并解决了问题