使用canvas渲染器,我使用的是绘制线性渐变的函数.我希望这也适用于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;
Run Code Online (Sandbox Code Playgroud)
}
因为WebGLRenderer,你需要设置material.transparent = true.
var material = new THREE.MeshBasicMaterial( { map: texture, transparent: true } );
Run Code Online (Sandbox Code Playgroud)
更新小提琴:http://jsfiddle.net/FtML5/3/
three.js r.62
| 归档时间: |
|
| 查看次数: |
8698 次 |
| 最近记录: |