版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】OpenGLShader如何实现彩色光圈效果
/upload/information/20200623/125/119638.gifShader
"shadertoy/TotalNoob"
{
///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);
return
o;
}
vec4
main(v2f
_iParam);
fixed4
frag(v2f
_iParam)
:
COLOR0
{
return
main(_iParam);
}
vec4
main(v2f
_iParam)
{
vec2
p
=
(2.0*gl_FragCoord.xy-iResolution.xy)/iResolution.y;
float
tau
=
3.1415926535*2.0;
float
a
=
atan(p.x,p.y);
float
r
=
length(p)*0.75;
vec2
uv
=
vec2(a/tau,r);
//get
the
color
float
xCol
=
(uv.x
-
(iGlobalTime
/
3.0))
*
3.0;
xCol
=
sign(xCol)*fmod(xCol,
3.0);
vec3
horColour
=
vec3(0.25,
0.25,
0.25);
if
(xCol
<
1.0)
{
horColour.r
+=
1.0
-
xCol;
horColour.g
+=
xCol;
}
else
if
(xCol
<
2.0)
{
xCol
-=
1.0;
horColour.g
+=
1.0
-
xCol;
horColour.b
+=
xCol;
}
else
{
xCol
-=
2.0;
horColour.b
+=
1.0
-
xCol;
horColour.r
+=
xCol;
}
//
draw
color
beam
uv
=
(2.0
*
uv)
-
1.0;
float
beamWidth
=
(0.7+0.5*cos(uv.x*10.0*tau*0.15*clamp(floor(5.0
+
10.0*cos(iGlobalTime)),
0.0,
10.0)))
*
abs(1.0
/
(30.0
*
uv.y));
vec3
horBeam
=
vec3(beamWidth,beamWidth,beamWidth);
vec4
gl_FragColor
=
vec4(((
horBeam)*
horColour
),
1.0);
return
gl_FragColor;
}
ENDCG
SubShader
{
Pass
{
CGPROGRAM
#pragma
vertex
vert
#pragma
fragment
frag
#pragma
fragmentoption
ARB_precision_hint_fastest
ENDCG
}
}
FallBack
Off
}代码分析/upload/information/20200623/125/119639.jpg/upload/information/20200623/125/119640.jpg/upload/information/20200623/125/119641.jpg彩色的算法vec2
p
=
(2.0*gl_FragCoord.xy-iResolution.xy)/iResolution.y;
float
tau
=
3.1415926535*2.0;
float
a
=
atan(p.x,p.y);
float
r
=
length(p)*0.75;
vec2
uv
=
vec2(a/tau,r);
//get
the
color
float
xCol
=
(uv.x
-
(iGlobalTime
/
3.0))
*
3.0;
xCol
=
mod(xCol,
3.0);
vec3
horColour
=
vec3(0.25,
0.25,
0.25);
if
(xCol
<
1.0)
{
horColour.r
+=
1.0
-
xCol;
horColour.g
+=
xCol;
}
else
if
(xCol
<
2.0)
{
xCol
-=
1.0;
horColour.g
+=
1.0
-
xCol;
horColour.b
+=
xCol;
}
else
{
xCol
-=
2.0;
horColour.b
+=
1.0
-
xCol;
horColour.r
+=
xCol;
}光圈的算法/upload/information/20200623/125/119642.jpg/upload/information/20200623/125/119643.jpg/upload/information/20200623/125/119644.jpg/upload/information/20200623/125/119645.jpg/upload/information/20200623/125/119646.jpg/upload/information/20200623/125/119647.jpg/upload/information/20200623/125/119648.jpg/upload/information/20200623/125/119649.jpg/upload/information/20200623/125/119650.jpg/upload/information/20200623/125/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国音乐史论文
- 1型糖尿病管理技术应用共识2026
- 房产证办理流程范本
- 城市物流车辆技术规范(编制说明)
- 代销合同模板
- 第13章 微信支付集成
- 探讨建筑工程预结算审核工作中存在的问题与对策
- 2026年吉林省白山市中小学教师招聘考试真题解析含答案
- 2026年保密宣传月保密知识考试全国模拟试卷
- 2026年湖南省张家界市中小学教师招聘考试题库及答案
- 2026年电网大面积停电应急演练方案
- 2026 年浙江大学招聘考试题库解析
- 2026上半年北京事业单位统考大兴区招聘137人备考题库(第一批)及参考答案详解【考试直接用】
- 2026年湖南省长沙市高二下学期第一次月考化学模拟试卷02(人教版)(试卷及参考答案)
- 成都交易集团有限公司2026年第一批社会集中公开招聘笔试备考题库及答案解析
- 8.2 立方根教学设计人教版数学七年级下册
- 2026年宁波城市职业技术学院单招综合素质考试题库附参考答案详解(研优卷)
- 2026年山西经贸职业学院单招综合素质考试题库附答案详解(综合题)
- 全髋关节置换患者的出院康复计划
- 2025湖南株洲市市直事业单位公开招聘(选调)工作人员(医疗岗146人)笔试历年典型考题及考点剖析附带答案详解试卷2套
- GB/T 22576.1-2026医学实验室质量和能力的要求第1部分:通用要求
评论
0/150
提交评论