繁体   English   中英

OpenGL ES 2D - z排序,深度缓冲与按顺序绘制

[英]OpenGL ES 2D - z-ordering, depth buffer vs drawing in order

我是OpenGL的新手,很抱歉,如果这是一个愚蠢的问题。 也不知道它是否有所作为,以防万一,我正在使用OpenGL ES 1.1。

目前我按纹理顺序绘制精灵,因为我读过它对性能更好(有意义)。 但是现在我想知道这是否是正确的方法,因为我需要某些精灵在他人面前而不管纹理。

据我所知,我的z排序选项是启用深度缓冲区并使用它,或者切换绘图顺序,以便按照az值的顺序绘制精灵。

我已经读过深度缓冲区可能会受到影响,但改变顺序也是如此。 我该怎么办?

简短的回答是,对精灵进行排序。

听起来你正在创建一些真正基于2d的东西,虽然z-buffer可以是一个非常有用的工具,如果硬件不支持它,如果你实际上没有使用它,它可能是一个令人印象深刻的性能影响。可能相互交叉的三维物体,对我来说并没有多大意义。

此外,如果你有任何部分透明的精灵,即像素的alpha值不是0或255(如果使用浮点,则为0.0或1.0),那么你必须进行排序。

作为旁注,我认为更换“精灵”时失去的性能仅在切换表面时发生,而且很少发生。 帮助缓解这个问题的一种方法是在网格上尽可能多地将不同的精灵放在一个图像中,并将小块表面用作精灵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM