Three.js: テクスチャとしてのSVG?

作成日 2012年02月12日  ·  5コメント  ·  ソース: mrdoob/three.js

私はこの質問を赤くします#814

また、次のjsライブラリにアクセスします: http

これは私のコードです:

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)
})];

これにより、「クロスオリジンリソースシェアリングポリシーによってクロスオリジンイメージのロードが拒否されました」というエラーが表示されます。

ここでの私のオプションは何ですか?

また、WebGLをサポートしていないモバイルデバイスでこれを使用するため、WebGLはオプションではないことにも言及する必要があります。

Question

最も参考になるコメント

私の神...私はどれほど愚かであるか信じられない。
これはiOSでも機能します。

WebViewの背景と同じ色のSVG画像があるので、見なかったのです:D
少なくともそれは機能し、これを読むと誰かが今笑うことができます:D

全てのコメント5件

私はあなたがこれと同じ問題#1305にぶつかっていると思います。

私はそれに基づいて何かを試しました:

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);

この例は見つかりませんでした。 手伝ってくれますか?

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

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

まあ、良いことはこれが機能することです。 悪いことは、iPhoneでは動作しないことです。
ありがとうございます。iOSでこれが機能しない理由を理解する必要があります。

私の神...私はどれほど愚かであるか信じられない。
これはiOSでも機能します。

WebViewの背景と同じ色のSVG画像があるので、見なかったのです:D
少なくともそれは機能し、これを読むと誰かが今笑うことができます:D

このページは役に立ちましたか?
0 / 5 - 0 評価