【问题标题】:Use Canvas in SVG or WebGL for 3D application在 SVG 或 WebGL 中使用 Canvas 进行 3D 应用程序
【发布时间】:2013-08-18 13:52:11
【问题描述】:

我需要构建一个 html5/javascript 3d 应用程序,每个场景我都必须渲染很多对象(大约 200-300 个复杂对象或更多)而不滞后,所以请告诉我应该选择哪种渲染技术,HTML5画布、SVG 或 WebGL。

我听说使用Canvas combine with SVG 会带来更好的性能,但是将其转换为 3d 环境有多复杂,是否有任何 JavaScript 引擎支持 SVG 中的 Canvas?或者我应该为 Canvas 和 WebGL 选择 three.js。

【问题讨论】:

    标签: html canvas svg 3d webgl


    【解决方案1】:

    HTML5 / Canvas / SVG 适用于静态图像,但不适用于允许移动的 3D 应用程序。

    HTML5 和 SVG 没有实现 3D 机制,因此创建这样的场景很快就会变得非常复杂。画布只是某种表面,需要进一步的逻辑或技术才能在其上绘图。

    另一个考虑因素是不同的浏览器可能有非常不同的性能,例如(在我写这个答案的那一刻)比较 Chromium 和 Firefox,一个更擅长移动一个大图像,而另一个更擅长移动数千个小图像那些。

    WebGL 是 OpenGL for web 的简化版,它使用显卡来渲染复杂的场景,就像在游戏中一样。这将允许真正的 3D 和逼真的渲染。代价是复杂性:学习和正确应用需要一些时间。

    对于简单的 3D 效果和样式,WebGL 是多余的,而 SVG 将是一个更简单的替代方案。对于真正的 3D,WebGL 提供了全部功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 2015-08-25
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多