Back to shaders

Shader test bench

Heart.fs

vidvox-isf-files utility glsl runnable fragment MIT
Source
runnable fragment

Complete GLSL fragment shader. Stronghold runs it directly when the browser can compile it.

Code

uniform float size;
uniform vec4 color;
precision mediump float;
/*{
	"CREDIT": "by VIDVOX",
	"ISFVSN": "2",
	"CATEGORIES": [
		"Geometry"
	],
	"INPUTS": [
		{
			"NAME": "size",
			"LABEL": "Size",
			"TYPE": "float",
			"MIN": 0.0,
			"MAX": 1.0,
			"DEFAULT": 0.25
		},
		{
			"NAME": "color",
			"LABEL": "Fill Color",
			"TYPE": "color",
			"DEFAULT": [
				1.0,
				0.0,
				0.0,
				1.0
			]
		}
	]
}*/


//	Adapted from https://glsl.io/transition/d71472a550601b96d69d

 
bool inHeart (vec2 p, vec2 center, float size) {
	if (size == 0.0) return false;
	vec2 o = (p-center)/(1.6*size);
	return pow(o.x*o.x+o.y*o.y-0.3, 3.0) < o.x*o.x*pow(o.y, 3.0);
}
 
void main() {
	vec2 p = (gl_FragCoord.xy / u_resolution.xy);
	float m = inHeart(p, vec2(0.5, 0.4), size) ? 1.0 : 0.0;
	gl_FragColor = mix(vec4(0.0), color, m);
}