Three.js: SVG como textura?

Criado em 12 fev. 2012  ·  5Comentários  ·  Fonte: mrdoob/three.js

Eu respondi esta pergunta # 814

E também corro para esta biblioteca js: http://code.google.com/p/canvg/ que pode fazer SVG para conversão de tela para dados.

Este é o meu código:

var imageCanvas2 = document.createElement("canvas");
canvg(imageCanvas2, 'images/46.svg');
var imag = imageCanvas2.toDataURL('image/png');   // --> here is the converted image data

var cubeMaterial = [new THREE.MeshBasicMaterial({
    map : THREE.ImageUtils.loadTexture(imag)
})];

Isso me dá o erro: "Carregamento de imagem de origem cruzada negado pela política de compartilhamento de recursos de origem cruzada."

Quais são minhas opções aqui?

Além disso, devo mencionar que WebGL não é uma opção, pois irei usá-lo em dispositivos móveis que não suportam WebGL.

Question

Comentários muito úteis

Meu Deus ... Eu não posso acreditar o quão estúpido.
Isso também funciona no iOS.

Eu tenho uma imagem SVG que é da mesma cor do plano de fundo do WebView, então é por isso que não a vi: D
Pelo menos funciona e alguém pode rir agora ao ler isto: D

Todos 5 comentários

Acho que você está tendo o mesmo problema # 1305.

Tentei algo baseado nisso:

var imageCanvas2 = document.createElement("canvas");
canvg(imageCanvas2, 'images/46.svg');
var imag = imageCanvas2.toDataURL('image/png');

var texture = new THREE.Texture(imag);
texture.needsUpdate = true;

//Now I have to make material from this so I could apply it to Mesh:

var cubeMaterial = new THREE.MeshBasicMaterial({
    map : texture  /////something like this. This throws errors.
});

cube = new THREE.Mesh(geometry, cubeMaterial);

Eu não encontrei exemplo disso. Você pode ajudar?

var imageCanvas2 = document.createElement("canvas");
canvg(imageCanvas2, 'images/46.svg');

var texture = new THREE.Texture(imageCanvas2);
texture.needsUpdate = true;

Bem, o bom é que isso funciona. O ruim é que não funciona no iPhone.
Obrigado, terei que descobrir agora por que isso não está funcionando no iOS.

Meu Deus ... Eu não posso acreditar o quão estúpido.
Isso também funciona no iOS.

Eu tenho uma imagem SVG que é da mesma cor do plano de fundo do WebView, então é por isso que não a vi: D
Pelo menos funciona e alguém pode rir agora ao ler isto: D

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

akshaysrin picture akshaysrin  ·  3Comentários

clawconduce picture clawconduce  ·  3Comentários

fuzihaofzh picture fuzihaofzh  ·  3Comentários

jens-duttke picture jens-duttke  ·  3Comentários

zsitro picture zsitro  ·  3Comentários