float map(vec3 p)
{
    p.xy += vec2(sin(p.z), cos(p.z)) * 0.25;
	vec3 q = fract(p) * 2.0 - 1.0;
    vec3 f = floor(p + 0.5);
    vec3 k = abs(normalize(q));
    float a = -sdBox(q, k+0.1);
    float b = -sphere(q, 1.3);
    float d = max(-b, a);
    float tt = 0.5+0.5*sin(p.z);
    float tr = mix(0.125, 1.0, tt);
    float c = sdBoxXY(p - 0.5, tr);
    return max(-c, d);
}
示例#2
0
文件: main.c 项目: nphyx/justen.us
/**
 * Returns the signed distance estimate to a cube of the given size
 */
float sdCube(vec3 p, float size) {
	return sdBox(p, vec3(size));
}