在动态的场景中,物体之间是运动和相互作用的。为了得到最好的渲染效果,你需要知道你的网格什么时候相互接触。在本教程中,我们将了解碰撞系统是如何工作的

本教程将展示两种碰撞检测方法:一种是在两个网格接触时引发碰撞事件,另一种是检测网格与单点之间的接触

我们将讨论上面的场景,第一个球和第二个球(气球)与旋转过的平面碰撞,最后一个球将只在一个点上碰撞

  • Intersect mesh  网格碰撞

这里的重点是检查气球和平面的接触情况,我们将使用“intersectsMesh()”函数,它有两个参数:要检查的网格和判断碰撞的精度(布尔值)。

if (balloon1.intersectsMesh(plan1, false)) {balloon1.material.emissiveColor = new BABYLON.Color4(1, 0, 0, 1);
} else {balloon1.material.emissiveColor = new BABYLON.Color4(1, 1, 1, 1);
}

为了通过检查网格上的许多细节来避免昂贵的计算,babylon引擎在对象周围创建一个边界框,并测试该框和碰撞网格之间的交集,下面是一个包围框的例子:

但是这个边界框的精确程度是可以调节的,这就是为什么我们有第二个参数。简而言之,如果这个参数被设置为true(默认情况下为false),那么边界框更接近网格(OBB边界类型),但是这是一种开销更大的计算,请注意,当网格旋转到某个角度时,这种类型的边界框特别有用,所以在选择之前考虑一下碰撞的细节

  • Intersect point  单点碰撞

可以使用的另一个函数是具有特定点的“intersectsPoint()”,如下所示:

var pointToIntersect = new BABYLON.Vector3(10, -5, 0);
if (balloon3.intersectsPoint(pointToIntersect)){balloon3.material.emissiveColor = new BABYLON.Color4(1, 0, 0, 1);
}

我们在场景中定义了一个精确的点,如果气球与这个点相交,气球上的任何地方,事件就会被提起,我们改变气球的颜色

参考资料: https://doc.babylonjs.com/babylon101/intersect_collisions_-_mesh

babylon101| 09. Intersect Collisions - mesh(网格交叉碰撞)相关推荐

  1. 学习笔记:unity通过Mesh网格绘制图形:三角形正方体圆柱

    一,介绍 Mesh类:通过脚本创建或是获取网格的类,网格包含多个顶点和三角形数组.顶点信息包含坐标和所在面的法线. unity中3D的世界的所有图形全部都是由三角形构成的. 比如unity已经装配好的 ...

  2. Open3D Mesh 网格

    Mesh Open3D 有一个用于 3D 三角形网格的数据结构,称为TriangleMesh.下面的代码显示了如何从ply文件中读取三角形网格并打印其顶点和三角形. import open3d as ...

  3. Unity Mesh网格合并

    Mesh网格合并通常是优化中常用的小手段,目的是为了减少drawcall,大量的drawcall会造成CPU的性能瓶颈.例如下图中船只里的钢材货物,由诸多钢材模型堆砌而成. 我们将其放在一个空场景里查 ...

  4. 【Unity】Mesh网格编程(三)万能网格几何形体

    用一个通用代码,实现各种锥.柱.管状体的网格创建. 非原创的同系列.虽然总觉得代码上可以再优化,但是实现的功能已经超级屌了. 真是没有不能做的,只有想不到的. 原文: Mesh网格编程(二) 万能网格 ...

  5. Mesh网格编程(一) 流体水

    通过Mesh网格随Sin函数实时变化模拟液体的流动,从而达到动态水的效果. Mesh网格编程步骤: 一:确定数量 确定该几何图形应有多少个三角形面,顶点坐标.顶点序列.UV贴图.法线向量皆为三角形面数 ...

  6. 直线或线段与mesh网格相交的计算

    引言 在采样二指夹爪与mesh网格的抓取点时使用的点接触模型,抽象二指夹爪为一个线段,那么寻找夹爪与物体的接触点就抽象为直线与mesh网格的交点问题,而在mesh中物体表面是以空间三角形保存的,在进一 ...

  7. unity中Mesh网格编程

    上图是效果 一.关于mesh的意义 有了mesh网格,物体才能被渲染出来. (1)mesh中包含顶点, mesh.vertices (2)顶点对应的uv(一张图的uv左下角00,右上角11) mesh ...

  8. 艺术与工程技术的交叉碰撞

    艺术与工程技术的交叉碰撞 <达芬奇的人生密码>观后感 达·芬奇是列奥纳多·迪·皮耶罗·达·芬奇 (意大利文原名:Leonardo di ser Piero da Vinci),(1452年 ...

  9. 关于Unity中Mesh网格的详解

    3D模型 通过3D建模软件所建出来的点和面,如以三角形为主的点和面,比如人的脑袋一个球,就是由各种各样的三角形组成的点和面. 点和面以及纹理坐标都是通过3D建模软件建模出来的. Unity会帮我们把模 ...

最新文章

  1. 华北计算机研究无人机,飞马D200无人机在华北某环境地调项目中的应用案例
  2. java ssh过滤器_SSH中的过滤器,拦截器,监听器的一些基本认识
  3. Netty系列之一开始使用
  4. 【转】C++读写.mat文件的方法
  5. XCTF WEB cookie
  6. 【ArcGIS遇上Python】从入门到精通系列之第一章:ArcGIS Python简介
  7. UnityShader23:顶点动画
  8. UI_DEV_Environment 之 StoryBook
  9. 拓端tecdat|Python中用Prophet模型对天气时间序列进行预测与异常检测
  10. 【ZOJ4110】Strings in the Pocket (马拉车算法+分析)
  11. 各种有用、有趣网站整理
  12. 标签、画像设计与模型落地
  13. 【java学习记录】7.定义一个接口ArearInterface,其中包含一个方法,计算面积三角形、矩形、圆形的面积
  14. SpringSecurity多种认证方式记录之自定义
  15. Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
  16. MathorCup大数据挑战赛第一届A题-移动通信基站流量预测赛题解析
  17. 汉诺塔问题解法心路历程及C语言学习请教
  18. 华盛顿大学计算机科学,华盛顿大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第18位(QS世界排名)...
  19. egg(一):创建一个egg项目
  20. 这些朋友更适合苹果电脑,你了解吗?

热门文章

  1. Threadlocal学习及内存泄漏原因和解决方案
  2. 几乎每个人都听说过三皇五帝,那么三皇五帝是否存在?又是谁呢?
  3. Java/输入圆形半径,求圆形的周长和圆形的面积
  4. 快递100企业版接口(API)云打印、电子面单实现Java版
  5. 晒晒公司发的年货,一家比一家实在,打工人:发了个通知
  6. 手机如何测量长度?为什么现在很少携带尺子了
  7. 亚马逊徐霄鹏: 5000 字深度解析美团八步增长战略
  8. 优酷网(Youku.com)架构经验
  9. 关于阿里云服务器购买和域名购买的相关流程
  10. 如果圆桌骑士有特殊情况(Knights of the Round Table)