我几乎把问题放在标题中。如果我停止绘制目标在屏幕上不再显示它会对性能有帮助吗?我的意思是:
if (textureLocation is on the screen)
{
draw code here
}
或者它是如此微不足道(如果有的话)它并不重要?
谢谢,
Shyy
答案 0 :(得分:2)
取决于。最终花费的时间可归结为三件事:向GPU发送数据,顶点着色和像素着色。
如果纹理位于具有在屏幕上绘制的其他纹理的spritesheet上,并且屏幕外绘制调用与其他纹理调用在同一.Begin() .End()
块内,则它不会影响性能,因为它只需要只要发送数据并为spritesheet设置GPU。 4个离屏顶点将穿过顶点着色器,但这不是瓶颈。图形管道剔除顶点着色器和像素着色器之间的屏幕外对象,因此它不会在像素着色器中花费任何时间
但是如果它是一个独立的纹理或者它自己的.Begin() .End()
块,那么将它的数据发送到GPU会花费时间,即使GPU会剔除它。
无论是重要的还是不仅仅是剖析可以告诉你。