问题标签 [3d-model]

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 投票
6 回答
61960 浏览

image-processing - 3D 重建 -- 如何从 2D 图像创建 3D 模型?

如果我用相机拍照,所以我知道相机到物体的距离,比如房子的比例模型,我想把它变成一个我可以操纵的 3D 模型,以便我可以评论房子的不同部分。

如果我坐下来考虑拍摄不止一张照片、标记方向和距离,我应该能够弄清楚如何做到这一点,但是,我想我会问是否有人有一些论文可以帮助解释更多。

你用什么语言解释并不重要,因为我正在寻找最好的方法。

现在我正在考虑展示房子,然后用户可以在高度方面提供一些帮助,例如从相机到模型那部分顶部的距离,并且如果足够多,就可以开始计算高度其余的,特别是如果有自上而下的图像,然后从四个侧面的角度拍摄,以计算相对高度。

然后零件的颜色需要不同,以帮助区分我期望的模型的各个部分。

0 投票
1 回答
1129 浏览

java - Kinect 3D 角色网格动画

我正在使用 Java 和 Processing 编写代码,试图用从 Kinect 接收到的数据为角色设置动画。我成功地创造了一个重​​复我动作的火柴人。但是,我发现从 OBJ 文件加载的 3D 网格比这更难。我一直在整个互联网上搜索以查找有关此的任何信息,但找不到任何明智的信息。我知道它可能涉及骨头等,但同样,没有图书馆可以做到这一点,也没有涉及该主题的文章。我将不胜感激 - 建议、图书馆、资源、链接..

0 投票
1 回答
348 浏览

ipad - 在 iPad 应用程序中查看和交互 3d 模型

我想问你如何显示从 blender/3d max/maya 导出的 3d 模型并在 iPad 应用程序上与之交互。

我想将 3d 人头加载到我的UISplitViewController详细视图中

在此处输入图像描述

头部会旋转,例如当我遇到噪音时,我希望它突出显示,当我点击它时,它会将我带到另一个UIViewController

我已经搜索过它,我想出了使用 HTML5,但它很难使用。

我想出了使用 Cocos3d 和其他引擎,但我如何在普通应用程序中使用它,而不是游戏。

你能告诉我应该从哪里开始吗?

任何帮助将不胜感激。

0 投票
2 回答
13188 浏览

c# - 如何在 WPF 应用程序中动态导入 3D 模型

我已经搜索了很长时间,但找不到合适的方法。当用户选择模型时,如何在运行时在 WPF 应用程序中导入 3D 模型。它可以内置在任何一种流行的 3D 建模软件中,3DS max、Maya、Blender 等,而不是全部。需要导入 .3DS、.MAX、.FBX、.obj 等格式中的任何一种。

如果有可用的免费库,请提及它们,如果我必须自己编写代码,请指导如何以及从哪里开始。

0 投票
1 回答
2715 浏览

python - 原始浮点编码

更新 原来的问题不再是这个问题的合适问题,所以我将不理会这个问题,以展示我尝试/学到的内容和背景。很明显,这不仅仅是“Base64 变体”,而且涉及更多。

背景: 我在python 3.x中编程主要是为了与开源程序Blender一起使用。我是一名新手/业余级别的程序员,但我非常了解这些大概念,我已经阅读了与我的问题相关的这些文章。

问题: 我有一个二进制文件,其中包含对应于每个顶点(浮点数)的 x、y、z 坐标和构成网格面的顶点索引的 3d 网格数据(浮点数列表和整数列表)(整数)。该文件以一种xml'ish的感觉组织......

这是“顶点”字段中的示例

  1. “ Vertices ”和“ /Vertices ”之间有685506字节的数据
  2. 这些字节仅包含 aa、AZ、0-9 和 +,/,这是 base64 的标准
  3. 当我抓取这些字节并在 python 中使用标准 base64decode 时,我得到了 513792 个字节
  4. 如果可以相信 vertex_count="42816",那么每个顶点应该需要 42816*12bytes 来表示 x,y,z。42816*12 = 513792。非常好。
  5. 现在,如果我尝试将解码的字节解压缩为 32 位浮点数,我会得到垃圾......所以有些东西是 ammis。

我在想某处有一个额外的加密步骤。也许有翻译表、旋转密码或某种流密码?奇怪的是字节数是正确的,但结果却不应该限制可能性。有任何想法吗?下面是两个文件扩展名更改为 *.mesh 的示例文件。我不想公开这种文件格式,只想为 Blender 编写一个导入器,以便我可以使用模型。

这是两个示例文件。我已经从 Vertices 和 Facets 字段中提取了原始二进制文件(不是 b64 解码的),并从公司提供的此类文件的“查看器”中提供了边界框信息。
示例文件 1

示例文件 2

关于顶点字段的说明

  • 标头指定 vertex_count
  • 标头指定 base64_encoded_bytes,这是发生 base64 编码之前的字节数
  • 标头指定了一个“check_value”,其重要性尚未确定
  • 字段中的数据只包含标准的base64字符
  • 在标准 base64 解码后,输出数据具有...长度 = vertex_count*12 = base64_encoded_bytes。b64 输出中偶尔会多出 4 个字节?- 编码/解码字节的比率是 4/3,这也是典型的 base64

关于 Facets 字段的说明

  • 标头指定了一个 facet_count
  • 标头 base64_encoded_bytes 是发生 base64 编码之前的字节数

  • base64_encoded_bytes/facet_count 的比率似乎变化很大。从 1.1 到大约 1.2。如果将它们编码为对应于顶点索引的 3x4 字节整数,我们预计比率为 12。所以要么这个字段被压缩,要么模型被 三角形带保存,或者两者兼而有之:-/

