【问题标题】:three.js to webGL to OpenGL三.js 到 webGL 到 OpenGL
【发布时间】:2016-05-14 12:47:04
【问题描述】:

我想获取一个 three.js 代码,并可能将其转换为 webGL 或者最好是 OpenGL 代码,以便我可以在我用 Python 开发的独立程序中使用它。有什么直接的方法吗?

【问题讨论】:

    标签: python opengl three.js webgl


    【解决方案1】:

    据我所知,没有任何简单的方法。

    尽管如果您了解 OpenGL,“了解”是指您几乎可以完成任何任务,从渲染大量顶点到执行纹理、光照和阴影映射等。

    然后您可以简单地转到任何 Three.js og WebGL 应用程序。

    这里以 Three.js 应用为例。

    然后您可以查看 Three.js/WebGL 脚本的源代码。您可以在其中自动理解其中的大部分内容。喜欢。

    var geometry = new THREE.CubeGeometry(100, 200, 300);
    

    我们可以很容易地假设上面的代码将创建一个 3D 立方体,其中(100, 200, 300) = (width, height, length)。现在我们知道我们需要创建一个新的VAO 和/或VBO 来计算顶点,正如我们在示例中看到的那样,立方体是有纹理的,所以我们知道我们需要存储顶点和缓冲区内的纹理坐标。

    基本上你可以像这样阅读所有内容。这里还有一些例子。

    renderer.setSize(window.innerWidth, window.innerHeight);
    

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

    另外,Three.js 只是一个构建在 WebGL 之上的 JavaScript 库。

    【讨论】:

    • 太棒了。在 OpenGL 之上是否有任何库(类似于 three.js)可以让 OpenGL 程序员更轻松?我只是不想花很多时间在平面 OpenGL 上做事。我的结果的 3D 可视化仅占我整个项目的 20%,我更喜欢使用一些库。
    • 我不太明白你的意思,你能解释得更好吗?
    • 或者是的,有很多 OpenGL 包装器和实用程序库。虽然我不明白您所说的“我只是不想花很多时间在平面 OpenGL 上做事”是什么意思?好吧,如果您不想使用 OpenGL 进行渲染,那么请尝试使用我猜的其他东西。
    • 实际上我的代码的结果是一堆坐标,应该连接起来以展示某种大片。想象一下,给定 1000 条贝塞尔曲线的控制框坐标。我必须以 3D 交互方式可视化所有这些曲线。我有一个正确的代码,它使用 three.js 和 WebGL。我必须在 Python 中完成相同的任务,这就是为什么我要在 python 中寻找一个没有 OpenGL 复杂的好的 3D 渲染库。你知道这方面的任何事情吗?
    • 哦,现在我明白了。嗯,我并不是真的专门研究 OpenGL,所以我当然主要使用 OpenGL。虽然也有 DirectX,但这也是一个像 OpenGL 这样的高级库。也无法说您是否应该学习 OpenGL 或 DirectX,它们中的任何一个都比另一个更容易。虽然如果你想让你的程序跨平台(Windows、Mac、Linux、Solaris、Android 等),那么请选择 OpenGL,因为 DirectX 只存在于运行 Windows 的设备上。
    猜你喜欢
    • 2013-07-02
    • 2014-12-07
    • 2014-01-23
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多