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

Unity Shader實(shí)現(xiàn)線框效果的制作步驟

 更新時(shí)間:2021年06月07日 14:53:23   作者:小蓋子  
最近比較忙,今天抽空給大家分享一篇文章,關(guān)于Unity Shader實(shí)現(xiàn)線框效果,本文給大家分享詳細(xì)制作步驟,通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

先上圖看看效果:

在這里插入圖片描述

下面詳細(xì)分享一下制作步驟吧:

一、首先模型本身需要特殊處理

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

二、編寫(xiě)Shader

shader "Giraffe/Wireframe" {
	properties{
		   _Color("Color",Color) = (1.0,1.0,1.0,1.0)
		   _EdgeColor("Edge Color",Color) = (1.0,1.0,1.0,1.0)
		   _EdgeColor2("Edge Color",Color) = (1.0,1.0,1.0,1.0)
		   _Width("Width",Range(0,1)) = 0.2
	}
		SubShader{
			Tags {"Queue" = "Transparent" "IgnoreProjector" = "True"}
			Cull Front

			Pass {

			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#pragma target 3.0
			#include "UnityCG.cginc"

			struct a2v {
				half4 uv : TEXCOORD0;
				half4 vertex : POSITION;
			};

			struct v2f {
				half4 pos : SV_POSITION;
				half4 uv : TEXCOORD0;
			};

			fixed4 _Color;
			fixed4 _EdgeColor;
			float _Width;

			v2f vert(a2v v)
			{
				v2f o;
				o.uv = v.uv;
				o.pos = UnityObjectToClipPos(v.vertex);
				return o;
			}

			fixed4 frag(v2f i) : COLOR
			{
				fixed4 col;
				//step(a, x) : 如果 x<a,返回0;否則,返回1。
				float LowX = step(_Width, i.uv.x);
				float LowY = step(_Width, i.uv.y);
				float HighX = step(i.uv.x, 1.0 - _Width);
				float HighY = step(i.uv.y, 1.0 - _Width);
				float num = LowX * LowY*HighX*HighY;
				col = lerp(_EdgeColor, _Color, num);

				clip((1-num)-0.1f);
				return col;
			}
			ENDCG
		}


			Cull Back
			Pass {
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct a2v {
				half4 uv : TEXCOORD0;
				half4 vertex : POSITION;

			};

			struct v2f {
				half4 pos : SV_POSITION;
				half4 uv : TEXCOORD0;

			};

			fixed4 _Color;
			fixed4 _EdgeColor2;
			float _Width;

			v2f vert(a2v v)
			{
				v2f o;
				o.uv = v.uv;
				o.pos = UnityObjectToClipPos(v.vertex);
				return o;
			}

			fixed4 frag(v2f i) : COLOR
			{
				fixed4 col;
				//step(a, x) : 如果 x<a,返回0;否則,返回1。
				float LowX = step(_Width, i.uv.x);
				float LowY = step(_Width, i.uv.y);
				float HighX = step(i.uv.x, 1.0 - _Width);
				float HighY = step(i.uv.y, 1.0 - _Width);
				float num = LowX * LowY*HighX*HighY;
				col = lerp(_EdgeColor2, _Color, num);

				clip((1 - num) - 0.1f);
				return col;
			}
			ENDCG
		}
	}
	FallBack "Diffuse"
}

三、講解

模型部分:
1、處理是為了把所有模型面,以重疊的方式撐滿整個(gè)UV。
2、為什么會(huì)用四邊面,因?yàn)樵囘^(guò)了三角面過(guò)多,看起來(lái)非常亂,效果不好。
代碼部分:
1、分成兩個(gè)Pass,分別渲染剔除正面和剔除背面的,這個(gè)比較好理解。
2、核心代碼部分是:

float LowX = step(_Width, i.uv.x);
float LowY = step(_Width, i.uv.y);
float HighX = step(i.uv.x, 1.0 - _Width);
float HighY = step(i.uv.y, 1.0 - _Width);
float num = LowX * LowY*HighX*HighY;
col = lerp(_EdgeColor2, _Color, num);

在UV上找到對(duì)應(yīng)的范圍進(jìn)行著色,其他位置透明化,如圖所示:

在這里插入圖片描述

以上就是Unity Shader實(shí)現(xiàn)線框效果的制作步驟的詳細(xì)內(nèi)容,更多關(guān)于Unity Shader實(shí)現(xiàn)線框的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#使用iTextSharp添加PDF水印

    C#使用iTextSharp添加PDF水印

    這篇文章主要為大家詳細(xì)介紹了C#使用iTextSharp添加PDF水印的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • c#將字節(jié)數(shù)組轉(zhuǎn)成易讀的字符串的實(shí)現(xiàn)

    c#將字節(jié)數(shù)組轉(zhuǎn)成易讀的字符串的實(shí)現(xiàn)

    這篇文章主要介紹了c#將字節(jié)數(shù)組轉(zhuǎn)成易讀的字符串的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法

    C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法

    這篇文章主要介紹了C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • C#?SQLite庫(kù)使用技巧

    C#?SQLite庫(kù)使用技巧

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

    C#實(shí)現(xiàn)快速查詢文件的方法

    這篇文章介紹了C#實(shí)現(xiàn)快速查詢文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C# 提取PDF中的表格詳情

    C# 提取PDF中的表格詳情

    這篇文章主要給大家介紹C# 提取PDF中的表格,本文介紹在C#程序中(附VB.NET代碼)提取PDF中的表格的方法,調(diào)用Spire.PDF for .NET提供的提取表格的 類 以及 方法 等來(lái)獲取表格單元格中的文本內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • C#使用泛型方法設(shè)計(jì)實(shí)現(xiàn)單向鏈表詳解

    C#使用泛型方法設(shè)計(jì)實(shí)現(xiàn)單向鏈表詳解

    這篇文章主要為大家詳細(xì)介紹了C#如何使用泛型方法設(shè)計(jì)實(shí)現(xiàn)一個(gè)單向鏈表,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • C#使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼

    C#使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼

    這篇文章主要為大家詳細(xì)介紹了C#如何使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考下
    2024-03-03
  • 深入分析NTFS中文件被鎖定導(dǎo)致Process.Start失敗的詳解

    深入分析NTFS中文件被鎖定導(dǎo)致Process.Start失敗的詳解

    本篇文章是對(duì)NTFS中文件被鎖定導(dǎo)致Process.Start失敗進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#實(shí)現(xiàn)過(guò)濾html標(biāo)簽并保留a標(biāo)簽的方法

    C#實(shí)現(xiàn)過(guò)濾html標(biāo)簽并保留a標(biāo)簽的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)過(guò)濾html標(biāo)簽并保留a標(biāo)簽的方法,文中的自定義函數(shù)采用正則過(guò)濾實(shí)現(xiàn)了該功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09

最新評(píng)論