Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 丢弃视口外的元素_Algorithm_Graphics_Camera_Viewport_Intersection - Fatal编程技术网

Algorithm 丢弃视口外的元素

Algorithm 丢弃视口外的元素,algorithm,graphics,camera,viewport,intersection,Algorithm,Graphics,Camera,Viewport,Intersection,我的设置允许我向任意世界空间添加元素。元素具有(x,y)坐标以及一些宽度和高度 然后,我使用视口/摄影机渲染该世界的一个子部分。显然,我不想处理视口之外的元素 问题 确定哪些元素在视口外部/内部的有效方法是什么 现在,我正在迭代每个元素,并检查它的任何部分是否可见,但是向世界添加更多元素会使这一步非常缓慢 是否有某种方法可以为每个元素建立索引,以便仅检查其中一些元素是否与视口相交 假设视口移动而元素不移动: 具有视口内的平铺列表。每次视口移动时,都会更新该列表。若要从所述列表中添加/删除

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

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

问题

  • 确定哪些元素在视口外部/内部的有效方法是什么
现在,我正在迭代每个元素,并检查它的任何部分是否可见,但是向世界添加更多元素会使这一步非常缓慢

  • 是否有某种方法可以为每个元素建立索引,以便仅检查其中一些元素是否与视口相交

假设视口移动而元素不移动:

具有视口内的平铺列表。每次视口移动时,都会更新该列表。若要从所述列表中添加/删除平铺,请对视口中的每个平铺进行简单的相交测试。由于视口的移动频率可能不如绘制/处理这些平铺的频率高,因此只能在该列表中绘制/处理平铺,而不能考虑整个世界中的每个平铺