map:来自新THREE.Texture(canvas)的纹理不起作用

时间:2017-05-22 04:38:42

标签: javascript canvas three.js

我想使用从new THREE.Texture(canvas)到PointsMaterial的纹理。 但是,它不起作用。画布在右上角。但是CubeGeometry 只有白点。

    var texture = new THREE.Texture( canvas );
    texture.needsUpdate = 1;

当我使用来自new THREE.TextureLoader().load( "snowflake5.png" )的纹理时,它有效。

这是演示:https://codepen.io/anon/pen/JNezgM

我的错在哪里?

1 个答案:

答案 0 :(得分:2)

如果使用以下模式从canvas元素实例化纹理,则必须将needsUpdate标记设置为true

    var texture = new THREE.Texture( canvas );
    texture.needsUpdate = true;

或者,您可以使用此模式,并为您设置needsUpdate标志:

    var texture = new THREE.CanvasTexture( canvas );

关于您的错误,您的代码无效,因为:

true === 1 // false

three.js r.85