javascript - 我可以在 Canvas 中使用 ROP 吗? (我只关心性能原因)

标签 javascript performance canvas bitblt raster-graphics

所以...在制作游戏的美好时光里,当您在屏幕上绘制 Sprite 时,您会使用 ROP 仅绘制 Sprite 的“非透明”部分。 (是的,我已经很久没有编写任何游戏代码了)

(如果你不知道我在说什么,check this out。这是一个漂亮的 hack)

我现在正在尝试做一些“HTML5 游戏”,我正在尝试不同的做事方式并衡量它们的性能,我注意到 Canvas 中似乎没有 ROP。当你画东西时,那个“东西”有一个完整的 alpha channel ,实际上画半透明的东西和画“不透明”的东西一样快。

现在,如果你正在绘制半透明的东西,这很好,但对于你正在做的 99.999%,这听起来非常浪费,感觉如果我们有 ROP,我们可能会绘制 10 次使用旧的掩码技巧一样快。

我是不是遗漏了什么?
Canvas 是否已经有了“关闭 alpha”以使其绘制速度更快的方法?
我是不是完全疯了,这无关紧要,因为,真的,我实际上已经可以在 3 毫秒(300 FPS)内绘制 1000 个 Sprite ,再加上显卡可能直接这样做,或者很快就会这样做,所以我在乎什么?< br/> 你怎么看?

谢谢!
丹尼尔

最佳答案

Am I missing something here?

Is there already a way with Canvas to "turn off alpha" to make it draw faster?

不,对不起。无论如何,Alpha 只是在元素中,我认为这是迄今为止 HTMLElement 约定的事实。事实上, Canvas 的默认状态是 100% 黑色像素且完全透明。

关于javascript - 我可以在 Canvas 中使用 ROP 吗? (我只关心性能原因),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285515/

相关文章:

php - 如何使用 php/javascript 从用户浏览器获取突出显示/选择数据?

javascript - 如何从数字列表中选出最小的数字?

java - 在 Java : loop variable vs enhanced for statement 中迭代数组的最快方法

sql - 稀疏连接中的 PostgreSQL 慢 WHERE 子句

bash - 通过 Bash 文件中的 for-loop 运行脚本是否强制它们是单线程的?

javascript - 是否真的需要使用第三方库在 <canvas> 中放置一个简单的文本框?

javascript - 在 Fabric.js Canvas 上集成 Flash 动画(或派生格式)

java - Java中限制窗口大小

javascript - 如何告诉 tween.js 等待纹理在 Three.js 中显示

JavaScript - 检测 NodeLIst 中被单击的元素的索引