使用SVG或WebGL的3D形状

alt*_*ter 5 javascript svg webgl

嗨,我想在浏览器中渲染交互式3D球体.它上面的纹理将是世界地图,所以基本上我试图创建一个可以使用地图在任何方向旋转的地球仪.我很乐意使用SVG渲染2D图像,但不确定如何在SVG中渲染3D形状.是否可以在SVG中渲染3D形状,如果是,如何?如果没有,WebGl是更好的选择吗?

bra*_*jam 9

由于性能,WebGL是您最好的选择.您可以利用(或至少从中学习)演示,例如http://www.chromeexperiments.com/globe(请参阅http://data-arts.appspot.com/globe-search).http://www.chromeexperiments.com上还有其他全球演示.


Eri*_*röm 6

看看有些抽象实现的three.js(附带WebGL/SVG/Canvas后端).

SVG是一种2D矢量图形格式,但你可以将3d形状投影到2d上,因此可以用SVG渲染3d对象,这只是一些工作(最好留给javascript库).

  • svg中的任何形状都可以是交互式的,但SVG本身并不知道某些形状代表3d对象.这是一个简单的例子(带有鼠标悬停处理程序的3d立方体):http://apike.ca/prog_svg_threed.html (3认同)