OpenGL,剔除视图外的对象

时间:2018-12-01 17:09:49

标签: c++ opengl viewport bounding-box

在我的情况下,我想渲染在一个大边界框中随机分布的50,000个或更多的多维数据集,我现在不想使用实例化,因此我必须渲染每个多维数据集,我想通过剔除这些多维数据集来提高性能在相机视图之外。 我有一个包含两个矩阵viewprojection的相机类,每个多维数据集都有自己的边界框,因此我打算检查每个帧,如果相机视图边界框包含每个多维数据集的中心,是的,如果不忽略它,请调用其绘制函数。

对于视图矩阵,我有3个向量,分别是眼睛,目标和上方,以及投影的宽度,高度,近,远和FOV。

所以我有两个问题:

  • 这是正确的情况吗?我将在每帧计算相机视图合并框,然后测试每个立方体。
  • 如何计算每帧的相机边框?

1 个答案:

答案 0 :(得分:0)

我从这里this question得到了一个很好的主意。

将摄像机的投影视图矩阵与3D空间中的任意点相乘,可见点应在[-1,1]之间。