惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - fish.shadow song(若愚.影歌)

projective dynamics的global solve中 引入拉格朗日乘子的简化方法 恭喜PBD终于有了自己的物理解释和模型 所谓“中国学生数学NB”的神话 有关Lemek's algo中,除了Initial Ray外Second Ray是不可能出现(W0,W1,W2,。。。Z0均严格>0)的证明 Physics Engine V0.4 Soft-Rigid-Vehicle Demo all in one 体积网格生成浏览器 自动生成TetraMesh的算法写好了不错,可以支持Multi Resolution 基于tetrahedron的柔体 Shape Match 的方法效果极差 气死我了 My Physics Engine V0.1 共轭梯度(Conjugate gradient) SPH的实时流体模拟 关于IS-LM曲线均衡情况下政府扩张性财政政策对于国民收入影响力的数学推导 基于Eulerian的grid方法和基于Lagrangian的SPH方法的流体模拟的比较 迷茫 暂停研究一段时间 convex cast vehicle simulation 基于GJK的Convex Cast存在的Numerical问题
有关convex和Triangle Mesh的碰撞中Inner Edge以及Inner Vertex所导致的错误法向量的处理方法
fish.shadow song(若愚.影歌) · 2009-12-20 · via 博客园 - fish.shadow song(若愚.影歌)

      在计算convex和Triangle Mesh的碰撞中由于最终碰撞的级别会被分解为convex-triangle之间的碰撞检测,因此如果一个convex同时和Triangle Mesh中的多个Triangle发生接触的时候会导致一些 接触点是不正确的(对于单个Convex-triangle是正确的对于convex-mesh却是不正确的)如图:

为了方便我画了2d的模式,蓝色和红色各代表一个三角形,绿色是一个凸多面体,在这一时刻绿色和红色会计算出那个蓝色箭头的法向量,而绿色和蓝色三角行会计算出灰色的法向量,红色的那个最近点对是在红色三角形的面上而,蓝色的是在蓝色三角形的一条边界上而这条边界是和红色共享的(图中表示的就是红蓝的交点),这样的边称为inner edge,在上图情况下这个在inner edge上的接触点应该被消除。

在看一张图:

  同样这次接触点也存在inner edge 上但是这一次是正确的接触点应该被保留!,那么为什么会出现第一张图这样错误的接触点呢,关键在于convex在和蓝色三角形进行碰撞测试的时候并不知道红色三角形的存在,也就是说该最近点对只是对于蓝色三角形单独而言的,如果将红色三角形考虑在内,那么由于这条inner edge也包含于红色三角形,因此如果红色三角形的最近点并不在这个edge上,那么对于整体而言这个edge上的点均不是最近点,因此都应该被排除。

   因此最终算法如下,首先定义一个avoid集合代表那些feature(顶点,边)应该会被排除,收集完所有接触点之后,分2个pass进行,第一遍扫描每一个三角形上的接触点,对于三角形的任一个顶点,如果没有出现在该三角形的最近点对中那么加入avoid集合,对于任意一条边如果没有出现在该三角形的最近点对中那么加入avoid集合,对于面而言永远不需要加入avoid集合(这是由凸面体的性质决定的),

第2个pass重新扫描所有接触点如果它不再avoid集合中那么作为正常接触点输出,否则抛弃。

使用这种方法 在我的测试中暂时还没有出现过任何由于inner edge导致的法向错误:如图

   不过在测试中发现由于目前使用每帧增加一个的接触点缓存,这会导致物速度很大撞击时由于地面的反作用很大并且而且作用在一个点上,产生反转的角速度,因此有必要设计一个一次产生多个接触点的方法,不过我已经想好怎么做了,就暂且加入Todo list把,后面还要把concave和convex的cast完成,柔体vs刚体的碰撞算法,以及最近大致看了下的使用Cycled coordinate decent 方法计算IK的系统需要做