Shader 渲染通道指令

2022-05-05 14:54:09 字數 958 閱讀 4103

在所有計算完成後,決定當前的計算結果輸出到幀緩衝區時,如何混合源和目標,通常用來繪製半透明物體

設定混合模式 例:blend srcalpha oneminussrcalpha

混合因子的型別:

一般放在pass通道裡,不能放到cg**裡面

阻止片元被寫到螢幕的最後機會,最終渲染出來的顏色計算出來後可通過透明度和最後乙個固定值比較,如果通過測試則繪製此片元,否則丟棄此片元

alphatest off/on 預設關閉

比較測試值的模式:

greater>,gequal>=,less<,lequal<=,equal==,notequal !=,alway(永遠渲染),never(永不渲染)

alphatest條件 [變數]/常數,一般放在pass通道裡

為了使近距離的物體擋住遠處的物體,當片元寫道緩衝區的時候,需要將片元的深度值與緩衝區的深度值進行比較,測試成功寫入緩衝區

zwrite 深度寫開關,控制是否將深度z的片元寫入緩衝區中,如果不繪製透明物體則設定為on,否則為off,預設為on。

ztest深度測試模式,設定深度測試的執行方式,預設為lequal,深度測試的模式,

greater>,gequal>=,less<,lequal<=,equal==,notequal !=,alway總是繪製關閉深度測試

ztest條件

一般放在pass通道裡

通道遮罩可以只渲染輸出結果的通道,而不是通常情況下的rgba四個通道,可選的時rgba的任意組合以及0,結果為0意味著不會寫入到任意通道

colormask rg..colormask 0

不渲染背對著攝像機的幾何體的面,來提高渲染效能,所有的幾何體都包括正面和反面

面剔除操作,大多數都是封閉的物體,所以不需要繪製背面

cull back 不繪製背對相機的面,預設值

cull front,不繪製面向攝像機的面

cull off 關閉面剔除

通道控制方式,通道指令與通道程式

i o通道是dma的進一步發展,進一步減少cpu的干預,dma是每次對乙個資料塊進行操作,通道是一次對一組資料塊進行操作。通道實質是簡單的處理器。擁有命令暫存器,位址暫存器,有通道程式,指令單一,但是沒有專有的記憶體 cpu中 1.使用者程序提出i o請求,喚醒裝置驅動程序 參考 其他文章,我後續會...

Shader 渲染流程

gpu graphics processing unit,影象處理器,gpu上有成千上萬核,這些核並行執行 cpu central processing unit,處理器,cpu通常有單核 雙核 四核和八核,但這些核只能序列操作。渲染流水線的工作任務在於由乙個三維場景出發 生成 或渲染 一張二維影象...

shader 延遲渲染

正向渲染 forward rendering 或稱正向著色 forward shading 是渲染物體的一種非常直接的方式,在場景中我們根據所有光源照亮乙個物體,之後再渲染下乙個物體,以此 類推。傳統的正向渲染思路是,先進行著色,再進行深度測試。其的主要缺點就是光照計算跟場景 複雜度和光源個數有很大...