Revision control
Copy as Markdown
{
"QEN": {
"description": "Renders a two coloured sunburst effect with adjustable colors, stripe count, angle, center point, center ring and smoothness",
"fragmentCode": [
"#define TAU 6.28318530718",
"@main",
"{",
" const vec2 d = texCoord - sunburstCenterPoint;",
" const float a = atan(d.y, d.x) / TAU + sunburstAngle;",
" const float stp = 1. / sunburstStripeCount;",
" const float m = abs(mod(a, stp) / stp - 0.5) * 2.0;",
" const float dist = sqrt(d.x*d.x + d.y*d.y) * 2.0;",
" const float smth = sunburstSmoothness / dist;",
" float p = smoothstep(0.5 - smth, 0.5 + smth, m);",
" p = max(p, smoothstep(sunburstCenterRing + sunburstCenterSmoothness, sunburstCenterRing, dist + 0.1));",
" fragColor = mix(sunburstColor2, sunburstColor1, p);",
"}"
],
"name": "Sunburst",
"properties": [
{
"defaultValue": "1, 1, 1, 1",
"name": "sunburstColor1",
"type": "color"
},
{
"defaultValue": "0, 0, 0, 0.5",
"name": "sunburstColor2",
"type": "color"
},
{
"defaultValue": "0.5, 0.5",
"maxValue": "1, 1",
"minValue": "0, 0",
"name": "sunburstCenterPoint",
"type": "vec2"
},
{
"defaultValue": "0",
"description": "Sunburst rotation angle, 1.0 is a full circle rotation.",
"maxValue": "1",
"minValue": "0",
"name": "sunburstAngle",
"type": "float"
},
{
"defaultValue": "0.05",
"description": "Smoothing amount between the sunburst colors.",
"maxValue": "0.5",
"minValue": "0",
"name": "sunburstSmoothness",
"type": "float"
},
{
"defaultValue": "0.1",
"maxValue": "1",
"minValue": "0",
"name": "sunburstCenterSmoothness",
"type": "float"
},
{
"defaultValue": "0",
"description": "Paints a circle in the center of sunburst. Together with sunburstCenterSmoothness this reduces the moiré effect.",
"maxValue": "2",
"minValue": "0",
"name": "sunburstCenterRing",
"type": "float"
},
{
"defaultValue": "8",
"maxValue": "100",
"minValue": "3",
"name": "sunburstStripeCount",
"type": "int"
}
],
"version": 1
}
}