Strona głównaArtykułyRenderowanie i grafika komputerowa

Marchowanie po promieniach i funkcje odległości znamionowane: szperanie sfer w GLSL

Technika renderowania procesyjnej — bez siłek, bez trójkątów, bez rasterizacji, tylko jedna funkcja pomiaru odległości do najbliższej powierzchni.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Funkcje odległości znamionowane i szperanie sfer

Funkcja odległości znamionowanej d = sdf(p) zwraca najkrótszą odległość między dowolnym punktem p w przestrzeni a powierzchnią kształtu: ujemną wewnątrz, zerową na granicy, dodatnią poza granicą. Popularne elementy geometryczne — sfera, prostokąt, torus, kapelusz — mają eleganckie implementacje w jednej do pięciu liniach GLSL. Kluczowym celem jest związek Lipschitz: dla dowolnego punktu poza wszystką geometrią, promień może bezpiecznie postępować dokładnie o |sdf(p)| bez kiedykolwiek przekroczenia powierzchni. Szperanie sfer (John C. Hart, 1996) wykorzystuje to bezpośrednio, konvergując kwadratowo blisko gładkich powierzchni:

t = 0
loop up to MAX_STEPS:
  pos = ro + t·rd
  d = scene(pos)
  if d < EPSILON → HIT at distance t
  if t > T_FAR   → MISS (sky)
  t += d
demo na żywo · powiązana symulacja● LIVE

Booleany, normale i cienie za darmo

Dzięki temu, że cała scena jest funkcją, geometria solidna konstruktoryczna zmniejsza się do arytmetyki: unia to min(a,b), przecięcie to max(a,b), odejmowanie to max(−a,b), a łagodne przelaczenie używa wielomianu smin(a,b,k) dla zaokrąglonych filletów. Normale powierzchni wydzielają się z gradientu SDF poprzez różnice różniczkowe czteroskładnikowe. Łagodne cienie sztety marchują drugą strzałkę w kierunku światła i śledzą minimalny stosunek SDF do odległości lungi drogi; oświetlenie atmosferyczne porównuje wartość SDF na krótkiej odległości wzdłuż normali z oczekiwaną wartością bez przeszkód. Nie wymaga to osobnej mapy cieni ani przebiegu AO — jest to taka sama funkcja odległości, tylko pobrana inaczej.

Faktory i nieskończona detalia

Jedna wywołanie modułu na pozycji promienia pozwala infiniernie podzielić scenę na kafelki SDF (odległości znamionowane) w praktyce bez dodatkowych kosztów — podstawa rendererów marchujących po promieniach (Mandelbulbs, Menger spongi). Te efekty byłyby niemożliwe do przedstawienia jako explikite siatki. W produkcji techniki takie jak wcześniejsze wyjście z ograniczonych obszarów, zmniejszenie liczebności kroków dla odległych geometrii i renderowanie na połowy rozdzielczości przed skalowaniem pozwalają zachować rzeczywiste ramki even przy wzroście skomplikowania sceny.

Często zadawane pytania

Czym jest funkcja odległości podpisana?

Funkcja odległości podpisana d = sdf(p) zwraca najkrótszą odległość punktu p do najbliższej powierzchni kształtu: ujemną wewnątrz, zerową na powierzchni, dodatnią poza. Gwarantuje to, że strzałka może bezpiecznie postępować o dokładnie |sdf(p)| bez kiedykolwiek przekroczenia geometrii.

Jak działa śladowanie sfer?

Śladowanie sferyczne (John C. Hart, 1996) przesuwa strzałkę naprzód o wartość SDF sceny na każdym punkcie, ponieważ ta odległość jest gwarantowana jako bezpieczna. Powtarza to aż do momentu spadnięcia odległości poniżej małego epsilona (zderzenie) lub gdy strzałka przekroczona jest maksymalnym zakresem (porażka), konvergując kwadratowo w pobliżu gładkich powierzchni.

Dlaczego używać śladowania strzałek zamiast tradycyjnej rastrowania trójkątów?

Śladowanie SDF nie wymaga siatki, mapowania UV ani bugetu wielokątów — gładkie operacje logiczne booleanowe, miękkie cienie, otoczenie oświetleniowe i nieskończenie szczegółowe fraktale wynikają z prostej arytmetyki na wartościach odległości. Zmianą jest koszt na piksel: każda strzałka ocenia funkcję sceny setkami razy, więc skomplikowanie sceny ograniczone jest do wydajności shaderów GPU zamiast liczby trójkątów.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Ray Marching & SDF i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Ray Marching & SDF

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)