浏览器中的人体三维建模?

时间:2015-01-19 16:28:38

标签: three.js html5-canvas webgl 3d-modelling

我目前正在开展个人项目(服装电子商务网站),我想为客户创建一个虚拟试验室。为此,我将他们的身高,体重和体形等作为输入,并根据这些输入我想要动态创建他们身体的3D模型。然后他们可以从衣服中挑选,看看它们在这些模特身上的样子。

经过一些研究后我才知道,为了实现这一点,three.js和webgl应该是我的主要武器。

此外,我遇到了这个令人敬畏的网站https://zygotebody.com/,我发现它非常鼓舞人心,这里太先进了,我只想创建他们的3D模型。

我真的很感激如果你们能指导我正确的方向,并指出一些方法来实现这一目标。我知道我没有对此进行全面研究,但在这里提出这个问题也是我研究的一部分。我不想从错误的方向开始,所以我认为一些专业建议没有坏处。

谢谢。

3 个答案:

答案 0 :(得分:2)

一种方法是在3D软件(Blender,Lightwave,3DMAX,Maya等)中创建变形目标。使用3D软件可以为您提供更多工具来操纵基本形状。您还可以从Smith Micro中查看Poser,它可以在内部变换身体模型并将其导出为变形目标(但检查使用这些导出对象的许可证)。

然后可以使用这些变形目标将基础对象插入各种形状 - 甚至组合。

你会为腿创建一个变形目标,一个用于武器,一个用于腹部等。这些将被称为变形通道。然后使用基线的线性插值对变形目标中的每个点进行插值,以将形状变形为所需的形状。

这种方法并不需要你重新映射点或顶点等。只需逐点进行插值。

答案 1 :(得分:0)

有点回应现有的答案,但也建议使用一些基础网格(可能只有一个)并使用相对变形目标(相对顶点位置以某种方式改变模型的形状),你可以插入可能通过纹理/贴花添加变化。

我甚至看到艺术家对男性和女性使用相同的基础网格,但更常见的是男性和女性基础网格将使用不同的拓扑。除了像Poser这样可以给你一些好主意的程序之外,游戏引擎也会使用这种技术来定制你的角色,如下所示:

enter image description here

它基本上是相同的模型,但滑块控制应用多少变形(相对顶点增量)以及影响纹理和一些着色器参数,并且通常这些只是线性插值以创建新外观。你也可以使用变形目标进行面部动画,比如制作角色微笑,这有时与骨骼和皮肤有关,例如。

为了以保持比例相同的方式调整高度,变形目标可能过度。在这种情况下,您可能只使用转换矩阵。如果你想调整比例虽然可以让躯干和腿缩短而不会影响头部大小(这通常会产生更有说服力的效果),那么变形目标再次有意义。

所有这些确实需要熟练的3D角色建模师的一些工作来创建令人信服的内容,但它是从编程方面实现所有这些变化的非常经济的方式。如果你填充一个充满了这些字符的世界,它在内存和处理方面也非常经济,因为只有像顶点位置和着色器参数这样的东西需要在其余数据(纹理坐标,多边形,着色器)中独特关联等)可以跨角色共享/实例化。

答案 2 :(得分:0)

我刚发现这个旧线程,但我正在研究类似的事情。

我能够找到我称之为漂亮模特的东西: https://github.com/fashiontec/bodyapps-viz

这个包括男性,女性和儿童。我能够克隆该回购并在几秒钟内在浏览器中启动它。

我正在努力将它移植到React中,所以我找到这个帖子的原因各不相同,但我认为我应该分享我之前的研究结果。

它附带Data.GUI()所以你可以使用它来调整颈围,躯干周长等参数。它可能正是原始问题所要求的。