问题标签 [wavefront]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - Cinema 4D .obj 文件无法正确导入
我有一个用 ActionScript 编写的解析器,用于导入 .obj 文件。然后我在 Molehill 中渲染它们,这太棒了。到目前为止,我可以导入我认为具有 x、y、z 顺序或 z、x、y 顺序顶点的标准 .obj 文件。但是,从 Cinema 4D 导出的任何 .obj 文件都会失败。
例如,四面体甚至不渲染 z 分量(.obj 文件的索引具有适当的 z 深度!)。一个简单的立方体缺少一半的三角形面。我听说 Cinema 4D 以 x、z、y 的顺序导出,所以我也试图解释这一点,但没有运气。实际上,顶点顺序不应该导致丢失多边形。
有没有人从 .obj 文件导入 Cinema 4D 网格?有什么特别的技巧吗?Cinema 4D 是否忽略了 Wavefront .obj 标准?提前感谢您的帮助。
更新:我认为罪魁祸首是多边形的索引数据是一组 4 而不是 3。例如,我想要这个:1/1 2/2 3/3 但不是这个:1/1 2/2 3/3 4/4。Cinema 4D 将 .obj 文件导出为后者。无论如何要在解析端或 Cinema 4D 导出端解决这个问题?
Update2:现在索引数据是我想要的方式,但我仍然无法正确渲染。以下是正四面体。当我尝试渲染它时,四个面中只有两个出现:
上面的内容有什么奇怪的吗?(如果我有一个从同一个四面体的另一个标准 3D 软件导出的 .obj 文件会有所帮助)
graphics - 轻量级波前 obj 模型解析器
我正在寻找一个轻量级的 c++ 波前 obj 解析器。此外,我需要以下能力:
- 连接相邻的平面三角形以形成多边形。
- 也从 obj 文件中读取曲线
我考虑过 glm 和 assimp,但它们没有提供上述内容。有人可以建议一些东西。
parsing - 解析 Wavefront .obj 纹理坐标的问题
我正在为 OpenGL ES 2.0 在 objc 中编写自己的 .obj 解析器,以便更好地了解 OpenGLES 的工作原理。加载顶点并显示带有顶点颜色的模型就像一个魅力。只是一个小提示:我正在使用索引缓冲区。
真正的问题是纹理 atm 的映射。正如您将在下面看到的那样,我的纹理没有按照应有的方式映射。
这是我认为 .obj 格式的工作原理,如果我错了,请纠正我:“f”行描述了一个面,其中斜线之前的数字定义了顶点的索引,斜线之后的数字定义了纹理坐标.
考虑以下 .obj 文件(由 Cinema 4D 导出):
以及以下纹理:
现在,当我在 OpenGL ES 3D 空间中定位顶点并尝试将纹理坐标映射到每个单独的顶点时,映射会出错。我可以通过移动一些纹理坐标值来解决这个问题,但我意识到这不是解决问题的方法。我还尝试编辑我的一些 .obj 导出器设置以翻转轴和/或 uv 映射,但它们都不会导致正确的映射。关于 .obj 文件格式,我的理论中有什么遗漏吗?我可能已经说过一件事:我昨天读到 .obj 格式的坐标系统将左上角定义为纹理的锚点。所以我已经在解析中修复了这个问题。
以下是对当前情况的一个小总结: 更新:纹理的坐标系是实际的 .obj 纹理坐标系,而不是 OpenGL 的坐标系。我在我的解析算法中翻译坐标来解决这个问题。
c++ - 在波前对象文件(.obj)中,我应该如何在 opengl 中渲染具有 4 个以上顶点的面?
那么使用Wavefront 对象文件我应该如何在 OpenGL 中渲染具有超过 4 个顶点的面?
我知道如果它有 3 个我使用的顶点GL_TRIANGLES
,如果它有 4 个我使用GL_QUADS
,但如果它有 5 个或更多,我应该使用什么?有标准吗?
python - PyOpengl 和 PyQt 性能
我编写了一个 Wavefront OBJ 加载器,它可以工作,但 FPS 在 500 个多边形后下降到 ~3,1000 个多边形等于 ~10 秒延迟,2000+ 个多边形等于冻结和崩溃。
我的 C++/Qt 应用程序加载大约 15-20 FPS 的 100 万个多边形,我怀疑 PyOpengl(ctypes) 和 PyQt(sip) 包装器。
有没有人试图将高分辨率模型加载到 PyOpengl 和 PyQt 应用程序中来帮助我?
编辑:我为 OBJ 加载器使用了“顶点缓冲区对象”,所以与 CPU 无关。
model - Obj 模型文件和动画
我正在尝试使用 opengl 加载 obj 模型加载器,我加载了 obj 模型,但我没有足够的关于 obj 模型上的动画的信息。我认为,对于动画来说,带有 obj 模型文件的文件更多。那么你能解释一下文件的内容吗?如何加载文件?
android - opengl es 2.0 纹理坐标
我为 android 编写了一个简单的模型查看器,它解析 .obj 波前文件以创建 3d 模型。我正在导出一个简单的 icosphere,该 icosphere 已使用来自搅拌机的 uv 贴图以这种格式提供
“v”表示顶点,“vt”表示纹理坐标,“f”表示面,正斜杠之前的值为顶点对应的索引,斜杠之后的值为纹理坐标对应的索引。我的问题是我不确定如何将纹理坐标索引输入到 opengl 中,所以我当前的模型看起来很奇怪,因为纹理坐标不匹配。
c++ - OpenGL 3.x .obj 加载器与 ADS Phong “看起来像血管一样”的球体
我一直在尝试使用 OpenGL 3.x 核心配置文件制作自己的基本 .obj (Wavefront) 渲染器。我正在使用 OpenGL SuperBible 第 5 版。以及 Swiftless 教程作为参考资料。
几何图形似乎可以正确加载,所以现在我正在尝试让 ADS Phong 照明模型工作,但有些问题很棘手,我认为这与我的 OpenGL 调用或我正在加载的方式有关我的法线,但我似乎无法弄清楚如何解决它。(我猜这也可能是其他问题,因为我不是 OpenGL 专家)。
渲染一个简单的立方体时,它看起来几乎是正确的,但一侧有一个奇怪的光点:
渲染球体时,光照显示为“静脉”:
我的代码显然有问题。以下是我认为可能相关的代码部分。如有必要,我很乐意发布更多/所有代码......让我知道我是否应该发布更多。
文件:objFileRenderer.cpp
文件:shader.cpp
文件:shader.vert
文件:shader.frag
我知道有很多东西需要看,但我很乐意得到一些帮助来解决这个问题,所以提前感谢任何有时间帮助我解决这个问题的人!
c++ - 为 HalfEdge Mesh 加速 .obj 文件加载器的方法?
我正在开发一个 3D OpenGL (C++) 应用程序,其中我有自己的基于半边数据结构的网格结构。我想构建一种简单的方法来将 Wavefront obj 文件加载到我的网格结构中。当然,我可以逐行天真地这样做,但必须有一些更有效的方法(我知道专业应用程序不会天真地逐行加载文件,对于数百万个顶点来说太慢了)。
谁能指点我一个教程或一个非常快速的 OBJ 加载器的例子?如果它与半边数据结构有关,那将是更可取的。
编辑:
我希望解决两个基本问题
1) 避免从文件中读取浮点数的一般缓慢
2)我如何智能地动态确定每个边缘的“相邻”半边。我正在想象某种散列函数来确定正在创建的边的对称边或下一条边是否已经存在,如果存在,则使用该指针。