有没有人知道存在的ThreeJS到WebGL转换器?另外,您能否给我一些关于如何制作ThreeJS到WebGL转换器的见解?
答案 0 :(得分:8)
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是一个状态机。此外,功能名称和数据结构非常不同。