- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的引擎中实现动态对象的视锥体剔除,并且一直在尽可能地阅读有关“松散八叉树”的内容。不幸的是,大多数消息来源都很模糊,实际上只是很多人的帖子说他们有多好,并且他们给出了 O(1) 插入和删除,但没有解释其背后的任何逻辑。
我理解的主要原则是八分圆被视为大于实际大小,并且松散因子最多可达 2。这意味着可以根据对象的大小将对象插入到单个节点中。问题是很多文章不使用 2 的“k 因子”(可能是为了获得更紧密的配合),因此失去了快速插入/删除的能力;相反,它们维护邻接结构,以便您可以遍历给定深度的所有节点并使用每个节点测试对象的中心。
我只需要一个粗略的剔除测试,我想要 O(1) 的插入时间,并且已经制定了计算对象应插入的深度(级别)的公式。但是,我找不到任何讨论根据对象的大小和位置计算精确节点的公式的文章。
我是否完全误解了算法,我是否在寻找一些不可能的东西?如果有人能给我指出任何好的论文或文章(我读过 http://tulrich.com/geekstuff/ ),那就太好了。
PS 可能值得一提的是,我使用的是存储在一维数组中的线性八叉树
感谢您的帮助
最佳答案
我在 gamedev 论坛上得到了答案。我正在寻找的方程实际上非常简单
int NodeIndex = 深度*(bb.centre.x/sceneBB.width);
关于graphics - 用于视锥体剔除的松散八叉树 - 需要一些建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297721/
我有一个充满体素的世界,假设我的世界是 320*320*96 体素。我的想法是将整个世界加载到我的视频卡的内存中,这样在将新的“ block ”传输到 GPU 时就不会损失性能。为显示体素世界而生成的
我不知道如何告诉 libgdx 在透明贴花后面绘制绿色球体。 这是我的问题的示例图片: 贴花创建:前两个参数是宽度和高度,最后一个标志是透明与否。 Decal.newDecal(count * (GU
我有 vector ,我想检索一个包含所有条目的 vector ,这些条目在所有输入 vector 中的任何地方都不重复。 #include int main() { std::vector a
我正在尝试为网站设置代码块的样式。容器 div 设置为垂直和水平溢出。问题是当它水平溢出时,斑马条纹背景颜色被剔除。我也尝试过使用背景图片,但它也剔除了它。为什么会这样?我该如何解决? 谢谢。 图片:
我应该在调用 Canvas 绘制方法之前剔除元素还是让 Canvas 处理剔除。我是否应该实现如下逻辑: if(circle.x+circle.radius>=0 || circle.x-circle
我刚刚发现 Azure Blob 存储上有 100 GB 的日志文件/失败请求日志,这些日志文件多年来一直在累积。是否有管理它们的工具或技术 - 目录结构很复杂,因此它不像按日期排序那么简单(我使用
我是一名优秀的程序员,十分优秀!