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

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

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

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"
}

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

相關文章

  • 使用C#寫了一個可以推算火車票身份證號碼的小程序

    使用C#寫了一個可以推算火車票身份證號碼的小程序

    這篇文章主要介紹了使用C#寫了一個可以推算火車票身份證號碼的小程序 的相關資料,需要的朋友可以參考下
    2016-02-02
  • C#難點逐個擊破(8):可空類型System.Nullable

    C#難點逐個擊破(8):可空類型System.Nullable

    null值用來表示數(shù)據(jù)類型未被賦予任何值,它是一種引用類型;void表示沒有類型,或者說是沒有任何值。null與void的區(qū)別可以認為void是根本沒有,而null是一個空箱子,里面什么都沒有。
    2010-02-02
  • 關于C#中的字體別名問題

    關于C#中的字體別名問題

    在C#中使用Graphics對象的DrawString方法繪制文本時,可以通過設置TextRenderingHint屬性來控制字體混疊效果,對于14號或更大的字體,建議使用AntiAliasGridFit;對于8到14點之間的字體,建議使用AntiAlias;對于小于8點的字體,建議使用ClearTypeGridFit
    2025-01-01
  • 如何在UpdatePanel中調(diào)用JS客戶端腳本

    如何在UpdatePanel中調(diào)用JS客戶端腳本

    本文將介紹如何在UpdatePanel中調(diào)用JS客戶端腳本,需要了解的朋友可以參考下
    2012-12-12
  • C#?VB.NET?將Html轉(zhuǎn)為Excel

    C#?VB.NET?將Html轉(zhuǎn)為Excel

    本文介紹通過C#和VB.NET代碼展示將Html轉(zhuǎn)為Excel文檔的方法。文中的示例代碼講解詳細,對我們學習C#有一定幫助,感興趣的小伙伴可以了解一下
    2022-03-03
  • C# 利用Selenium實現(xiàn)瀏覽器自動化操作的示例代碼

    C# 利用Selenium實現(xiàn)瀏覽器自動化操作的示例代碼

    這篇文章主要介紹了C# 利用Selenium實現(xiàn)瀏覽器自動化操作,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-09-09
  • C# WebApi+Webrtc局域網(wǎng)音視頻通話實例

    C# WebApi+Webrtc局域網(wǎng)音視頻通話實例

    這篇文章主要為大家詳細介紹了C# WebApi+Webrtc局域網(wǎng)音視頻通話實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#實現(xiàn)批量給圖片添加水印的示例代碼

    C#實現(xiàn)批量給圖片添加水印的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)批量給圖片添加水印的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C# log4net日志庫的用法小結(jié)

    C# log4net日志庫的用法小結(jié)

    log4net日志開源庫是用來控制日志文件大小,日志文件個數(shù),滾動式覆蓋,自由控制日志打印等級,今天通過本文給大家介紹C# log4net日志庫的用法小結(jié),感興趣的朋友一起看看吧
    2021-10-10
  • C#文件上傳的簡單實現(xiàn)

    C#文件上傳的簡單實現(xiàn)

    這篇文章主要為大家詳細介紹了C#文件上傳的簡單實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

寿宁县| 白水县| 台前县| 久治县| 建湖县| 广州市| 南陵县| 富川| 辽宁省| 吉林市| 台州市| 武陟县| 寿宁县| 卓资县| 泸水县| 红安县| 墨江| 青川县| 高淳县| 荔浦县| 珲春市| 彩票| 株洲县| 长顺县| 桦甸市| 桐乡市| 德州市| 萨嘎县| 巍山| 呼和浩特市| 泰来县| 舒兰市| 清水县| 永登县| 屯昌县| 介休市| 英超| 东兰县| 嫩江县| 长寿区| 武平县|