曾经流行的,即将流行的几种渲染模式(render pipeline)
1,multi-light with single pass (farcry 1.2及之后的版本在ps3.0中使用這種方式,其實(shí)ps2.0也能使用這種方式)
? 每個(gè)對象最多能計(jì)算3-4 (3燈光/ps 2.0, 4燈光/ps 3.0)個(gè)燈光,
這樣就限制了每個(gè)受光照的對象不能太大。
? 適用于室外/地形場景
2,multi-pass? (DOOM3,farcry 1.2之前的版本使用這種方式)
每light要渲染一個(gè)pass, 多l(xiāng)ight的情況下DP的次數(shù)會過高。
? 適用于室內(nèi)/三角形數(shù)量較少的場景
3,deferred rendering (killzone2,stalker使用這種方式)
G-Buffer點(diǎn)的顯存大,耗的帶寬高,DX9下不能實(shí)現(xiàn)MSAA(dx9下MRT不支持MSAA)
? 材質(zhì)受限制(因?yàn)槭窃诤筇幚黼A段計(jì)算光照,shader算法沒辦法針對不同的對象區(qū)分實(shí)現(xiàn))
4,light indexed deferred rendering
? DP次數(shù)比1,3高,比2低,顯存帶寬適中, 每個(gè)對象的shader中必須固定該對象的每個(gè)fragment計(jì)算的最大燈光數(shù)量.
5,light pre-pass rendering (cryengine3使用這種方式,還有若干制作中的游戲/引擎使用這種方式)
? DP次數(shù)比1,3高,比2低,顯存帶寬適中,材質(zhì)受限制
(1) 渲染場景,輸出depth和normal到一個(gè)rendertarget
? rendertarget的格式:R8G8B8A8,R8G8存depth,B8A8存normal.xy
????????????????????? R16G16B16A16,R16B16存depth,B16存normal.xy,A16存材質(zhì)信息(specular power?)
? (2)使用第一個(gè)pass生成的depth和normal數(shù)據(jù),渲染所有的燈光到light texture, RGB存計(jì)算后的光照值,
A分量存每個(gè)象素的specular intensity
(3)整個(gè)場景再渲染一次,使用(2)中生成的light texture,采樣紋理(diffuse,specular mask...),計(jì)算光照。
轉(zhuǎn)載于:https://www.cnblogs.com/corefans/archive/2009/05/27/1491148.html
總結(jié)
以上是生活随笔為你收集整理的曾经流行的,即将流行的几种渲染模式(render pipeline)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加强IIS安全机制 建立高安全性能Web
- 下一篇: VS2005集成VSS2005的方法