您好,登錄后才能下訂單哦!
這篇文章主要講解了Unity3D Shader實現鏡子效果的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
Shader部分代碼:
Shader "Custom/FanShe" { Properties{ _MainTex("Albedo",2D) = "white"{} _MainTint("Diffuse Color",Color)=(1,1,1,1) _Cubemap("Cubemap",CUBE) = ""{} _ReflAmount("Reflection Amount",Range(0.1,1.0))=0.5 } SubShader{ Tags{"RenderType"="Opaque"} LOD 200 CGPROGRAM #pragma surface surf Lambert #pragma target 3.0 struct Input { float2 uv_MainTex; float3 worldRefl; }; sampler2D _MainTex; samplerCUBE _Cubemap; fixed4 _MainTint; half _ReflAmount; void surf(Input IN, inout SurfaceOutput o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex)*_MainTint; o.Albedo = c.rgb; o.Emission = texCUBE(_Cubemap, IN.worldRefl)*_ReflAmount; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" }
C#部分代碼:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Shader_FanShe : MonoBehaviour { public Cubemap cubeMap; public Camera cam; Material curmat; // Use this for initialization void Start () { InvokeRepeating("change", 1, 0.1f); curmat = gameObject.GetComponent<Renderer>().material; if (curmat == null) { Debug.Log("cw"); } } // Update is called once per frame void Update () { } void change() { cam.transform.rotation = Quaternion.identity; cam.RenderToCubemap(cubeMap); curmat.SetTexture("_Cubemap",cubeMap); } }
看完上述內容,是不是對Unity3D Shader實現鏡子效果的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。