본문으로 바로 가기

SDF 형상 카탈로그

시각적 참고 자료: 이니고 킬레스 — 3D 거리 함수

서명된 거리 함수(SDF)란 무엇인가요?​

부호가 있는 거리 함수는 공간 내의 임의의 점에서 형상의 가장 가까운 표면까지의 거리를 반환합니다. 내부에서는 음수, 표면 위에서는 0, 표면 밖에서는양수를 반환합니다. 이 거리는 힘 곡선의 입력값으로 사용됩니다. 표면에 가까울수록 힘이 더 강하게 작용하고, 멀어질수록 힘은 작용하지 않습니다.

SDF 형상은 내비게이션 모듈 (버블 형태)에서 사용됩니다.

한 형태는 다음을 통해 형성됩니다. primitive 그리고 einen parameters-블록 설명:

{
"shape": {
"primitive": "sphere",
"parameters": { "r": 0.05 }
}
}

기본 형태​

원시적인매개변수참고 사항
spherer (반지름)가장 간단한 형태
ellipsoida (할바흐센 반지름을 vec3로 표현)근사 SDF; 힘에 대해 정확함
boxb (halbausdehnungen을 vec3로)축 평행
rounded_boxb (반반 신장), r (모서리 반경)전체 팽창량 = b + r
box_frameb (반반 신장), e (칸텐디케)상자의 철망 윤곽
planen (법선 벡터 vec3), h (이격 거리 n)무한 반공간; n muss는 정상화되어야 한다

캡슐과 실린더​

원시적인매개변수참고 사항
capsulea, b (종점 좌표는 vec3 형식), r (반지름)반구형 캡
capsule_verticalh (반 높이), r (반지름)Y축의 약어
capped_cylindera, b (축 끝점을 vec3로), r (반지름)평평한 끝마개
capped_cylinder_verticalh (반 높이), r (반지름)Y축의 약어

토러스 계열​

원시적인매개변수참고 사항
torusr1 (주반지름), r2 (관 반경)XZ 평면상의 고리 형태
capped_torussc (벡터 방향은 vec2로), r1, r2보겐; sc = (cos θ, sin θ)
linkle (반신), r1 (링 반경), r2 (관 반경)사슬 고리 형태

케겔​

원시적인매개변수참고 사항
conec (Winkel을 vec2로 변환 (sin α, cos α)), h (높이)끝이 잘린 무한 원뿔
capped_conea, b (종점을 vec3로), r1 (기저반지름), r2 (첨단 반경)케겔스툼프
rounded_conea, b (종점을 vec3로), r1, r2구형 캡이 달린 원뿔형 몸체
solid_anglec (각도를 vec2로), r (반지름)원뿔로 잘린 구

이국적인 형태​

원시적인매개변수참고 사항
vesica_revolveda, b (축을 vec3로 표현), w (폭)린젠폼
rhombusla, lb (반대각선), h (압출물의 절반 높이), r (아브룬둥)다이아몬드 모양의 단면
pyramidh (높이)제곱 기저
octahedronr (내접원 반지름)정팔면체
hexagonal_prismr (주변 반경), h (중간 지점)Y를 따라
triangular_prismw (반폭), h (중간 지점)Z를 따라
매개변수 유형

스칼라 매개변수 (r, h, e 등)은 단순한 숫자입니다. 벡터 매개변수 (a, b, n)는 객체입니다: { "x": 0.0, "y": 0.0, "z": 0.0 }. Vec2-Parameter (c, sc)는 객체입니다: { "x": 0.707, "y": 0.707 }.

JSON 예시​

쿠겔:

{ "primitive": "sphere", "parameters": { "r": 0.05 } }

타원체 (X축 및 Z축 방향으로 더 넓은):

{ "primitive": "ellipsoid", "parameters": { "a": { "x": 0.06, "y": 0.03, "z": 0.06 } } }

상자:

{ "primitive": "box", "parameters": { "b": { "x": 0.04, "y": 0.02, "z": 0.04 } } }

둥근 모서리의 상자:

{ "primitive": "rounded_box", "parameters": { "b": { "x": 0.30, "y": 0.02, "z": 0.30 }, "r": 0.01 } }

Kapsel:

{
"primitive": "capsule",
"parameters": {
"a": { "x": 0.0, "y": -0.03, "z": 0.0 },
"b": { "x": 0.0, "y": 0.03, "z": 0.0 },
"r": 0.04
}
}

평면 (X축을 따라 경계):

{ "primitive": "plane", "parameters": { "n": { "x": 1.0, "y": 0.0, "z": 0.0 }, "h": 0.0 } }

토러스:

{ "primitive": "torus", "parameters": { "r1": 0.08, "r2": 0.02 } }

원뿔형 원기둥 (Frustum):

{
"primitive": "capped_cone",
"parameters": {
"a": { "x": 0.0, "y": -0.05, "z": 0.0 },
"b": { "x": 0.0, "y": 0.05, "z": 0.0 },
"r1": 0.04, "r2": 0.01
}
}

지원되지 않는 기본 연산자가 지정되면, 이 서비스는 원점과의 거리를 기반으로 한 구형 유사 계산 방식을 사용합니다.