6

使用画布渲染器,我使用了一个绘制线性渐变的函数。我希望它也可以与 webgl 渲染器一起使用,但它会阻碍透明度。代码在下面,这是一个指向小提琴的链接,它演示了我的意思。

function generateTexture() {

var size = 512;

// create canvas
canvas = document.createElement( 'canvas' );
canvas.width = size;
canvas.height = size;

// get context
var context = canvas.getContext( '2d' );

// draw gradient
context.rect( 0, 0, size, size );
var gradient = context.createLinearGradient( 0, 0, size, size );
gradient.addColorStop(0, '#99ddff'); // light blue 
gradient.addColorStop(1, 'transparent');
context.fillStyle = gradient;
context.fill();

return canvas;

}

4

1 回答 1

7

对于WebGLRenderer,您需要设置material.transparent = true.

var material = new THREE.MeshBasicMaterial( { map: texture, transparent: true } );

更新小提琴:http: //jsfiddle.net/FtML5/3/

三.js r.62

于 2013-11-15T02:36:08.983 回答