algorithm - 丢弃视口(viewport)外的元素

标签 algorithm graphics camera viewport intersection

我的设置允许我向任意世界空间添加元素。一个元素有一个 (x,y) 坐标以及一些宽度和高度。

然后我使用视口(viewport)/相机渲染该世界的一个子部分。显然,我不想处理视口(viewport)之外的元素。

enter image description here

问题

  • 确定哪些元素在视口(viewport)外部/内部的有效方法是什么?

现在我正在遍历每个元素并检查它的任何部分是否可见,但是向世界添加更多元素会使这一步变得非常慢。

  • 是否有某种方法以某种方式为每个元素编制索引,以便仅考虑检查部分元素是否与视口(viewport)相交?

最佳答案

假设视口(viewport)移动而元素不移动:

有视口(viewport)内的图 block 列表。每次视口(viewport)移动时,您都会更新该列表。要从所述列表中添加/删除图 block ,请使用视口(viewport)对每个图 block 进行简单的交叉测试。由于视口(viewport)可能不会像绘制/处理这些图 block 那样频繁移动,因此您只能在该列表中绘制/处理图 block ,而不是考虑整个世界中的每个图 block 。

关于algorithm - 丢弃视口(viewport)外的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043553/

相关文章:

在不破坏阅读流程或 HTML 代码的情况下拆分文章的算法

java - JPanel 中的 DrawRect 未显示

android - 如何使相机仅聚焦在矩形内部并仅在 flutter 中读取矩形内部的文本?

algorithm - 有没有 "Geometry Contour Line Algorithm"?

数组包含区域的 Python 算法(图)

c++ - 如何从 CGAL::Linear_cell_complex_for_combinatorial_map 中删除顶点、边或面

c# - 如何在不创建窗口的情况下将 WPF UserControl 呈现为位图

android - V4L2 驱动程序破坏了 Android OMAP5432 上 4 个 USB 摄像头的缓冲区

android - 我可以更改 Android 设备的 LED 强度吗?

c - 最大化产生给定总和的不同数字的计数 'k'