ShaderJoy —— “旋转粒子”的实现【GLSL】
【摘要】
效果图
代码及算法解释
// 动画相关参数float dotSize = 0.01;float iteration = 100.;float xAmp = 0.3;float yAmp = 0.1;float speed = 0.05;float rotateCanvas = 0.;float rotateParticle...
效果图
代码及算法解释
-
-
// 动画相关参数
-
float dotSize = 0.01;
-
float iteration = 100.;
-
float xAmp = 0.3;
-
float yAmp = 0.1;
-
float speed = 0.05;
-
float rotateCanvas = 0.;
-
float rotateParticles = 1.;
-
float rotateMultiplier = 10.;
-
vec2 pos = vec2(.5, .5);
-
float xFactor = 0.2;
-
float yFactor = 0.2;
-
-
#define RENDERSIZE vec2(512., 512.)
-
// uniform float iGlobalTime;
-
-
// 关于 (0, 0) 点的旋转
-
vec2 rot(vec2 uv, float a)
-
{
-
// [uv.x uv.y] * [cos(a), sin(a),
-
// -sin(a), cos(a)]
-
return vec2(uv.x * cos(a) - uv.y * sin(a), uv.y * cos(a) + uv.x * sin(a));
-
}
-
-
float circle(vec2 uv, float size)
-
{
-
// 向量长度在范围内为白色,范围外为黑
-
return length(uv) > size ? 0.0 : 1.0;
-
}
-
-
void main()
-
{
-
-
vec2 uv = gl_FragCoord.xy / RENDERSIZE; ///< [0., 1.]
-
uv -= vec2(pos);
文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。
原文链接:panda1234lee.blog.csdn.net/article/details/52579545
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)