2

我对使用 babylonjs 在 webgl 中制作的天空盒的纹理有疑问。我的整个项目都在网络服务器上,一切似乎都写得很好,但是应该是天空盒的盒子没有显示纹理 - 内外都是黑色

代码:

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;
4

4 回答 4

2

我怀疑您在磁盘上的目录结构对于天空盒不正确。

如果您按照 skybox 的巴比伦游乐场示例 http://www.babylonjs-playground.com/#3458P(然后下载完整工作示例的 zip)

您可以看到,在您的情况下,“skybox/skybox”表示一个名为“skybox”的目录,其中包含 6 个天空盒文件,即

  • “skybox”目录包含名为
    • 天空盒_nx.jpg
    • 天空盒_px.jpg
    • skybox_ny.jpg
    • 天空盒_py.jpg
    • 天空盒_nz.jpg
    • 天空盒_pz.jpg
于 2015-07-05T18:25:23.793 回答
1

首先检查你的雾,它不会让你看到天空盒,试着去掉它。在我的情况下是:我复制了代码,它对我的​​场景来说太大了,我没有注意到变化。然后我减少

    var skybox = BABYLON.Mesh.CreateBox("skyBox", 800.0, scene);

    var skybox = BABYLON.Mesh.CreateBox("skyBox", 52.5, scene);

问题解决了

于 2020-05-25T15:15:24.330 回答
0

代码似乎是正确的。如果纹理加载正确,你能用 F12 栏检查吗?

于 2014-01-10T00:47:35.060 回答
0

我有同样的问题。只需添加一个免费相机即可解决此问题:

var freeCamera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 0, 5), scene);
scene.activeCamera = freeCamera;

你应该看到你的天空盒。谢谢

于 2014-01-27T21:44:34.830 回答