webgl - babylonjs天盒纹理不显示

问题描述 投票:1回答:4

我的整个项目在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;
textures webgl skybox babylonjs
4个回答
1
投票

我怀疑你在磁盘上的天盒目录结构不正确。

如果你按照babylon游乐场的例子来做skybox的话http:/www.babylonjs-playground.com#3458P (然后下载压缩包以获得完整的工作示例)

你可以看到,在你的例子中,"skyboxskybox "指的是一个名为 "skybox "的目录,其中包含6个skybox文件,即

  • "skybox "目录下的文件名为
    • skybox_nx.jpg
    • skybox_px.jpg
    • skybox_ny.jpg
    • skybox_py.jpg
    • skybox_nz.jpg
    • skybox_pz.jpg

0
投票

代码似乎是正确的.你可以用F12条检查纹理是否正确加载?


0
投票

我也有同样的问题。简单地添加一个免费的相机来解决这个问题。

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

你应该可以看到你的天空盒了,谢谢


0
投票

首先检查你的雾,它不会让你看到天空盒,尝试删除它.在我的情况是。我的情况是: 我复制了代码,但对我的场景来说,它太大了,我没有注意到变化。

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

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

并解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.