问题标签 [meshlab]
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.
matlab - 推送 OBJ 文件的顶点 - 编辑 .obj
我有一个 .obj 3D 模型,我想在其中移动一些给定长度的曲面顶点。我怎么能做到这一点。
对于较小的文件,我可以在记事本中打开它并编辑顶点位置。但是当模型变大时,这变得不可能了。
MATLAB?尝试使用工具箱加载有点大的 3D 模型。这需要很多时间 :( Meshlab 可能吗?-找不到提前谢谢。
mesh - 生成损坏的大层文件 - 如何找到错误
我刚刚编写了一个 java 类来从存储到 ply 文件的圆柱列表中生成网格。我使用手动生成的 3 个气缸列表测试了这些文件。我可以在 Meshlab 和 Cloudcompare 中打开生成的文件。当我在我的真实程序中使用这个类时,我必须为超过 13000 个圆柱体编写一个网格。Cloudcompare 给我以下错误:读取错误(没有访问权限?)
Meshlab 这一篇: 错误详情,出乎意料的eof
我已经检查了我的层文件是否包含标题中定义的确切数量的顶点和面。我还保证,没有包含 nan(在 winedit 中检查 'n'、'a' 等)值。
通过删除最后一行,我可以从 3 个手工制作的圆柱体文件中重现我的测试文件中的错误。但如前所述,我已经检查了行号是否正确(可能是我眼睛没有看到的空行,因为向下滚动半百万行是不可能的)。
那么是否有任何程序可用于解析 ply 文件中的错误?开源工具将在这里受到赞赏。还是文件太大了?确切地说是436302行。我使用 ply 的 ascii 版本。
file - 在 MeshLab 中删除内部面,而不是所有内部结构
我有一个由连续立方体组成的 stl 文件,如下所示:
我需要删除立方体的所有共享面,这样结构就变成了一个连续的实体。
请注意,我不能只删除所有内部结构。物体是中空的,必须保持其内部结构。我只想删除相邻立方体的共享面。
MeshLab有没有办法做到这一点?谢谢,
import - Assimp 与 MeshLab 波前对象 (.obj) 导入
我想知道为什么当我使用 Assimp 库导入 Wavefront 对象文件(.obj)时,它会使某些顶点加倍,我在 Assimp SourceForge 讨论中找到了以下答案(http://sourceforge.net/p/assimp/discussion/ 817654/thread/026e9640/?limit=25#ba6c):
想象一下:您将一系列顶点上传到显卡。然后,您通过索引缓冲区告诉 GPU,您希望第一个三角形由顶点 3、6 和 7 组成。第二个三角形是 1、2 和 6。会发生什么?GPU 会为您绘制一个立方体,但立方体的每个角都将共享相同的 UV 数据、法线向量、顶点颜色或您的网格所需的任何其他内容。
现在我们如何获得一个立体角,但在接触该角的所有侧面都获得不同的 UV 映射?我们不能告诉 GPU “使用顶点 3,但不要使用该顶点的 UV 坐标,而是请使用 UV 坐标”。GPU 无法做到这一点。这就是为什么有必要在那个角落复制顶点。现在您有两个顶点用于相同的位置,但具有不同的 UV 坐标。
这就是 Assimp 正在为您做的事情。如果您确实指定了 JoinIdenticalVertices,您将获得一个具有 24 个顶点的立方体。为什么?一个立方体有 8 个角,但每个角有 3 个立方体面相接触,每个立方体面都为该角设置了不同的 UV 坐标,因此您最终会得到每个角的 3 个版本。如果您不指定 JoinIdenticalVertices,您将获得一个没有任何重用的普通顶点数组。这意味着您需要 2 个三角形,每个立方体的每个边都有 3 个顶点,最终有 36 个顶点。
另一种方法是使用 3D uv 坐标和立方体贴图来纹理该立方体。这是一个仅适用于多维数据集的特殊情况,但在那里它会起作用。然后 GPU 在内部映射到 6 个纹理。上面的描述是一般情况,它适用于您可能遇到的每个网格。
这确实有道理。
假设我不知道 MeshLab 如何处理 .obj 导入操作,如果我找到的答案是正确的,那么当我导入这样的对象时,顶点计数器不会增加?仅仅是他们如何进行计数的问题,还是有办法导入 .obj 文件而不必在顶点有法线/切线/UV时拆分它们?
php - Meshlabserver:无法连接到 X 服务器错误
我在运行 Ubuntu 14.04 操作系统的机器上安装了 meshlab。我可以使用meshlabserver
命令从命令行访问它。但是每当我尝试使用命令从 php 脚本调用它时,就会出现问题
它显示了错误meshlabserver: cannot connect to X server
。在浏览了几个网站后,我做了以下事情:
我将meshlabserver
可执行文件从移动/usr/bin
到/usr/local/bin
并使用
但是当我whoami
从我的 php 脚本(调用meshlabserver
)运行命令时,它显示www-data
. 所以我给了所有用户的可执行meshlabserver
权限
但它仍然显示相同的meshlabserver: cannot connect to X server
错误。meshlabserver
从命令行运行时,comamnd 工作正常。
我真的需要meshlab
从我的网站的 php 脚本中调用。因此,任何帮助将不胜感激。提前致谢。
3d - 我可以从网格生成点云吗?
我正在尝试从 Maya 的 (.obj) 文件等网格生成点云数据。但是,我只能找到相反的情况,点云在互联网上网格化。有什么方法可以使用 MeshLab 或 Maya 等 3D 工具创建“来自网格的点云数据”?(我更喜欢使用 MeshLab)
谢谢。:)
3d - 如何在 2 个相似的网格之间映射纹理
我在 .obj 3D 网格文件中使用 3D 扫描仪捕获了 2 个对象模型。这 2 个网格代表同一个对象,但实际网格不同(由于捕获过程中的小误差和噪声)。尽管如此,这两个网格仍然完美对齐。
我想将其中一个中的纹理复制到另一个中。我正在寻找一种将纹理从网格 B 中最近的节点“复制”到网格 A 中的方法。
我如何使用 Meshlab 或 Blender 来实现这一点?
c++ - 自动网格聚合/合并/对齐
我正在寻找可用的开源“自动”网格合并软件/工具箱。我使用Meshlab从点云构建网格。我也可以使用 Meshlab 进行网格对齐,但问题是它是交互式的,我必须从网格中选择点。对自动网格聚合有什么建议吗?我的最终目标是让它成为实时。
PS 合并点云也可以。
geometry - 点云:需要表面重建帮助(meshlab)
我是 meshlab 的新手,正在尝试重建一个 stl 文件,该文件存在许多问题,例如 700 多个自相交面、非流形边缘和翻转三角形。我要修复的部分是一个太阳镜框架,只是为了给你一些视角。我能够使用 Netfabb 删除翻转的三角形,这减少了自相交面的数量。我试图通过使用 Meshlab 中“清理和修复”选项卡中的功能来解决其余问题,例如删除非流形边和相交面;但是,我无法单独解决“清洁和修复”选项卡中功能的所有问题。因此我决定将网格转换为点云,从“采样”选项卡计算法线并尝试表面重建:泊松。
谁能给我一个逐步的大纲,说明如何将点云转换回具有表面重建的网格,同时保持零件的尺寸完整性并避免自相交面?或者,如果您有任何其他建议,我将非常乐意倾听。
谢谢!
graphics - 带有纹理坐标的 PLY 文件规范
出于某种目的,我需要读取带有嵌入纹理的 PLY 文件(斯坦福三角格式)。我看到了 PLY 文件的多个规范,但找不到指定纹理映射语法的单一来源。似乎有很多库可以读取 PLY 文件,但其中大多数似乎不支持纹理(它们只是崩溃;我尝试了其中的 2-3 个)。以下是具有纹理的层文件的标题:
我不明白的是线property list uint8 float texcoord
。与人脸对应的列表也是
这个清单是什么?格式是什么?虽然我知道 PLY 让您有机会为元素定义自己的属性,但处理纹理似乎几乎是一种标准,并且相当多的应用程序(如流行的 Meshlab)似乎使用上述语法打开带纹理的 PLY 文件.
我想知道读取带纹理的 PLY 文件所遵循的标准语法是什么,如果可能的话,是从哪里找到这些信息的来源。