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