det*_*000 3 javascript three.js
对不起,如果这是一个菜鸟问题。
我一直在尝试使用动态生成的画布元素作为精灵为在three.js 中创建的时间线添加标签。时间线部分渲染得很好,但我很难让画布精灵渲染。这是我用于精灵的内容(从更大场景的上下文中取出):
var canvas = document.createElement('canvas');
var size = 250;
canvas.width = size;
canvas.height = size;
var context = canvas.getContext('2d');
context.fillStyle = '#990000';
context.textAlign = 'center';
context.font = '24px Arial';
context.fillText("some text", size / 2, size / 2);
var amap = new THREE.Texture(canvas);
amap.needsUpdate = true;
var mat = new THREE.SpriteMaterial({
map: amap,
transparent: false,
useScreenCoordinates: false,
color: 0x000000
});
var sp = new THREE.Sprite(mat);
scene.add(sp);
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看更完整的示例代码集:http : //jsfiddle.net/rgE2j/2/。
任何帮助都表示赞赏。
谢谢,彼得
好吧,你有几个错误。我将相机移近并进行了一些其他更改,请注意。此外,小提琴使用的是旧版本的库。
更新小提琴:http : //jsfiddle.net/rgE2j/141/
三.js r.54
var canvas = document.createElement('canvas');
var size = 256; // CHANGED
canvas.width = size;
canvas.height = size;
var context = canvas.getContext('2d');
context.fillStyle = '#ff0000'; // CHANGED
context.textAlign = 'center';
context.font = '24px Arial';
context.fillText("some text", size / 2, size / 2);
var amap = new THREE.Texture(canvas);
amap.needsUpdate = true;
var mat = new THREE.SpriteMaterial({
map: amap,
transparent: false,
useScreenCoordinates: false,
color: 0xffffff // CHANGED
});
var sp = new THREE.Sprite(mat);
sp.scale.set( 10, 10, 1 ); // CHANGED
scene.add(sp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7380 次 |
| 最近记录: |