I.要切换着色器效果哪种方式更好? 1.使用大着色器程序并在着色器程序中使用统一的if/else子句来使用差异效果。打电话之间切换程序。webgl切换着色器和纹理的性能成本
II.Is它更好地使用大纹理或用几个小的质感?并且确实上传纹理成本,如何绑定纹理?
I.要切换着色器效果哪种方式更好? 1.使用大着色器程序并在着色器程序中使用统一的if/else子句来使用差异效果。打电话之间切换程序。webgl切换着色器和纹理的性能成本
II.Is它更好地使用大纹理或用几个小的质感?并且确实上传纹理成本,如何绑定纹理?
嗯,这很可能是最好写一些PERF测试和尝试,但一般。
特别是中获取片段着色器执行数百万次的框架。一个1920x1080的显示器有200万像素,所以没有透支,这仍然意味着你的着色器每帧执行200万次。对于每秒执行200万次的任何事情,或者每秒钟以每秒120帧的速度执行60帧,小一点的会更好。
至于纹理,MIPS比没有MIPS更快,因为GPU有纹理缓存,如果需要的像素下一个接近它以前看了的人,他们很可能已经在缓存中。如果他们很远,他们将不会在缓存中。这也意味着从纹理中随机读取特别慢。但大多数应用程序通过纹理线性读取。
交换计划是很慢,足以通过该计划,他们使用,让您绘制使用的程序的第一个,然后使用B方案通常比以随机顺序绘制他们更快所有车型所有车型分类车型。但是还有其他一些效果表现。例如,如果一个大模型模糊了一个小模型,最好先绘制大模型,因为小模型将会通过深度测试(z-buffer),并且不会为任何像素执行片段着色器。所以这是一个折衷。你所能做的就是测试你的特定应用程序。
此外,以正确的方式进行测试也很重要。 http://updates.html5rocks.com/2012/07/How-to-measure-browser-graphics-performance