Unity3D 边缘高光Shader

Shader "Custom/NewShader" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _RimColor("Rim Color", Color) = (,,,)
        _RimPower ("Rim power",range(,)) = //边缘强度
    }
    SubShader {
        Pass
        {
        CGPROGRAM
        #include "UnityCG.cginc"
        struct v2f
        {
            float4 vertex:POSITION;
            float2 uv:TEXCOORD0;
            float4 rim:COLOR;
        };
        sampler2D _MainTex;
        float4 _RimColor;
        float _RimPower;
        v2f vert(appdata_base  v)
        {
            v2f o;
            o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
            o.uv = v.texcoord;
            float3 worldPos = mul(_Object2World, v.vertex).xyz;
            float3 viewdir = normalize((_WorldSpaceCameraPos - worldPos));
            float3 normal = normalize(mul((float3x3)_Object2World,v.normal));
            o.rim.x = -saturate(dot(viewdir,normal));
            return o;
        }
        fixed4 frag (v2f IN):COLOR
        {
            fixed4  c = tex2D(_MainTex, IN.uv);
            c.rgb+= pow(IN.rim.x,)*_RimColor*_RimPower;
            return c;
        }
        #pragma vertex vert
        #pragma fragment frag
        ENDCG
        }
    }
    FallBack "Diffuse"
}
Unity3D 边缘高光Shader的更多相关文章
- Unity3D中的shader基础知识
		
1.Unity中配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的效果框架语法,它描述了材质所必须要的一切咨询,而不仅仅局限于平面顶点/像素着 ...
 - Unity3D着色器Shader编程入门(一)
		
自学Unity3D也有大半年了,对Shader一直不敢入坑,最近看了些资料,以及通过自己的实践,对Shader还是有一点了解了,分享下仅作入门参考. 因Shader是对图像图像渲染的,学习前可以去了解 ...
 - Unity3D中的Shader
		
简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制. 1. Unity提供了很多内建的Shader,这些可以从官 ...
 - [Unity3D]降低向Shader中传值的开销
		
Unity3D中提供了很多API用于向shader传值,这篇文章对比测试了两类不同的使用方法的性能. 正文 Unity3D中,通过C#代码向shader传值有两种方式. 一种是面向具体的materia ...
 - unity3d  材质概述 ---- shader
		
学习笔记: 材质概述: 物体呈现在我们前面除了形体外,还包括“固有颜色”和“质地”(质感与光学性质).固有颜色让物体的表面看起来是什么颜色,而质感决定了该物质是使用什么材质的.在三维建模软 ...
 - 【Unity3D】利用Shader以及更改Mesh实现2D游戏的动态阴影效果
		
最近看到一个非常有趣的益智小游戏,是一个盗贼进入房子偷东西的, 其实这种游戏市面上已经很多了,吸引我的是那个类似手电筒的效果, 主角走到哪里,光就到哪里,被挡住的地方还有阴影.有点类似策略游戏里的战争 ...
 - Unity3D 开发之shader教程(浅谈光照之漫反射diffuse)
		
在游戏开发过程中,光照应该是必不可少部分,当然,这是指大多数的稍微大型一些的3D游戏会需要,给模型或者山山水水加上光照,会看上去更加的真实,获得更好的体验.一个本身不发光物体显示什么颜色,在于本身反射 ...
 - Unity3D Shader入门指南(一)
		
动机 自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解.虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心 ...
 - (转载)猫都能学会的Unity3D Shader入门指南(一)
		
原文地址 http://onevcat.com/2013/07/shader-tutorial-1/ 动机 自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚 ...
 
随机推荐
- EJB部署规则报错
			
javax.naming.NameNotFoundException: Unable to resolve 'RuleDeployer'. Resolved ''; remaining name 'R ...
 - QQ彩票任意订阅内容导致骚扰用户
			
数据包: POST /my/index.php?mod=securityinfo&op=AjaxUpdateTipsSet HTTP/1.1 Host: 888.sports.qq.com C ...
 - php脚本超时 结束执行代码
			
函数:stream_context_create ,file_get_content 创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设 ...
 - mysql查询某个库的表个数
			
SELECT COUNT(1) FROM information_schema.tables WHERE table_schema = 'leleli'; --解释:数据库名叫“leleli”
 - 【QT学习】QT GUI应用程序的框架,文件分析
			
有几个名字,项目名,类名,界面对象名. 1.项目文件 项目名.pro(MyHelloQt.pro) 主要包括项目用到的模块,项目包含哪些源码文件,头文件,窗体文件,生成应用程序的名称. 由QT自动生成 ...
 - centos6.5环境 安装php5.5.30的redis扩展 介绍
			
1.下载软件包 wget http://pecl.php.net/get/redis-2.2.5.tgz 2.解压 tar zxvf redis-2.2.5.tgz 3.进入 ...
 - 扫盲 -- What's MOOC ?
			
FAQ 1. MOOC是什么? 2. xMOOC又是什么? 它与之前在中国大陆网络上风靡一时的国外大学"公开课"有什么区别?3. xMOOC什么时候, 怎样出现的? 4. 有哪些网 ...
 - CMD 切换管理员权限
			
方法一:鼠标右键 这个方法比较比较普通,点开开始找到cmd,右击鼠标“以管理员身份运行(A)”这样调用就是管理员的权限: 方法二:快捷模式 在点开win+R后,选择“以管理员身份运行”,然后确定:可以 ...
 - POJ 3258 River Hopscotch(二分法搜索)
			
Description Every year the cows hold an event featuring a peculiar version of hopscotch that involve ...
 - ios开发之 -- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0
			
最近在项目中,发现之前的一个方法已经不被建议使用了. 该方法名即题目中提到的: stringByAddingPercentEscapesUsingEncoding,这个方法是用来进行转码的,即将汉字转 ...