2012-02-23 1 views
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(); 

это остановить рендеринг текстур над геометрией изображения. Может ли кто-нибудь сказать, почему так?

ответ

2

THREE.SVGRenderer не поддерживает текстуры.

+0

Мне все еще интересно, возможно ли это в теории. Я ничего не знаю о SVG, но он поддерживает изображения, а в браузере это может быть даже «data:' URI. Я не уверен, что они могут быть изменены. –

+0

Одна идея, которая может быть выполнена вручную или с помощью специального средства визуализации: Используйте как холст/OGL, так и средство визуализации SVG. Используйте формы SVG, чтобы «разрезать» растровое изображение на изображения для каждой формы SVG, а затем включить их в другую группу SVG с данными: URL. –

Смежные вопросы