Date post: | 09-Aug-2015 |
Category: |
Documents |
Upload: | mike-schaekermann |
View: | 75 times |
Download: | 0 times |
Implicit Surface Modeling for 3D Printing
WebGL Meetup Berlin@ xy:matic office
on 2015/07/02by Mike Schäkermann
(Stilnest.com, Head of IT)
Stilnest
3D Printing
Sucks at ...Excels at ...
3D Printing
Sucks at mass production of generic productsExcels at ...
3D Printing
Sucks at mass production of generic productsExcels at on-demand production of anything
3D Printing
Sucks at mass production of generic productsExcels at on-demand production of anything
MASS CUSTOMIZATION
We need ...the software to support this dream
A WEBLINK TO CLICK
We need ...the software to support this dream
A WEBLINK TO CLICK
SIMPLE INTERFACES
We need ...the software to support this dream
A WEBLINK TO CLICK
SIMPLE INTERFACES
REAL-TIME FEEDBACK
We need ...the software to support this dream
A WEBLINK TO CLICK
SIMPLE INTERFACES
REAL-TIME FEEDBACK
UNBREAKABLE MODELS
Let me introduce...
Raymarching of Signed Distance Fields
What is a Signed Distance Field (SDF)?
A function, implicitly describing a volume:
- input: 3D position of a point in space
- output: the distance of this point from the surface of the volume (zero if point is on the surface, negative if it is inside and positive if it is outside the volume)
float distanceToSurface(vec3 position) { … }
SDF: an easy example
Who can tell me what shape is defined by the following SDF?
float distanceToSurface(vec3 position, float r)
{
float distance = length(p) - r;
return distance;
}
RAYMARCHING OF SDFsTHE GENERAL IDEA
Content creator: 9bit Science
Nice, but how do we get a filefor a 3D printer out of all this???
Marching Cubes
… or any otheralgorithm fortriangulatingiso-surfaces
Content creator:Tim Poston et. al.
Marching Cubes
Parallelization of distance samplingon GPU is trivial!
Content creator:Tim Poston et. al.
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Unbreakable surfaces
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Perfect volume definitions
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Cheap deformations
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Cheap blending
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Cheap shelling
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Cheap soft shadows
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Cheap reflections
Recap: SDF Raymarching + Marching Cubes is cool for 3D Printing because:
Real-time tweaking of params
DEMO SDF:
float frequency = 10.0; // input1: [5.0, 15.0]float speed = 0.3; // input2: [0.1, 30.0]float smoothness = 0.6; // input3: [0.1, 1.0]float wall = 0.15; // input3: [0.15, 0.3]vec3 p = point;float box = sdBox(p, vec3(2.0, 0.2, 0.2));p.x += sin(p.y*4.+time+sin(p.z))*0.15;float d = length(p)-1.;float st = sin(time*0.42)*.5+0.5;d += sin(p.x*frequency + time * speed + sin(p.z*frequency+time*.5+sin(p.y*frequency+time*.7)))*0.075*st;d = opUSmooth(d, box, smoothness); // change to opSSmooth//if (d < - wall * 0.5) d = - wall - d;//d = opS(d, sdBox(opMoveX(11.0 + sin(time) * 1.5, point), vec3(10.0, 10.0, 10.0)));distance = d;