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

unity shader實現(xiàn)較完整光照效果

 更新時間:2019年11月25日 11:41:04   作者:周者  
這篇文章主要為大家詳細介紹了unity shader實現(xiàn)較完整光照效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了unity shader實現(xiàn)光照效果的具體代碼,供大家參考,具體內(nèi)容如下

效果圖:

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

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

相關(guān)文章

  • C#遍歷DataSet控件實例總結(jié)

    C#遍歷DataSet控件實例總結(jié)

    這篇文章主要介紹了C#遍歷DataSet控件的用法,以實例形式總結(jié)歸納了常見的遍歷方法,具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2014-10-10
  • C#線程同步的三類情景分析

    C#線程同步的三類情景分析

    這篇文章主要介紹了C#線程同步的三類情景分析,較為詳細生動的講述了C#線程同步的三類情況,讓大家對C#多線程程序設(shè)計有一個深入的了解,需要的朋友可以參考下
    2014-10-10
  • c#打印預(yù)覽控件中實現(xiàn)用鼠標移動頁面功能代碼分享

    c#打印預(yù)覽控件中實現(xiàn)用鼠標移動頁面功能代碼分享

    項目中需要實現(xiàn)以下功能:打印預(yù)覽控件中,可以用鼠標拖動頁面,以查看超出顯示范圍之外的部分內(nèi)容,下面就是實現(xiàn)代碼
    2013-12-12
  • Unity UGUI的Outline描邊組件的介紹使用示例

    Unity UGUI的Outline描邊組件的介紹使用示例

    這篇文章主要介紹了Unity UGUI的Outline描邊組件的介紹使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 在C#中List集合使用First()方法獲取第一個元素的操作

    在C#中List集合使用First()方法獲取第一個元素的操作

    這篇文章主要介紹了在C#中List集合使用First()方法獲取第一個元素的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • c#對xml增刪改查操作示例

    c#對xml增刪改查操作示例

    本文主要介紹c#對xml增刪改查操作的示例,大家參考使用吧
    2014-01-01
  • C#實現(xiàn)向函數(shù)傳遞不定參數(shù)的方法

    C#實現(xiàn)向函數(shù)傳遞不定參數(shù)的方法

    這篇文章主要介紹了C#實現(xiàn)向函數(shù)傳遞不定參數(shù)的方法,涉及C#操作函數(shù)參數(shù)的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#連接加密的Sqlite數(shù)據(jù)庫的方法

    C#連接加密的Sqlite數(shù)據(jù)庫的方法

    對數(shù)據(jù)加密分兩種,一種是對數(shù)據(jù)庫本身進行加密,另一種是對數(shù)據(jù)表中的數(shù)據(jù)進行加密,下面通過本文給大家介紹C#連接加密的Sqlite數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2017-08-08
  • 詳解C#之委托

    詳解C#之委托

    這篇文章主要介紹了C#委托的含義以及用法,文中代碼非常詳細,幫助大家更好的理解和學(xué)習(xí)
    2020-06-06
  • Unity利用XML制作一個簡易的登錄系統(tǒng)

    Unity利用XML制作一個簡易的登錄系統(tǒng)

    這篇文章主要介紹了如何在Unity中利用XML文件制作一個簡易的登錄系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-03-03

最新評論

湖北省| 西乌| 平果县| 北流市| 德令哈市| 卢湾区| 大同市| 北京市| 泰宁县| 扎兰屯市| 射洪县| 商洛市| 吉水县| 淮南市| 布尔津县| 大新县| 龙岩市| 宽城| 维西| 沛县| 漯河市| 盈江县| 乌鲁木齐市| 张掖市| 武安市| 家居| 东乡族自治县| 大田县| 滨州市| 东乡族自治县| 北川| 道真| 阿鲁科尔沁旗| 资兴市| 谢通门县| 辛集市| 城步| 旬邑县| 遂昌县| 大丰市| 夏河县|