除了性能之外,对于 2D 游戏/应用程序使用 WebGL 而不是 2D-Canvas 是否有任何原因?
换句话说,WebGL 提供了哪些 2D 功能是 2D-Canvas 无法轻松实现的?
最佳答案
换个角度看这个问题:
开发人员如何选择一种技术而不是另一种技术?
- 更好地集成到他们已经构建的系统中
- 更易于使用
- 更快
- 有更多的能力或更适合他们的需求
- 费用
- 更独立于平台
因此,我将讨论 canvas 和 webGL API 在这些特性方面的差异。
canvas 和 webGL 都是 JavaScript API。它们在集成(绑定(bind))方面几乎相同。它们都受到许多可以加快编码速度的库的支持。不同的库为您提供了不同的代码组织方式,因此库的选择决定了您的绘图 API 的结构,但它仍然非常相似(其余代码如何与其绑定(bind)在一起)。如果使用库,编写代码的难易程度取决于库本身。
如果您从零开始编写代码, Canvas API 将更容易学习和理解。它需要最少的数学知识,而且开发快速而直接。
使用 WebGL API 需要强大的数学技能和对渲染管道的全面理解。具备这些技能的人更难找到,生产速度更慢(由于此类代码库的规模和复杂性),因此成本更高。
WebGL 速度更快,功能更多。毫无疑问。它是一种原生 3D API,可让您完全访问渲染管道、代码和效果,执行速度更快,更“可调整”。使用 webGL 真的没有限制。
canvas 和 webGL 都是 html5 的好东西。通常支持一个的设备将支持另一个。
所以,总结一下:
- 合并绘图 API 代码和其余代码(集成):类似
- 易用性:
- (带库)canvas = webGL
- (从头开始)webGL << canvas
- 速度:webGL > Canvas
- 功能:webGL > Canvas
- 成本:webGL 要贵得多
- 平台:非常相似
希望这对您有所帮助。
P. S. 开放讨论。
关于html - 是否有任何理由在 2D 游戏/应用程序中使用 WebGL 而不是 2D Canvas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603350/