![cdff73f0ad6dfdd736cb8e73de8cf131.png](https://i-blog.csdnimg.cn/blog_migrate/bb864e1d59ba465f8f3a5743d33ca51c.jpeg)
![3fc284f095de7499aece594b7a4dae68.png](https://i-blog.csdnimg.cn/blog_migrate/f67174c02c5b4579985e34ee2578b7c7.jpeg)
![75013c4962258fa2af043231286f3509.png](https://i-blog.csdnimg.cn/blog_migrate/2aa0753719eb5a453c54c601a20b33df.jpeg)
![1497013bfc1dfddea433f01d7dc1c31a.png](https://i-blog.csdnimg.cn/blog_migrate/bb017764bf8f77ec8d196f1a609ec547.jpeg)
约束在物理引擎中非常重要,就像shader是实现各种渲染效果的核心,约束(Constraints)是物理引擎中的核心概念.
在一些譬如机器人运动的真实世界中的物理约束求解,都是非常复杂且耗时的.在游戏中,由于帧率的要求,我们没有足够的时间来得到绝对正确的结果,我们的目标是一种精度尚可,比较稳定的求解方式.
位置约束
设想一个在坡道上滑板运动的人,滑板被限制在坡道上,这样的约束叫做位置约束(position constraints).
![0d9aa2b1aabb50b1be680c1ce8f685e3.png](https://i-blog.csdnimg.cn/blog_migrate/bf370af93c04f002835c6008007037e1.png)
用
很容易算出
![2896cc38225845cd02b251197cec570d.png](https://i-blog.csdnimg.cn/blog_migrate/a7929801072618180fcefaac84933ae7.png)
![30ff66c6187328021fc744a802760124.png](https://i-blog.csdnimg.cn/blog_migrate/c1ab9dc96b48dd2477edaf77df0f1eb5.png)
速度约束
来看下物理引擎中无处不在的接触约束(contact constraint).比如一个在固定平面上放着的盒子,我们针对盒子的左下角的P点来进行求解