立方体纹理加载器不加载天空盒在三个.js
CubeTextureLoader not loading skybox in three.js
我一辈子都无法弄清楚我在这里做错了什么。 我正在尝试加载一个简单的天空盒,但我一无所获。我试图查找答案,但大多数使用THREE.ImageUtils.loadTextureCube
已被弃用。 我似乎在新THREE.CubeTextureLoader
上找不到任何示例.
注意:我将其与三个.js youtube 加载器示例结合使用......http://threejs.org/examples/#css3d_youtube
var loader = new THREE.CubeTextureLoader();
textureArray = ['galaxy_starfield.png', 'galaxy_starfield1.png', 'galaxy_starfield2.png', 'galaxy_starfield3.png', 'galaxy_starfield4.png', 'galaxy_starfield5.png'];
loader.setPath('./img/');
var textureCube = loader.load([
'galaxy_starfield.png', 'galaxy_starfield1.png', 'galaxy_starfield2.png', 'galaxy_starfield3.png', 'galaxy_starfield4.png', 'galaxy_starfield5.png'
]);
var skyMaterial = new THREE.MeshBasicMaterial({
color: 0x444444,
map: new THREE.TextureLoader(textureArray),
opacity: 0,
transparent: true
});
var skyGeometry = new THREE.BoxGeometry(2000, 2000, 2000);
var skyMesh = new THREE.Mesh(skyGeometry, skyMaterial);
scene.add(skyMesh);
我做错了什么?我没有收到任何错误(只是来自广告拦截器的错误)。 CubeTextureLoader是否有可能出现错误?
所有这些帖子都使用ImageUtils.loadTextureCube:
比较三种天空盒材质的创建方法.js
三.js天空盒没有完全加载或根本没有加载
正如文档所指定的那样(也带有示例),应使用应设置为加载cubeTexture
的 envMap
属性创建材质。
var skyMaterial= new THREE.MeshBasicMaterial( {
color: 0xffffff,
envMap: textureCube,
side: THREE.BackSide
} );
使用 side
属性,以便从立方体内部看到材料。
另外,我认为没有必要让你的天空盒那么大。只需让它在每次渲染之前跟随您的摄像机位置即可。
skyBox.position.copy(camera.position);
相关文章:
- 加载两个具有相同父密钥名称的json文件
- 分页:如何用AJAX加载第一个页面
- 在离子态上加载多个视图
- 当加载几个js文件时,defer属性应该如何工作
- 正在加载+10个帖子
- 我想在每个按钮点击事件上加载多个图表.我使用了下面的谷歌代码
- 加载多个 JSON 文件
- 如何在生产环境中动态加载多个优化的requirejs模块
- D3.js:通过Force Layout从JSON文件加载多个网络
- 为knockout.js数据绑定加载多个远程数据源
- EXT JS无法同时加载多个页面
- 如何在同一分区中加载多个PHP页面
- EmberJS:如何在同一条路径上加载多个模型
- 使用springy.js加载多个图形时闪烁画布
- 加载两个脚本块(使用lab.js作为加载管理器)
- 使用Ajax和Jquery一次加载100个块的Wordpress帖子
- 使用三个js加载三维模型示例
- JavaScript仅加载10个xml节点
- 在三个.js中加载多个 Blender 导出的对象/网格 + 材质
- 加载三个JS对象,给对象添加颜色