前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这个知识点99%的前端都没有听过,不信你进来看?

这个知识点99%的前端都没有听过,不信你进来看?

作者头像
沐洒
发布2023-07-05 17:05:28
2100
发布2023-07-05 17:05:28
举报
文章被收录于专栏:沐洒

我可不是标题党哦,来!聪明的你请停下脚步,听我灵魂一问:

你知道AABB是什么吗?

哈哈哈,我猜你大概率一脸懵逼。

不服气的你赶紧打开百度:

然后你愣住了。

“好家伙,沐洒你一个技术人员,跟我在这玩成语?”

“不不不,沐老师肯定不是在教我们成语。”

一些不相信百度的高端玩家,于是打开小火箭🚀,在Google上再次搜索:

嚯!好嘛,Google给我搜出个非盈利性组织……

好啦,不卖关子啦,我今天既不是要说成语接龙,更不是要聊什么非盈利组织,我要说的AABB其实是这个:

AABB,全称Axis-Aligned Bounding Boxes,中文直译出来就是“轴对齐包围盒”,参考下MDN的解释:

如图所示,AABB呢,其实是一个立体几何概念,起源于数学,但成熟于游戏开发,主要是用于解决3D空间里不同实体的碰撞检测问题。

前阵子看过一个视频,讲虚幻引擎5(Unreal Engine)的作品为什么画面如此真实自然,其中一个原因说,是因为虚幻5实现了非常优秀的光线追踪算法。

没错,光线追踪(Ray Tracing),这门高深的学问,也是基于AABB来展开的。

总之,AABB是3D问题的基础,虽然AABB本身不是什么高难度的东西,但是你如果不知道这个概念,那么你面对3D空间的很多问题都是抓瞎的,很容易陷入用2D思维解决3D问题的陷阱,进而产生很离谱的错误。

那我作为一个前端,为什么会关注到这个领域的知识的呢?

那当然是因为我在做的项目(自动驾驶点云标注)啦!

之前我写过一篇文章《当前端遇到了自动驾驶》,非常详细的介绍了我在这个项目里遇到的一个3D问题的整体解决过程。

虽然有人反馈太技术了看不懂,但也有不少小伙伴在后台给我留言,说那篇文章很有意思,前端在自动驾驶领域的实践很新鲜有趣,让我多写点相关的东西。

恰好最近又遇到了一个又意思的场景:碰撞检测,我感觉这东西又可以跟大家聊聊了。

不过考虑到这件事本身也是有一定的理解门槛,所以我今天打算先水一篇,给大家入个门,介绍下AABB是个啥,然后丢点学习链接。

感兴趣的朋友可以先私下研究研究,同时可以期待下我的下一篇文章,给你们聊聊我这次又遇到了什么难题,以及整体的解决思路。

好啦,文章标题没唬人吧?有多少前端小伙伴是第一次听说AABB的?评论区告诉我。

学习资料:

  • 3D collision detection —— (https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection)
  • Bounding volume collision detection with THREE.js —— (https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection/Bounding_volume_collision_detection_with_THREE.js)
  • BVH:Bounding volume hierarchy —— (https://en.wikipedia.org/wiki/Bounding_volume_hierarchy)
  • Collision detection —— (https://en.wikipedia.org/wiki/Collision_detection)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 沐洒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档