4.边缘光照的描边shader

【思路】:面向摄像机的物体,它的表面法线【normal】和视角向量【viewDir】的【夹角】越靠近边缘就越大。那么就可以根据这个夹角进行处理,夹角越大,那么发射光越强,就可以实现我们想要的效果。

shader实例(四)物体描边【自发光】

Shader "Study/4_OutLine"
{Properties{_MainTex("Base (RGB)", 2D) = "white" {}_BumpMap("Bumpmap", 2D) = "bump" {}_RimColor("Rim Color", Color) = (0.26,0.19, 0.13, 0.0)_RimPower("Rim Power", Range(0.5, 8.0)) = 3.0}SubShader{Tags{ "RenderType" = "Opaque" }LOD 200CGPROGRAM#pragma surface surf Lambertsampler2D _MainTex;sampler2D _BumpMap;float4 _RimColor;float _RimPower;struct Input{float2 uv_MainTex;float2 uv_BumpMap;float3 viewDir;};void surf(Input IN, inout SurfaceOutput o){half4 c = tex2D(_MainTex, IN.uv_MainTex);o.Albedo = c.rgb;o.Alpha = c.a;//获取法线值【UnpackNormal是unity自带的标准解压法线用的】o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));// viewDir点到相机的向量归一 与 该点的法线 求点乘。得出余弦值【0-1】,如果两条线平行方向一样值1,相反-1,垂直0// 所以越靠近越靠近边缘,值越小,saturate相当于mathf.clamp(value,0,1)// 如果1-这个值,越靠近边缘,rim值越大,自发光就越强half rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));// pow是求幂函数,所以rim越大,效果越明显o.Emission = _RimColor.rgb * pow(rim, _RimPower);}ENDCG}FallBack "Diffuse"
}


工程地址:http://download.csdn.net/detail/yinfourever/9566913

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

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

相关文章

html 怎么设置cooki,怎么设置浏览器接受cookie

怎么设置浏览器接受cookie把浏览器设置成接受cookie方法,以IE11为例: 1,打开IE浏览器,在菜单栏上点击“工具”,弹出下拉菜单点击“Internet选项”。 2,点击“隐私”选项,在页面中点击“高级”。…

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) "whit…

计算机用户的注册表,计算机上的注册表在哪里

注册表在哪里: 计算机中的注册表在哪里?疯狂代码?: http://CrazyCoder.cn/DeveloperUtil/Article31113.html“开始”→“运行”菜单项,在运行中输入regedit,然后按Enter打开注册表编辑器,逐一展开上述各项以获取注册表…

6.Half Lambert光照Diffuse Shader

简单来说,Lambert定律认为,在平面某点漫反射光的光强与该反射点的法向量和入射光角度的余弦值成正比(即我们之前使用dot函数得到的结果)。Half Lambert最初是由Valve(游戏半条命2使用的引擎即是其开发的)提…

7.Phong 和 BlinnPhong

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

html css animation,css animation是什么?

animation是CSS3中的一个简写属性,可以通过设置六个动画属性来实现动画效果。这六个属性分别为动画名称、动画时间、速度曲线、动画延迟、播放次数及动画是否反向播放。语法: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…

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)抽屉的首页主要分为三块&…

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;而是验证它是否可以用来给土豆或者奶酪刨丝。在视…

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;甚至不少同学甚至…

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。如…

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

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

理解依赖注入(IOC)

IOC:英文全称&#xff1a;Inversion of Control&#xff0c;中文名称&#xff1a;控制反转&#xff0c;它还有个名字叫依赖注入&#xff08;Dependency Injection&#xff09;。 作用&#xff1a;将各层的对象以松耦合的方式组织在一起&#xff0c;解耦&#xff0c;各层对象的调…

局域网win7计算机如何互访,局域网win7电脑的互访步骤

局域网win7电脑的互访步骤Windows7如何实现局域网内的互访?下面是局域网win7电脑互访的步骤&#xff0c;为大家提供参考。步骤一&#xff1a;同步工作组 不管使用的是什么版本的Windows操作系统&#xff0c;第一步&#xff0c;要保证联网的各计算机的工作组名称一致步骤二&…

服务器自动挂载硬盘,Linux硬盘分区及开机自动挂载

本文以CentOS 6.4为例&#xff0c;查看当前linux服务器分区&#xff1a;df -h查看当前linux服务器硬盘&#xff1a;fdisk -l/dev/sda 第一块硬盘/dev/sdb 第二块硬盘依此类推以/dev/sdb为新增硬盘为例&#xff0c;需要进行以下操作方可正常使用1、分区fdisk /dev/sdb依次输入n&…