ChatGPT 编写:高性能 2000 怪同屏碰撞检测|征稿活动 V6

本文来自 Cocos 中文社区第 6 期征稿活动 Cocos AIGC Creators Award,征稿持续进行中,丰富奖品等你来拿~

前言

大家好我是 98k, 好久没更新作品了,是时候为大家作贡献了。

新作品体验链接:

https://store.cocos.com/app/detail/4843

最近弹幕,割草非常的火爆,从独立开发吸血鬼幸存者大火,到大赚 10 亿的弹壳特工,还有后起的成绩喜人的通神榜,土豆兄弟,黎明前 20 分钟…相信没人能会拒绝,满屏小怪被弹雨突突的击杀的快感,还有超武的爽快激动。这次在 ChatGPT AI 的加持下,为大家提供一个支持 2000 怪同屏,通用高性能 2D/3D 动态碰撞检测方案。

技术要点

6b2b7779d25a596247a527e7d74fd770.jpeg

碰撞系统分为动态和静态两种,不同的情形会使用不同策略。

动态碰撞检测 

主要针对运动物体,例如角色,子弹,技能等。基于智能分轴扫掠优化方案,使用了(优化版 SAP + OBB 等…)适用各种 2D/3D,运动物体检测,如角色,弹幕,子弹,攻击。

体验地址:

https://store.cocos.com/app/detail/4843

静态碰撞检测 

主要针对静止物体,例如场景 , 物品 , 障碍等。基于空间静态分割优化方案,使用了(octree + kdtree + gjk + epa 等算法)适用于 3D 世界行走,3D 表面行走和 3D 边界检测(FPS, MMO, RPG 等类型的游戏)。

体验地址:

https://store.cocos.com/app/detail/4035

动态碰撞检测系统组成

ec8a9c2e81f50305b2d3ace34070cf22.png

1、AABB 包围盒更新

2、粗略碰撞算法筛选

3、最后形状精确碰撞

ChatGPT 能力加持

最近 AI 很火,听说它要来抢我们饭碗,看能不能交个朋友,助我实现三件套。

先科普一下,这次为什么会挑选 SAP,作为动态碰撞检测的核心筛选算法呢,因为各大物理引擎都能看它的身影,存在即是理由。SAP 全名(sweep and prune) , 是一种对轴向排序扫掠算法(有种 SAT 剪枝的味道)。

04f963f86fc7923e91eb9da1876710d8.png

对 X 轴投影可以快速分离排除相交

0f516671987aee2248ef46e8b2bbf83f.png

优点

1、物体更新快 (物体实时更新位置)

由于要对分轴排序,你可能会想到用快排 nlogn ,但是 SAP 有个真正灵魂地方,由于运动物体相邻帧情况下排序是相对稳定,所以实际中使用插入排序会更快,大部分情况接近 o(n) 的性能,整体上会比 nlogn 快很多。其他树状如四叉,八叉,BVH ,更新物体需要调整树结构是消耗成本不低的。

2、物体间相互检测快 (常说的 trigger)

由于使用的顺序存取结构,读写性能比其他形树结构能高,同时轻易进行相互 trigger 检测,而且这顺序结构天生就带去重检测功能(例如:四叉树,八叉树,格子,这一类多次分割,还要进行去重标记检测,无形增加性能消耗)

3、支持 2D/3D 无范围限制 (兼容性)

由于是对轴向排序分割检测,所以不存空间大小限制,也不受维度的限制,很好的支持全范围的 2D/3D 空间检测。(像四叉,八叉,格子,可能会受到空间范围大小限制)

3e74f6d9e98f11310fe023a3332f4848.png

本着人生第一信条,谁提出问题就让谁来解决问题。我决定让 AI 它解决自己抛出的问题。

62e81acd6838a22fc6c8c9968760136f.png

好家伙,一声音不哼的,啪啪啪打起代码来了,感觉流程可以但是还是缺少点灵魂,武功心法掌握的是十足,打起功夫来还是差了点。兄弟这不太行,老哥只能循循诱导,提起优化建议来。

2de909d7ba935eaf90f542871932c61b.png

经过一轮交谈,也收集差不多,本着个人第二信条对技术负责,在 AI 编写的框架上进行自己的精准的改造,同时结合自己的优化方式,对 SAP 算法进行了深入的改造,为后面碰撞检测提供最大的效力。

AABB 与 Shape

粗略筛选完成了,成功了一大半,还有两个环节(AABB , Shape),如何实现?
本着个人第三信条,能不动手坚决不动手,于是再次唤醒 AI 起来啪啪啪写代码。

1、AABB 包围盒更新?

590bad0f35c7a5a06a3fa8e6cd9edc73.png

求算旋转后的 AABB,提供给 SAP 筛选

64ad783d7c5ee0e95df50ecbf6d343d8.png

What? 打住,你给我整 8 个顶点的来算运动中的 AABB,老板看到不得血压爆表,行行再好好规劝一下。

9ee0732b6064116c73f5526955ca97e0.png

好家伙,你是知道得挺多的就是不给我,AI 兄弟你这不厚道啊,行行赶紧给我写出代码。

