问题标签 [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.
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.
c++ - 使用 Wavefront Obj 了解法线索引
我编写了一个无法正常工作的 C++ Obj 文件加载器。问题是在解析一个简单的 obj 文件时,如下所示:
我无法理解将法线传递给 OpenGL 的正确方法。我总是得到这样的结果:
ObjLoader.h
ObjLoader.cpp
我应该如何重新组织法线以使其反映顶点的相同顺序?
three.js - Three.js - 碰撞检测 - Obj Wavefront
我正在尝试使用 three.js 在建筑物内(整个建筑物是一个 obj 模型)构建一个虚拟游览。一切都很好,图书馆非常简单。我最关键的问题是我无法用相机实现碰撞检测,我尝试使用光线但我找不到适合我的案例的示例。
我的模型负载:
相机创建(我不知道它是否与问题有关)
注意:相机在模型内移动,我不想检测两个单独的 obj 模型之间的碰撞,我想检测一个模型内的碰撞(并阻止相机穿过墙壁)。
任何帮助将不胜感激
java - 如何用“/”和“//”分割字符串?
我正在尝试为 Wavefront Object 文件创建一个基本的模型查看器,并且文件的部分读取包括分割每一行。面是根据斜线定义的。这些是可以从维基百科解析的不同类型的面孔:
我一直在逐步阅读每一行,如果它以“f”开头,我会在删除整行的前两个字符以创建面部后将其发送到另一个方法。
例如f v1 v2 v3
会去v1 v2 v3
当我必须处理带有斜线的线条时,我认为我将它们分开是错误的,因为我没有得到正确的结果。我目前正在使用这两个拆分:
这是否会产生问题,因为 split 参数应该是一个正则表达式,而我试图按正则表达式中常用的(我相信是)字符进行分割?
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 具有二维列表的形式,类似于:
我希望你们中的一些人能帮助我摆脱困境。如果有什么需要更多解释的,请告诉我,我会将其添加到第一篇文章中。
json - 使用 libgdx 将 .OBJ 转换为 JSON 格式
我正在开展一个项目,我们需要将 .OBJ 模型即时转换为 .G3DJ (JSON) 格式。我已经尝试过使用我在谷歌代码中创建的代码。
https://code.google.com/p/libgdx-users/wiki/ImportingModelsFromBlender
但是StillModel
并G3DExporter
不能在 libgdx 中找到。
有任何想法吗?
c++ - 解析结果自动连接成向量
我编写了一些规则来将浮点数解析为两个 std::vector 的浮点数,它们又存储在一个结构中:
数据输入:
结构:
以及相关的解析代码:
这有效。它将所有以“v”开头的浮点数解析为结构的顶点向量,并将所有以“vn”开头的浮点数解析为范数。这很棒,但我真的不知道为什么会这样。
现在,如果我正确理解这一点,如下定义的规则会将其所有结果放入浮点数的 std::vector 中。
因此,查看上面显示的解析代码并知道像 vertex 这样的规则会解析为 float 的 std::vector,显然像 vertexList (如上所示)这样的规则将来自 vertex 的结果连接到一个 std::vector 的 float ? 所以看到这种行为,你会认为你可以把这两个规则(顶点和顶点列表)写成一个,但不幸的是这不起作用:
代码确实编译并且 qi::phrase_parse 确实返回了一个成功的解析,但是结构中的 std::vector 不再填充了。我在这里缺少什么?
c++ - 解析成几个向量成员
我想递归解析一个字符串并将结果存储在一个结构中。我编写了一个可以处理一次迭代的解析器。输入格式如下:
问题是它只解析前 4 行,它在遇到的第三个“v”处停止。完整的代码如下。如何修改此代码,以便它还将输入的其余部分解析为同一个结构?我尝试将启动规则从start = vertex >> elements
to修改start = *(vertex >> elements)
,但这只会产生巨大的编译错误。也一样start = +(vertex >> elements)
。任何想法我应该如何修改规则?
PS:如果需要,可以在这里找到编译错误。
编辑:我正在尝试编写 Wavefront .OBJ 解析器。这里给出的输入只是我的问题的简化。
c++ - 只有第一个对象在 OBJ 中具有法线
我一直在制作一个 .obj 文件加载器类。在某一时刻,我试图加载包含多个对象的 obj 文件,但我无法让它工作。
现在我意识到,当您将 Blender 中的多个对象导出到 obj 文件中时,只有第一个对象具有法线。有没有办法让它给所有的物体法线,还是我必须自己开始计算它们?
这是一个 obj 文件中的两个立方体。你可以看到只有第一个有“vn ...” 线。
javascript - Three.js 无法将字符串转换为浮点数
我正在使用 convert_obj_three.py [链接]将简单的 OBJ 转换为 Three.js 格式。
我首先尝试了一个带有平面 UV 贴图的立方体,它起作用了。
现在我正在尝试同时使用一个球体和一个圆柱体,脚本告诉我:
即使我没有给出-t 二进制属性。
.OBJ 是用 Rhinoceros 4 制作的。
你可以在这里下载:http ://www.filedropper.com/test_15
有人可以解释一下问题出在哪里吗?
PS:我也试过只用球体,错误是一样的。