three.js到webGL到OpenGL

5

我希望能够将一个three.js代码转换成webGL或OpenGL代码,以便在我正在用Python开发的独立程序中使用。有没有直接的方法可以做到这一点?

1个回答

5
据我所知,没有简单的方法。
但是,如果您了解OpenGL,其中“了解”是指您可以执行几乎任何任务,从渲染大量顶点到执行纹理、光照和阴影映射等操作。
然后,您可以简单地转到任何Three.js或WebGL应用程序。
这里有一个Three.js应用程序作为示例。 然后,您只需查看Three.js/WebGL脚本的源代码。在那里,您可以自动理解大部分内容。
var geometry = new THREE.CubeGeometry(100, 200, 300);

我们可以轻松地假设上述代码将创建一个三维立方体,其中 (100, 200, 300) = (width,height,length) 。现在我们知道我们需要创建一个新的VAO和/或VBO,我们将计算顶点,并且正如我们在示例中看到的那样,该立方体是纹理化的,因此我们知道我们需要在缓冲区中存储顶点和纹理坐标。
基本上,您可以像这样阅读所有内容。以下是更多示例。
renderer.setSize(window.innerWidth, window.innerHeight);

这当然会设置显示的大小。

Three.js是建立在WebGL之上的JavaScript库。


1
非常好。是否有以OpenGL为基础的库(类似于three.js),可以使OpenGL程序员的工作更加轻松?我不想在纯OpenGL上花费大量时间来做事情。我的结果的3D可视化仅占整个项目的20%,我更喜欢使用一些库。 - MostafaMV
我不太明白你的意思,能否更好地解释一下? - vallentin
或者说,有很多OpenGL包装器和实用库。但是我不明白你所说的“我只是不想花太多时间在使用普通OpenGL上”是什么意思?如果你不想使用OpenGL进行渲染,那么,我猜你可以尝试使用其他东西。 - vallentin
实际上,我的代码的结果是一堆坐标,应该连接起来展示某种轨迹。想象一下,你被给予了1000条贝塞尔曲线控制框的坐标。我必须以3D交互方式可视化所有这些曲线。我有一个适当的代码,使用three.js和WebGL实现了它。我必须在Python中完成同样的任务,因此我正在寻找一个不像OpenGL那样复杂的好的3D渲染库。你知道相关的任何东西吗? - MostafaMV
1
哦,现在我明白了。嗯,不完全是这样,我专攻OpenGL,所以我主要使用OpenGL。虽然也有DirectX,但那也像OpenGL一样是一个高级库。无法确定你应该学习OpenGL还是DirectX,因为它们中没有一个比另一个更容易。但是,如果你想让你的程序跨平台(Windows、Mac、Linux、Solaris、Android等),那么选择OpenGL,因为DirectX只存在于运行Windows的设备上。 - vallentin
只是为了表达我的看法,在2020年,没有任何其他编程语言或环境可以与Three相媲美。我很震惊地发现这一点,因为我真的很想在Python中工作(不必在使用科学可视化技术、3D建模甚至实时引擎时跳转语言),经过评估了大约6-8个工具后,没有什么能与Three相比。我非常喜欢在大型JS代码库中工作,几乎没有遇到语言本身的问题,我整天在JS和PY之间工作。如果你能使用JS,请使用Three。 - Chris Barry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接