C++ 用C+制作服装模型+;

C++ 用C+制作服装模型+;,c++,3d,visual-c++-2010,game-physics,C++,3d,Visual C++ 2010,Game Physics,我想写一个软件来画一个人的框架(可以配置各种参数),计划是在假人上放一些衣服 我已经看过Blender、OpenGL库以及其他渲染和物理引擎,我不想让你告诉我如何做到这一点,但我主要想知道有哪些库可以做到这一点 所以在2d中会有一个衣服的图案,然后系统(至少在理论上)能够将其转换为一件衬衫的3d表示?然后把它放在人体框架上。我知道我需要做很多工作,但是就如何将衣服渲染到框架上,考虑到碰撞以及它如何在框架等周围掉落,我一直在搜索,并且发现了一些位,但是想知道是否有C++库可以做到这一点。 我使用V

我想写一个软件来画一个人的框架(可以配置各种参数),计划是在假人上放一些衣服

我已经看过Blender、OpenGL库以及其他渲染和物理引擎,我不想让你告诉我如何做到这一点,但我主要想知道有哪些库可以做到这一点

所以在2d中会有一个衣服的图案,然后系统(至少在理论上)能够将其转换为一件衬衫的3d表示?然后把它放在人体框架上。我知道我需要做很多工作,但是就如何将衣服渲染到框架上,考虑到碰撞以及它如何在框架等周围掉落,我一直在搜索,并且发现了一些位,但是想知道是否有C++库可以做到这一点。

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


要么这样,要么我需要上一些物理课。

根据我的记忆,布料被模拟为弹簧网格,这为模拟提供了物理库以及对弹簧/布料物理的理解。我还没有听说过专门为布料模拟设计的物理库,但毫无疑问,这个网站上的人会知道一个

除了您希望在应用程序运行时更改虚拟对象的部分,您想要的或多或少是类似于游戏引擎的示例。整个想法是为身体加载一个网格,然后在其上放置一块“布料”(布料在大多数游戏引擎中已经定义为物理类型)。但是,当涉及到人体结构的运行时变化时,它变得有点棘手,因为你必须知道你将如何影响参数,这对于有机形状来说并不容易。

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

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

当然,建模和加载资源是开发生成点的算法的替代方案。这就是你试图实现的目标

坏消息是衣服真的很复杂。这在很大程度上是因为大多数情况下都需要模拟布料动力学。问题的另一部分是,即使你有一个二维图案,你会如何改变衣服与你的人体模型的结合方式?皮肤紧吗?释放您将如何将其参数化?任何有3d建模经验的人都会告诉你,在身体上放置真实的衣服本身就是一件苦差事

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

总而言之,简单的答案是,你想做的事情,尽管可能很有趣、很高尚,但将是极其困难的,可能不会有你想要的结果

至于你可以去哪里寻找更多答案:

如果你仍然想找到一种方法来自动将衣服附加到模特身上,我会先看看学术网站。寻找任何有计算机图形学研究项目的计算机科学系。在那里你会发现很多有趣的东西

有关更多学术类资源,请参阅游戏编程宝石、GPU编程宝石和图形编程宝石系列书籍。它们提供了许多优秀的文章,解决了诸如这些困难的图形问题

你们可以做的另一件事是多看看搅拌机。有一个有趣的项目叫做MakeHuman

这自动化了在blender中开发人体模型的过程

有两个关于在模特身上穿衣服的教程,请看这一个:

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

www.blendercookie.com cg.tutsplus.com


我希望这其中有些有用。

现在使用的免费游戏引擎是Unity 3d。。。此外,这一切都取决于细节,而且Maya和3ds Max是最好的建模程序

这是关于布料模拟本身的答案。(也许你不是在实习)

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

  • 哈沃克(这是商业性的)。在我看来,它支持任何由三角形网格表示的碰撞对象
  • PhysX(它是免费的),但是当您尝试使用它时,有很多限制)
  • 如果您想用手模拟布料物理,我可以建议您执行以下步骤:

  • 更新物理学基础知识(Interia、能量、牛顿定律)
  • 这本书是布料模拟和物理模拟的良好起点
  • 阅读Siggraph中有关服装的文章
  • 思考您需要哪些碰撞对象
  • 想想你需要什么力量
  • 将此挑战拆分为 宽相位/集成/碰撞检测/碰撞响应/约束解算器
  • 我在C++、OpenCL中开发了布物理仿真。 开发大约需要4个月,调试阶段5大约需要2个月。
    但那是我生命中非常炎热的时期,这份工作耗费了大量的时间。

    布料物理是精神上的!您需要定义布料如何与其自身交互。也需要