Softwave / glsl-superformula

A GLSL function for generating 3D supershapes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

glsl-superformula

A GLSL function for generating 3D supershapes.

Indended for use with glslify and WebGL.

Inspired by Daniel Shiffman's 3D Supershapes Processing tutorial.

Demo

Screenshots

screenshot

Usage

NPM

#pragma glslify: superformula = require('glsl-superformula')

vec2 doModel(vec3 p) {
	float id = 1.0;
	float d = length(p);
	float theta = atan(p.y / p.x);
	float phi = asin(p.z / d);

	float r1 = superformula(theta, 8.0, 60.0, 100.0, 30.0, 1.0, 1.0);
	float r2 = superformula(phi, 2.0, 10.0, 10.0, 10.0, 1.0, 1.0);

	vec3 q = r2 * vec3(r1 * cos(theta) * cos(phi), r1 * sin(theta) * cos(phi), sin(phi));
	d = d - length(q);

	return vec2(d, id);
}

License

MIT. See LICENSE.md for details.

About

A GLSL function for generating 3D supershapes.

License:MIT License


Languages

Language:GLSL 56.7%Language:CSS 18.2%Language:HTML 14.1%Language:JavaScript 11.0%