首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Three.js skybox纹理问题。

Three.js skybox纹理问题。
EN

Stack Overflow用户
提问于 2012-10-01 16:56:27
回答 2查看 4K关注 0票数 3

我正在尝试使用Three.js创建一个简单的Skybox,但遇到了一个问题,我应用于立方体的纹理只在立方体的外部工作,而不显示在立方体的内部。

这是我的skybox代码:

代码语言:javascript
复制
var path = assetPath + skyboxPrefix;
var urls = [ path + 'alpine_front.jpg',
             path + 'alpine_back.jpg',
             path + 'alpine_left.jpg',
             path + 'alpine_right.jpg',
             path + 'alpine_top.jpg' ];

var cubeTexture = THREE.ImageUtils.loadTextureCube( urls );

var shader = THREE.ShaderUtils.lib["cube"];
shader.uniforms["tCube"].texture = cubeTexture;

var skyboxMaterial = new THREE.ShaderMaterial( {
    uniforms        : shader.uniforms,
    fragmentShader  : shader.fragmentShader,
    vertexShader    : shader.vertexShader,
    depthWrite      : false
} );

var skyboxGeom = new THREE.CubeGeometry( 10000, 10000, 10000 );

skybox = new THREE.Mesh( skyboxGeom, skyboxMaterial );
skybox.flipSided = true;

scene.add(skybox);

这是一个实时版本的http://projects.harrynorthover.com/landscape/src/

非常感谢大家的支持!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-01 19:07:14

自从r50之后,object.flipSided就消失了。它被object.material = THREE.BackSide取代了。在这种情况下,检查updated examples that use the same feature和这个migration页面应该很方便。

票数 5
EN

Stack Overflow用户

发布于 2012-10-01 17:11:21

我还在其他示例中看到过"flipSided“开关,但没有让它工作(可能已经过时了)。对我有效的(对于球体)是设置负比例:

代码语言:javascript
复制
skybox.scale.x = -1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12670183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档