用GLSL写一个8角花花

12 篇文章 0 订阅
5 篇文章 0 订阅

GlSL 绚丽的花花

一直以来我比较喜欢CG风格,自从我遇见了http://glslsandbox.com/它之后,我发现这种能在线编辑实时运行在WebGL下让我感觉一阵阵的肉麻.


出于好于解释的考虑,我都以自己写的算法为讲诉。

我都不好意思说了!图示为一朵8角花,猜猜你第一眼会想到的算法?如果这些算法都能轻易的猜测出来,说明你可以哟!!
http://www.glslsandbox.com/e#24051.0


1. 以下为它的代码
2. `//by 834144373

ifdef GL_ES

precision mediump float;

endif

uniform float time; //时间每秒(在时间上的微分,即时间积量)
uniform vec2 mouse; //以视窗左下角为原点,x、y 处于(0.,1.)区间
uniform vec2 resolution; //视窗的长 宽距离

void main( void ) {

vec2 uv = ( gl_FragCoord.xy / resolution.xy ); //resolution.xy 为视窗里以左下角为原点各个像素点的坐标

vec2 pos = 2.*uv - vec2(1.); //这我都不想说了,我想把坐标原点移到屏幕中间,个人口味不一样嘛,我喜欢(0,1)的坐标空间

float dis = 0.35 + 0.2*cos(atan(pos.y,pos.x)*8.+time*2.4);//算出8个角,其实8就是频率

vec3 color = vec3(0.44,0.4,0.9); //背景颜色

color *= smoothstep(dis,dis+0.3,length(pos)); //length(pos)每个像素到原点的距离

color.rb += vec2(smoothstep(0.25,.89,dis)); //在每个角拉个渐变



gl_FragColor = vec4( color, 1.0 ); //最终颜色输出

}`

  1. atan(pos.y,pos.x) 相当于 CG里的atan2()函数,用于求出角度,其实就是数学里的arctan(y/x)

如果对颜色通道没有用完,于是我就添了这一出代码,先看图

我都不想表达了
http://www.glslsandbox.com/e#24051.0

由于爱装个B,都以by 834 ,by 834144 ,by 834144373,留言。当然 我的qq834144373。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值