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。

我有一个SVG图像,其颜色与WebView的背景颜色相同,所以这就是为什么我没看到它的原因: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。

我有一个SVG图像,其颜色与WebView的背景颜色相同,所以这就是为什么我没看到它的原因:D
至少它能正常工作,读到这个:D的人现在可以笑了

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Horray picture Horray  ·  3评论

boyravikumar picture boyravikumar  ·  3评论

fuzihaofzh picture fuzihaofzh  ·  3评论

zsitro picture zsitro  ·  3评论

seep picture seep  ·  3评论