Skip to content

glslify/glsl-combine-chamfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

glsl-combine-chamfer

stable

Combine two signed distance fields with a chamfer-like join.

view demo

This technique was derived from a great talk at NVScene by Johann Korndörfer.

Usage

NPM

float combine(float d1, float d2, float radius)

Given two distances d1 and d2, merge them together within the supplied radius.

uniform float iGlobalTime;

#pragma glslify: combine = require('glsl-combine-chamfer')
#pragma glslify: box     = require('glsl-sdf-box')

vec2 doModel(vec3 p) {
  vec3  off    = sin(0, iGlobalTime, 0);
  float dist1  = box(p, vec3(2.0));
  float dist2  = box(p + off, vec3(1.0));
  float radius = 0.5;

  float dist = combine(dist1, dist2, radius);

  return vec2(dist, 1.0);
}

Contributing

See stackgl/contributing for details.

License

MIT. See LICENSE.md for details.

About

Combine two signed distance fields with a chamfer-like join.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published