Webgl平截头体视图

Webgl平截头体视图,webgl,Webgl,当我在webgl中用1个纹理渲染5个框时,应用程序以60 fps的速度运行,很好。但当我渲染70个框时,性能会下降到约40fps,但视图中的体积仍然是5 我已经调试了这个应用程序,所有70个盒子都在使用每片段着色器,因为其中有65个没有使用平截体。我认为gl.viewport声明剪裁了视图外的多边形,但没有 我想知道fustrum剔除是否是避免这种情况的技术?如何激活fustrum剔除?是否有任何webgl命令或我必须手动执行 提前谢谢,你猜到了:你必须手动操作 但是这种技术是在对象级别上。。视

当我在webgl中用1个纹理渲染5个框时,应用程序以60 fps的速度运行,很好。但当我渲染70个框时,性能会下降到约40fps,但视图中的体积仍然是5

我已经调试了这个应用程序,所有70个盒子都在使用每片段着色器,因为其中有65个没有使用平截体。我认为gl.viewport声明剪裁了视图外的多边形,但没有

我想知道fustrum剔除是否是避免这种情况的技术?如何激活fustrum剔除?是否有任何webgl命令或我必须手动执行


提前谢谢,

你猜到了:你必须手动操作

但是这种技术是在对象级别上。。视口外的单个三角形应由硬件自动剔除


您的绘图循环是否可能存在其他效率低下的问题,这些问题可能会随着盒子数量的增加而减慢速度?例如,是否为每个长方体绑定纹理?或者使用GetAttributeLocation或getUniformLocation查询着色器?或者执行其他WebGL查询(所有这些都会大大减慢流程)?

这是其他问答的复制粘贴吗?在你问题的第一句话中有“分享”标题,比如LinkedIn、Twitter和FB?“0否决票喜爱的股份[fb]股份[tw]股份[in]”。听起来很不真实,尤其是标题中的“怀疑”。是的,这是从opengl es的一篇未答复的旧帖子中复制粘贴的。请不要在堆栈交换网络中交叉帖子:我修复了代码,在渲染之前实现了平截头体剪裁平面(球体技术),一切都很好。我已经命令纹理不要像你说的那样绑定每个盒子。因此,现在我再次以60 fps的速度运行,谢谢。如果有密集的碎片着色器,我建议使用Z预过程。@Joni,我很好奇,如果你删除了截锥体剔除,你仍然可以获得60 fps吗?@Joni-早期Z过程的好处非常有限(正如你指出的,它只对非常密集的碎片着色器有帮助)。因此,除非您有证据表明您是片段受限的,否则我通常不建议实现它。听起来这里的情况并非如此。