欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity Shader實(shí)現(xiàn)描邊OutLine效果

 更新時(shí)間:2020年01月21日 14:16:19   作者:elegentbeauty  
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)描邊OutLine效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Unity Shader實(shí)現(xiàn)描邊OutLine效果的具體代碼,供大家參考,具體內(nèi)容如下

Shader實(shí)現(xiàn)描邊流程大致為:對模型進(jìn)行2遍(2個(gè)pass)繪制,第一遍(描邊pass)在vertex shader中對模型沿頂點(diǎn)法線方向放大,fragment shader設(shè)置輸出顏色為描邊顏色;第二遍正常繪制模型,除被放大的部分外,其余被覆蓋,這樣就有了描邊的效果。

實(shí)現(xiàn)代碼如下:

Shader "Custom/OutlineShader" {
 Properties {
 _MainTex ("Albedo (RGB)", 2D) = "white" {}
 _OutLineWidth("width", float) = 1.2//定義一個(gè)變量
 }
 SubShader {
 
 Pass
 {
 CGPROGRAM 
 #pragma vertex vert
 #pragma fragment frag
 #include "UnityCG.cginc"
 
 struct appdata {
 float4 vertex:POSITION;
 float2 uv:TEXCOORD0;
 };
 
 struct v2f
 {
 float2 uv :TEXCOORD0;
 float4 vertex:SV_POSITION;
 };
 
 
 float _OutLineWidth;//設(shè)置變量
 v2f vert(appdata v)
 {
 v2f o;
 //設(shè)置一下xy
 //v.vertex.xy *= 1.1;
 v.vertex.xy *= _OutLineWidth;//乘上變量
 o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
 o.uv = v.uv;
 return o;
 }
 
 sampler2D _MainTex;
 
 fixed4 frag(v2f i) :SV_Target
 {
 fixed4 col = tex2D(_MainTex, i.uv);
 //return col;
 return fixed4(0, 0, 1, 1);
 }
 ENDCG
 }
 
 
 Pass
 {
 ZTest Always
 CGPROGRAM
 #pragma vertex vert
 #pragma fragment frag
 #include "UnityCG.cginc"
 
 struct appdata {
 float4 vertex:POSITION;
 float2 uv:TEXCOORD0;
 };
 
 struct v2f
 {
 float2 uv :TEXCOORD0;
 float4 vertex:SV_POSITION;
 };
 
 
 v2f vert(appdata v)
 {
 v2f o;
 o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
 o.uv = v.uv;
 return o;
 }
 
 sampler2D _MainTex;
 
 fixed4 frag(v2f i) :SV_Target
 {
 fixed4 col = tex2D(_MainTex, i.uv);
 //return fixed4(0, 0, 1, 1);//返回藍(lán)色,因?yàn)樵俅武秩緯训谝粋€(gè)顏色覆蓋掉
 return col;
 }
 ENDCG
 }
 } 
 FallBack "Diffuse"
}

物體被遮擋,仍然需要顯示,需要設(shè)置描邊pass的語句ZTest為Always,深度檢測一直通過,這樣描邊pass的片段不會被深度剔除。

運(yùn)行效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#泛型的使用案例

    C#泛型的使用案例

    這篇文章介紹了C#泛型的使用案例,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • C#中Array與ArrayList用法及轉(zhuǎn)換的方法

    C#中Array與ArrayList用法及轉(zhuǎn)換的方法

    C#中Array與ArrayList用法及轉(zhuǎn)換的方法,需要的朋友可以參考一下
    2013-03-03
  • 使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容

    使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)讀取PDF中所有文本內(nèi)容,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價(jià)值,有需要的小伙伴可以了解下
    2024-02-02
  • C#?SQLite庫使用技巧

    C#?SQLite庫使用技巧

    SQLite是一個(gè)開源、免費(fèi)的小型RDBMS(關(guān)系型數(shù)據(jù)庫),能獨(dú)立運(yùn)行、無服務(wù)器、零配置、支持事物,用C實(shí)現(xiàn),內(nèi)存占用較小,支持絕大數(shù)的SQL92標(biāo)準(zhǔn)。下面跟隨小編一起看下C#?SQLite庫使用
    2022-01-01
  • C#實(shí)現(xiàn)Socket通信的解決方法

    C#實(shí)現(xiàn)Socket通信的解決方法

    這篇文章主要介紹了C#實(shí)現(xiàn)Socket通信的解決方法,需要的朋友可以參考下
    2014-07-07
  • 微信開放平臺之網(wǎng)站授權(quán)微信登錄功能

    微信開放平臺之網(wǎng)站授權(quán)微信登錄功能

    本文通過.net實(shí)現(xiàn)的微信開放平臺之網(wǎng)站授權(quán)微信登錄功能,需要的小伙伴一起看看吧
    2015-09-09
  • 將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子

    將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子

    這篇文章介紹了將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子,有需要的朋友可以參考一下
    2013-10-10
  • C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct的區(qū)別

    C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct的區(qū)別

    struct是值類型,創(chuàng)建一個(gè)struct類型的實(shí)例被分配在棧上,class是引用類型,創(chuàng)建一個(gè)class類型實(shí)例被分配在托管堆上,下面這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • C#實(shí)現(xiàn)簡單的計(jì)算器小功能

    C#實(shí)現(xiàn)簡單的計(jì)算器小功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡單的計(jì)算器小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Unity讀取Excel文件轉(zhuǎn)換XML格式文件

    Unity讀取Excel文件轉(zhuǎn)換XML格式文件

    這篇文章主要為大家詳細(xì)介紹了Unity讀取Excel文件轉(zhuǎn)換XML格式文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評論