兄弟(看样快成形了,我心里暗喜,再求求它),再帮忙优化一下,游戏优化飞起,老板看到一开心,就发我薪水了。

0ee7dfb6fad661a43d32796a1b68dfae.png

行吧,这代码算是到点子上,本着个人第二信条对技术负责,最后优化细节简化由我再进行处理。这样 AABB 旋转更新完成,可以交付到 SAP 进行粗略碰撞筛选。

2、Shape 形状精确碰撞?

目前暂时支持 Box ,Sphere 检测(后续会支持其他常用),支持 3D 旋转操作的碰撞。
所以我们要实现 OBB vs OBB 和 OBB vs Sphere 的检测。
本着个人第三信条,厚着脸皮再次唤醒了 AI。

1、Sphere vs Sphere 的碰撞检测,不为难它了

2、OBB vs Sphere (旋转方体与球体 精确碰撞)

c8c6a1451dd0fccde588d12299b551f4.png

有这个检测,只需要把 Sphere 转到 OBB 旋转坐标系下,就可以转化为 AABB 求交。

3、OBB vs OBB (旋转方体之间精确碰撞)

5dfdf70d25e61ebcc83fef56771feccb.png

本着个人第三信条,再次让 AI 啪啪啪的工作起来。

f9c080e43a6a183f0675c2808f02cf5e.png

本着个人第二信条原则,最后优化细节简化由我再进行处理。

自此,三大件在 AI 的协助下,得到了很好解决。最后在我的组装修改下,碰撞系统终于运行了起来,AI 是可以写代码,但是它不一定完美,需要从业者有一定知识储备,才能更好的发挥它效力。假以时日,在不断的训练下,和全球广大的知识网库的加持下,它终究会成为那个巨人。

最后成品,来跑个分呗

2D 测试配置:
2000 个 AABB
方格大小 20x20
范围大小 900x600

小米 10 浏览器:2000 个 ,2D AABB 碰撞测试

14ae57f8db9b533623d6bb601d61c737.jpeg

小米 10 浏览器:2000 个 ,3D AABB 碰撞测试

6580b1ed4db10f3f503a2479f6dcda42.jpeg

小米 10 浏览器: 简单使用示范 demo 测试

03bb7efd411a180b764c247143df31e5.jpeg

实际实测数据
测试设备:小米 10 骁龙 865 , 自带浏览器
2000 个运动 2D AABB : 平均 5ms 左右
2000 个运动 3D AABB : 平均 8ms 左右

更多的测试体验,可以行运行下面体验连接。
体验地址:

https://store.cocos.com/app/detail/4843

未来展望计划

1、增加实用 Shape

2、支持群聚的优化

3、增加高性能查询
待续…

最后,送点福利,点赞最高的五个评论(截止4月27日 12:00)可获赠《98K 高性能割草框架》(支持 2D/3D )一套。

点击文末【阅读原文】查看原贴


往期精彩34069e02b0a880cdac22fc2aea350dc9.pnga4a11811d0261a8553301ba5e054f8ef.png8b5b2f986af7ccce90e49a5bd5b6ec6d.png

3db89ec4624c3b88034baf5d707f4500.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31634.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和chatgpt学架构04-路由开发

目录 1 什么是路由2 如何设置路由2.1 安装依赖2.2 创建路由文件2.3 创建首页2.4 编写HomePage2.5 更新路由配置2.6 让路由生效 3 测试总结 要想使用vue实现页面的灵活跳转,其中路由配置是必不可少的,我们在做开发的时候,先需要了解知识点&…

和chatgpt学架构05-首页开发

目录 首页提示词使用container布局正确的显示菜单的层级图标显示不正常解决纵向滚动条的问题 我们上一篇只是简单写了一个首页,作为一个系统的管理后台,首页相对复杂,既包含菜单导航,又需要根据菜单显示具体的页面。我们本篇就让c…

李彦宏:文心大模型 3.5 版本推理速度提升 17 倍;ChatGPT 访问量增速大降;Linux 6.4 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

程序员该如何定位?看这四大方向

宽泛的意义上讲,程序员是这样一群人:他们用某种语言或技术,开发某种软件产品(系统),解决特定现实领域的问题。 有了这个定义,我们就可以来讨论程序员的几种常见定位: 解决某类问题的…

活动回顾丨那些闪闪发光的女开发者们

在刚刚度过的三八妇女节 我们看到了令人振奋的女性力量 在各个行业领域闪闪发亮 给予无数女性力量与鼓舞 在开发领域当然也不例外 亚马逊云科技深度支持并联合 Jina AI 与优秀的女开发者们展开线上对谈 和我们一起来领略她们的 智性魅力与思维碰撞吧 精彩回顾 多模态 AI 技术 T…

Let‘s Learn .NET|通过 Semantic Kernel .NET SDK 管理你的 OpenAI 项目

编辑:Alan Wang 排版:Rani Sun Lets Learn .NET 系列 “Lets Learn .NET” 是面向全球的 .NET 初学者学习系列,旨在通过不同语言,帮助不同地区的开发者掌握最新的 .NET 开发知识与技能。 在 ChatGPT 与 OpenAI 火热的当下&#x…

