markdown KodeLife片段着色器草图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown KodeLife片段着色器草图相关的知识,希望对你有一定的参考价值。
#version 150
uniform float time;
uniform sampler2D prevFrame;
uniform vec2 resolution;
uniform vec3 spectrum;
out vec4 fragColor;
float rand(float x, float y)
{
return fract(sin(12.9898 * x + 78.233 * y) * 43758.5453);
}
void main(void)
{
vec2 uv = gl_FragCoord.xy / resolution;
float aspect = resolution.x / resolution.y;
float bt = floor(time * 2);
// polar coordinates
vec2 p = (uv - 0.5) * vec2(aspect, 1);
p = vec2(atan(p.y, p.x), length(p));
// burst
float b1 = sin(p.x * 30 * rand(0, time) + time * 11.23);
float b2 = sin(p.x * 10 * rand(1, time) + time * 10.74);
float c = 1 - step((1 + b1 * b2 / 2) * spectrum.x, p.y);
// sliding rims
float dx = rand(floor(p.y * 14), bt) - 0.5;
p.x += p.y * dx * 0.2;
p.y *= 0.995;
// bring back to screen coordinates
p = vec2(cos(p.x), sin(p.x)) * p.y;
uv = p * vec2(1 / aspect, 1) + 0.5;
// feedback
c += texture(prevFrame, uv).r * 0.985;
// color gradient
float c1 = 0.5 + sin(c * 9.12 + time * 1.11) * 0.5;
float c2 = 0.5 + sin(c * 6.33 + time * 1.73) * 0.5;
fragColor = vec4(1, c1, c2, 0) * c;
}
![gif](https://i.imgur.com/TxNUchm.gif)
以上是关于markdown KodeLife片段着色器草图的主要内容,如果未能解决你的问题,请参考以下文章
markdown KodeLife片段着色器草图
片段着色器是不是处理来自顶点着色器的所有像素?
顶点着色器+片段着色器
如果几何着色器处于活动状态,如何将信息从顶点着色器传递到片段着色器?
Shader2.0的顶点着色器和片段着色器
GLSL:使用片段着色器进行对象翻译