6.Half Lambert光照Diffuse Shader

简单来说,Lambert定律认为,在平面某点漫反射光的光强与该反射点的法向量和入射光角度的余弦值成正比(即我们之前使用dot函数得到的结果)。Half Lambert最初是由Valve(游戏半条命2使用的引擎即是其开发的)提出来,用于提高物体在一些光线无法照射到的区域的亮度的。简单说来,它提高了漫反射光照的亮度,使得漫反射光线可以看起来照射到一个物体的各个表面。而Half Lambert最初也是被用于游戏半条命的画面渲染,为了防止某个物体的背光面丢失形状并且显得太过平面化。这个技术是完全没有基于任何物理原理的,而仅仅是一种感性的视觉增强

相比之前的Lambert光照shader,只是多加了一行代码

float hLambert = difLight * 0.5 + 0.5;

由代码可以看出,我们定义了一个新的变量hLambert来替换difLight用于计算某点的颜色值。difLight的范围是0.0 - 1.0,而通过hLambert,我们将结果由0.0 - 1.0映射到了0.5 - 1.0,从而达到了增加亮度的目的。下图显示了这一变化:

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



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伯克利计算机科学录取率,Berkeley的CS「加州大学伯克利分校计算机科学系」

加州大学伯克利分校电气工程与计算机科学系开设有以下学位项目&#xff0c;分别是&#xff1a;电气工程与计算机科学理学硕士(MS in Electrical Engineering and Computer Sciences)&#xff1a;为期1-2年&#xff0c;共计24个学分&#xff0c;要求申请者本科毕业&#xff0c;不…

7.Phong 和 BlinnPhong

Lambert漫反射光照模型&#xff0c;这是一个用来模拟粗糙表面对光线的漫反射现象的经验模型&#xff0c;对于纸张、粗糙墙壁等等来说&#xff0c;这个模型或许够用&#xff0c;但对于金属这样的光滑表面来说&#xff0c;我们就需要使用Phong模型来模拟光滑表面对光线的镜面反射…

html css animation,css animation是什么?

animation是CSS3中的一个简写属性&#xff0c;可以通过设置六个动画属性来实现动画效果。这六个属性分别为动画名称、动画时间、速度曲线、动画延迟、播放次数及动画是否反向播放。语法&#xff1a;animation: name duration timing-function delay iteration-count direction;…

8.平面阴影

