曾几何时,我涉足编程Homebrew的Nintendo DS。在测试3D硬件期间,您可以从硬件寄存器中提取当前渲染多边形的数量。我这样做是为了确认某个模型在不同角度渲染了多少,因为最多允许有2048个三角形。
我希望这不是一个完全愚蠢的问题......但是在这里。无论如何,在OpenGL中获取每帧实际渲染的多边形数量(不会被深度缓冲省略)?具体来说,OpenGL ES 1.1?
答案 0 :(得分:2)
您可以通过算法运行每个三角形,通过将查看区域视为四个平面来确定它是否在视图截头内。然后,只需检查每个三角形所在平面的哪一侧,并确保只添加所有四个平面正确一侧的三角形。这对渲染速度不利,但它可以准确计算每个视角渲染的多边形数量。这个网站Graphics Gems包含很多很好的源代码,如果你需要的话可以帮助你完成数学部分。它包含一系列五本书的源代码,其中包含图形算法,如光线三角形交集等。
我没有注意到您对深度缓冲的评论,上面的描述适用于查看窗口中的所有三角形。您可以在深度缓冲距离处再添加两个平面,并使用它们进一步滤除可见多边形。