你可以使用canvas.getContext('3d')吗?如果是的话,怎么办?

问题描述 投票:0回答:4

我读过有关 HTML5 中的 canvas 标签的内容,并且总是看到

getContext('2d')

参数是'2d',那么有没有像'3d'这样的另一种可能性?
而且,你怎么用它?我之前尝试过 3D,但并没有真正理解(由于没有解释的教程)。有教程吗?

html canvas html5-canvas
4个回答
58
投票

canvas 有一个 3D 上下文,但它不叫

"3d"
。相反,有
"webgl"
(针对 WebGL API)和
"webgpu"
(针对较新但较低级别的 WebGPU API)。


36
投票

WebGL 应该在所有浏览器的最新版本中可用。用途:

<!DOCTYPE html>
<html>
 <body>
 <canvas id='c'></canvas>
  <script>
    var c = document.getElementById('c');
    var gl = c.getContext('webgl') || c.getContext("experimental-webgl");
    gl.clearColor(0,0,0.8,1);
    gl.clear(gl.COLOR_BUFFER_BIT);
</script>
</body>
</html>

你如何使用它?我以前尝试过3D,但没有真正做到 了解

  • 如果您认为“真正的”语言很难,那么您在使用 WebGL 时就会遇到很多麻烦。在某些方面它的水平相当高,而在其他方面它的水平又相当低。你应该温习数学(几何)并为一些艰苦的工作做好准备。
  • Three.js 是一个非常受赞赏的库,它允许您在不直接处理 webgl 的情况下完成大量 3D 工作,请检查一下。

22
投票

可以获得一个 WebGL 上下文,它可以让您访问该 API,从而实现类似 OpenGL ES 2.0 的 3D 渲染。


13
投票

大多数浏览器尚未实现 3d 上下文。我相信 Opera 的一个实验版本提供了这一功能,FF 的一个插件也提供了同样的功能,但它们都还没有准备好迎接黄金时段。您必须等待广泛采用和实施。

我认为 JavaScript 比真正的编程语言更简单

Javascript 是一种“真正的”编程语言。作为一种高级语言并不意味着它成为玩具或假货(这是来自一个系统人员,在您看来,他每天都用“真正的”编程语言编写代码)。

© www.soinside.com 2019 - 2024. All rights reserved.