问题标签 [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 回答
1329 浏览

opengl - 显示不全是三角形或四边形的 .obj 文件

我知道必须有一些索引魔术才能将 obj 文件转换为 OpenGL 的正确顶点/索引格式,但请考虑以下 .obj 文件:

脸不是三角形或四边形,这是否意味着我必须在 cpu 或 gpu 上进行某种镶嵌?这会是处理这种类型的几何描述的标准方法吗?

编辑:此外,是否有一个库可以进行不受限制许可的三角测量?

0 投票
2 回答
754 浏览

android - Android:使用 Min3d 库加载 Wavefront .obj 文件,由于 OutOfMemoryError,第二次启动崩溃

我正在使用 Android Min3d 库从 Wavefront .obj 文件加载和绘制 3D 模型。

该库工作正常(从 .obj 文件加载和绘图),但问题是当我关闭应用程序,然后我第二次再次启动它时,应用程序崩溃并在尝试创建位图时显示 java.lang.OutOfMemoryError网格纹理。我为 3D 模型(大小为 2048 x 2048)使用单个大纹理。

它在第二次启动时崩溃的事实是否表明 Min3d 框架中存在内存泄漏?

有没有人使用这个库遇到过这个问题?你如何解决这个问题?

我尝试阅读源代码,发现在 Min3D 将纹理发送到 GPU 后,纹理的位图总是被回收。所以我还没有发现任何泄漏。

你能告诉我在这种情况下可能出现什么问题吗?提前谢谢。

注意:如果我将纹理调整为 1024x1024,第二次启动不会崩溃,但应用程序会在第 4 次/第 5 次启动时崩溃。

0 投票
1 回答
458 浏览

android - 波前 obj 模型加载器索引问题

大家好,我很难让 .obj 波前文件使用 IBO 正确渲染。

现在我写了一个解析器,目前它非常简单,但它加载了顶点和法线。如果我绑定解析的顶点和法线,我会得到很好的结果,但如果我将索引绑定为 GL_element... 我会得到一团糟。

现在我已经为此工作了大约一个星期,我在这里检查了至少 20 页,最后决定问一个问题。

我不太确定出了什么问题,所以我带来了我的代码、我写到控制台的一些调试信息、我从程序中写出的文件、屏幕截图和视频。我真的希望这里有人可以帮助我度过这个难关。

粘贴箱:http : //pastebin.com/uZs74DSn

您可以从 pastebin 中看到,我已经通过从所有索引中减去 1 来说明 .obj 文件不是基于零的。

视频: 1. http://www.youtube.com/watch?v=tfqhDEMCjPA&feature=plcp猴子用 glarrays 解析和绘制。

  1. http://www.youtube.com/watch?v=SDeJk7sv2ZA&feature=plcp解析完全相同的模型,但使用 gldrawelements 绘制。

  2. http://www.youtube.com/watch?v=3_HS8Q7FXsk&feature=plcp球体解析和绘制 wigh gldrawelements

  3. http://www.youtube.com/watch?v=w6Oqy3JdTRg&feature=plcp我在 opengame 艺术中找到的模型,用 lineloops 渲染,但因为我使用了 glarray,所以它很好。

  4. http://www.youtube.com/watch?v=xHiCcK5QuE0&feature=plcp许多基本的形状被渲染并且光线充足,带有 glarrays。

我真的很茫然,希望有人能帮助我度过这个难关。我想继续学习着色器。这对外面的人来说可能是微不足道的,我希望他们能够停下来并给出指导意见!

蓝蜂

0 投票
1 回答
6408 浏览

c++ - Wavefront obj loader 与 c/cpp 的材料文件

我正在寻找一个支持加载材料属性文件的波前 obj 加载器。

基本支持最低标准

此外,我正在为我的向量和矩阵使用数学 glm 库,我正在寻找可以很好地集成这个的东西。

搜索选项时,我发现了另一个名为glm的库(令人困惑??),到目前为止,它看起来是最好的选择,虽然这比我需要的要多得多,但我只希望加载器不包含一组渲染选项。

到目前为止我看过的其他选项: - assimp,非常广泛,比我需要的要多得多

  • libwave,从 1996 年开始,想做渲染

  • libobj,看起来很有前途,但还不支持材料。

  • Libobj,也许是一个不错的选择,看起来它支持我需要的东西,但它缺少一些基本示例,需要我做一些工作才能将它与我的其余代码集成。

  • libwavefront 不支持素材文件

还有其他适合我的项目的现代选项吗?

0 投票
3 回答
2226 浏览

c++ - OBJ、缓冲区对象和面部索引

我最近在让顶点缓冲区对象工作方面取得了很大进展。所以我转向元素数组,我想通过这样的实现,我可以从 obj 加载顶点和面数据。

我不太擅长用 C++ 读取文件,所以我写了一个 python 文档来解析 obj 并编写 2 个单独的 txt 来给我一个顶点数组和面索引,并将它们直接粘贴到我的代码中。这就像 6000 行,但它可以工作(没有编译错误)。这就是它的样子

.

我认为他们错了。我不知道。顶点和面的顺序并没有改变,只是从 obj 中提取出来的,因为我还没有用于缓冲区对象的法线或纹理。如果你看立方体,我会这样做,但不是真的。

这是渲染代码

我的python解析器只是将信息写入文件:source

对象是英雄联盟的伊泽瑞尔

我不确定我是否看错了这些面孔,或者它们是否甚至不是我认为的那样。我想使用GL_TRIANGLE_STRIP还是别的什么。任何提示或请求更多信息。

0 投票
1 回答
1173 浏览

c++ - WaveFront .obj 加载器未按应有的方式显示对象(VBO 和 VAO)

我正在开发 WaveFront .obj 加载器,我的第一个目标是从以下 .obj 文件中加载所有顶点和索引(显示带有弯曲边缘的立方体)。

我已经将所有顶点和索引加载到两个向量中,称为 verticesVec 和 indicesVec,并且我已经检查了它们(它们的所有输入都以正确的顺序排列,verticesVec[0] = 0.9 和 indicesVec[0] = 1)。我加载 VertexBufferObject 中的顶点和 VerticArrayObject 中的索引以及着色器字段设置。

但是,当我渲染立方体时,我得到以下不正确的图像。我已经重新检查了所有代码,但找不到出错的部分。它与向量和向量的字节大小有关吗?

错误的立方体

以下代码来自我的 Draw/Render 方法,该方法执行所有渲染。

以及我的 .obj 加载器中缓冲区对象的初始化:

0 投票
1 回答
2455 浏览

c++ - OpenGL 无法正确渲染 .obj 文件

我的任务是导入一个 obj 文件并在 C++ 中加载它。

它正确加载文件但不正确地显示它。任何人都可以看到我的 opengl 设置有什么问题吗?:)

