
Physijs
暮志未晚NAN
这个作者很懒,什么都没留下…
展开
-
01 Physijs简介(Three.js的物理引擎)
简介Physijs作为Three.js的物理引擎插件。为Three.js提供一套非常简单易于使用的物理引擎。Three.js如此流行的原因之一就是因为它对于新手来说非常容易上手的图形引擎。Physijs也坚持了相同的理念,使得对于物理效果的制作变得非常的简单。工作原理Physijs建立在ammo.js之上(也有cannon.js的分支),并且使用了单独的js线程(web worke...翻译 2018-05-18 15:45:48 · 4626 阅读 · 1 评论 -
09 Physijs约束物体的移动范围(Three.js的物理引擎)
点约束如果添加了一个对象,那这个对象会随着指定的点产生荡秋千的效果,超出不了被添加时距离点的距离。 如果添加了两个对象,那这两个对象的距离超出不了添加场景时的两个物体的距离。var constraint = new Physijs.PointConstraint( physijs_mesh_a, // 第一个被约束的对象 physijs_mesh_b, // 限制第一个对...翻译 2018-05-30 00:42:28 · 2650 阅读 · 2 评论 -
08 Physijs固定一个物体(Three.js的物理引擎)
有两种方法可以使对象冻结或不可移动。如果对象始终是静态的,例如地面,则可以在创建网格时把第三个参数设置为0:new Physijs.BoxMesh( geometry, material, 0 )在任何情况下,模型都是静止的。第二种情况,就是它只是在某些情况下是静止的,而在其它情况下又是动态的。 首先,将对象的object.setAngularFactor(接收旋转力)和obje...翻译 2018-05-29 23:15:20 · 1406 阅读 · 1 评论 -
07 Physijs的复合对象(Three.js的物理引擎)
复合对象是向场景添加复杂几何图形的有效方式,并且通过将Physij中的可用形状拼凑在一起以创建更大,更复杂的几何体来创建复合形状。在three.js中,您可以将这些子几何添加到父对象中,例如:var parent = new THREE.Mesh( new THREE.BoxGeometry( 5, 5, 5 ), new THREE.MeshBasicMaterial({ color...翻译 2018-05-29 22:37:33 · 808 阅读 · 1 评论 -
06 Physijs的碰撞检测(Three.js的物理引擎)
碰撞检测当前监听当前碰撞回调来获取,回调事件内有返回三个参数,再加上this:this代表当前的监听的对象,和碰撞的对象,两个模型之间的力差(模型之间冲击时的速度)和旋转力之间的力差:var mesh = new Physijs.SphereMesh( new THREE.SphereGeometry( 3 ), new THREE.MeshBasicMaterial({ ...翻译 2018-05-29 18:42:48 · 5262 阅读 · 0 评论 -
05 Physijs相关回调事件(Three.js的物理引擎)
场景更新由于Physijs运行在与主应用程序不同的线程上,因此无法保证每次调用时它都能够迭代场景scene.simulate。因此,您可以将事件监听器附加到物理模拟运行时触发的场景。var scene = new Physijs.scene;scene.addEventListener( 'update', function() { // 物理引擎每一个周期将触发一次回调}...翻译 2018-05-29 18:07:25 · 900 阅读 · 0 评论 -
04 Physijs场景相关配置(Three.js的物理引擎)
实例化场景时,你可以通过配置一些选项:var scene = new Physijs.Scene({ reportsize: 50, fixedTimeStep: 1 / 60 });场景构造函数参数REPORTSIZE 默认值为50,作为优化使用,指定当前场景的模型的个数。场景初始化也是基于这个数值进行初始化。fixedTimeStep 默认值1/60,该值设置当前物理引...翻译 2018-05-29 17:21:54 · 1080 阅读 · 1 评论 -
03 Physijs的基本物理模型(Three.js的物理引擎)
Physijs现在支持9种模型:Physijs.PlaneMesh匹配Three.js中的没有厚度的平面模型Physijs.BoxMesh匹配Three.js中的THREE.BoxGeometry立方体模型Physijs.SphereMesh匹配Three.js中的THREE.SphereGeometry球型Physijs.CylinderMesh匹配Three.js中的THREE.C...翻译 2018-05-28 23:35:58 · 2437 阅读 · 1 评论 -
02 Physijs基本设置(Three.js的物理引擎)
简介Physijs开发时的目标就是尽可能保持简单和用户友好。普通物理引擎的使用有可能使人望而却步,有想当多的复杂配置和选项,让人感觉不知所措。而Physijs则将所有额外的逻辑抽象出来,以便您可以专注于项目的其余部分。基础使用它是Three.js的一个插件,是一个友好的菜鸟级WebGL框架。因此,您需要使用Three.js来进行场景管理才能使用Physijs。如果你对Three.j...翻译 2018-05-21 23:42:08 · 3058 阅读 · 2 评论 -
10 Physijs暂停物理模拟和手动更新模型的位置旋转(Three.js的物理引擎)
设置摩擦力和弹性我们可以在Physijs里面直接使用Three.js的材质,但是这样无法设置物体的摩擦力和弹性。 所以,我们在创建材质的时候需要使用Physijs.createMaterial方法来进行材质创建,需要额外配置两个参数:friction(摩擦系数)和restitution(弹性系数)。 注意:两个值的取值范围在0到1之间。var friction = 0.8; // ...翻译 2018-05-30 23:31:44 · 1439 阅读 · 2 评论