亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

unityshader怎么實現光照效果

發布時間:2021-08-21 20:11:31 來源:億速云 閱讀:167 作者:chen 欄目:編程語言

這篇文章主要介紹“unityshader怎么實現光照效果”,在日常操作中,相信很多人在unityshader怎么實現光照效果問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”unityshader怎么實現光照效果”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

本文實例為大家分享了unity 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"}

到此,關于“unityshader怎么實現光照效果”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

区。| 巴塘县| 双鸭山市| 肥西县| 新沂市| 定安县| 盐山县| 武山县| 仪陇县| 安新县| 崇左市| 柞水县| 庆阳市| 昌平区| 镇宁| 河北区| 西乌珠穆沁旗| 中牟县| 措美县| 涪陵区| 苍溪县| 衡阳市| 庐江县| 慈溪市| 额济纳旗| 偏关县| 澎湖县| 武山县| 西吉县| 绥阳县| 尉氏县| 英吉沙县| 阿瓦提县| 新余市| 东辽县| 晋宁县| 北宁市| 景洪市| 偏关县| 万年县| 姚安县|