在我的Android应用程序中,我使用GLSurfaceView来绘制像对象一样的3d对象。我通过使用OpenGL ES apis进行翻译来为该对象设置动画。在动画期间的某个时刻,对象将离开可见视口窗口。此时,我必须从正在绘制的其他对象的集合中删除此对象。如何检测到对象已离开视图?短代码示例将不胜感激。
答案 0 :(得分:1)
您所看到的内容称为viewing frustum culling。
视锥体是几何的 可见的体积表示 到虚拟相机。自然, 此卷外的对象不会 在最终图像中可见,所以他们 被丢弃了。通常,物体躺在上面 视锥体的边界。 这些物体被切成碎片 在这个过程中沿着这个边界 称为剪裁,以及那些碎片 在平截头体之外的谎言被丢弃 因为没有地方可以画它们。
关于该主题的几个教程:
http://www.lighthouse3d.com/opengl/viewfrustum/
http://www.crownandcutlass.com/features/technicaldetails/frustum.html
答案 1 :(得分:1)
Here is a frustum class for android,here代码的一个端口。它允许您从OpenGL中提取平截头体参数,然后测试各种几何图元(点,球体,轴对齐的长方体)以包含在视图体积中。
需要注意两件事: