【发布时间】:2017-06-07 18:05:49
【问题描述】:
当我编写如下代码时:
var x = document.createElement("canvas");
var ctx = x.getContext("2d");
--------
--------
当我编写如下代码时:
var canvas = document.createElement('canvas');
var gl = canvas.getContext('experimental-webgl');
--------
--------
a) 以上两个 - 都将在 GPU 中运行??
b) 两者都被视为 Webgl 编码??
【问题讨论】:
-
这两个代码很可能是 gpu 加速的(尽管第一个可能是 cpu 在旧浏览器上呈现的)。只有第二个是 webgl,它公开了一组与第一个不同的函数。
-
我有一个用“2d”编写的代码,我希望它在“experimental-webgl”中运行。我如何使用/将 2d 代码转换为 webgl ...,因为我想在 GPU 中运行我的代码。
-
2d 和 webgl 上下文具有非常不同的 API(以及不同的目的),因此没有简单的方法来翻译代码。但是,2d 画布在现代浏览器上默认是 gpu 加速的。看看这个:http://stackoverflow.com/questions/32815646/is-canvas-element-in-html5-hardware-accelerated
-
感谢弗朗索瓦的快速回复!我在浏览器上执行了 chrome://gpu/ 发现:“Canvas:硬件加速”,这意味着我的 2d 上下文代码也将在 GPU 中运行,对吧? (不需要 webgl 上下文)
-
您可以将 2d 画布移植到 webgl 纹理。结合起来区分的好方法。
标签: webgl openlayers-3