首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的实验表明,在TBR架构中,渲染顺序对性能有很大影响,为什么?

我的实验表明,在TBR架构中,渲染顺序对性能有很大影响,为什么?
EN

Stack Overflow用户
提问于 2009-11-06 02:43:03
回答 2查看 621关注 0票数 1

TBR芯片在碎片处理之前执行HSR (隐藏表面移除),因此只渲染可见像素。此功能不需要从前到后对不透明对象进行排序。但我在我的iPhone 3GS上做了一个实验。通过比较帧时间,从前到后渲染不透明对象的速度比从后到前快得多。为什么它会显示这个结果?无论以哪种顺序呈现对象,性能都应该非常接近。

EN

回答 2

Stack Overflow用户

发布于 2009-11-06 02:57:10

我相信,不执行片段处理的优化是通过使用Z-buffer来确定像素是否可见(如果像素不可见,则在流水线早期执行)。因此,对于这种优化来说,从后到前渲染将是最坏的情况(不可能进行优化),而从前到后渲染是最好的情况(所有最终隐藏的像素都已经隐藏)。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 07:03:50

如果为真,则与Apple's documentation on the topic相矛盾

  • 不会浪费CPU时间从前到后对对象进行排序。用于iPhone和iPod touch的OpenGL ES实现了一个基于平铺的延迟渲染模型,这使得这一点变得不必要。有关按对象的不透明度对对象进行information.
  • Do排序的更多信息,请参阅“基于平铺的延迟渲染”:

代码语言:javascript
复制
1. Draw opaque objects first.
2. Next draw objects that require alpha testing (or in an OpenGL ES 2.0   based application, objects that   require the use of discard in the   fragment shader.) Note that these   operations have a performance penalty,   as described in “Avoid Alpha Test and   Discard.”
3. Finally, draw alpha-blended objects.

以及文档here

延迟渲染的另一个优点是,它允许图形处理器在处理碎片之前执行隐藏表面删除。在不对纹理进行采样或执行碎片处理的情况下,不可见的像素将被丢弃,从而显著减少渲染场景时GPU必须执行的计算量。要获得此功能的最大好处,应尝试使用不透明内容绘制尽可能多的场景,并尽量减少混合、alpha测试和GLSL着色器中的丢弃指令的使用。因为硬件执行隐藏表面删除,所以应用程序没有必要从前到后对其几何图形进行排序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1682688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档