【问题标题】:What are some libraries for doing a 3d orbiter with <canvas>?有哪些库可以用 <canvas> 制作 3d 轨道器?
【发布时间】:2011-06-23 04:31:45
【问题描述】:

我正在寻找一个 3-d 轨道飞行器,因此,我显然需要透视图、相机移动等。我还需要能够将纹理应用到几何体。考虑到复杂性,除了&lt;canvas&gt; 或 flash 之外,我没有看到这种情况发生。

据我了解,&lt;canvas&gt; 仅限于 2d,但您可以使用 JS 完成所有 3d 工作,只需将 2d 投影输出到画布中即可。我的理解就到此为止了,搞清楚这一切似乎相当复杂。

问题 #1: 有哪些 3d 图形库可以提供我需要的基本功能(3d->2d 透视投影、纹理、相机动画和平移的流畅用户输入、变焦、倾斜、推车等相机)?

问题 #2: 在提供此类功能的非专有库中,我可以自己找到(three.js 和 C3DL),它们似乎都需要 webGL。这种类型的事情是否需要 webGL,或者对&lt;canvas&gt; 的支持是否足够?如果不需要 webGL,如果我不做任何会拖累 CPU 的事情,还有什么理由使用它?

注意:除非有人另有建议,否则我将继续尝试学习 three.js 来完成这项工作。

【问题讨论】:

  • 什么是 3D 轨道飞行器?听起来很有趣。
  • @LarsH 基本上是一系列导航控件,允许用户使用相机进行缩放、卡车/推车、围绕焦点旋转等——这些功能对于 3D 建模包很常见,例如作为 3DSMax、Maya 等。请参阅下面的 solarcoordinates.com 链接以查看我的滞后,但主要是第一次尝试。
  • 所以,不一定是航天器模拟?我看到了您的第一次尝试,到目前为止看起来非常成功,但想知道焦点会显示什么。太阳系?
  • @LarsH 你可以用这样的引擎做各种各样的事情。例如,参见 mrdoob.github.com/three.js/examples/webgl_materials_cars.htmlmrdoob.github.com/three.js/examples/… 。他们的摄像头导航能力较差,但尽管如此,仍有很多潜力可以制作出很酷的东西——游戏引擎,你可以说它。

标签: canvas webgl


【解决方案1】:

首先,Canvas 绝不“限于”2D。有一个 2D 上下文,如果你真的想要,你可以用它制作 3D 场景(见下文)。正如您所说,还有用于 3D 渲染的 WebGL 上下文使用不同的规范。

要回答 #2,WebGL 绝不是必需的。例如,这个库仅使用 2D 画布上下文来投影 3D:

http://arc.id.au/Canvas3DGraphics.html

还有几个投影纹理/旋转物体的例子,例如:

http://acko.net/files/projective/index.html

要回答 #1,上面有链接库,但它确实是我见过的唯一一个使用 2D 上下文的库。

【讨论】:

  • 你好,西蒙。在调查了此事后,我发现为three.js制作的示例使用了普通的画布功能和WebGL。我对普通画布three.js 示例进行了一些修改,并提出了这个:mrdoob.com/projects/voxels/#A/…(我添加了使用鼠标滚轮进行缩放以及 ctrl+click&drag 的功能。接下来的案卷是“卡车运输”或“扫射”相机。)
  • 对不起...那是错误的链接。这是我的修改:solarcoordinates.com/three/voxels.html#A/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多