Shader筆記 5 渲染紋理

2022-07-16 07:39:07 字數 1190 閱讀 7985

unity的渲染紋理(render texture)

unity為渲染目標紋理rtt,定義了一種專門的紋理型別——渲染紋理(render texture)是在執行時建立和更新的特殊型別紋理 (texture) 。在unity中使用它們,要先建立新的渲染紋理並指定攝像機到渲染到該渲染紋理中。隨後就可以和普通紋理一樣在材質面板中使用該渲染紋理。

usage:

方式一:在工程目錄下建立乙個渲染紋理,設定camera的渲染目標為該渲染紋理;

方式二:另一種獲取螢幕影象的方式grabpass,使用grabpass命令unity將螢幕影象放置在乙個渲染紋理中,之後就可以將渲染紋理當做普通紋理來進行自己需要的處理。

使用渲染紋理可以簡單的實現移動端的實時陰影繪製,將額外的乙個camera設定成正交攝像機放置於需要陰影效果的物體上方合適位置,並為該camera設定渲染紋理,物體下方新增乙個quad來顯示該渲染紋理。

shader "custom/projectorshadowshader"

_cutoff("alpha cutoff",range(0,1)) = 0.2

}subshader

lighting off

zwrite off

blend srcalpha oneminussrcalpha

pass

;struct v2f

;v2f vert(a2v v)

fixed4 frag(v2f i):sv_target

return c1;

}endcg}}

}

注意事項:

簡單陰影效果:

使用渲染紋理來實現鏡面效果,將攝像機獲取的所需影象做為紋理輸入,按照鏡面翻轉uv座標的x之後取樣輸出即可。

shader "custom/mirrorshader"

}subshader

pass

;struct v2f

;v2f vert(a2v v)

fixed4 frag(v2f i) : sv_target

endcg}}

fallback off

}

簡單鏡面效果:

todo

ref

文件:書籍:opengl寶典、unity shader入門

10 2 渲染紋理 Shader

於 馮樂樂 shader 入門精要 1.思路就是 新建乙個camera,這個攝像機的視角就是物體跟主攝像機反方向的視角,將此攝像機渲染到 rendertexture 我們的shader 只需要對 該 rendertexture 的 uv.x 取反即可,因為取樣攝像機跟我們實際看到的是相反的 額大概就...

Shader筆記7 基礎紋理 遮罩紋理

遮罩允許我們保護某些區域,使它們免於修改 使用遮罩紋理來控制光照,可以得到更加細膩的效果 使用遮罩紋理可以控制紋理的混合,比如裸露土地 草地的紋理等 原理 通過取樣得到遮罩紋理的紋素值,然後使用某個通道的值與某種表面屬性進行相乘,這樣當該通道的值為0時,可以保護表面不受該屬性的影響.在實際的遊戲製作...

Shader筆記(渲染管線)

頂點處理,面處理,光柵化,畫素處理 本地座標系 以模型自己為中心。比如旋轉 胳膊的擺動,等是以本地座標係為參考。觀察座標系 以攝像機作為原點。觀察座標系轉投影座標系 將每個物體模型的位置從觀察者所在的座標體系中,轉到觀察者投影平面上。包括 面組裝 面擷取 面剔除 面組裝 通常採用 strip 面擷取...