Progress Pride Flag

Rainbow flag made just using a plane’s UVs. You can change the variable to appropriately adjust the triangle’s size by making it equal to the width divided by the height.

Made this more as a simple coding challenge for myself, because honestly it’d generally be easier to just use a PNG.

Shader code
shader_type spatial;
render_mode cull_disabled;

uniform vec4 red = vec4(239, 49, 37, 0);
uniform vec4 orange = vec4(245, 127, 40, 1);
uniform vec4 yellow = vec4(255, 240, 0, 2);
uniform vec4 green = vec4(88, 185, 70, 3);
uniform vec4 blue = vec4(0, 84, 165, 4);
uniform vec4 purple = vec4(159, 36, 143,5);

uniform float widthheightproportion = 1.5;

uniform vec4 black = vec4(0,0,0,1.5);
uniform vec4 brown = vec4(96, 58, 22, 2.25);
uniform vec4 cyan = vec4(124, 191, 233, 3);
uniform vec4 pink = vec4(244, 152, 191, 3.75);
uniform vec4 white = vec4(255, 255, 255, 4.5);

vec3 getcolor(float uv, vec4 color, vec3 base) {
    if (uv > color.a/6.) {
        return color.rgb / 255.;
    }
    else {
        return base;
    }
}

void fragment() {
    ALBEDO = getcolor(UV.y, red, ALBEDO.rgb);
    ALBEDO = getcolor(UV.y, orange, ALBEDO.rgb);
    ALBEDO = getcolor(UV.y, yellow, ALBEDO.rgb);
    ALBEDO = getcolor(UV.y, green, ALBEDO.rgb);
    ALBEDO = getcolor(UV.y, blue, ALBEDO.rgb);
    ALBEDO = getcolor(UV.y, purple, ALBEDO.rgb);
    
    float triangle = 1.-(abs(0.5-UV.y) + (UV.x*widthheightproportion));
    
    ALBEDO = getcolor(triangle, black, ALBEDO.rgb);
    ALBEDO = getcolor(triangle, brown, ALBEDO.rgb);
    ALBEDO = getcolor(triangle, cyan, ALBEDO.rgb);
    ALBEDO = getcolor(triangle, pink, ALBEDO.rgb);
    ALBEDO = getcolor(triangle, white, ALBEDO.rgb);
}
Live Preview
Tags
LGBT, pride, Pride Flag, rainbow
The shader code and all code snippets in this post are under CC0 license and can be used freely without the author's permission. Images and videos, and assets depicted in those, do not fall under this license. For more info, see our License terms.

More from Jtad

Related shaders

guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Snake
Snake
1 year ago

Spoiler alert: You will never be a woman :^)

HorkoRosso
HorkoRosso
1 year ago
Reply to  Snake

What’s your issue? No one’s bothering you, don’t act like a child. You’re an adult.