지오메트리 노드를 이용해서 테이블을 만드는 영상이 있어서 공부하면서 작업해보겠습니다.
Geometry Nodes 사용해서 모델링해보기
테이블 상판 만들기
1. Shift + A (Add)을 눌러 Cube 클릭해 생성합니다.
2. 상단에 Geometry Nodes 탭으로 변경한 후 New를 클릭해 줍니다.
New를 누르면 오른쪽에 있는 Modifiers Properties에 Geometry Nodes가 생깁니다.
3. Shift + A(Add)를 눌러 Curve Primitives에 있는 Quadrilateral을 클릭합니다.
현재 작업하는 노드를 확인하고 싶다면?
▶ Alt 누른 상태에서 Shift 누르고 노드 클릭하면 클릭한 노드가 Output Node에 연결됩니다.
Alt + Shift + Nodes 클릭으로 바로 Output 연결이 안 될 경우
▶ Node Wrangler 애드온이 활성화되어 있는지 확인해 주세요.
Node Wrangler 애드온 활성화 하기 : Edit → Preferences → Add-ons → Node Wrangler 체크
4. Bounding box 추가한 후 Subtract 노드 추가합니다.
Subtract를 불러오는 방법
F3를 누르거나 Shift + A에서 Search로 Subtract를 찾을 경우 안 나오기 때문에 Bounding Box에 Output _ Min or Max에서 드래그해서 놓으면 검색창이 뜹니다. 이때 검색창에 Subtract 검색합니다.
Output Min or Max에서 선을 빼는 이유
5. Seperate XYZ 노드 추가 후 Quadrilateral 뒤에 Transform 노드 추가합니다.
6. Subtract를 선택한 후 Ctrl + Shift + D를 눌러서 현재 노드가 이어진 선을 유지하면서 복제하고 형태를 Add로 변경합니다.
7. Add에 Shift + D를 눌러서 복제한 후 형태를 Divide로 변경합니다.
8. Seperate XYZ도 복제한 후에 Seperate XYZ 이름 변경(F2)합니다.
9. Combine XYZ 노드를 추가하여 두 번째로 추가한 Seperate 노드에 XYZ를 연결합니다.
이때 Z축 상단 부분에 배치하려면 Seperate XYZ를 복제한 후 Bounding Box_Max 연결해서 Combine XYZ에 Z축에 연결합니다.
10. Quadrilateral 뒤쪽에 Fillet Curve를 추가합니다.
Fillet Curve_ Radius에 Input 노드를 연결하면 Modifier 창에서도 Radius 값을 수정할 수 있습니다.
첫 번째 방법으로 Radius 값을 바로 연결하면 길이값을 넣어줘야 해서 조절이 어려울 수 있으므로 Input에 Mix를 넣어 Factor 값으로 조정할 수 있게 해야 합니다. (0.0~1.0) = 값 조절이 편리.
11. Size에 Minimum 노드 연결하고 Minimun 노드 Shift + D 복사해 준 후 Divide로 변경합니다.
12. Map Range 노드 추가해서 아래와 같이 연결해 줍니다.
Minimun 노드 Math vector이므로 Shift + A로 하면 검색 안됩니다. 이때 Size Output Node에서 꺼내서 검색합니다.
13. Fill Curve와 Curve to Mesh를 Join Geometry에 연결한 후 Curve Line 노드를 추가하여 Curve to Mesh의 Profile Curve에 연결해줍니다.
14. Set Position에 Combine XYZ에서 Divide → Float → Spline Prameter를 연결해줍니다.
이 과정은 위에서 두께를 준 부분에 곡면으로 표현이 될 수 있도록 해주는 작업입니다.
15. Fill Curve에서 Set Position을 연결한 후 Flip Face(아래쪽에 생성한 면이 뒤집혀 있으므로) 연결합니다.
면 뒤집혀 있는 거 확인하는 방법
상단에 동그라미 모양 두 개가 겹쳐 있는 아이콘 클릭 -> Geometry_ Face Orientation 체크하기
16. Join Geometry 뒤에 Merge By Distance를 넣어준다.
17. 테이블 윗부분 완료
작업 시 자주 사용하게 되는 단축키
추가 | Shift + A | |
복제 | 노드 연결된 상태로 노드 복제하기 | Ctrl + Shift + D |
복제 | Shift + D (노드만 복제됨) | |
이름 변경하기 | F2 | |
현재 선택한 노드 아웃풋 연결 | Alt + Shift + 현재 노드 클릭 | |
현재 선택한 노드 viewer | Ctrl + Shift + 현재 노드 클릭 | |
프레임 만들기 | Shift + P |
사용한 노드 정리
Quadrilateral Node
모드가 다른 4개의 점이 있는 다각형을 생성
|
Input | Width / Bottom Width / Top Width | 모양의 X축 크기 |
Height | 모양의 Y축 크기 | ||
Bottom Height / Top Height |
Kite 모드에서 맨 아래 또는 맨 위 점과 X축 사이의 거리 | ||
Offset | 평행사변형 모드에서 위쪽 가장자리와 아래쪽 가장자리 사이의 상대적 X 차이 사다리꼴 모드에서 양의 X축에서 위쪽 가장자리를 이동할 양 |
||
Point 1 - 4 | 포인트 모드의 입력 벡터 | ||
Properties | Rectangle | 너비와 높이가 있는 직사각형 모양의 곡선을 생성 | |
Parallelogram | 위쪽 및 아래쪽 가장자리의 서로 다른 X값에 대한 오프셋이 있는 사각형을 생성 | ||
Trapezoid | 높이, 상단 및 하단 너비, 오프셋이 있는 사다리꼴 모양의 곡선을 생성 | ||
Kite | 너비가 있는 연 모양을 생성하고 X축에서 위쪽 및 아래쪽 점 거리를 지정 | ||
Points | 위치 벡터를 직접 입력하여 4점 순환 폴리 스플라인을 생성 | ||
Output | Curve | 입력에서 생성된 폴리 스플라인 |
Bounding Box
입력의 지오메트리를 캡슐화하는 최소 볼륨으로 상자 메시를 생성. 노드는 경계 차원의 벡터 위치를 출력할 수도 있음.
메시 출력과 최소 및 최대 출력은 인스턴스를 고려하지 않음. 대신 인스턴스화된 지오메트리의 경우 전체 지오메트리가
아닌 각 인스턴스에 대해 경계 상자가 계산됨.
인스턴스를 포함하는 경계 상자를 계산하기 위해 Realize Instances 노드를 사용할 수 있음
Inputs | Geometry | 표준 지오메트리 입력 | |
Properties | 이 노드에는 속성 없음 | ||
Outputs | Boundind box | 입력 지오메트리를 캡슐화하는 결과 상자 | |
Min | 상자의 -X, -Y, -Z 위치값에 해당하는 좌표, 즉 상자가 각 음의 축 방향으로 확장되는 거리 | ||
Max | 상자의 +X, +Y, +Z 위치값에 해당하는 좌표, 즉 상자가 각 양의 축 방향으로 확장되는 거리 |
Math Node
수학 연산을 수행
Inputs | 노드의 입력은 동적 일부 입력은 특정 작업에서만 사용할 수 있음. Ex. 더하기 입력은 곱하기 더하기 연산자에서만사용할 수 있음 |
Value 삼각함수는 이 값을 라디안으로 읽음 Append 추가 입력 Base 입력 베이스 Exponent 지수를 입력 Epsilon 엡실론을 입력 Distance 입력 거리 Min 최소 입력 Max 최대 입력 Increment 입력 증분 Scale 입력 스케일 Degrees degree 입력 Radians 입력 라디안 |
|
Properties | Functions | Add 두 값의 합 Subtract 두 값의 차이 Multiply 두 값의 곱 Divide 첫번째 값을 두번째 값으로 나누기 Multiply Add Append 있는 두 값의 곱의 합 Power Exponent 거듭제곱으로 상승한 Base Logarithm Base 기준으로 하는 값의 로그 Square Root 값의 제곱근 Inverse Square Root 1을 값의 제곱근으로 나눈 값 Absolute 입력값은 부호에 관계없이 읽음. 이것은 음수 값을 양수 값으로 바꿈 Exponent 오일러 수를 값의 거듭제곱으로 올림 |
|
Comparison | Minimum 입력 값 중 가장 작은 값을 출력 Maximum 두 입력 값 중 가장 큰 값을 출력 Less Than 첫 번째 값이 두번째 값보다 작으면 1.0을 출력. 그렇지 않으면 출력은 0.0임 Greater Than 첫 번째 값이 두번째 값보다 크면 1.0을 출력. 그렇지 않으면 출력은 0.0임 Sign 입력 값의 부호를 추출. 모든 양수는 1.0을 출력. 모든 음수는 -1.0을 출력. 0.0은 0.0을 출력 Compare 두 입력 값의 차이가 Epsilon보다 작거나 같으면 1.0을 출력 Smooth Minimum 부드러운 최소값 Smooth Maximum 부드러운 최대값 |
||
Rounding | Round 입력 값을 가장 가까운 정수로 반올림 Floor 입력 값을 가장 가까운 정수로 내림 Ceil 입력 값을 가장 가까운 정수로 반올림 Truncate 값의 정수 부분을 출력 Fraction 분수 Modulo첫 번째 값을 두 번째 값으로 나눈 나머지를 출력 Wrap 입력 값과 해당 값보다 작은 Max의 가장 가까운 정수 배수 간의 절대 차이를 기반으로 Min 과 Max 사이의 값을 출력 Snap Increment의 가장 가까운 정수 배수로 입력 값을 내림 Ping-pong 출력 값은 입력 값을 기준으로 0.0과 Scale 사이에 이동 |
||
Triginometric | Sine 입력 값의 사인 Cosine 입력 값의 코사인 Tangent 입력 값의 탄젠트 Arcsine 입력 값의 아크사인 Arccosine 입력 값의 아크코사인 Arctangent 입력 값의 아크탄젠트 Arctan2 라디안으로 측정된 두 번째 값으로 나눈 첫 번째 값의 역탄젠트를 출력 Hyperbolic Sine 입력 값의 쌍곡선 사인 Hyperbolic Cosine 입력 값의 쌍곡선 코사인 Hyperbolic Tangent 입력 값의 쌍곡선 탄젠트 |
||
Conversion | To Radians 입력을 도에서 라디안으로 변환 To Degrees 입력을 라디안에서 각도로 변환 |
||
Clamp | 출력을 범위(0.0 ~ 1.0)로 제한합니다. 클램프를 참조 | ||
Outputs | Value | 수치 출력 |
Combine XYZ
개별 구성요소의 벡터 결합
Inputs | X | ||
Y | |||
Z | |||
Properties | 이 노드에는 속성이 없음 | ||
Output | Vector | 표준 백터 출력 |
Fillet Curve
2D 메시에 대한 베벨 수정자의 효과와 유사하게 곡선 제어점의 모서리를 둥글게 만듦
차이점으로는 Fillet Curve 노드에 의해 생성된 둥근 부분이 항상 원의 부분이라는 것
Inputs | Curve | 곡선 구성 요소가 있는 표준 지오메트리 입력 | |
Radius | 각 모깎기에서 생성된 원 부분의 반지름 | ||
Count | 폴리모드에서만 각 필렛에 추가할 제어점 수 | ||
Limit Radius | 겹치는 필렛을 피하기 위해 반지름의 최대값을 제한할지 여부 | ||
Properties | Bezier | 필렛 된 모든 제어점에 대해 두 개의 제어점만 생성됨. 모깎기의 양쪽에 있는 생성된 제어점의 정렬된 핸들에 의해 생성된 모양은 원 부분 모양을 만드는데 사용 즉, 필렛 모양의 세그먼트 수가 스플라인의 해상도 값에 따라 다름 |
|
Poly | 각 필드 입력에 대해 생성되는 제어점의 수는 정수 필드 입력으로 직접 제어됨. 이 모드는 폴리 및 NURBS 스플라인에 더 잘 작동함 |
||
Output | Curve | 곡선 구성요소가 있는 표준 지오메트리 입력 |
Map Range
범위에서 대상 범위로 값을 다시 매핑
Inputs | Value/Vector | 다시 매핑 할 입력 값 또는 벡터 | |
From Min | 다시 매핑 할 범위의 하한 | ||
From Max | 다시 매핑 할 범위의 상한 | ||
To Min | 대상 범위의 하한 | ||
To Max | 대상 범위의 상한 | ||
Steps | 계단식 선형 보간을 사용할 때 To Min 과 To Max 사이에 허용되는 값의 수 더 높은 값은 더 부드러운 보간을 제공하고 더 낮은 값은 입력을 점진적으로 양자화함. |
||
Properties | Data Type | Map Range는 Float 및 Vector 데이터 유형을 모두 지원함. 데이터 유형을 변경하면 선택한 데이터 유형을 반영하도록 소켓도 업데이트 |
|
Interpolation Type |
Linear : 최소 시작 값과 최대 시작 값 사이의 선형 보간 Stepped Linear : 최소 시작 값과 최대 시작 값 사이의 계단식 선형 보간 Smooth Step : From Min과 From Max 값 사이의 부드러운 Hermite 가장자리 보간 Smoother Step : From Min 및 From Max 값 사이의 더 부드러운 Hermite 가장자리 보간 |
||
Clamp | 활성화하면 출력이 목표 범위로 고정 | ||
Outputs | Result/ Vector | 다시 매핑한 후의 입력의 값 |
Curve Line
Inputs | Start | 첫 번째 제어점의 위치 | |
End | 두 번째 제어점의 위치. 포인트 모드에서만 사용할 수 있음 | ||
Direction | 선이 들어가는 방향 이 벡터의 길이는 중요하지 않음. 방향 모드에서만 사용할 수 있음 |
||
Length | 선의 길이, 방향 모드에서만 사용할 수 있음 | ||
Properties | Mode | Points : 시작점과 끝점으로 sp 라인을 정의 Direction : 시작, 방향 및 길이로 sp 라인을 정의 |
|
Outputs | Curve | 표준 지오메트리 출력 |
Subdivide Curve
곡선 입력의 기존 제어점 사이에 더 많은 제어점을 추가함.
베지어 및 폴리 스플라인의 경우 스플라인의 모양이 전혀 변경되지 않음
Inputs | Curve | 표준 지오메트리 입력 | |
Cuts | 각 점 다음에 오는 세그먼트에 생성할 제어점의 수 입력이 필드인 경우 세그먼트의 컷 수는 이전 지점에서 평가 될 때 필드의 값에 의해 결정 |
||
Properties | 이 노드에는 속성이 없음 | ||
Outputs | Curve | 표준 지오메트리 출력 |
Spline Parameter
제어점이 각 스플라인을 따라 얼마나 멀리 떨어져 있는지 출력
Inputs | 이 노드에는 입력이 없음 | ||
Properties | 이 노드에는 속성이 없음 | ||
Outputs | Factor | 노드가 점 도메인에서 사용될 때 값은 각 제어점에서 스플라인의 전체 길이 부분 스플라인 영역에서 스플라인 시작 부분에서 곡선의 전체 길이 부분 |
|
Length | 노드가 점 도메인에서 사용될 때 값은 스플라인을 따라 각 제어점까지의 거리 스플라인 영역에서 스플라인 시작 부분의 전체 곡선을 따른 길이 |
||
Index | 스플라인에 있는 각 제어점의 인덱스 이는 모든 이전 스플라인의 제어점도 계산하는 인덱스 노드의 출력과 다름 |
Float Curve
입력 플로트를 커브에 매핑하고 플로트 값을 출력
Inputs | Factor | 노드가 출력 값에 미치는 영향의 양을 제어 | |
Value | 표준 부동 입력 | ||
Properties | Curve 곡선 컨트롤에 대해서 곡선 위젯을 참조 | ||
Outputs | Float 표준 플로트 출력 |
Set position
속성을 제어하는 것과 같은 방식으로 각 포인트의 위치를 제어
입력 지오메트리에 인스턴스가 포함된 경우 이 노드는 각 인스턴스의 원점 위치에 영향을 미침
Inputs | Grometry | 표준 지오메트리 입력 | |
Selection | 각 점 또는 인스턴스의 위치를 변경할지 여부 True 값은 위치가 변경됨을 의미하고 false값은 동일하게 유지됨을 의미 |
||
Position | 선택한 요소의 새 위치 기본적으로 이는 위치 노드가 연결된 경우와 동일하므로 노드가 아무 작업도 수행하지 않음 |
||
Offset | 각 지점에 대한 선택적 번역 Position 입력과 동시에 평가 이에 대한 평가된 필드는 변경된 Position을 반영하지 않음 |
||
Properties | 이 노드에는 속성이 없음 | ||
Outputs | Grometry | 표준 지오메트리 출력 |
Curve to Mesh
곡선의 모든 스플라인을 메시로 변환
Inputs | Curve | 표준 지오메트리 입력. 모든 비 곡선 구성요소는 무시됨 | |
Profile Curve | 프로파일 곡선이 제공되면 모든 스플라인을 따라 돌출 그렇지 않으면 생성된 메시는 가장자리 체인일 뿐임 |
||
Fill Caps | 프로파일 스플라인이 주기적이면 생성된 메쉬의 끝을 N-곤으로 채움. 결과 메시는 Manifold이며, 각 스플라인에 대한 두 개의 새 면은 단순히 기존 가장자리에 연결 | ||
Properties | 이 노드에는 속성이 없음 | ||
Outputs | Mesh | 표준 지오메트리 노드 출력 |
Fill Curve
곡선을 경계로 사용하여 제약된 Delaunay 삼각 측량 알고리즘을 사용하여 메쉬를 생성
메시는 로컬 Z가 0인 평면만 생성
Inputs | Curve | 곡선 구성 요소가 있는 표준 지오메트리 입력 | |
Properties | Mode | Triangles : 출력은 삼각형으로 구성 N-gons : 출력은 n-gon으로 구성 |
|
Outputs | Mesh | 곡선의 채우기 |
Join Geometry
별도로 생성된 Geometry를 단일 Geometry로 병합
지오메트리입력에 다른 유형의 데이터가 포함되어 있으면 출력에도 다른 데이터 유형이 포함
Materials | 여러 메시 입력에 서로 다른 재질이 포함된 경우 각 메시 지오메트리의 재질 슬롯이 병합되어 출력 메시에 모든 입력 재질이 포함 | ||
Attributes | 여러 지오메트리 입력의 속성을 병합할 때 출력 속성에 대해 가장 복잡한 데이터 유형이 선택 | ||
Input | Geometry | 합쳐질 지오메트리 다중 입력이 허용 노드가 음소거되면 첫 번째 링크만 통과됨 |
|
Properties | 이 노드에는 속성이 없음 | ||
Output | Geometry | 표준 지오메트리 출력 |
Merge by Distance
주어진 거리 내에서 선택된 메쉬 정점 또는 포인트 클라우드 포인트를 병합하고 필요한 경우 주변 지오메트리를 병합
Inputs | Geometry | 표준 지오메트리 입력 | |
Selection | 삭제할 지오메트리 부분에 대해 true인 부울 필드 선택되지 않은 포인트는 작업을 위해 완전히 해제 다른 포인트로 병합 되지 않으며 포인트도 병합되지 않음 |
||
Distance | 가까운 지점을 검색하는데 사용할 거리 | ||
Properties | Mode | All : 병합에는 느슨한 부품을 포함한 모든 형상이 포함 Connected : 병합에는 연결된 형상만 포함 수정자는 느슨한 부품을 함께 병합하지 않음 |
|
Output | Geometry | 표준 지오메트리 출력ㅈ |
Transform
Inputs | Geometry | 표준 지오메트리 입력 | |
Translation | 수정된 개체의 로컬 공간에서 전체 형상의 변환 | ||
Rotation | 수정된 개체의 로컬 공간에서 오일러 회전 | ||
Scale | 수정된 개체의 로컬 공간에 있는 지오메트리의 배율 | ||
Properties | 이 노드에는 속성이 없음 | ||
Outputs | Geometry | 표준 지오메트리 출력 |
블렌더 노드를 공부하기 위해 아래 영상을 참고하여 만들어보고 추가적으로 공부한 내용입니다.
'3D Program > Blender' 카테고리의 다른 글
[Blender] 에드온_블툴(Add-ons_Bool Tool) (0) | 2022.10.21 |
---|---|
[Blender] Modifiers (+Array기능 알아보기) (0) | 2022.10.20 |
[Blender]Geometry Node_ 노드 공부하기 01 (1) | 2022.10.14 |
[Blender] 카툰 렌더링_상자만들기 (1) | 2022.10.11 |
[Blender] 3D 모델링이 2D 느낌이 나는 카툰 렌더링 (0) | 2022.09.27 |