LangChain 查询使用指「北」

一只鹦鹉加上一根链条,组成了时下最流行的 AI 话题热门榜选手——LangChain。 LangChain 是一种 AI 代理工具,可以为以 ChatGPT 为代表的额大语言模型(LLM)增添更多功能。此外,LangChain 还具备 token 和上下文管理功能…

【社区活动(上海)】 .NET 开发者日来了!

点击蓝字 关注我们 作为一个免费、跨平台、开源的开发平台,.NET 在前端开发领域一直有着不俗的表现。除 UWP、Winform 外,近年来,随着 Blazor 的出现,以及 .NET MAUI(.NET 多平台应用 UI)的到来&#xff0c…

腾讯焦虑了,一向温文尔雅的马化腾也发脾气了

大家好,我是校长。 昨天小马哥内部讲话在互联网上疯传,这应该是,腾讯这家公司创办以来,马化腾最焦虑也最外露的一次讲话了,重点大概涉及 3 大方面,8 大项内容: 1、所有业务线 ROI 化&#xff0c…

专访马化腾:首次开谈个人经历、管理心得、技术创新、微信的诞生等

本次访谈时间发生于2016年10月22日下午,当时清华经管学院举行了清华管理全球论坛。会上清华经管学院学院院长钱颖一教授同腾讯创始人马化腾展开了两小时精彩对话。主要内容包括马化腾创办腾讯的前期经历,腾讯内部的管理方式、微信的前生今世和马化腾看好…

一张估值20亿的“笑脸”,正在拆掉OpenAI的围墙

文| Juny 编辑| VickyXiao 由ChatGPT引发的人工智能风潮还在猛烈地刮着。但从各个角度来看,目前这都是一个巨头争霸的战场:更大的模型、更强的算力、更多的用户、更雄厚的资金……这些都似乎成为了想要加入这场角逐的门票。与此同时,核心技术…

Web3中文|42岁退休身价百亿,王慧文高调复出再创业只为Ta

若不是因为ChatGPT,可能很多IT圈外的人对这位“已退休”的美团联合创始人王慧文并不了解。 6天内发出5条关于AI的朋友圈,王慧文“复出”欲打造中国版OpenAI(ChatGPT开发商)的消息一夜间疯传。 王慧文是谁?为何引起这么…

AI新产品层出不穷,学不过来怎么办。

最近各个互联网巨头和创业新贵发布的AI工具,AI模型层出不穷,相关自媒体的热度也都很高,当然,各种大佬的隔空喊话也是非常吸引眼球,那么很多人就会觉得,要看的东西太多了,要学的东西太多了&#…

ChatGPT VS Bard :人工智能江湖“倚天屠龙记”

转自 | 走向未来(the-land-of-future) 作者 | 王文广 “虎越雄关踪影杳,兔临春境万家新。”岁末年初,人工智能江湖掀起了江湖上的一场“血雨腥风”。这场风雨的起因是屠龙刀——ChatGPT。 人工智能江湖轶事 屠龙刀ChatGPT一现江湖&#xff…

【JavaScript】前端必学的tab栏切换布局分析

文章目录 综合案例:案例分析:示例代码: 自定义属性的操作:1.获取属性值:2.设置属性值3.移除属性值 综合案例: 本案例要完成的就是当鼠标点击上面相应的选项卡(tab),下面内容跟随变化: 比如此时我…

移动端布局

视口 浏览器显示页面内容的屏幕区域。视口可以分为布局视口、视觉视口和理想视口 1.布局视口 1.一般移动设备的浏览器都配备了布局视口,用于解决早期的PC端页面在手机上显示的问题 2.PC上的网页大多都能在手机上呈现,一般默认可以通过手动缩放网页 2.视觉…

关于移动端布局(响应式布局),你必须要知道的

前言 响应式Web设计可以让一个网站同时适配多种设备和多个屏幕,可以让网站的布局和功能随用户的使用环境(屏幕大小、输入方式、设备/浏览器能力)而变化。本文主要介绍一些响应式布局容易忽略但又很重要的知识点。 视口 移动前端中常说的 v…

移动端常见布局

移动端技术选型 1.单独制作移动端页面(主流) 流式布局(百分比布局)flex弹性布局(强烈推荐)lessrem媒体查询布局混合布局 2.响应式页面兼容移动端(其次) 媒体查询bootstrap 一、…

前端常用的几种布局方式(推)

布局 静态布局:布局特点:设计方法:PC :移动端: 优点:缺点: 流式布局:布局特点:设计方法:缺点: 自适应布局:布局特点:设计方法: 响应式布局:布局特…

【前端布局篇】响应式布局 Bootstrap 移动端布局

前言 1. 布局介绍 布局:layout 对事物的全面规划和安排 页面布局:对页面的文字、图形或表格进行格式设置。包括字体、字号、颜色纸张大小和方向以及页边距等。 网页布局:利用html搭建结构与内容,使用CSS添加装饰 HTML5CSS3系列课程 携程…