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

unity shader 較完整光照(含有多光源陰影)

 更新時間:2021年09月16日 15:17:10   作者:學(xué)者(cloudea)  
這篇文章主要介紹了unity shader 較完整光照(含有多光源陰影),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Unity Shader是著色器,將紋理、網(wǎng)格信息輸入,得到材質(zhì)的一段程序,具體是個什么東西,還需要親自實踐才知道。

效果圖:
shader被附給了球。
燈光需要在屬性面板開啟陰影。

在這里插入圖片描述

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Unlit/lightFull"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass
		{
			Tags{"LightMode" = "ForwardBase"}
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			// make fog work
			#pragma multi_compile_fwdbase
			
			#include "UnityCG.cginc"
			#include "Lighting.cginc"
			#include "AutoLight.cginc"
			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
				float3 normal : NORMAL;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				float4 pos : POSITION;
				float4 pos_world : TEXCOORD1;
				float3 normal:TEXCOORD2;
				SHADOW_COORDS(3)
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			
			v2f vert (appdata v)
			{
				v2f o;
				o.pos_world = mul(UNITY_MATRIX_M, v.vertex);
				o.normal = v.normal;
				o.pos = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				TRANSFER_SHADOW(o);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
				// sample the texture
				fixed4 col = tex2D(_MainTex, i.uv);
				float4 lightColor = _LightColor0;
				float3 lightDir = WorldSpaceLightDir(i.pos_world);
				UNITY_LIGHT_ATTENUATION(atten, i, i.pos_world.xyz);
				return col * lightColor * saturate(dot(lightDir, i.normal)) * atten;
			}
			ENDCG
		}
		pass
		{
			Tags{"LightMode" = "ForwardAdd"}
			Blend One One
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#pragma multi_compile_fwdadd_fullshadows
				
			#include "UnityCG.cginc"
			#include "Lighting.cginc"
			#include "AutoLight.cginc"
			struct v2f
			{
				float4 pos : POSITION;
				float4 vertex : TEXCOORD0;
				float3 normal : NORMAL;
				SHADOW_COORDS(2)
			};

			v2f vert(appdata_full data)
			{
				v2f v;
				v.pos = UnityObjectToClipPos(data.vertex);
				v.vertex = mul(UNITY_MATRIX_M, data.vertex);
				v.normal = data.normal;
				TRANSFER_SHADOW(v);
				return v;
			}

			float4 frag(v2f v) :SV_Target
			{
				float3 lightColor = _LightColor0;
#ifdef USING_DIRECTIONAL_LIGHT
				float3 lightDir = _WorldSpaceLightPos0;
#else
				float3 lightDir = _WorldSpaceLightPos0 - v.vertex;
#endif
				UNITY_LIGHT_ATTENUATION(atten, v, v.vertex.xyz);
				float3 color =  lightColor * saturate(dot(lightDir, v.normal) * atten);
				return float4(color, 1);
			}
			ENDCG
		}
	}
	Fallback "Specular"
}

到此這篇關(guān)于unity shader 較完整光照(含有多光源陰影)的文章就介紹到這了,更多相關(guān)unity shader光照內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# Main方法的傳入?yún)?shù)研究

    C# Main方法的傳入?yún)?shù)研究

    這篇文章主要介紹了C# Main方法的傳入?yún)?shù)研究,相信大家不管是在java中還是C#中都經(jīng)常見到public static void Main(string[] args)類似的語句,那這個args到底有什么用,你又知道多少呢?本文就專門研究了這個參數(shù),相信可以讓漲姿勢,需要的朋友可以參考下
    2015-06-06
  • C#基礎(chǔ)語法:as 運算符使用實例

    C#基礎(chǔ)語法:as 運算符使用實例

    這篇文章主要介紹了C#基礎(chǔ)語法:as 運算符使用實例,本文給出了類、字符串、數(shù)字、浮點數(shù)、null等值的運算實例,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn)逐行讀取和寫入文件的方法

    C#實現(xiàn)逐行讀取和寫入文件的方法

    這篇文章給大家介紹了使用C#語言實現(xiàn)同樣的功能,即從輸入文件中讀取每行數(shù)據(jù),然后將每行字段組合成SQL插入腳本,然后逐行寫入另外一個空白文件中,感興趣的朋友可以參考下
    2024-01-01
  • C#在后臺運行操作(BackgroundWorker用法)示例分享

    C#在后臺運行操作(BackgroundWorker用法)示例分享

    BackgroundWorker類允許在單獨的專用線程上運行操作。如果需要能進(jìn)行響應(yīng)的用戶界面,而且面臨與這類操作相關(guān)的長時間延遲,則可以使用BackgroundWorker類方便地解決問題,下面看示例
    2013-12-12
  • C#實現(xiàn)百度ping推送功能的方法

    C#實現(xiàn)百度ping推送功能的方法

    百度ping是網(wǎng)站優(yōu)化必做的事情,這樣才能主動推送給百度,那么基于代碼是如何實現(xiàn)百度推送方法呢?下文小編給大家?guī)砹薈#實現(xiàn)百度ping推送功能的方法,非常不錯,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • c# AES字節(jié)數(shù)組加密解密流程及代碼實現(xiàn)

    c# AES字節(jié)數(shù)組加密解密流程及代碼實現(xiàn)

    這篇文章主要介紹了c# AES字節(jié)數(shù)組加密解密流程及代碼實現(xiàn),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11
  • C#中SQL參數(shù)傳入空值報錯解決方案

    C#中SQL參數(shù)傳入空值報錯解決方案

    這篇文章主要介紹了C#中SQL參數(shù)傳入空值報錯解決方案,需要的朋友可以參考下
    2017-06-06
  • C#刪除整個目錄及子目錄的方法

    C#刪除整個目錄及子目錄的方法

    這篇文章主要介紹了C#刪除整個目錄及子目錄的方法,涉及C#操作目錄刪除的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Unity UGUI的Scrollbar滾動條組件使用詳解

    Unity UGUI的Scrollbar滾動條組件使用詳解

    這篇文章主要介紹了Unity UGUI的Scrollbar(滾動條)組件的介紹及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • C#導(dǎo)出Excel的幾種常見方式及詳細(xì)實現(xiàn)步驟

    C#導(dǎo)出Excel的幾種常見方式及詳細(xì)實現(xiàn)步驟

    excel導(dǎo)出在C#代碼中應(yīng)用己經(jīng)很廣泛了,我這里就做些總結(jié),下面這篇文章主要給大家介紹了關(guān)于C#導(dǎo)出Excel的幾種常見方式及詳細(xì)實現(xiàn)步驟的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06

最新評論