最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

先上圖看看效果:

在這里插入圖片描述

下面詳細分享一下制作步驟吧:

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

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

二、編寫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、處理是為了把所有模型面,以重疊的方式撐滿整個UV。
2、為什么會用四邊面,因為試過了三角面過多,看起來非常亂,效果不好。
代碼部分:
1、分成兩個Pass,分別渲染剔除正面和剔除背面的,這個比較好理解。
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上找到對應的范圍進行著色,其他位置透明化,如圖所示:

在這里插入圖片描述

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

相關(guān)文章

  • word ppt excel文檔轉(zhuǎn)換成pdf的C#實現(xiàn)代碼

    word ppt excel文檔轉(zhuǎn)換成pdf的C#實現(xiàn)代碼

    這篇文章主要介紹了word ppt excel文檔轉(zhuǎn)換成pdf的C#實現(xiàn)代碼,有需要的朋友可以參考一下
    2014-01-01
  • C#快速實現(xiàn)拖放操作

    C#快速實現(xiàn)拖放操作

    這篇文章介紹了C#快速實現(xiàn)拖放操作的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C# 基于NPOI操作Excel

    C# 基于NPOI操作Excel

    最近遇到一個數(shù)據(jù)導入的需求,語言是.net framework 4.7的C#。但是,這次主要探討NPOI的體驗,原則就是向前兼容。所以采用.xls的支持。下面就來看看實現(xiàn)步驟
    2021-06-06
  • C#飛行棋小程序設(shè)計代碼

    C#飛行棋小程序設(shè)計代碼

    這篇文章主要為大家詳細介紹了C#飛行棋小程序設(shè)計代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 使用C#連接并讀取MongoDB數(shù)據(jù)庫

    使用C#連接并讀取MongoDB數(shù)據(jù)庫

    這篇文章介紹了使用C#連接并讀取MongoDB數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#如何給word文檔添加水印

    C#如何給word文檔添加水印

    這篇文章主要為大家詳細介紹了C#如何給word文檔添加水印的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • c#字符長度查詢代碼

    c#字符長度查詢代碼

    下面的代碼用了查詢字符串中的一些類型,需要的朋友可以參考下
    2012-06-06
  • C#實現(xiàn)QQ郵箱發(fā)送郵件

    C#實現(xiàn)QQ郵箱發(fā)送郵件

    今天小編就為大家分享一篇關(guān)于C#實現(xiàn)QQ郵箱發(fā)送郵件,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • C#從文件或標準輸入設(shè)備讀取指定行的方法

    C#從文件或標準輸入設(shè)備讀取指定行的方法

    這篇文章主要介紹了C#從文件或標準輸入設(shè)備讀取指定行的方法,涉及C#文件及IO操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#如何連接數(shù)據(jù)庫

    C#如何連接數(shù)據(jù)庫

    這篇文章主要介紹了C#如何連接數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

湖南省| 天柱县| 南平市| 石家庄市| 海阳市| 建水县| 秀山| 崇文区| 南投市| 乌恰县| 喀喇| 正宁县| 井研县| 江达县| 儋州市| 漳州市| 阳原县| 波密县| 岱山县| 英吉沙县| 武乡县| 崇左市| 嘉兴市| 图片| 盐亭县| 滕州市| 察雅县| 富阳市| 密云县| 涡阳县| 盐津县| 霍林郭勒市| 滨州市| 旅游| 潜山县| 金秀| 阳信县| 百色市| 吐鲁番市| 如东县| 武穴市|