首页 > 其他分享 >空间剪枝优化

空间剪枝优化

时间:2024-03-20 11:44:39浏览次数:19  
标签:剪枝 存储 方案 小方块 物体 空间 优化 节点

# 判断一个物体在左侧还是右侧


只需要求出主角与物体的差向量,并与前方向做叉积即可
    * 结果>0 则在右侧
    * 结果<0 则在左侧
    * 结果=0 则在正前方或正后方

# 空间剪枝优化


	1. 判断物体是否在相机内
		对于一个物体,判断是否在相机内unity已经有了实现,但是假设我现在有一堆树,我想知道有多少棵树在相机内呢,直接遍历所有的树会导致我们的开销非常大
	2. 在一个100*100的空间内,随机生成2000个1*1的小方块,小方块生成后会随机赋予一个初速度,
	   小方块将沿速度方向匀速运动,碰到空间边界会反弹。小方块之间不会反弹。现在需要检查方块是否与其他方块发生了碰撞(相交)
		显然如果直接n^2来遍历判断,肯定会卡死,那这两个问题有没有非遍历方案呢?

# 优化方案


	1. 网格划分
		事实上,只有离的近的小方块才会相交,也只有一部分的树才会在相机内,我们可以把空间进行划分成块,只对小方块所在的空间块内的方块做碰撞检测,
		就可以优化大部分的检测了
		但是,随着空间的变大,小方块体积的变化,分配不均等问题,会导致网格的大小选取很困难,网格变多了也会造成一笔内存开销,有没有折中的方案呢?
	2. 四叉树/八叉树
		我认为其本质就是升维二分法,将空间通过递归不断的拆分下去,我们会选择最大划分层次以及最大包含对象数量来作为递归基,这样就可以通过树形结构
		来快速的查询交互关系了,但是实际工程中,物体都是有大小的,如果出现了占地多个节点的物体该如何处理呢?
		#方案1#
		只在叶子节点中存储物体,如果无法完美存储则存储在相交的叶子节点中
		#方案2#
		可以在非叶子节点存储物体,无法划分的物体则保留
		这两种方案可以说是各有优劣,第一种方案由于会存储多个节点,导致物体移动时树的变化开销增大,而第二种由于一个节点存储的内容更多,会导致检测了
		一些遥远的物体,如果能把物体抽象成点就更好了

参考博客:https://blog.csdn.net/yhn19951008/article/details/119899092

标签:剪枝,存储,方案,小方块,物体,空间,优化,节点
From: https://www.cnblogs.com/donkey9/p/18084812

相关文章

  • 优化您的部署:Docker 镜像最佳实践
    介绍在快速发展的软件开发和部署领域,Docker已成为容器化的强大工具,为打包、分发和运行应用程序提供了一种标准化的高效方式。Docker镜像在这一过程中发挥着至关重要的作用,是容器化应用程序的基础。为确保最佳性能、可扩展性和安全性,在创建和管理Docker镜像时必须遵循最佳实践......
  • springboot/java/php/node/python情侣空间微信小程序【计算机毕设】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今社会,随着科技的迅猛发展和智能移动设备的普及,人们的社交方式正在经历着翻天覆地的变化。特别是年轻情侣之间,他们更倾向于通过数字化平台来表达情感......
  • 【优化布局】机器学习求解4G网络无人机布局优化问题【含Matlab源码 4113期】
    ......
  • 基于饥饿游戏算法优化的核极限学习机(KELM)分类算法
    基于饥饿游戏算法优化的核极限学习机(KELM)分类算法文章目录基于饥饿游戏算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于饥饿游戏算法优化的KELM4.测试结果5.Matlab代码摘要:本文利用饥饿游戏算法对核极限学习机(KELM)进行优化,并用于分类1.......
  • 前端性能优化
    性能优化的目的是为了实现资源的快速加载和响应。性能优化前,需要先分析性能,目的是分析出包含页面渲染、网络传输和文件加载等时间指标,对该页面进行评估分析。找出影响性能的主要因素和瓶颈,对此给出性能优化解决方案。1.性能分析Chrome浏览器的Performance选项卡主要用于对页......
  • LLM+Embedding构建问答系统的局限性及优化方案
    LangChain +LLM方案的局限性:LLM意图识别准确性较低,交互链路长导致时间开销大;Embedding不适合多词条聚合匹配等。背景在探索如何利用大型语言模型(LLM)构建知识问答系统的过程中,我们确定了两个核心步骤:将用户提出的问题和知识库中的信息转换成嵌入向量(Embeddings),然后利......
  • C++ 返回值优化
    1.函数返回机制函数返回值的传递分为两种情况:当返回的对象大小不超过8字节时,通过寄存器(eaxedx)返回。当返回的对象大小大于8字节时,通过栈返回。此处需要注意的时候,如果返回的是struct或者class对象,即使其大小不大于8字节,也是通过栈返回的。在通过栈返回的时候,栈上会有一块......
  • 安卓低机型卡顿分析以优化方案
    当前状况安装低端机型H5页面可能存在丢帧问题丢帧卡顿可能原因分析现象分析呈现速度缓慢:在呈现速度缓慢的帧数较多的页面,当超过50%的帧呈现时间超过16ms毫秒时,用户感官明显卡顿。帧冻结的绘制耗时超过700ms,为严重卡顿问题。卡顿忽略FPS<=2的页面:因为人的视觉暂留100400......
  • 记录工作过程中一次业务优化
    1需求用户需要输入身份证和姓名进行登录,登录时需要判断是否存在在数据库存在,登录成功后需要记录登录的信息以及微信Id,如果用到不同的微信账号,需要记录多次记录。2设计2.1数据库设计CREATETABLE`ExamDefine`(`Id`varchar(36)NOTNULLCOMMENT'主键编码',`ExamNam......
  • kubernetes中强制删除命名空间
    我删除ingress-nginx没删除成功出现TerminatingNAMESTATUSAGEdefaultActive14dingress-nginxTerminating2d1hkube-flannelActive14dkube-node-leaseActive14dkube-publicActive1......