是否有用于 webgl 的 2d sprite 库? [关闭]

Posted

技术标签:

【中文标题】是否有用于 webgl 的 2d sprite 库? [关闭]【英文标题】:Is there a 2d sprite library for webgl? [closed] 【发布时间】:2011-01-26 08:16:52 【问题描述】:

我正在寻找使用 WebGL 构建 2d 游戏。我想要 WebGL 提供的硬件加速,但我无法从 canvas 标签中的 2D 画布上下文中获得它。

话虽如此,是否有使用 webGL 创建 2D 精灵的教程?或者,更好的是,是否有用于 WebGL 的 2D 精灵库?理想情况下,我正在寻找类似 @​​987654321@ 移植到 WebGL 的东西。

毫不奇怪,我为 WebGL 找到的所有演示、教程和库都专注于 3D 操作。是否有任何支持 2D 精灵的 WebGL 库?

【问题讨论】:

【参考方案1】:

我可能弄错了,但我认为 2D 画布 API 的设计方式是让浏览器可以利用硬件加速,但他们现在选择不这样做。我希望画布 2D 的实现会随着 WebGL 的进步而显着改善。

【讨论】:

【参考方案2】:

3D 中的 2D 非常容易实现。您只需将所有对象放在一个平面中并缩放视口以绘制该平面的所需部分。

无论如何,大约需要 10 年的时间,您才能期望在大多数人的浏览器中找到 WebGL 功能。使用正确的方法,您可以在不使用画布的情况下取得长足的进步,任何 javascript 游戏开发人员都必须知道使用预渲染图形旋转的技巧以及“精灵”动画。

重要的问题是,您只是在玩工具,还是在制作人们应该能够玩和享受的游戏?

【讨论】:

虽然不是大多数人会很快使用最新的 html5/webgl 浏览器;很多会。 Firefox/Chrome/Safari 致力于 HTML5/WebGL,根据以下链接,他们的用户升级速度非常快。这些浏览器在市场上占有相当大的份额。所以 HTML5/WebGL 应该是一个安全的选择(还要注意一些“i”平台的 Flash 禁令)“让用户升级他们的浏览器”[ajaxian.com/archives/… 安全 [不管你怎么称呼它] 是当你可以达到 99+ % 的市场时我会使用的术语。我不会说为了获得更多功能而削减约 50% 的市场份额总是一个坏主意,但您获得的功能必须非常重要,才能使这种策略保持下去。【参考方案3】:

您可以在 webGL here 中找到 canvas 2D API

【讨论】:

【参考方案4】:

我最近向 github 推送了一个简单的 2d 库,该库是用 webgl 编写的,带有一个幼稚(但功能强大)的画布后备。它使用与 cocos2d 相同的场景图,您可以在 http://github.com/funkaster/ChesterGL 上查看它 - 请注意,它不是 100% 功能的,但您可以以此为起点编写一个简单的 2d 游戏

【讨论】:

【参考方案5】:

请记住,您可以使用 gl.POINTS 绘制模式并在每个点而不是点处绘制纹理 ( sprite )。您只需要使用采样器。真的很强大。

【讨论】:

【参考方案6】:

Pixi.js 目前是最稳定、最活跃的:

https://github.com/GoodBoyDigital/pixi.js/

【讨论】:

【参考方案7】:

这可能有点临时性,但我认为值得付出努力,以防有人试图为 2D 对象操作找到一个好的 WebGL 包装器。我强烈推荐 fabric.js,它在画布元素之上提供交互式对象模型。它还具有 SVG 到画布(和画布到 SVG)解析器。官网的demos部分清楚地展示了这个javascript库的潜力。

【讨论】:

以上是关于是否有用于 webgl 的 2d sprite 库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

WebGL实现sprite精灵效果的GUI控件

推荐用于 Delphi 棋盘游戏的 2D Sprite 引擎? [关闭]

Unity 2D精灵(Sprite)与2D物理组件

glayout 介绍:OpenGL/WebGL 的界面绘制库(技术)

cocos2d-x推断sprite点击

<canvas>:从内存中删除 2d 上下文而不从内存中删除 webgl 上下文