SALVIA光柵化軟件渲染器
SALVIA是一款光柵化的軟件渲染器,設(shè)計(jì)目標(biāo)是達(dá)到Direct3D 10/11的核心功能的實(shí)現(xiàn)。我們的設(shè)計(jì)目的主要包括以下幾點(diǎn):
- 一個(gè)高度可移植的光柵化圖形管線的軟件實(shí)現(xiàn)
- 圖形硬件工作原理的展現(xiàn)和教學(xué)
- 為下一代Many Core或Larrabee類的多x86處理器架構(gòu)的計(jì)算設(shè)備提供高性能的圖形繪制能力
- 提供在GPU一類的流處理器上難以實(shí)現(xiàn),但在Many Core架構(gòu)的設(shè)備上有著顯著優(yōu)勢(shì)的Features
- 比圖形API更加易于使用的接口
- 與復(fù)雜的渲染技術(shù)(如輻射度和光線追蹤等)相結(jié)合的可伸縮的渲染體系,研究可以提供速度-質(zhì)量相均衡的渲染架構(gòu)
SALVIA的接口參照了DX10的設(shè)計(jì),以流水線劃分Stage;每個(gè)Stage及其相關(guān)設(shè)施的接口,均采用了Object-Oriented的設(shè)計(jì)風(fēng)格。
這種設(shè)計(jì)與D3D9和OGL的狀態(tài)機(jī)風(fēng)格的設(shè)計(jì)相比更易于使用,同時(shí)也降低了流水線前后級(jí)的耦合,對(duì)于優(yōu)化或擴(kuò)展都是有利的。
目前,SALVIA已經(jīng)具有了完整的D3D9的流水線級(jí),通過SALVIA Shading Language編譯器及運(yùn)行時(shí)環(huán)境支持Vertex Shader與Pixel Shader,并有了基本的Demo。
在未來,SALVIA將在維持內(nèi)核穩(wěn)定的情況下,使用新的擴(kuò)展,提供先進(jìn)的圖形技術(shù)支撐。
同時(shí),我們還將嘗試著將一些不易在GPU上實(shí)現(xiàn)的算法,以擴(kuò)展的形式在SALVIA中實(shí)現(xiàn)出來,以期提供高于圖形API的表現(xiàn)和特性。
SALVIA在近階段的主要工作包括:
- MSAA,并提供可定制的Sampling Pattern
- EWA-based Anistropic Filtering
- 以擴(kuò)展形式提供的Geometry Shader,Hull Shader和Tesselassion Shader
- 持續(xù)的并行優(yōu)化
- 特性及性能的演示用例
- 文檔撰寫
目前,SALVIA已經(jīng)作為一個(gè)開源項(xiàng)目發(fā)布在http://code.google.com/p/softart上, 最新的代碼在svn中。
所有代碼除特殊聲明外,均為GPL 2協(xié)議,您可以在協(xié)議許可的范圍內(nèi)自由下載或使用。
