webgl - babylonjs天空盒纹理没有显示

时间:2014-01-09 01:42:24

标签: textures webgl skybox babylonjs

我遇到了使用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 个答案:

答案 0 :(得分:1)

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

如果你按照巴比伦游乐场的例子来看天空盒 http://www.babylonjs-playground.com/#3458P(然后下载完整工作示例的zip文件)

你可以在你的情况下看到" skybox / skybox" 表示名为" skybox"的目录。包含6个天空盒文件,即

  • "天空盒"目录包含名为的文件
    • skybox_nx.jpg
    • skybox_px.jpg
    • skybox_ny.jpg
    • skybox_py.jpg
    • skybox_nz.jpg
    • skybox_pz.jpg

答案 1 :(得分:1)

首先检查雾气,它不会让您看到天空盒,请尝试将其删除。 在我的情况下是:我复制了代码,并且对于我的场景而言太大了,我没有注意到更改。然后降低

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

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

问题已解决

答案 2 :(得分:0)

代码似乎正确。 如果纹理正确加载,你可以用F12 bar检查吗?

答案 3 :(得分:0)

我遇到了同样的问题。只需添加一个免费的相机来解决这个问题:

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

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