Raymarching-SDF

Kugel-, Quader- und Ringabstände zu interaktiven 3D-Formen verbinden.

Über dieses Tool

Bis zu drei Kugeln, Quader oder Ringe zu einer impliziten Form verbinden. Ein Beispiel wählen, ein Objekt über seinen Reiter bearbeiten und Darstellen klicken. Änderungen blenden das alte Bild bis zur erneuten Darstellung aus. Zurücksetzen lädt die Szene mit drei Formen. Eingaben und Auswahlwerte werden gespeichert, Bild und Kamera nicht.

Position X/Y/Z liegt zwischen −2 und 2 in beliebigen Szeneneinheiten. Eine Kugel hat einen Radius, ein Quader halbe Kantenlängen je Achse. Der Ring liegt in der XZ-Ebene mit Y als Achse: Der Ringradius reicht zur Mitte des Rohrs, der Rohrradius bestimmt die Dicke. Größen liegen zwischen 0,05 und 1,5; der Rohrradius muss kleiner als der Ringradius sein. Deaktivierte Objekte ignorieren ihre Zahlenfelder.

Glättung 0 bildet eine gewöhnliche Vereinigung. Eine positive Breite bis 1 rundet Übergänge mit einem polynomialen glatten Minimum ab und kann die Silhouette vergrößern. Die Reihenfolge der Objekte kann das verschmolzene Ergebnis beeinflussen. Dies ist ein geometrisches Experiment, keine physikalische Simulation oder ein Mesh-Export.

Ziehen dreht die Ansicht, Strg/Meta mit Mausrad zoomt; Drehen aktiviert automatische Rotation. Das normale Mausrad scrollt die Seite. Die Rotation erhält den aktuellen Betrachtungsabstand und pausiert beim Ausblenden. Erneutes Darstellen nutzt denselben WebGL-Kontext. Unveränderte Eingabeentwürfe und Drehen bleiben lokal gespeichert, auch unfertige Zahlen. Ein zu großer Entwurf zeigt einen Hinweis und erhält die zuvor gespeicherte Fassung; vor dem Verlassen kopieren. Nach Formänderungen oder einer Größenänderung der Vorschau wird die Szene eingepasst. Erneutes Darstellen ohne Änderungen erhält die Kameraansicht.

Der Kugelabstand ist length(p)−r. Beim Quader wird der Abstand zu achsenparallelen Flächen bestimmt, beim Torus der Abstand zu einem Kreis minus Rohrradius. Jedes Pixel schreitet auf einem Einheitsstrahl um den absoluten Abstandsschätzer voran, auch aus dem Inneren. Höchstens 128 Schritte, Oberflächenschwelle 0,001 und Strahllänge 60. Normalen entstehen durch endliche Differenzen. Kanten und streifende Strahlen können numerische Artefakte zeigen. Die Beleuchtung ist illustrativ, ohne Reflexionen oder physikalisches Lichtmodell. WebGL ist erforderlich.

John C. Hart: Sphere Tracing