首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式插入3D模型中的框架

以编程方式插入3D模型中的框架
EN

Stack Overflow用户
提问于 2015-05-01 03:09:12
回答 1查看 1.9K关注 0票数 1

背景

我正在做一个项目,用户会被Kinect (v2)扫描。结果将生成一个适合于游戏使用的3D模型。

扫描方面进行得很好,我已经生成了一些好的用户模型。

示例:

注意:这只是一个早期的测试模型。它仍然需要清理,需要改变立场,以正确读取骨架数据。

问题

我目前面临的问题是,我不确定如何在生成的3D模型中放置骨骼数据。我似乎找不到一个能让我以编程方式将骨架插入到3D模型中的程序。我希望通过我可以编程控制的程序来实现这一点,或者通过调整3D模型文件的方式将骨骼数据包含在文件中。

我试过什么

我一直在谷歌和StackOverflow上寻找类似的问题,但它们通常指的是运动捕捉或骨骼动画。我知道玛雅可以选择在3D模型中插入骨架,但据我所知,这总是手工完成的。也许对我想要解决的问题有一个更技术性的术语,但我不知道。

我确实有一个如何实现骨架插入的思路。我想是这样的:

  1. 扫描用户,用Kinect生成三维模型; 1.2。清洁用户模型,消除任何变形或不必要的信息。关闭清理过程中留下的洞。
  2. 使用Kinect扫描用户骨骼数据。 2.2。提取骨架数据。 2.3。获取连接位置并将其存储为三维空间的xyz坐标。保存骨头长度和方向。
  3. 读取能够创建骨架的程序中的3D骨架数据。
  4. 使用插入的骨架保存新模型。

问题

有人能推荐(我知道,这可能是“基于意见的”)一个程序来读取骨骼数据并将其插入到3D模型中吗?有可能利用玛雅来达到这个目的吗?

提前谢谢。

注意:我选择在这里发布这个问题,而不是在Graphics Design (或其他Stack Exchange站点)上发布,因为我觉得这与编码有关,也许对将来在这里搜索的人更有用。如果它在错误的网站上发布,很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-30 11:46:06

你问题的一个棘手的部分是你所说的“插入骨架”是什么意思。通常,骨骼数据与几何非常独立,并且存储在场景图中的不同位置(骨数据本质上是分层的)。

有些文件格式您可以导出到那里,您可以在几何和骨架之间建立某种关联,但这是非常特定的格式,您如何将两者联系在一起(例如: FBX和Collada)。

最接近“插入”,或更恰当地说,“将”骨架贴在网眼上的东西可能是剥皮。在这里,你计算重量分配,基本上确定每个骨头对你的网格中的一个顶点有多大的影响。

这是一个很难得到正确的部分(包括编程和艺术),并根据您的质量需要,往往是一个半自动的解决方案充其量最高质量的需要(商业游戏,电影等)。艺术家们费尽心机地调整产生的重量分配和/或骨架。

在确定这些权重分配时,有一些算法非常复杂,从简单的启发式(比如根据最近的直线距离来分配权重)(非常粗糙,并且常常在骨盆或肩部等棘手的区域附近)或那些实际上将网格看作实体体积(使用体素或四面体表示)来分配权重的算法。示例:http://blog.wolfire.com/2009/11/volumetric-heat-diffusion-skinning/

然而,您可能能够获得不错的结果,使用一种算法,如delta,它允许您得到一个有点马虎与重量分配,但仍然得到了相当平滑的变形。

如果你想在外部做这个,几乎任何3D动画软件都可以,包括像Blender这样的免费软件。然而,一般来说,皮肤和人物动画往往需要相当多的艺术技巧和耐心,所以值得注意的是,这并不像看上去那么容易让角色跳跃、跳舞、蹲下、奔跑,即使你事先有了一副骨架也是如此。从骨架到几何学的重量关联是最难的部分。这往往是艺术家花了很多时间仔细研究变形的结果,目的是为了让他们在各种各样的姿势中看起来都是对的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29981133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档