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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

5.Lambert光照Diffuse Shader

發布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.Lambert光照Diffuse Shader 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/candycat1992/article/details/17355629 這篇文章寫的很好,這里就直接上代碼了

Shader "Study/5_LambertDiffuse" {Properties{_Color("Main Color", Color) = (1,1,1,1)_MainTex("Base (RGB)", 2D) = "white" {}_EmissiveColor("Emissive Color", Color) = (1,1,1,1)_AmbientColor("Ambient Color", Color) = (1,1,1,1)_MySliderValue("This is a Slider", Range(0,10)) = 2.5}SubShader{Tags{ "RenderType" = "Opaque" }LOD 200CGPROGRAM #pragma surface surf Lambert MyLambertDiffusesampler2D _MainTex;fixed4 _Color;//We need to declare the properties variable type inside of the //CGPROGRAM so we can access its value from the properties block. float4 _EmissiveColor;float4 _AmbientColor;float _MySliderValue;struct Input{float2 uv_MainTex;};void surf(Input IN, inout SurfaceOutput o){//We can then use the properties values in our shader fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;c = c * pow((_EmissiveColor + _AmbientColor), _MySliderValue);o.Albedo = c.rgb;o.Alpha = c.a;}inline float4 LightingMyLambertDiffuse(SurfaceOutput s, fixed3 lightDir, fixed atten){float difLight = max(0, dot(s.Normal, lightDir));float4 col;col.rgb = s.Albedo * _LightColor0.rgb * (difLight * atten * 2);col.a = s.Alpha;return col;}ENDCG}FallBack "Diffuse" }

這個shader是包括了自發光和環境光效果的:

pow((_EmissiveColor + _AmbientColor), _MySliderValue);

工程鏈接:http://download.csdn.net/detail/yinfourever/9568070



總結

以上是生活随笔為你收集整理的5.Lambert光照Diffuse Shader的全部內容,希望文章能夠幫你解決所遇到的問題。

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