【问题标题】:Tool to convert ThreeJS code to WebGL?将 ThreeJS 代码转换为 WebGL 的工具?
【发布时间】:2015-08-02 23:21:06
【问题描述】:

有人知道存在的 ThreeJS 到 WebGL 转换器吗?或者,您能否给我一些关于如何制作 ThreeJS 到 WebGL 转换器的见解?

【问题讨论】:

  • Three.js 将根据其“对象模型”的参数构建一系列 WebGL 命令。它将 JavaScript 属性转换为纯 WebGL 代码......基本上,Three.js 完全按照您的要求,通过将 JS 转换为 WebGL
  • 是的,但我将如何导出实际的 WebGL 代码?例如,我如何从html5canvastutorials.com/three/html5-canvas-webgl-rotating-cube 中获取 WebGL 代码
  • 顺便说一句,这是一般性的,并不是专门针对任何人的,但是如果 A. 他们不确定它在问什么或 B. 没有,为什么有人会否决这个问题或任何其他问题不太在意去调查它。请记住,这里的人们只是想学习注意这一点。
  • @AlexW 那么有没有办法在浏览器编译之前导出 WebGL 代码,使用 chrome 开发工具之类的?
  • 您需要挖掘其核心中的 Three.js 输出。好久没熟悉了,不过它会在这个文件github.com/mrdoob/three.js/blob/master/src/renderers/…中将参数传递给WebGL上下文

标签: javascript opengl-es three.js webgl


【解决方案1】:

Three.js 是一个基于 WebGL 的 3D 渲染引擎,或者我应该说是库。

Three.js 所做的都是纯 WebGL,不需要任何形式的转换。代码只是有点抽象,因此您无需手动创建缓冲区、启用顶点数组和创建着色器,只需加载模型、选择材质并发出绘图调用。

Three.js 代码已经是 webGL 代码,只是糖衣,所以更容易使用。

关于 WebGL 和 OpenGL。 WebGL 就像一些旧版本的 OpenGL。虽然 OpenGL 的较新版本 (4.x) 具有许多新功能,但 WebGL 与 OpenGL 2.0 (ES) 规范非常相似。这意味着缺少功能,但是代码可以很容易地在 OGL2.0 和 WebGL 之间转换。

WebGL 是一个 JavaScript API。这意味着您在 JavaScript 中编写特定于 WebGL 技术的函数,这些函数实际上与您的 GPU 通信。因此 JavaScript 是用于编写支持浏览器的 3D 应用程序的语言,而 WebGL 函数是与 GPU 的接口。

因此,据我了解,您希望使用 Three.js 将其转换为(好吧,提取)WebGL 代码,然后将其转换为 OpenGL。

正如我所说,Three.js 实际上是 WebGL,但使用了许多漂亮的 JavaScript 功能,因此在绘制 API 函数时将 JavaScript/WebGL 代码转换为 Cpp/OpenGL 应该很简单,但数据结构可以痛。

关于 OpenGL 到 DirectX 的转换 - 这可能会更复杂,因为 DX 是一个面向对象的绘图 API,而 OpenGL 是一个状态机。另外,函数名和数据结构也大不相同。

【讨论】:

  • 好的,那么我要克隆three.js 存储库并尝试从build->three.js 中提取WebGL API 调用吗?此外,我需要指导来完成这件事,因为我对 WebGL 没有太多经验。所有其他事情都是经过思考我只需要从 ThreeJS 库中提取 WebGL 代码,是否有任何实用程序可以做到这一点?
  • 简短回答 - 是的,手动提取。工具 - 没有。您将逐步完成代码、执行阶段和您需要的“转换”部分。使用调试选项来检查代码,但没有任何工具可以完成 90% 的工作。所有的 webGL 都在 Three.js 中,但你需要找到你感兴趣的部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2012-12-29
  • 2012-04-08
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
相关资源
最近更新 更多