본문으로 이동

SDF 형태 목록

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

SDF란 무엇인가요?​

부호가 있는 거리 함수는 공간 내의 임의의 점과 특정 형상의 가장 가까운 표면 사이의 거리를 반환합니다. 표면 내부에서는 음수, 표면 위에서는 0, 표면 외부에서는양수를 반환합니다. 이 거리는 힘 곡선의 입력값이 됩니다. 표면에 가까울수록 힘은 커지고, 표면을 벗어나면 힘은 전혀 작용하지 않습니다.

SDF 양식은 ‘탐색’ 모듈에서 사용됩니다(버블 양식).

한 도형은 다음으로 표현된다. primitive 그리고 한 블록 parameters :

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

기본 형태​

원시적인매개변수비고
spherer (레이온)가장 간단한 형태
ellipsoida (반지름을 vec3 형식으로 표현)SDF 근사값; 군대에 대해서는 정확한 값
boxb (vec3 형식의 반차원)축에 맞춰
rounded_boxb (준차원), r (코인 구역)총 면적 = b + r
box_frameb (준차원), e (모서리의 두께)상자의 철사 윤곽선
planen (vec3 형식의 정규 표현), h (~을 따라 발생하는 시차) n)무한한 반공간; n 정규화되어야 한다

캡슐과 실린더​

원시적인매개변수비고
capsulea, b (vector3 형식의 끝점 좌표), r (레이온)반구형 말단부
capsule_verticalh (반 높이), r (레이온)Y축 단축키
capped_cylindera, b (vector3 형식의 축 끝점), r (레이온)평평한 끝부분
capped_cylinder_verticalh (반 높이), r (레이온)Y축 단축키

토르 계열​

원시적인매개변수비고
torusr1 (주요 레이온), r2 (튜브의 반경)XZ 평면상의 베네이엣
capped_torussc (vector2 형태의 캡 방향), r1, r2아크 ; sc = (cos θ, sin θ)
linkle (미디 길이), r1 (반지의 반경), r2 (튜브의 반경)사슬 고리의 형태

원뿔​

원시적인매개변수비고
conec (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 매개변수 (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 } }

캡슐 :

{
"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 } }

절두원뿔 (원뿔의 원통 부분) :

{
"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
}
}

지원되지 않는 원시 함수가 제공될 경우, 서비스는 원점과의 거리를 기반으로 한 구형 평가 방식으로 전환됩니다.