问题标签 [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.

0 投票
1 回答
371 浏览

unity3d - 隐藏纹理网格的三角形边缘

我自动为 3D 网格生成纹理,其中每个三角形面都将三角形关联到纹理文件中。它正在工作,但在渲染时有可见的黑边。(不仅在 Unity 上)

为什么会有黑边?我怎样才能自动摆脱它们?

渲染 立方体渲染

纹理:cube.obj.png 质地

立方体.obj

mtllib 立方体.mtl

立方体.mtl

0 投票
2 回答
855 浏览

c++ - 带有 Boost Spirit 的 OBJ 解析器 - 忽略注释

我正在尝试使用 Boost Spirit 库编写一个基本的 OBJ 文件加载器。虽然我使用标准 std::ifstreams 让它工作,但我想知道是否可以使用内存映射文件对整个文件执行短语解析,因为它似乎提供了此处发布的最佳性能。

我有以下代码,它似乎运行良好,但是当文件中有注释时它会中断。所以,我的问题是如何使用 Spririt 忽略 OBJ 文件中以“#”开头的注释?

当没有注释或除顶点/法线之外的任何其他数据时,上述代码运行良好。但是当有不同类型的数据时,解析器会失败(因为它应该),我想知道是否有一种方法可以让它工作而无需返回解析每一行,因为它更慢(在我的测试中几乎是 2.5 倍) . 谢谢!

0 投票
1 回答
413 浏览

c++ - 使用 Directx 11 的 obj 文件格式

拥有 obj 文件的组件(纹理、法线和顶点的分隔值具有自己的索引)。是否可以将纹理、顶点和法线值分别发送到缓冲区?

0 投票
1 回答
191 浏览

wavefront - 将波前 obj 模型相互包含

有没有办法将多个wavefront obj文件包含在一个文件中?

我的朋友告诉我,includeobj 中肯定有一些关键字,它允许我创建 obj 文件,例如:

但我在文档中找不到这样的命令 。

我希望能够创建这样的文件来组合不同的其他 obj 文件。我不想通过一些 3d 编辑器(将几何图形合并为一个)合并两个 obj 文件。

有这样的命令吗?

0 投票
1 回答
892 浏览

android - 编写 Wavefront OBJ 解析器以与 OpenGL 索引顶点缓冲区对象一起使用

我正在尝试为我的 Android OpenGL ES 2.0 程序编写一个基本的 Wavefront OBJ 加载器。现在,我忽略了 OBJ 文件中的所有内容,除了顶点、法线和面。这是我到目前为止所写的:

但是,我不确定我是否正确设置了法线。你在我的代码底部看到我在做什么了吗?我正在尝试重新排列法线,使它们与顶点的顺序相匹配。我这样做是因为我正在使用 GLES20.glDrawElements() 方法,如下所示:

经过无数小时的谷歌搜索后,我从这个网站得到了重新安排的想法。

但是,有些事情不太对劲。我的着色器中的光照适用于我使用 OpenGL 手动创建的所有形状,但不适用于我使用 OBJ 解析器读取的模型,所以我认为我的光照计算不是问题,只是计算法线的方式我的 OBJ 解析器。另外,我用 Maya 打开了我的测试 OBJ 文件,并使用“顶点法线编辑工具”直观地验证所有法线都指向正确的方向。我的任何代码都有什么明显的问题吗?

0 投票
1 回答
49 浏览

opengl-es-2.0 - OpenGLES20 和 Wavefront - 值是否太高?

尝试解析 OBJ(波前)文件以在 OpenGL ES20 中绘制它我遇到了一个我不知道如何解决/解决的问题:

该文件恰好有 50,000 (50k) 个顶点,全部用于面。当我加载对象时,我将面解析为索引,它必须是 UNSIGNED_SHORT,不幸的是在 Java 中不可用,我使用的是 Shorts,它以大约 32k 结尾。因为我有比这更多的顶点和面,所以我得到了 NumberFormatException。

我应该如何在不删除顶点的情况下解决这个问题?任何解决方法?

0 投票
1 回答
279 浏览

android - OpenGL ES20 - Wavefront -> glDrawElements -> 没有金字塔,但是形状很奇怪?

编辑2:

解决方案:复制粘贴错误:发送颜色缓冲区作为位置缓冲区。


解析代表金字塔的 .obj(波前),在必要的地方进行三角测量,将其全部传递到缓冲区中。缓冲区如下所示:

顶点缓冲区:

颜色缓冲器:

普通缓冲区:

指数缓冲区:

在我的脑海中组合顶点+面时,它等于一个金字塔,就像它应该的那样。简单的模型。我是这样画的:

但是有一个对象,它看起来并不像金字塔,因此“摇晃”,即如果我翻译它(没有旋转,但代码看起来像这样(并且在绘图之前执行):

在我看来,索引好像没有正确传输?不幸的是,只画了金字塔的一侧。

我必须为 glDrawElements 函数使用其他值吗?如果需要,我可以发布翻译动画的屏幕截图或屏幕截图。非常感谢您的帮助!

编辑:

如果这与它有任何关系:

我打电话给这些:

0 投票
1 回答
1670 浏览

opengl - 如何使用 GLM 对象加载器从 OBJ 文件中获取 OpenGL 中的顶点数据?

我正在使用以下教程在 OpenGL 中绘制网格: https ://www.d.umn.edu/~ddunham/cs5721f07/schedule/resources/lab_opengl07.html

在该站点,有指向用于加载 OBJ 网格的GLM源文件的链接。我能够使用这种技术成功绘制网格。但是,我需要能够获取网格的顶点(比如在矢量中)以进行分析和操作。如何才能做到这一点?

0 投票
1 回答
1259 浏览

opengl - 在 OpenGL 上映射 Wavefront .obj 纹理顶点

一位艺术家给了我所有的 3D 模型,让我导出为 .obj 和 .mtl,以便我可以使用 OpenGL 渲染它。

但我不明白为什么纹理顶点大于 1 有时是负数。看看这个例子:

他向我发送了 TGA 格式的所有纹理,我正在正确加载它,但我无法将这些vts 映射到正确的 OpenGL 纹理矢量。

0 投票
1 回答
1781 浏览

c++ - 如何使用 openframework 的 ofMesh 正确导出 .obj?

我正在使用ofxFaceTracker并尝试导出面部网格:

面部跟踪器网格

图片来源

我试图像这样导出它:

但是在 osx 上我无法打开网格(使用 meshlab/blender/wings3d 尝试过)。我已经设法用犀牛在窗户上打开了相同的网格,它看起来大多像一张脸,但有些顶点真的扭曲/在错误的位置,所以我的猜测是我对索引做错了,但不是确定什么/如何。

这是一个导出的 .obj 示例:

关于如何正确将此网格导出为 .obj 的任何提示/提示?