本文实例为大家分享了opengl实现彩色光圈效果的具体代码,供大家参考,具体内容如下
研究了一个彩色光圈效果,感觉挺不错的,分享给大家,效果如下:
代码如下:
shader "shadertoy/totalnoob" { //https://www.shadertoy.com/view/xdlsds
properties{
imouse ("mouse pos", vector) = (100,100,0,0)
ichannel0("ichannel0", 2d) = "white" {}
ichannelresolution0 ("ichannelresolution0", vector) = (100,100,0,0)
}
cginclude
#include "unitycg.cginc"
#pragma target 3.0
#pragma glsl
#define vec2 float2
#define vec3 float3
#define vec4 float4
#define mat2 float2x2
#define iglobaltime _time.y
// #define mod fmod // mod = sign*fmod
#define mix lerp
#define atan atan2
#define fract frac
#define texture2d tex2d
// 屏幕的尺寸
#define iresolution _screenparams
// 屏幕中的坐标,以pixel为单位
#define gl_fragcoord ((_iparam.srcpos.xy/_iparam.srcpos.w)*_screenparams.xy)
#define pi2 6.28318530718
#define pi 3.14159265358979
#define halfpi (pi * 0.5)
#define oneoverpi (1.0 / pi)
fixed4 imouse;
sampler2d ichannel0;
fixed4 ichannelresolution0;
struct v2f {
float4 pos : sv_position;
float4 srcpos : texcoord0;
};
// precision highp float;
v2f vert(appdata_base v){
v2f o;
o.pos = mul (unity_matrix_mvp, v.vertex);
o.srcpos = computescreenpos(o.pos);
<