这是渲染看起来像 atm 的图片

0 投票
1 回答
356 浏览

c++ - OBJ 模型渲染差距

当我渲染使用自己构建的解析器解析的 OBJ Wavefront 模型时,渲染时得到以下结果:

在此处输入图像描述

存在的差距是正常的还是仅仅是由于错误的渲染代码造成的?

这是渲染代码:

0 投票
2 回答
980 浏览

java - OpenGL obj 文件无法在 JOGL 中正确渲染

我正在使用 JOGL 在 Java 中构建一个简单的Wavefront Obj 文件加载器和渲染器。然而,每当我加载一个简单的兔子测试网格时,它都会以一种有问题的方式渲染,我不知道是什么原因造成的。我只是使用几何顶点和法线,没有纹理或材料。

经历过的故障

该故障的另一个角度

以下是该init()方法的 GL 初始化代码:

这是我用来渲染模型的方法(目前是固定管道):

master包含所有面和顶点的主要“组”在哪里。我已经检查过了——所有东西都进入了主组,并且 glNormal3f 和 glVertex3f 被调用为每个三角形中每个需要的顶点。

谁能说出导致这些故障的原因?

编辑1:

这是我用来设置投影和模型视图矩阵的代码:

0 投票
0 回答
428 浏览

android - 从 obj 文件渲染对象并创建 VBO 结果混合纹理或黑屏

我想通过解析一个obj文件来渲染一个对象(android平台,opengl es 1.1)。解析没问题,我将所有数据(v、vn、vt)和索引正确存储在单独的数组中。当我尝试使用 glDrawElements 进行渲染时,对象绘制得很好,但纹理是混合的。我猜这是因为纹理坐标的索引与顶点不同,opengl 只使用顶点索引。我试图使 VBO 不能使用索引。但是这次当我调用 gldrawArrays 时,什么都没有绘制。(黑页)。请告诉我问题的原因是什么以及渲染此类对象的其他方法是什么。

这是我的代码的一些部分。如果您需要其他零件,请告诉我。这是 ObjectArr 类,它保存矩阵并创建 VBO 并绘制对象。

这是我的渲染器中的 unSurfaceCreated 和 onDrawFrame 方法。

我完全困惑和卡住了。我很感激任何帮助。tnx。