在Three.JS中约束布料

时间:2016-08-09 15:26:25

标签: javascript three.js

(这可能是一个noob问题。)所以我试图适应"布料在Three.JS中的人物模型。做这个的最好方式是什么?你是否对一件完整的,封闭的服装进行建模并将其作为布料几何体导入,然后将其放在模型上并应用某种物理库?您是否定义了一组约束,其中布料是固定的"对模型,让其余的松散?

为了获得一些指导,我检查了Three's cloth example背后的代码。然而,我唯一能看到的与限制布料网格有关的部分" pin"据我所知,这些变量并未在其赋值函数之外的任何地方实现:



/* testing cloth simulation */

var pinsFormation = [];
var pins = [6];

pinsFormation.push(pins);

pins = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
pinsFormation.push(pins);

pins = [0];
pinsFormation.push(pins);

pins = []; // cut the rope ;)
pinsFormation.push(pins);

pins = [0, cloth.w]; // classic 2 pins
pinsFormation.push(pins);

pins = pinsFormation[1];


function togglePins() {

  pins = pinsFormation[~~(Math.random() * pinsFormation.length)];

}




有没有人有这方面的经验?

我知道this question,这只是初步回答("碰撞检测"),并参考了我无法弄清楚的示例代码。

我是新手,很抱歉,如果这有明显的答案。谢谢!

1 个答案:

答案 0 :(得分:1)

老实说,我只是不打算尝试将布料模拟到衬衫上,你最终会对布料的顶点进行光线追踪,这意味着即使在快速机器上也会运行大约5fps(或者你布料中只有20个顶点。我会在你正在使用的任何3D程序中将衣服放在模型上,然后使模型变形(穿上衣服)。

You can see here what I mean.他们没有在玩家身上模拟布料,他们只是制作了一个包含衣服的玩家模型,然后对动画进行了骨骼变形,看起来很棒。

如果你是初学者,(即使你是专家)那么这就是我要开始的地方,因为与复杂的网格进行动态布料交互是一个非常难以开始的地方,我看不到其他优点它纯粹用于模拟目的,实时性能对您来说并不重要。