【问题标题】:ThreeJS texture issueThreeJS 纹理问题
【发布时间】:2013-03-09 11:39:43
【问题描述】:

我的 Three.js 3D 应用程序有问题 - 至少根据我认识的一些人的说法。

我的申请位于[http://176.9.149.205/planungstool/]。一些据说拥有最新版本的 Chrome 和 Firefox 的人看不到纹理区域。例如,他们看不到 3D 房屋的屋顶或正面。然而,他们确实看到了像树或地板这样的无纹理的东西。

奇怪的是,我没有这个问题,而我问过的大多数其他人也没有这个问题。以下是它的样子,对我来说确实是这样的:[http://176.9.149.205/planungstool/house.jpg]

有人知道是什么原因造成的吗?会不会是一些客户端设置?或者可能是一些访问控制策略?

我正在像这样加载纹理:

var myTexture = new THREE.ImageUtils.loadTexture('gfx/textures/texture.jpg');

然后,我只使用具有此纹理作为贴图的 Lambert 材质创建网格。

如果您阅读本文但不知道是什么原因导致此错误,如果您至少可以告诉我您是否看到纹理区域,那就太好了,因为您使用的是最新版本的 Chrome 或 Firefox。

【问题讨论】:

  • 我可以毫无问题地看到房子。我使用的是 Firefox 19.0.2。

标签: three.js textures


【解决方案1】:

我可以在 mac 上看到当前 chrome 上的纹理。我在画布渲染器上遇到了类似的问题(任何有纹理的东西都是不可见的)。对我来说,我从使用 ImageUtils.loadTexture 更改为纹理和纹理加载器,它可以工作。

var texture = new THREE.Texture();
var texLoader = new THREE.ImageLoader();
texLoader.addEventListener( 'load', function(event){
    texture.image = event.content;
    texture.needsUpdate = true;
} );
texLoader.load('texture.png');

然而,我在 safari 中的画布渲染器仍然存在问题,但您似乎只使用了 webgl 渲染器。希望这会有所帮助。

【讨论】:

  • 此示例不再代表代码库,最终只是误导...您应该删除它或将其重构为指向 threejs.org/docs/api/loaders/ImageLoader.html 但它是开始搜索的好地方(对我来说)所以如果你编辑你的例子,我会赞成它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 2021-11-03
相关资源
最近更新 更多