是否有任何理由在 2D 游戏/应用程序中使用 WebGL 而不是 2D Canvas?

新手上路,请多包涵

除了性能之外,对于 2D 游戏/应用程序使用 WebGL 而不是 2D-Canvas 有什么理由吗?

换句话说,WebGL 提供了哪些 2D 功能是不可能用 2D-Canvas 轻松实现的?

原文由 Ali Shakiba 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 370
1 个回答

换个角度看这个问题:

开发人员如何选择一种技术而不是另一种技术?

  • 更好地集成到他们已经构建的系统中
  • 更容易使用
  • 是比较快的
  • 有更多的能力或更适合他们的需要
  • 成本
  • 更独立于平台

因此,我将讨论 canvas 和 webGL API 在这些特性方面的差异。


canvas 和 webGL 都是 JavaScript API。它们在集成(绑定)方面几乎相同。它们都受到许多可以加快编码速度的库的支持。不同的库为您提供了不同的代码组织方式,因此库的选择决定了您的绘图 API 的结构,但它仍然非常相似(其余代码如何与其绑定在一起)。如果使用库,编写代码的难易程度取决于库本身。

如果您从零开始编写代码,画布 API 将更容易学习和理解。它需要最少的数学知识,并且开发快速而直接。

使用 WebGL API 需要强大的数学技能和对渲染管道的全面理解。具备这些技能的人更难找到,生产速度更慢(由于此类代码库的规模和复杂性),因此成本更高。

WebGL 速度更快,功能更多。毫无疑问。它是一种原生 3D API,可让您完全访问渲染管道、代码和效果,执行速度更快,更“可调整”。使用 webGL 真的没有限制。

canvas 和 webGL 都是 html5 的好东西。通常支持一个的设备将支持另一个。

所以,总结一下:

  • 合并绘图 API 代码和其余代码(集成):类似
  • 使用方便:
  • (带库)canvas = webGL
  • (从头开始)webGL << 画布
  • 速度:webGL > 画布
  • 功能:webGL > 画布
  • 成本:webGL要贵得多
  • 平台:非常相似

希望这可以帮助。

PS 开放讨论。

原文由 Dragan Okanovic 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题