【问题标题】:Mesh with texture background color具有纹理背景颜色的网格
【发布时间】:2013-12-11 03:37:28
【问题描述】:

我创建了一个Mesh,其中包含一个PlaneGeometry,材质由从JPEG 图像加载的纹理定义。一切都很好,除了在使用深色显示平面时加载纹理图像之前有一小段时间。有没有办法将此颜色更改为其他颜色?

我尝试了color 材料选项,但未应用。

var texture = new THREE.ImageUtils.loadTexture('/path/to/image');
texture.minFilter = THREE.LinearMipMapLinearFilter;
texture.magFilter = THREE.NearestFilter;
var material = new THREE.MeshBasicMaterial({
    side : THREE.DoubleSide,
    map : texture,
    color : 0xf0f0f0
// this doesn't seem to work
});
var geometry = new THREE.PlaneGeometry(Math.abs(line.x1 - line.x0), depth);
var mesh = new THREE.Mesh(geometry, material);

【问题讨论】:

    标签: three.js


    【解决方案1】:

    那个黑色是没有任何纹理数据的纹理渲染。最简单的解决方法是加载纹理和网格,但在两者都完全加载之前不要渲染网格。

    另一种选择是创建一个非常小的 1x1 纹理,它是您想要的颜色,最初将其用作纹理,然后在所需纹理完全加载后将网格材质更改为最终纹理。

    【讨论】:

    • 选项 #1 有效,但我更喜欢第二个。但是,我无法弄清楚如何使用最终纹理实际更新网格材质。
    • 尝试将 material.needsUpdate 标志设置为 true。您可以在 Three.js wiki 中找到有关如何使用 WebGLRenderer 更新内容的更多详细信息和示例。 github.com/mrdoob/three.js/wiki/Updates
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2017-01-05
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多