Ist jetzt Subtraction im Shaderbeispiel, aber hat prinzipiell dasselbe Problem.
Das geht soweit auch gar nicht. Du kannst nur einen Kugelumfang berechnen, aber keinen "wie weit geht mein Strahl".
Weiß nicht ob ich deine Aussage richtig verstehe - aber das gilt ja generell für SDF. Das ist schon klar. Ich habe keinen Strahl, ich mache genau dasselbe wie du in deiner Kollisions-Demo, den größten Kugelumfang bestimmen, sprich eine einfache Abstandsbestimmung in allen Richtungen. Hattest du deine Kollision mal mit Intersection- oder Subtraction-Operationen getestet? Falls es bei dir geht, mache ich was falsch.
Falls nicht muss man wohl leider sagen, die Intersection-Operation produziert kein SDF mehr, sondern nur noch ein SF (keine gültige Distanzinformation mehr, nur noch das Sign stimmt).
Iterativer Gradientenabstieg als nächstliegende Lösung (also dem Gradienten in angepassten Steps folgen bis ein bestimmter Grenzwert erreicht wird) macht bei mir öfters mal Probleme mit sich totlaufenden Pfaden. Bei der Shaderdemo Z.B. eine schmale Sichel: Da entsteht ein V-förmiges Tal, d.h. der Abstieg pendelt im Zickzack die Hänge hin und her, und erreicht die Oberfläche u.U. nur nach sehr vielen Iterationen. Damit gehen Vorteil und Stabilität eines echten SDF halt wieder flöten.
Ok, schade. Ich hatte ursprünglich gehofft es gibt vielleicht eine Intersection-OP, die ein echtes SDF produziert. Oder einen praktischeren/schnelleren Weg, das "falsche" SDF trotzdem für die einfache Abstandsbestimmung nutzen zu können.