日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3dShader_边缘发光效果

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3dShader_边缘发光效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shader知識:
http://imgtec.eetrend.com/blogs/%E5%A2%A8%E5%8D%8A%E6%88%90%E9%9C%9C

最終效果 Shader "Learning Unity Shader/Lecture 14/Surface Rim Shader" { //-----------------------------------【屬性 || Properties】------------------------------------------ Properties { //主顏色 || Main Color _MainColor("【主顏色】Main Color", Color) = (0.5,0.5,0.5,1) //漫反射紋理 || Diffuse Texture _MainTex("【紋理】Texture", 2D) = "white" {} //凹凸紋理 || Bump Texture _BumpMap("【凹凸紋理】Bumpmap", 2D) = "bump" {} //邊緣發光顏色 || Rim Color _RimColor("【邊緣發光顏色】Rim Color", Color) = (0.17,0.36,0.81,0.0) //邊緣發光強度 ||Rim Power _RimPower("【邊緣顏色強度】Rim Power", Range(0.6,36.0)) = 8.0 //邊緣發光強度系數 || Rim Intensity Factor _RimIntensity("【邊緣顏色強度系數】Rim Intensity", Range(0.0,100.0)) = 1.0 } //----------------------------------【子著色器 || SubShader】--------------------------------------- SubShader { //渲染類型為Opaque,不透明 || RenderType Opaque Tags { "RenderType" = "Opaque" } //-------------------------開啟CG著色器編程語言段 || Begin CG Programming Part---------------------- CGPROGRAM //【1】聲明使用蘭伯特光照模式 ||Using the Lambert light mode #pragma surface surf Lambert //【2】定義輸入結構 || Input Struct struct Input { //紋理貼圖 || Texture float2 uv_MainTex; //法線貼圖 || Bump Texture float2 uv_BumpMap; //觀察方向 || Observation direction float3 viewDir; }; //【3】變量聲明 || Variable Declaration //邊緣顏色 float4 _MainColor; //主紋理 sampler2D _MainTex; //凹凸紋理 sampler2D _BumpMap; //邊緣顏色 float4 _RimColor; //邊緣顏色強度 float _RimPower; //邊緣顏色強度 float _RimIntensity; //【4】表面著色函數的編寫 || Writing the surface shader function void surf(Input IN, inout SurfaceOutput o) { //表面反射顏色為紋理顏色 o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb*_MainColor.rgb; //表面法線為凹凸紋理的顏色 o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); //邊緣顏色 half rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal)); //計算出邊緣顏色強度系數 o.Emission = _RimColor.rgb * pow(rim, _RimPower)*_RimIntensity; } //-------------------結束CG著色器編程語言段 || End CG Programming Part------------------ ENDCG } //后備著色器為普通漫反射 || Fallback use Diffuse Fallback "Diffuse" }

總結

以上是生活随笔為你收集整理的Unity3dShader_边缘发光效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。