[原创]再谈实时演算布料的建模方式。

原创 2005年06月02日 12:01:00

以前做布料实验的时候,总是只能按顺序创建好了一块四四方方的布,然后运算,实用性非常低,毕竟很多地方的使用都是直接通过读取模型来建模,比如说一块三角型的旗子,或者说面片组成的头发。那么如何通过顶点数据和顶点索引这两个东西来建立布料所需要的Mass-Spring模型呢?

首先,我们可以假设每个顶点就是一个弹簧的节点,那么每个三角形索引就是弹簧,这里会出现一个问题,即三角形索引会出现很多重复的情况,那么我们就需要对索引的重复情况进行处理。至于处理方法,则是把一组索引0 1 2拆成三条线:0-1, 0-2, 1-2,然后加入到一个队列里,然后之后每次插入新的线的时候,就检查已经插入进去的数据,看是否有重复。

经过上一步的处理,我们得到的线的队列实际上就是我们的弹簧列表,然后根据模型的顶点数据和弹簧列表来生成我们需要的布料模型,用以下结构来描叙一个弹簧节点:

struct CMySpring
{
 D3DXVECTOR3 vMypos; // 弹簧节点的位置
 D3DXVECTOR3 vNormal; // 弹簧节点的法线(用来算风力)
 D3DXVECTOR3 vPower; // 当前该弹簧节点所受的合力(用来计算下一帧该节点的位置)
 D3DXVECTOR3 vAcceleration; // 当前该节点的加速度情况(配合 合力来运算位置)
 D3DXVECTOR3 vVelocity; // 当前节点的速度
 DWORD  dwNodeCount; // 当前节点连接到其他节点的数目
 float len[32]; // 连接到每个其他节点的弹簧的长度
 DWORD nodeIndex[32]; // 连接到每个其他节点的索引
};

之后的弹簧力的运算方式在我的另一篇文章中有详细叙说,以下是一组截图:

第一帧时原图:

第二帧模型被一个来自人物中心向四周吹的点风吹散时的样子:

风继续吹之后的模型:

由于模型的很多顶点并不是连在一起的,所以在算布料的时候会被算成是很多块小布。

强大的APEX系统 游戏中质感的布料材质

强大的APEX系统 游戏中质感的布料材质   2009 年3月26日,在美国加利福尼亚州旧金山市召开的游戏开发者大会上(GDC2009),NVIDIA正式发布了NVIDIA Phys...
  • pizi0475
  • pizi0475
  • 2015年04月03日 10:38
  • 1784

实时布料模拟

无意中选择了布料模拟的课题,中间无数次后悔选择了这么一个巨难无比的课题,国内几乎没有人做,除了个别人之外,都是抄袭国外的。今天实现了一篇论文,感觉进步多了。等把课题做完了,我再详细写关于布料模拟的文章...
  • zzuduoduo
  • zzuduoduo
  • 2009年04月15日 21:27
  • 439

模拟布料运算之后的心得介绍。

首先,这是一篇牵扯到数学和物理知识的文章,如果您对文中所涉及的公式有所不明白的话,请在边上摆上一本《高等数学》以及一些物理学常识的知识。首先来讲布,第一个问题是:为什么要模拟布的运动?游戏中很多地方都...
  • tarkey
  • tarkey
  • 2005年02月09日 20:10
  • 2400

Unity 布料效果

  • u010273302
  • u010273302
  • 2016年06月29日 14:00
  • 347

简单λ演算

 苦于Lambda演算的资料又少不完,上个星期在网上收集了资料以后汇集在一起,作为一个全一点的版本吧!基本上是结合这篇文章,Wiki中的介绍,再就是类型和程序设计语言>>,这三者写的.希望大家对其中的...
  • feosun
  • feosun
  • 2008年02月20日 19:12
  • 5715

你知道SQL,你了解元组演算吗?

我们学习一个知识点,必须要从一个最基本的定义出发,然后再慢慢剖析其内部潜在的规律,再而就是与生活结合起来分析,达到共鸣,那么这个知识点就算搞定了。那么我们这次来说说元组演算。我想说说“共鸣”:为什么你...
  • yi_zz
  • yi_zz
  • 2012年05月30日 22:55
  • 6783

Unity3D shader(20)——布料

布料这一块的内容不是很好找,就找到《Unity Shaders and Effects Codebook》里有介绍。 然后,这篇博客再把这里的内容丰富了一下,作者不允许转载,就只能贴个链接地址,方便...
  • niuge8905
  • niuge8905
  • 2017年09月09日 23:33
  • 282

【布料系统】Unity的布料 固定在个地方 飘扬

#搞了两天,差点跪死在这 ------------------------------------------------- 建个空的,Component加cloth。Mesh选Plane。Mater...
  • sinat_34870723
  • sinat_34870723
  • 2016年08月01日 23:30
  • 2372

fpga设计思想(一):三种建模方式

大四了,准备找fpga方面的工作,前几天参加了杭州海康威视的面试,打击很大,笔试题目都很简单,但考查内容却很全面,对fpga设计思想、时序约束、sopc都有所考察。虽然自己都做出来了,可是还没接到面试...
  • zsh1422728529
  • zsh1422728529
  • 2015年09月23日 22:34
  • 679

布料模拟碰撞检测的实施总结

1.      多面体之间有两类“基本接触”,即一个多面体的面与另一个多面体的顶点相接触(A类接触)和一个多面体的边和另一个多面体的边相接触(B类接触)。 2.    对于线段和多边形(即使是非凸多...
  • baidu_38215454
  • baidu_38215454
  • 2017年11月01日 15:16
  • 101
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[原创]再谈实时演算布料的建模方式。
举报原因:
原因补充:

(最多只允许输入30个字)