用C ++建模服装

时间:2011-03-09 14:24:36

标签: c++ 3d visual-c++-2010 game-physics

我正在寻找一些最终会绘制人体框架的软件(可以配置各种参数),计划是在假人身上放置某种服装。

我看过Blender,OpenGL库以及其他渲染和物理引擎,我不是在找你告诉我怎么做,但主要是我想知道那里有哪些库做这种事情?

所以在2d中会有一个服装模式,那么系统(至少在理论上)将能够将其转化为衬衫的3d表示形式吗?然后把它放在人体框架上。我知道我需要为此做很多工作,不过在将衣服渲染到框架上,并考虑碰撞以及它如何在框架周围掉落等等,我一直在谷歌搜索,并找到了一些比特,但想知道是否有那样的C ++库。

我正在使用Visual C ++ 2010进行开发,目标环境是Windows框。

或者,或者我需要参加一些物理课程。

5 个答案:

答案 0 :(得分:5)

不幸的是,像你所说的那样开发一个系统会非常困难。从好的方面来说,有很多易于使用的技术可以帮助您实现目标。

通常,这种类型的工作方式如下:在Blender,3ds max,Maya,Softimage等建模程序中制作一些3d资源,然后在程序/游戏中使用它。您可以将这些程序视为只是吐出一堆3d坐标,您的程序可以在OpenGL或DirectX的帮助下加载到内存中并进行渲染。

建模和加载资产当然是开发算法生成点的替代方法。这就是你想要完成的事情。

坏消息是服装真的很复杂。其中很大一部分原因在于大部分需要模拟布料动力学。问题的另一部分是,即使你有一个2d模式,你将如何将衣服粘附到你的人体模型上?皮肤紧绷吗?疏松?你将如何参数化?实际服装在身体上的位置本身就是一件苦差事,因为任何有3D建模经验的人都可以告诉你。

然而,一些业内最聪明的专业人士正在寻找更好的模拟布料的方法,以及更好的自动化资产创建方法。

总而言之,简单的答案是,您尝试做的事情,尽可能有趣和高尚,将会非常困难,并且可能无法满足您的需求。

至于你可以寻求更多答案的地方:

如果你仍然想找到一种方法来自动化服装搭配到模特,我会首先浏览一下学术网站。寻找任何拥有计算机图形研究计划的计算机科学系。你会在那里找到很多有趣的东西。

有关更多学术类型的资源,请参阅Game Programming Gems,GPU Programming Gems和Graphics Programming Gems一书。它们包含许多优秀的文章,可以解决这些困难的图形问题。

你可能会做的另一件事是再检查一下搅拌机。有一个名为MakeHuman的有趣项目

http://makehuman.blogspot.com/

自动化在搅拌机中开发人体模型的过程。

有几个教程可以将服装放在模特身上,看看这个: http://www.davidjarvis.ca/blender/tutorial-05.shtml

有关搅拌机中服装和布料模拟的更多教程,您可以随时查看

www.blendercookie.com cg.tutsplus.com

我希望其中一些有用。

答案 1 :(得分:2)

关于布料模拟本身的答案。 (也许不是你在进行交流)

如果您想通过某些供应商中间件对布料模拟进行建模 - 您可以尝试使用

  1. Havok(这是商业广告)。在我看来,它支持任何碰撞对象,由三角形网格表示。
  2. PhysX(它是免费的),但是当你尝试使用它时会有很多限制)。
  3. 如果你想用手模拟布料物理,我可以告诉你这个步骤:

    1. 刷新有关物理学的基础知识(Interia,Energy,Newton's law。)
    2. 布料模拟和物理模拟的良好起点就是那本书 http://www.amazon.com/Game-Physics-Pearls-Gino-Bergen/dp/1568814747
    3. 阅读Siggraph关于衣服的文章。
    4. 考虑一下你需要哪些碰撞对象
    5. 想想你需要什么力量。
    6. 将此挑战拆分为 宽相位/积分/碰撞检测/碰撞响应/约束求解器
    7. 我在C ++,OpenCL中开发了布料物理模拟。 开发需要4个月左右,调试阶段5需要2个月左右。 但这是我生命中非常热的时期,这项工作耗费了大量的时间。

答案 2 :(得分:1)

根据我的记忆,布料被模拟为弹簧网格,建议用于模拟的物理库以及对弹簧/布料物理的理解。我没有听说过适合布料模拟的物理库,但毫无疑问,这个网站上有人会知道一个。

答案 3 :(得分:0)

除了你想要在应用程序运行时想要更改虚拟部分的部分,或多或少是像Esenthel Engine这样的游戏引擎的例子。整个想法是为身体加载网格,然后在其上放置一块“布料”(布料已在大多数游戏引擎中定义为物理类型)。但是当人体框架中的运行时发生变化时,它会变得有点棘手,因为你必须知道如何影响有机形状不容易的参数。

答案 4 :(得分:0)

现在使用的免费游戏引擎是Unity 3d ...它全部取决于细节,Maya和3ds Max也是最好的建模程序。