unity3d shader之浮雕效果
来源:互联网 发布:python 图像识别损坏 编辑:程序博客网 时间:2024/04/27 16:06
浮雕就是对图像上的一个像素和它右下的那个像素的色差的一种处理
非常容易,只需要一个简单的算法
用fragment shader来实现
我们只看实现部分就好
在frag函数中
获取当前点的颜色
获取当前点右下角(偏移了(1,1)个单位)的点的颜色,
如果有什么函数能代替tex2DSize函数各位看官一定要告诉我
diffs为亮点颜色差
max0 = diffs.r>diffs.g?diffs.r:diffs.g;
max0 = max0>diffs.b?max0:diffs.b;
求出色差中rgb的最大值设为色差数
gray = clamp(max0+0.4 , 0, 1);
灰度值其实就是这个色差数
c = float4(gray.xxx,1)*_Color;
最终颜色
效果如下:
全部代码如下:
Shader "Custom/test" {Properties {_MainTex ("MainTex", 2D) = "white" {}_Size("Size", range(1,2048)) = 256//size_Color("Main Color",color)=(1,1,1,1)}SubShader {pass{Tags{"LightMode"="ForwardBase" }Cull offCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"float4 _Color;float _Size;sampler2D _MainTex;float4 _MainTex_ST;struct v2f {float4 pos:SV_POSITION;float2 uv_MainTex:TEXCOORD0;};v2f vert (appdata_full v) {v2f o;o.pos=mul(UNITY_MATRIX_MVP,v.vertex);o.uv_MainTex = TRANSFORM_TEX(v.texcoord,_MainTex);return o;}float4 frag(v2f i):COLOR{//浮雕就是对图像上的一个像素和它右下的那个像素的色差的一种处理float3 mc00mc = tex2D (_MainTex, i.uv_MainTex).rgb;//当前点的颜色float3 mc11 = tex2D (_MainTex, i.uv_MainTex+fixed2(1,1)/_Size).rgb;//当前点右下角(偏移了(1,1)个单位)的点的颜色,//由于CG函数tex2DSize函数(获取图片长宽的像素数)在unity中不能用,我也不知道用什么函数来替代它,就弄了个外部变量_Size方便调节float3 diffs = abs( mc00mc - mc11);//diffs为亮点颜色差float max0 = diffs.r>diffs.g?diffs.r:diffs.g; max0 = max0>diffs.b?max0:diffs.b;//求出色差中rgb的最大值设为色差数 float gray = clamp(max0+0.4 , 0, 1);//灰度值其实就是这个色差数float4 c = 0;c = float4(gray.xxx,1)*_Color;//最终颜色return c;}ENDCG}//} }
-----------------by wolf96 http://blog.csdn.net/wolf96
1 0
- unity3d shader之浮雕效果
- 浮雕效果
- 浮雕效果
- 浮雕效果
- Unity3D之Shader:Shader介绍
- opengles图像处理之浮雕效果
- Shader效果之波涛汹涌
- Shader效果之如影随形
- 详解Unity3D Shader开发之Shader框架
- 详解Unity3D Shader之Shader Lab框架
- Unity3d Shader动态表面效果着色器
- Unity3D 通过 shader 实现流光效果
- unity3d shader的软高光的金属效果
- unity3d shader缔造金属各向异性效果
- 【Unity3D】【Shader】UGUI上Logo闪光效果
- unity3D 涂涂乐使用shader实现上色效果
- Unity3D shader描边效果源码
- Unity3D 实现雪花飘飞效果[Shader]
- 1081. Rational Sum (20)
- 理解URL scheme
- 使用Code Digger进行代码覆盖率测试
- x264 重新编码实时视频 (视频压缩的一个思路)
- Merge Sort and count inversion
- unity3d shader之浮雕效果
- Cocos3.4 横版游戏制作-《KillBear》-添加地图
- 你要的是比别人幸福吗
- 虚拟机Red Hat Linux 6.5下安装oracle11g 32位
- iOS开发网络篇—文件下载(六·压缩和解压)
- 支持向量机(SVM)
- CSDN支持markdown写博客,感动!!!
- 怎样把ppt幻灯片转换为pdf文件
- Unity中自动寻路的几种方法(二)