问题标签 [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 投票
2 回答
4649 浏览

android - 从 Wavefront OBJ 格式加载“索引”

我正在使用 OpenGL ES 2.0 开发一个 Android 应用程序。

我想以 Wavefront OBJ 格式加载使用 Blender 2.49b 制作的导出文件。我已经确定了顶点位置、法线和纹理。

我想使用 glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) 来绘制我的网格,但我不知道如何从 Wavefront OBJ 文件中获取最后一个参数索引。

面孔是我正在寻找的“指数”吗?

我在一个论坛上发现了这个:faces = 从 1 开始的索引!

“从 1 开始!”是什么意思?

谢谢。

0 投票
1 回答
485 浏览

c++ - 解析的一些技巧

我一直在尝试几个库将我的 .obj 模型加载/解析到我的 opengl 程序中。

以下是其中一些:

  • 内特罗宾斯,GLM

  • obj2opengl(最远的一个) by heiko

还有其他一些不起作用的装载机。

我对这些的主要问题是未定义的错误。而且由于我从许多不同的人(原始代码的编辑者)那里尝试了 GLM,所以也许这是我做错了。

所以我的问题是:

  • 我应该为 opengl(PC 类型)使用什么 obj 加载器?

  • 如果我要自己解析 obj 文件,那么我应该如何保存顶点?(最快/最有效)也有优缺点的选择会更好

我在 Windows 32 位(7 和 vista)上使用代码块/MinGW。

0 投票
1 回答
286 浏览

mesh - 将镜像操作分配给顶点数组

我了解在 .obj 顶点数组中翻转顶点坐标以获得跨平面/轴的镜像坐标的数学。但是,如何为实际的镜像操作填充顶点数组(而不是仅仅翻转)

0 投票
2 回答
259 浏览

c++ - 加载 OBJ 时,我得到了这个

这次我已经成功加载了一个模型!耶!!

但是有一个小问题,我在另一个 obj loader 上遇到的问题......

这是它的样子:

http://img132.imageshack.us/i/newglitch2.jpg/

如果你不能马上看到,这里有另一个角度:

http://img42.imageshack.us/i/newglitch3.jpg/

现在这应该看起来像一个立方体,但是正如你所看到的,立方体上的面的边缘非常不稳定

有没有其他人有这个问题,或者如果有人知道如何解决这个问题,请告诉我

如果需要显示任何代码,也可以评论,我很乐意发布它。

嘿,我玩弄了代码(更改了一些东西),这就是我想出的

原来的:

结果:杂乱无章的图像(看图像)

当前的:

结果:模型没有波涛汹涌但不能移动相机(模型就在我面前)

0 投票
1 回答
5377 浏览

android - 在 Android OpenGL ES 中使用 Wavefront .obj 的纹理坐标的问题

我正在使用 openGL ES 编写一个 android 应用程序。我遵循了一些在线教程,并设法使用硬编码的顶点/索引/纹理坐标加载了一个纹理立方体

作为下一步,我为波前 .obj 文件编写了一个解析器。我使用教程中的顶点等制作了一个模拟文件,加载良好。

但是,当我使用使用 3d 建模包制作的文件时,所有纹理都会变得混乱

以下是我目前获取纹理坐标的方式:

首先,我将所有纹理坐标加载vt到一个大向量中

接下来我找到每个f三角形的前两个纹理坐标(所以 f 1/2/3 2/5/2 3/4/1 意味着我取第二和第五个纹理坐标。由于 .obj 从 1 而不是 0 开始计数,我必须从该位置-1,然后将位置乘以2以获得x坐标位置,并为我的vt数组中的y坐标位置执行相同但+1)

我将刚刚找到的那些纹理坐标添加到另一个向量中。

一旦我通过了所有的顶点。我将向量转换为 FloatBuffer,将其传递给glTexCoordPointer我的绘图方法

下面是解析文件的代码:

这是绘图的代码:

我真的很感激这方面的任何帮助。不能从文件中加载模型令人沮丧,我真的不确定我做错了什么或错过了什么

0 投票
1 回答
1451 浏览

simd - SIMD 上可以容纳的波前数

我正在阅读一篇关于 AMD GPU 的文章,并且对一个特定的例子感到困惑。给定一个带有多个寄存器的 SIMD 单元,如果需要 x 个寄存器,有多少波前可以占用一个 SIMD?

具体来说,如果一个 SIMD 单元有 16k 个寄存器可以在 1-32 个波前之间共享。那么这意味着每个波前平均可以有 8 个寄存器(如果有 32 个波前)。这可以。

然后继续说 SIMD 上的波前数量有一个全局限制,约为 20.6,这将为每个波前提供 11-12 个寄存器。

这部分让我感到困惑。它接着说,如果它们使用 83 个或更多寄存器,则只有 2 个波前可以占用一个 SIMD。(回想一下波前是 64 宽)。

在我的计算中: 2 * 83 * 64 = 10628 registers这远低于每个 SIMD 给出的 16,384 个。因此,您可以有 3 个波前没有问题。

如果有我遗漏的东西,我会在这里阅读这篇文章。(第 7 段)

0 投票
1 回答
1413 浏览

.net - 是否有用于将 Wavefront .obj 文件转换为 XAML 的库?

我有大量Wavefront .obj文件需要转换为 XAMLMeshGeometry3D元素。我可以通过在 Microsoft Expression Blend 中导入它们并复制 XAML 来手动执行此操作,但如果我可以自动执行该过程,将会有很大帮助。

是否有任何库(最好是 .NET,但我会采取任何措施)来做到这一点?

0 投票
1 回答
3178 浏览

opengl - 使用 OpenGL 渲染 Wavefront OBJ 和相关的材质 MTL

我有这些文件:sample.obj、sample.mtl 和一个包含图像 jpg 的文件夹示例。有人可以给我一个使用上述输入的opengl纹理映射示例代码吗?

0 投票
1 回答
541 浏览

java - 将大尺寸数组保存到android上的文件

我正在使用 3D OpenGL ES 视图创建 android 应用程序,该视图将由从波前 obj 文件导入的 3D 模型组成。一个典型的 Wavefront obj 文件将只包含三角对象,它可能看起来像:

最后,所有这些都将转换为一个(一维)浮点数组。问题是这个文件很大,将它作为字符串加载,处理需要大量时间。(我们需要将文件加载到行中,然后将它们拆分为令牌,这需要大量时间和内存)我正在寻找替代方法和解决方案来存储一个准备好的数组。我唯一的想法是读取 .obj 文件并创建所需的数组。之后序列化数组,每次下一次执行应用程序时只需读取序列化数组。这是一个好主意还是在android上有其他更好的方法。请记住,有大量数据需要处理!我正在寻找的是好的解决方案,我认为我们不需要关心硬盘上的空间只关心加载时间和内存使用!

0 投票
5 回答
11412 浏览

c++ - 使用 C++ 解析 Wavefront .obj 文件

在尝试解析波前 .obj 文件时,我想到了两种方法:

  1. 创建一个顶点数大小的二维数组。当一个面使用一个顶点时,从数组中获取它的坐标。
  2. 获取顶点列表的起始位置,然后当面部使用顶点时,扫描线直到到达顶点。

IMO,选项 1 将非常占用内存,但速度要快得多。由于选项 2 涉及大量文件读取,(并且因为大多数对象中的顶点数量变得非常大),这将慢得多,但内存密集度较低。

问题是:比较内存和速度之间的权衡,哪个选项更适合普通计算机?而且,有没有替代的方法?

我计划使用 OpenGL 和 GLFW 来渲染对象。