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

visual-studio-2010 - Using .obj Files in VC++ Projects

I have a Win32 console project in VS2010 and I added an .obj file to the solution that I exported from Blender (it's a simple cube), but I get a LNK1107 error saying it can't read at 0x107 when I run or build the project. I tried going to Project > Properties > C/C++ > Additional Directories and named the .obj file there and put my file under the same directory as my source code and that didn't fix it.

0 投票
2 回答
5228 浏览

c++ - 使用 Wavefront Obj 了解法线索引

我编写了一个无法正常工作的 C++ Obj 文件加载器。问题是在解析一个简单的 obj 文件时,如下所示:

我无法理解将法线传递给 OpenGL 的正确方法。我总是得到这样的结果:在此处输入图像描述

ObjLoader.h

ObjLoader.cpp

我应该如何重新组织法线以使其反映顶点的相同顺序?

0 投票
1 回答
2824 浏览

three.js - Three.js - 碰撞检测 - Obj Wavefront

我正在尝试使用 three.js 在建筑物内(整个建筑物是一个 obj 模型)构建一个虚拟游览。一切都很好,图书馆非常简单。我最关键的问题是我无法用相机实现碰撞检测,我尝试使用光线但我找不到适合我的案例的示例。

我的模型负载:

相机创建(我不知道它是否与问题有关)

注意:相机在模型内移动,我不想检测两个单独的 obj 模型之间的碰撞,我想检测一个模型内的碰撞(并阻止相机穿过墙壁)。

任何帮助将不胜感激

0 投票
1 回答
144 浏览

java - 如何用“/”和“//”分割字符串?

我正在尝试为 Wavefront Object 文件创建一个基本的模型查看器,并且文件的部分读取包括分割每一行。面是根据斜线定义的。这些是可以从维基百科解析的不同类型的面孔:

我一直在逐步阅读每一行,如果它以“f”开头,我会在删除整行的前两个字符以创建面部后将其发送到另一个方法。

例如f v1 v2 v3会去v1 v2 v3

当我必须处理带有斜线的线条时,我认为我将它们分开是错误的,因为我没有得到正确的结果。我目前正在使用这两个拆分:

这是否会产生问题,因为 split 参数应该是一个正则表达式,而我试图按正则表达式中常用的(我相信是)字符进行分割?

0 投票
1 回答
2884 浏览

python - Python 3.3 - 从规则间隔的顶点创建 3D 网格作为 Wavefront obj 文件

我正在 Python 3.3 中编写一个简单的命令行程序,它读取 xyz 坐标的文本文件并在两者之间输出一个等效的三角形面。导出格式为 Wavefront obj 文件 ( https://en.wikipedia.org/wiki/Wavefront_.obj_file )。该算法仅用于处理来自地球的高分辨率卫星扫描的规则间隔点。实际上,我正在使用一组大约 340000 个点并在顶点四元组之间创建 2 个三角形。外部迭代在 x 方向上进行,而内部迭代在 y 方向上进行。因此,在 y 方向上为每个顶点创建成对的三角形面,直到它在 x 方向上移动并重复该过程。我将向您展示基本模式(线条是面部边缘):

代码似乎可以正常工作,因为在 Blender 或 MeshLab 中导入文件会给出合理的结果,除了一件事:面部对的所有条纹似乎都没有与沿 x 轴的邻居相连。演示问题的渲染图片: 未连接的条纹

通常,不同的面条纹之间不应该存在垂直偏移,因为它们沿内部边界(-线)共享相同的顶点。使用较少顶点和更常见的低坐标值的测试成功。该方法运行良好。也许问题不在于我的网格生成器,而在于 Blender、MeshLab 等的坐标限制。

这是在返回字符串中生成面部并将所有内容缝合在一起的函数:

输入到函数中的 verts-variable 具有二维列表的形式,类似于:

我希望你们中的一些人能帮助我摆脱困境。如果有什么需要更多解释的,请告诉我,我会将其添加到第一篇文章中。

0 投票
1 回答
2077 浏览

json - 使用 libgdx 将 .OBJ 转换为 JSON 格式

我正在开展一个项目,我们需要将 .OBJ 模型即时转换为 .G3DJ (JSON) 格式。我已经尝试过使用我在谷歌代码中创建的代码。

https://code.google.com/p/libgdx-users/wiki/ImportingModelsFromBlender

但是StillModelG3DExporter不能在 libgdx 中找到。

有任何想法吗?

0 投票
1 回答
236 浏览

c++ - 解析结果自动连接成向量

我编写了一些规则来将浮点数解析为两个 std::vector 的浮点数,它们又存储在一个结构中:

数据输入:

结构:

以及相关的解析代码:

这有效。它将所有以“v”开头的浮点数解析为结构的顶点向量,并将所有以“vn”开头的浮点数解析为范数。这很棒,但我真的不知道为什么会这样。

现在,如果我正确理解这一点,如下定义的规则会将其所有结果放入浮点数的 std::vector 中。

因此,查看上面显示的解析代码并知道像 vertex 这样的规则会解析为 float 的 std::vector,显然像 vertexList (如上所示)这样的规则将来自 vertex 的结果连接到一个 std::vector 的 float ? 所以看到这种行为,你会认为你可以把这两个规则(顶点和顶点列表)写成一个,但不幸的是这不起作用:

代码确实编译并且 qi::phrase_parse 确实返回了一个成功的解析,但是结构中的 std::vector 不再填充了。我在这里缺少什么?

0 投票
1 回答
1534 浏览

c++ - 解析成几个向量成员

我想递归解析一个字符串并将结果存储在一个结构中。我编写了一个可以处理一次迭代的解析器。输入格式如下:

问题是它只解析前 4 行,它在遇到的第三个“v”处停止。完整的代码如下。如何修改此代码,以便它还将输入的其余部分解析为同一个结构?我尝试将启动规则从start = vertex >> elementsto修改start = *(vertex >> elements),但这只会产生巨大的编译错误。也一样start = +(vertex >> elements)。任何想法我应该如何修改规则?

PS:如果需要,可以在这里找到编译错误。

编辑:我正在尝试编写 Wavefront .OBJ 解析器。这里给出的输入只是我的问题的简化。

0 投票
1 回答
154 浏览

c++ - 只有第一个对象在 OBJ 中具有法线

我一直在制作一个 .obj 文件加载器类。在某一时刻,我试图加载包含多个对象的 obj 文件,但我无法让它工作。

现在我意识到,当您将 Blender 中的多个对象导出到 obj 文件中时,只有第一个对象具有法线。有没有办法让它给所有的物体法线,还是我必须自己开始计算它们?

这是一个 obj 文件中的两个立方体。你可以看到只有第一个有“vn ...” 线。

0 投票
1 回答
170 浏览

javascript - Three.js 无法将字符串转换为浮点数

我正在使用 convert_obj_three.py [链接]将简单的 OBJ 转换为 Three.js 格式。

我首先尝试了一个带有平面 UV 贴图的立方体,它起作用了。
现在我正在尝试同时使用一个球体和一个圆柱体,脚本告诉我:

即使我没有给出-t 二进制属性。

.OBJ 是用 Rhinoceros 4 制作的。
你可以在这里下载:http ://www.filedropper.com/test_15

有人可以解释一下问题出在哪里吗?

PS:我也试过只用球体,错误是一样的。