catch and batch
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
catch and batch是游戲開(kāi)發(fā)中經(jīng)常用到的技巧;
catch經(jīng)常使用的地方是對(duì)render_state進(jìn)行catch,每次通過(guò)引擎封裝的接口進(jìn)行render_state的set,并存儲(chǔ)其值,下次set的時(shí)候如果render_state一樣的話就跳過(guò);
這種catch?屬于小規(guī)模小范圍的優(yōu)化技巧,避免浪費(fèi);
batch則是系統(tǒng)化的對(duì)渲染過(guò)程進(jìn)行分類,盡可能降低catch miss和context switch,進(jìn)而優(yōu)化,這是十分強(qiáng)大的優(yōu)化技術(shù);
常用的是針對(duì)fragment shader進(jìn)行batching,一般model根據(jù)material不同來(lái)選擇相應(yīng)pixel shader來(lái)進(jìn)行渲染,fragment shader的切換涉及到gpu的很多工作,是件不小的開(kāi)銷,如果對(duì)model沒(méi)有分類,兩種models交錯(cuò)的渲染,會(huì)造成fragment shader頻繁切換,導(dǎo)致性能開(kāi)銷;
所以依據(jù)此來(lái)對(duì)model分類,會(huì)大幅度提高性能;
雖是小技巧,但是其思想?yún)s可以演化成很多種提高性能的途徑;
原文鏈接: http://blog.csdn.net/ccanan/article/details/1602170
轉(zhuǎn)載于:https://my.oschina.net/dtec/blog/44724
總結(jié)
以上是生活随笔為你收集整理的catch and batch的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python学习笔记整理(十五)类的编写
- 下一篇: 轻松得到C# ADO.NET的各种数据库