제작 결과물
1. 기본 지형 제작 노드 셋업 분석
Subdivide Mesh
- 레벨 속성을 올릴 때마다 연결되어 있는 메쉬의 면을 4배씩 분할해주는 역할(면 늘리기)
- 해상도에 해당하는 버텍스를 늘려줘야 텍스쳐가 디테일하게 표현 가능
- 웬만한 작업에서 필수적으로 사용
Subdivision Surface 노드는 Catmull-Clark 방식이,
Subdivide Mesh 노드는 Simple 방식으로 넘어옴
** 적당히 곡면이 있는 땅이라면 Subdivision Surface 노드를 사용하는 것이 좋음
Set Position
- 위치, 크기, 회전값 등의 데이터를 Geometry 노드에서 주고 받을 땐 주로 Vector 타입의 노드들을 사용
- Set Position의 position과 offset의 속성이 x, y, z 채널이 모두 포함된 위칫값을 제대로 전달받아야 활용 가능 하기에 Vector 타입의 노드를 연결해야 함
- position 속성은 연결된 mesh의 vertax 들이 가진 위칫값을 직접 지정해줄 수 있는 소켓
- Selection 속성은 연결된 mesh에서 어떤 부분들이 set position에 위치 변경 효과를 받을 건지 선택해 줄 수 있는 boolean 타입의 소켓
Combine XYZ
- 어떤 단일 수칙값을 이 vector 속성에 연결하면서 x, y, z 중 원하는 채널에만 노드를 연결하고 싶을 때, 중간에 이어주는 식으로 사용하는 노드
- Input은 개별적으로 연결 할 수 있는 소켓
- 세 가지 개별 채널이 output에서 모두 한 묶음의 vector 타입으로 변환이 되어 vector 타입 인풋 소켓에 연결 가능
Geometry Proximity
- Input으로 연결된 Geometry와 내가 지정한 오브젝트가 서로 얼마만큼 거리가 떨어져 있는지 수치값으로 표현해주는 속성
Curve to Points
- Curve를 Geometry Poximity 노드가 요구하는 point 데이터로 변호나해주기 위해 중간에 이 노드를 사용
Divide
- Distance 맵을 확인해보면 1보다 높은 거리값을 가진 Vertax들이 하얗개 타버리는 문제가 있음
- 스프레드 시트 상에서 수십미터씩 표현되는 거리 값을 검정색에 해당하는 0, 흰색에 해당하는 1 사이에서 표현될 수 있도록 나눗셈을 적용
- 두 번째 사진과 같이 각 버텍스들이 수칫값이 대략 0과 1사이로 맞춰짐
- 기존에 하얗게 표현되었던 부분들이 자연스러운 그라디언트 맵으로 바뀜
Normalize
- 켜져 있는 경우 0~1 사이의 값이 표현되고, 꺼진 경웨는 -1~0사이의 값이 표현
Geometry Node에서 만든 맵을 쉐이더로 옮겨 작업하기
Attribute(Shader 창)
- 제작한 그라디언트 맵처럼 지오메트리 노드에서 만든 맵들을 다른 곳에서도 활용할 수 있도록 등록해주는 일종의 데이터
Store Named Attibute(Geometry Node 창)
- 도입부터 결말까지 지나가는 경로에 반드시 껴 있어야 제대로 mesh에 Attribute를 등록할 수 있음
- 내보내고 싶은 맵을 Value 속성에 연결
- Name 부분에 등록하려고 하는 Attribute 이름을 String 형식으로 적기
2. 나무 심기 및 장면 구성
지형 mesh에 나무 오브젝트가 위치할 부분들을 위칫값을 가진 포인트들로 표시를 해야함
Point와 Vertax의 차이
Point
- 단순히 위치 값만 있으면 표현됨
- 각 point는 vertax처럼 주변 요소들과 뭔가를 주고받지 않고 각자 독립적으로 존재
- 위치값만 있으면 만들 수 있어 다양한 타입의 지오메트리로부터 생성 가능
Vertax
- Edge와 Edge가 서로 만나는 지점으로 표현이 됨
- 위치값 뿐만 아니라 고유의 색상, 노멀값 등 다양한 정보가 다 담겨 mesh에서 한정해서 쓰는 개념
- 한 vertax가 가진 정보는 주변 vertax하고 혹은 Edge 등과의 관계에서 결정되기 때문에 한 메쉬 안에서 각 요소와의 관계성이 좀 더 중요시 됨
Distribute Points on Faces / Join Geometry
- mesh 표면에 point들을 흩뿌리는 기능을 함
- 각 포인트들의 간격을 조정해주고 싶으면 Posson Disk로 설정
- 우측의 이미지처럼 이 전에 만든 지형과 함께 보이도록 하려면 Join Geometry로 연결
Instance on Points
Instance란?
여러 개의 오브젝트가 동일한 메쉬 데이터를 공유하는 것
큰 장점은 동일한 모양의 수백 수천 개의 오브젝트를 다뤄도 하나의 mesh 데이터만 공유하기 때문에 메모리를 가볍게 사용 가능
- 특정 오브젝트를 Instance로 변환해서 각 Point들 마다 생성시켜 주는 노드
- Instance 소켓에는 각 Point들에 적용할 Geometry 연결시키기
인스턴스에 나무 더미 파일 적용하기
- 작업에 더미를 사용하는 이유는 최종 에셋으로 바로 작업하면 데이터가 무거운 경우가 많음
- 나무를 심을 때 바로 최종 에셋을 넣으면 블렌더 계산 속도가 느려져 작업이 불편해질 수 있음
- 가벼운 데이터인 더미 에셋으로 장면 구성을 한 뒤, 최종 에셋으로 바꿔치기 작업을 하는 것이 좋음
glTF 파일
- fbx는 블렌더로 Import 했을 때 머티리얼에서 텍스처 경로를 하나씩 지정해줘야 하는 경우가 가끔 있어 번거로움
- glTF파일은 대체로 머티리얼의 텍스처들이 잘 연결되어 있고 좀 더 디테일한 노드 트리로 짜인 상태로 불러와져 쉐이더 관련 수정 작업을 훨씬 줄일 수 있음
- 단점은 Empty 오브젝트가 여러 개 달린 채로 불러와지는 경우가 많아 정리가 필요
'2. 블렌더(Blender) 공부 > 지오메트리 노드 [실습]' 카테고리의 다른 글
2. [Pljec 2] 바다를 항해하는 배와 선장 루프 애니메이션 (결과물 + 노드 분석) (0) | 2024.09.19 |
---|