1
可见我们已经尝试了下面的代码: three.js所质地不与SVGRenderer
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, window.innerWidth/window.innerHeight, 0.0001, 999);
camera.position.set(0, 0, 3);
scene.add(camera);
var material = new THREE.MeshBasicMaterial({ color: 0xff0000, wireframe: true });
var image = $('#tmp')[0]
var texture = new THREE.Texture(image);
texture.needsUpdate = true;
var img_material = new THREE.MeshBasicMaterial({color: 0x000000, map: texture });
var plane_geometry = new THREE.PlaneGeometry(2, 2);
var imageMesh = new THREE.Mesh(plane_geometry, img_material);
imageMesh.doubleSided = true;
scene.add(imageMesh);
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
$('#container').append(renderer.domElement);
renderer.render(scene, camera);
,但是当我们切换到:
renderer = new THREE.SVGRenderer();
它停止渲染的纹理在图像的几何形状。有人可以说为什么如此吗?
我仍然怀疑它是否理论上可行。我对SVG并不了解,但它确实支持图像,在浏览器中,这些图像甚至可以是'data:'URI。我不确定他们是否可以变形。 – 2012-07-01 12:46:16
一个想法,可以手动完成或使用自定义渲染器:使用canvas/OGL和SVG渲染器。使用SVG形状将光栅图像“剪切”为每个SVG图形的图像,然后将这些图像包含在另一个带有data:URL的svg组中。 – 2014-12-30 23:07:17