public class CastShadow : MonoBehaviour {public Transform rec;//接受阴影的物体// Use this for initializationvoid Start () {GetComponent<Renderer>().sharedMaterial.SetMatrix("_World2Ground", rec.GetComponent<Renderer>().worldToLocalMat…

千分之三用计算机怎么算,浓度换算计算器(浓度单位换算器在线使用)

基本公式&#xff1a;c1000ρω/m 式中&#xff1a;c-----物质的量浓度 单位mol/l1000------1000毫升 单位ml ρ------密度 单位 g/ml ω----质量分数 % m------溶质的摩尔质量 单位g/mol看过很多答案&#xff0c;都是抄的 &#xff0c;如果抄袭&#xff0c;不给分 哦 问&#…

9.球体阴影

上一篇讲的阴影shader是通过两个pass来渲染出的&#xff0c;第一个pass渲染要投影的物体本体&#xff0c;第二个pass渲染物体的阴影&#xff0c;也就是说阴影的渲染是在物体的shader中而不是地面的shader。下面要讲的球体阴影的shader是放在要接受阴影的地面上。 原理如下图&am…

css html 抽屉,CSS快速入门-前端布局1(抽屉)(示例代码)

一、效果图前面对CSS基础知识有了一定的了解&#xff0c;是时候开始实战了&#xff01;以下我对抽屉(https://dig.chouti.com/)主页进行模拟布局。官方网站效果图&#xff1a;模拟网站图&#xff1a;二、实现步骤1、整体布局(header、body、footer)抽屉的首页主要分为三块&…

10.热空气扭曲效果

Shader "Study/10_Distortion" {Properties{_NoiseTex("絮乱图", 2D) "white" {} // 絮乱图_AreaTex("区域图(Alpha)&#xff1a;白色为显示区域&#xff0c;透明为不显示区域", 2D) "white" {} // 区域图_Move…

11.Wave Shader

这个shader是在这位博主点击打开链接的文章基础上进行修改得到的&#xff0c;原作是在shadertoy网站上。不得不说&#xff0c;被shadertoy上的大神们震精了&#xff0c;真的是令我叹为观止&#xff0c;啥也不说了&#xff0c;慢慢学吧。 shader的效果&#xff1a; Shader的代码…

macpro台式计算机,Mac Pro正式上架 真的可以用来刨土豆丝

12月15日消息&#xff0c;早在6月4号WWDC全球开发者大会上就已经发布的新版Mac Pro电脑&#xff0c;近期正式上架苹果官网开销&#xff0c;某一外媒在收到2019年新版Mac Pro后&#xff0c;第一件事竟不是体验其性能&#xff0c;而是验证它是否可以用来给土豆或者奶酪刨丝。在视…

中专选计算机应用很难,对中专计算机应用基础改革的思考.pdf

对中专计算机应用基础改革的思考对 中 专 计 算 机 应 用 基 础 改 革 的 思 考许建英(许昌技术经济学校 &#xff0c;河南 长葛 461500)随着我国经济 、社会 的发展和科技 的进步&#xff0e;计算机应用技 动性 &#xff0c;让学生掌握 自主学习的学习方法 &#xff0e;提高学…

12.屏幕高斯模糊

本系列文章由浅墨_毛星云 出品&#xff0c;转载请注明出处。 文章链接&#xff1a; http://blog.csdn.net/poem_qianmo/article/details/51871531 作者&#xff1a;毛星云&#xff08;浅墨&#xff09; 微博&#xff1a;http://weibo.com/u/1723155442 本文工程使用的Uni…

广东东软学院计算机系主任罗,广东东软学院副校长朱爱红一行来访我校

3月27日&#xff0c;广东东软学院副校长朱爱红、教务部部长程江涛、品牌发展部部长李惠旋、计算机学院院长黄迅、SOVO主任吴志成、网络与信息中心主任付冬波、实验教学中心主任谢振华、图书馆馆长刘春林等一行18人来访我校。我校副校长郭权接待来访嘉宾。嘉宾一行参加调研会议嘉…

事业单位职称工资计算机,终于!事业单位绩效工资、职称变了!关系上千万人收入!...

原标题&#xff1a;终于&#xff01;事业单位绩效工资、职称变了&#xff01;关系上千万人收入&#xff01;大学生热烈追捧事业单位和公务员&#xff0c;并将其称为铁饭碗&#xff01;有很多大学生们在大学毕业之后就选择了去考公务员或者事业单位&#xff01;甚至不少同学甚至…

Unity-Find-Script-References 查找脚本的引用

背景&#xff1a; 有时候我们需要找出项目中所有的引用到某个脚本的地方&#xff08;比如Prefabs/Scene GameObjects等&#xff09;。当项目比较大时&#xff0c;手工寻找还是非常费时费力的事情。本文尝试通过插件自动搜索。 分析&#xff1a; 基本的思路是&#xff1a;首先筛…

remove是什么意思计算机语言,remove是什么意思?remove是什么意思?

remove()是C语言中的函数&#xff0c;一般作用是删除数组、链表对象所有的元素。函数原型是intremove(char*filename)。函数功能remove()函数用于删除指定的文件&#xff0c;其原型如下&#xff1a;int remove(char *filename);函数声明2&#xff1a;templateinline bool remov…

Unity3D_NGUI_安卓APK安装包瘦身实践

减包瘦身是个精细活。本文整理了0907版本操作过程&#xff0c;以备日后参考。 经过一番折腾&#xff0c;各位攻城狮的努力&#xff0c;美术设计师的支持&#xff0c;策划爷的理解&#xff0c;UI资源&#xff08;图集、字体、单局外模型贴图&#xff09;从45.4MB减少到24.5MB。如…

太原理工大于丹计算机,于丹作客太原理工大 给4000理科生讲佛学

中新网太原5月17日电(贾子娴)17日&#xff0c;著名文化学者于丹走进太原理工大学清泽讲坛&#xff0c;为近4000名师生作了一场题为“阅读经典 感悟成长”的讲座&#xff0c;并引用佛道教中的若干经典来领悟、指导人生。于丹认为&#xff0c;在这纷繁复杂的中国社会中无论男女老…

Unity3D之Shader自定义编辑器功能拓展

一、前言最近在开发一个关卡类的游戏&#xff0c;在导入一些3D物体的时候&#xff0c;发现很多时候同一个3D物体需要渲染的方式不一样&#xff0c;比如这颗树要双面渲染&#xff08;Cull Off&#xff09;&#xff0c;但在很多情况下是可以剔除背面&#xff08;Cull Back&#x…

零基础怎么学好计算机函数,零基础要学会的15个常用函数

这些函数是最基本的&#xff0c;但应用面却非常广&#xff0c;学会这些基本函数可以让工作事半功倍。1、SUM加法是最基本的数学运算之一。函数SUM就是用来承担这个任务的。SUM的参数可以是单个数字、一组数字。因此SUM的加法运算功能十分强大。统计一个单元格区域&#xff1a;s…