更多窥探
我打开了公司提供的 viewer.exe(在十六进制编辑器中)以查看这些文件(也是我获得边界框信息的地方)。这里有一些我觉得有趣的片段,可以进一步搜索。

f_LicenseClient...Ì.@......m_wApplicationID......@......f_bSiteEncryptionActive......@......f_bSaveXXXXXXInternalEncrypted......@...... ..f_bLoadXXXXXXInternalEncrypted...¼!@......f_strSiteKey....í†......

在 LoadXXXXXXInternalEncrypted 和 SaveXXXXXXInternalEncrypted 中,我用 XX 屏蔽了公司名称。看起来除了简单的 base64 表变体之外,我们肯定还有一些加密。

SaveEncryptedModelToStream........Self...pUx....Model...^ÃC....Stream....

在我看来,这就像一个关于如何保存加密模型的函数定义。

DefaultEncryptionMethod¼!@........ÿ.......€...€ÿÿ.DefaultEncryptionKey€–†..ÿ...ÿ.......€... .ÿÿ.DefaultIncludeModelData –†..ÿ...ÿ.......€...€ÿÿ.DefaultVersion.@

啊……现在这很有趣。默认加密密钥。请注意,每个描述符之间有 27 个字节,它们总是以“ÿÿ”结尾。这是 24 个字节,不包括“ÿÿ”。对我来说,这是一个 192 位的密钥……但谁知道是否所有 24 个字节都对应于密钥?有什么想法吗?

80 96 86 00 18 00 00 FF 18 00 00 FF 01 00 00 00 00 00 00 80 01 00 00 00

代码片段
为了节省这个线程的空间,我把这个脚本放在我的下拉框中以供下载。它读取字段,从顶点和面字段中提取基本信息,并打印出一堆东西。您可以取消注释末尾以使其将数据块保存到单独的文件中以便于分析。
basic_mesh_read.py

这是我用来在标准 base64 库上尝试所有“合理”变体的代码。 try_all_b64_tables.py

0 投票
3 回答
57 浏览

language-agnostic - 存储一个“例程”,给定一些输入,生成一个 3d 模型

嗯,现在是我忙于我的下一代尖端研发项目的一年(只是为了好玩……也许最终会获得一些利润)。

这一次,我对一项服务有了一个很棒的想法,不幸的是我不能详细说明。

但是,该项目的主要部分是能够根据某些输入标准生成 3d 模型。生成的模型在每一代都必须不同。

因此,这与游戏中使用的静态模型有很大不同——我认为我将不得不存储实际代码而不仅仅是模型坐标。

举一个输出的例子:

所以我需要在这里解决一些问题:

  1. 如何将这些模型存储为数据?
  2. 你知道任何可能有帮助的工具吗?
  3. 我需要加入一个随机因素(例如,苹果每次的形状都会略有不同)
  4. 我想数学在这里会起到很好的作用,但由于这些是复杂的形状,为每个模型制定必要的公式是不可行的,对吧?
  5. 此外,纹理必须与模型的每个部分相关,以及使模型看起来随机(例如;我可以为生成的苹果详细说明 40% 到 60% 的红色,其余部分为绿色)。
0 投票
0 回答
412 浏览

opengl - 如何使用 libg3d 将波前模型加载到 OpenGL

我正在做我的论文项目。我需要一些帮助来尝试将波前 (.obj) 模型加载到 OpenGL。我一直在寻找,我找到了可以让你加载各种 3d 模型格式的Libg3D 。

我在理解如何加载模型以及是否可以通过 libg3d 将模型加载到我的 opengl 应用程序时遇到问题。

0 投票
1 回答
2616 浏览

android - OpenGL ES Android 的 3D 模型格式

当我使用 XNA 模型格式时,很明显是 .X 或 .FBX,它们有骨骼,所以我能够进行动画和碰撞检测,它们可能拥有我需要的一切。但现在我开始使用 Android 和 OpenGL ES,我似乎找不到任何关于首选模型格式的信息,我一直看到 .OBJ 但它们不支持骨骼,我也读过一些关于 collada 和 md5 格式的东西,但在那里听说过加载它们有问题吗?还有关于 min3d 的建议,但我不喜欢使用第三方东西的想法。

有人可以解释一下模型和 OpenGL ES 的情况,为什么没有首选的明显选择(至少从我的角度来看),我应该采用什么格式或解决方案?

这也是我的第一个问题,如果我没有正确解释自己或犯了任何其他问题错误,请写下建议。

0 投票
1 回答
2191 浏览

android - 使用 QR 码渲染 3D 模型

我想使用 QR 码在相机中渲染 3D 模型。我一直在使用android 4.0平台。我的问题是——

  1. 如何将 3D 模型存储在 QR 码中?(因为我看到了 url、文本、位置等的生成器,但没有 3D 模型)

  2. 我是否必须使用任何 AR 跟踪算法(例如 NyARToolkit - ARToolkit android 版本)?如果是,那么同步将如何发生?

我有点迷路了。请帮忙。

提前致谢!

这是一个例子

0 投票
4 回答
3099 浏览

3d - 当前哪个 WebGL 库支持大多数 3D 模型格式(以及哪些)?

搜索了一段时间,但不知道当前哪个 WebGL 解决方案支持最多的 3d 格式。我还需要知道它们支持哪些 3d 格式。

这些信息是否有更新的比较或表格?

像copperlicht之类的东西?替代?

我们想直接使用本机格式,因此始终无法手动将它们转换为 json