지오메트리 노드로 절차적 모델링 시작하기
수작업 모델링에서 규칙 기반 모델링으로
지금까지는 큐브를 편집하고, 모디파이어를 쌓고, 재질과 조명을 설정하며 장면을 만들었습니다. 이 방식은 눈에 보이는 형태를 직접 다듬는 데 좋습니다. 하지만 잔디 수천 개, 돌 수백 개, 창문이 반복되는 건물처럼 같은 규칙이 반복되는 장면을 모두 손으로 배치하면 시간이 오래 걸립니다.
이때 사용하는 기능이 Geometry Nodes입니다. 지오메트리 노드는 오브젝트의 형태, 배치, 반복, 변형을 노드로 제어하는 기능입니다. 노드는 작은 기능 상자라고 생각하면 됩니다. 여러 노드를 선으로 연결해 "어디에 점을 뿌리고, 그 점 위에 무엇을 올리고, 크기와 방향을 어떻게 바꿀지"를 정합니다.
핵심은 단순합니다.
입력: 어떤 오브젝트를 사용할 것인가
처리: 점을 만들고, 인스턴스를 배치하고, 값을 조절한다
출력: 계산된 결과를 화면에 보여 준다
복잡한 노드 네트워크를 외우는 것보다 이 흐름을 먼저 이해해야 합니다. 지오메트리 노드는 블렌더를 단순한 수작업 모델링 도구에서, 규칙을 만들고 자동으로 갱신하는 제작 도구로 확장합니다.
AI 생성 이미지
Geometry Nodes 작업 공간 열기
간단한 잔디 배치 예제로 시작하겠습니다.
Shift + A > Mesh > Plane으로 평면을 추가합니다.S로 크기를 키워 바닥을 만듭니다.평면을 선택한 상태에서 상단 워크스페이스의
Geometry Nodes를 클릭합니다.화면 하단 또는 중앙에 Geometry Nodes 에디터가 보이면
New를 누릅니다.
여기서 중요한 점이 하나 있습니다. 지오메트리 노드는 공중에 따로 존재하는 것이 아니라, 선택한 오브젝트에 붙는 모디파이어처럼 작동합니다. 지금은 평면에 Geometry Nodes가 붙어 있고, 이 평면을 기준으로 노드 계산이 이루어집니다.
New를 누르면 기본 노드 두 개가 나타납니다.
Group Input: 현재 오브젝트의 원본 지오메트리를 노드 안으로 가져옵니다.
Group Output: 노드 계산 결과를 다시 오브젝트로 내보냅니다.
처음에는 Group Input의 Geometry가 Group Output의 Geometry에 바로 연결되어 있습니다. 이 상태는 "원본을 그대로 보여 준다"는 뜻입니다. 중간에 노드를 추가하면 원본을 변형하거나, 새 구조를 만들거나, 다른 오브젝트를 배치할 수 있습니다.
노드 추가는 Shift + A입니다. 노드 검색은 Shift + A를 누른 뒤 바로 이름을 입력하면 됩니다. 예를 들어 Distribute Points on Faces를 찾고 싶다면 Shift + A 후 distribute 정도만 입력해도 됩니다.
점을 뿌리고 그 위에 오브젝트 올리기
지오메트리 노드에서 반복 배치의 기본은 두 단계입니다.
첫째, 표면 위에 점을 만듭니다. 둘째, 그 점 위에 오브젝트를 올립니다.
이때 자주 사용하는 노드가 다음 두 개입니다.
Distribute Points on Faces: 면 위에 점을 흩뿌립니다.
Instance on Points: 점 위에 오브젝트나 지오메트리를 복제해 올립니다.
먼저 바닥 평면 위에 점을 만들어 보겠습니다.
Shift + A > Search에서Distribute Points on Faces를 추가합니다.Group Input의Geometry를Distribute Points on Faces의Mesh에 연결합니다.Distribute Points on Faces의Points출력을Group Output의Geometry에 연결합니다.
이제 평면이 사라지고 점들이 보일 수 있습니다. 당황할 필요 없습니다. 지금 출력이 원본 평면이 아니라 점으로 바뀌었기 때문입니다. Density 값을 올리면 점이 많아지고, 낮추면 줄어듭니다. Seed 값을 바꾸면 점의 위치 패턴이 달라집니다.
이제 점 위에 작은 오브젝트를 올립니다. 예를 들어 잔디 한 줄기를 아주 단순한 원뿔로 만들겠습니다.
뷰포트에서
Shift + A > Mesh > Cone을 추가합니다.Cone을 가늘고 길게 만들어 잔디 한 줄기처럼 보이게 합니다.
S,Z축 스케일을 사용하면 쉽습니다.이름을
grass_blade로 바꿉니다. 이름 변경은F2또는 Outliner에서 더블 클릭으로 할 수 있습니다.다시 평면을 선택하고 Geometry Nodes 에디터로 돌아옵니다.
Object Info노드를 추가합니다.Object Info노드에서 오브젝트를grass_blade로 지정하고, 가능하면As Instance옵션을 켭니다.Instance on Points노드를 추가합니다.Distribute Points on Faces의Points를Instance on Points의Points에 연결합니다.Object Info의Geometry를Instance on Points의Instance에 연결합니다.Instance on Points의Instances를Group Output의Geometry에 연결합니다.
이제 평면 위에 잔디 줄기가 반복 배치됩니다. 이것이 지오메트리 노드의 가장 중요한 첫 구조입니다.
표면 → 점 → 인스턴스
여기서 인스턴스는 원본을 실제로 수천 개 복제하는 것이 아니라, 같은 데이터를 반복해서 보여 주는 방식입니다. 그래서 많은 잔디나 돌을 배치할 때 일반 복제보다 가볍게 작업할 수 있습니다.
다만 grass_blade 원본 오브젝트는 장면 안에 그대로 남아 있습니다. 실습 중 원본 잔디 한 줄기가 따로 보이면 이상한 것이 아닙니다. 나중에 원본 오브젝트를 별도 컬렉션에 넣고 뷰포트나 렌더에서 숨기면, 노드가 불러온 인스턴스만 장면에 보이게 정리할 수 있습니다.
원본 바닥도 함께 보이게 만들기
방금 만든 구조에서는 잔디만 보이고 바닥 평면은 사라졌을 수 있습니다. 노드 출력에 잔디 인스턴스만 연결했기 때문입니다. 바닥과 잔디를 함께 보이게 하려면 Join Geometry 노드를 사용합니다.
Join Geometry노드를 추가합니다.Group Input의Geometry를Join Geometry에 연결합니다.Instance on Points의Instances도Join Geometry에 연결합니다.Join Geometry의Geometry출력을Group Output의Geometry에 연결합니다.
이제 원본 평면과 잔디 인스턴스가 함께 출력됩니다. Join Geometry는 여러 지오메트리를 하나의 결과로 합쳐 주는 노드입니다. 모델링에서 여러 오브젝트를 선택해 Ctrl + J로 합치는 것과 비슷해 보이지만, 지오메트리 노드에서는 원본을 유지한 채 계산 결과만 합칩니다.
이 차이가 중요합니다. 노드 값을 바꾸면 결과가 즉시 바뀌고, 원본 오브젝트는 여전히 수정 가능한 상태로 남아 있습니다.
밀도, 크기, 방향에 변화를 주기
모든 잔디가 같은 크기와 방향이면 인공적으로 보입니다. 자연스러운 장면을 만들려면 약간의 무작위성이 필요합니다.
먼저 크기를 바꿔 보겠습니다.
Random Value노드를 추가합니다.데이터 타입을
Float로 둡니다.Min을0.6,Max를1.4정도로 설정합니다.Random Value의Value를Instance on Points의Scale에 연결합니다.
잔디마다 크기가 조금씩 달라집니다. Scale 소켓이 벡터처럼 보이더라도, 입문 단계에서는 하나의 Float 값을 연결해 전체 크기를 함께 키우고 줄이는 방식으로 이해하면 됩니다. 값의 차이를 크게 주면 거칠고 야생적인 느낌이 나고, 작게 주면 정돈된 잔디밭처럼 보입니다.
방향도 바꿀 수 있습니다. 입문 단계에서는 복잡한 회전 노드를 완벽히 이해하려고 하기보다, "노드로 값이 연결되면 결과가 반복적으로 바뀐다"는 감각을 익히는 것이 먼저입니다.
그래도 직접 시도해 보고 싶다면 Rotate Instances 노드를 Instance on Points 뒤에 추가해 보십시오. Z축 방향으로만 회전을 섞으면 잔디가 서로 다른 방향을 바라보는 것처럼 보입니다. 보통 한 바퀴 회전은 360도가 아니라 약 6.283이라는 값으로 다루는 경우가 많습니다. 그래서 Random Value의 범위를 0에서 6.283 정도로 두고 Z 회전에 연결하면 한 바퀴 안에서 무작위 방향을 만들 수 있습니다. 사용 중인 블렌더 버전에 따라 회전 입력이 벡터 또는 회전 타입으로 보일 수 있으므로, 처음에는 "Z축 회전값을 랜덤하게 만든다"는 개념만 잡아도 충분합니다.
돌을 배치할 때도 구조는 같습니다. 잔디 대신 작은 바위 오브젝트를 만들고 Object Info에서 그 오브젝트를 지정하면 됩니다. 도시 장면도 마찬가지입니다. 건물 박스 몇 개를 만들고, 점 위에 인스턴스로 배치하면 간단한 도시 블록을 만들 수 있습니다.
결국 중요한 패턴은 반복됩니다.
잔디: 바닥 표면 위에 가는 오브젝트를 많이 배치
돌밭: 지형 위에 크기가 다른 돌을 배치
도시: 격자나 면 위에 건물 인스턴스를 배치
숲: 지형 위에 나무 오브젝트를 배치
소재만 달라질 뿐, 기본 구조는 Distribute Points on Faces와 Instance on Points입니다.
파라미터를 바꾸면 장면이 즉시 갱신된다
지오메트리 노드의 장점은 결과를 확정하지 않고도 계속 바꿀 수 있다는 점입니다. Distribute Points on Faces의 Density를 낮추면 잔디 수가 줄어듭니다. Seed를 바꾸면 배치가 새로 섞입니다. Random Value의 Min, Max를 바꾸면 크기 변화가 달라집니다.
이런 값들을 파라미터라고 부릅니다. 파라미터는 노드 결과를 조절하는 숫자나 옵션입니다. 절차적 제작에서는 형태를 직접 하나씩 고치기보다, 규칙과 파라미터를 바꿔 결과를 갱신합니다.
예를 들어 의뢰자가 "잔디가 너무 많아요"라고 말했을 때, 수천 개의 잔디를 삭제할 필요가 없습니다. Density를 낮추면 됩니다. "돌 크기를 조금 더 다양하게 해 주세요"라는 요청이 오면 Random Value 범위를 넓히면 됩니다. "도시 블록을 더 빽빽하게 만들어 주세요"라면 점의 수나 배치 간격을 조절하면 됩니다.
이 방식은 마야나 시네마 4D의 노드·프로시저럴 워크플로와 개념적으로 비슷합니다. 차이는 블렌더 안에서 모델링, 재질, 렌더링과 같은 작업 흐름에 바로 연결된다는 점입니다. 우열의 문제가 아니라, 반복 구조를 만들 때 손으로 편집하는 방식에서 규칙을 설계하는 방식으로 사고가 바뀐다고 이해하면 됩니다.
뷰어 노드로 중간 결과 확인하기
지오메트리 노드를 배우다 보면 "어디서부터 결과가 이상해졌는지" 알기 어려울 때가 많습니다. 이때 필요한 습관이 중간 결과를 확인하는 것입니다.
Geometry Nodes 에디터에서 노드나 소켓을 Ctrl + Shift + 클릭하면 해당 결과를 Viewer로 확인할 수 있습니다. 최신 블렌더에서는 Viewer 노드가 중간 지오메트리나 값을 확인하는 용도로 쓰입니다. 다만 키맵이나 버전에 따라 동작이 조금 다를 수 있으므로, 단축키가 바로 작동하지 않으면 Shift + A로 Viewer 노드를 직접 추가해 연결해 보십시오. Node Wrangler 애드온을 켜 두면 노드 작업 단축키가 더 편해지는 경우도 있습니다.
확인 순서는 다음처럼 단순하게 잡으면 됩니다.
Group Input의 원본 평면이 들어오는가Distribute Points on Faces에서 점이 만들어지는가Instance on Points에서 오브젝트가 올라가는가Join Geometry에서 원본과 인스턴스가 함께 보이는가Group Output에 최종 결과가 연결되어 있는가
노드가 복잡해질수록 최종 출력만 보며 고치면 시간이 오래 걸립니다. 중간 결과를 하나씩 확인하는 습관이 문제 해결 속도를 크게 높입니다.
프레임과 이름 정리 습관
입문 단계에서 가장 흔한 실수는 노드를 계속 추가하기만 하고 정리하지 않는 것입니다. 처음에는 작아 보이는 노드 트리도, 랜덤 크기와 회전, 여러 오브젝트, 마스크, 재질 설정이 들어가면 금방 복잡해집니다.
다음 습관을 들이면 나중에 훨씬 편합니다.
노드 이름과 오브젝트 이름을 용도 중심으로 바꿉니다. 예:
grass_blade,rock_small,building_A관련 노드는 가까이 배치합니다.
선택한 노드는
G로 이동하고, 필요하면 프레임을 사용해 묶습니다.노드가 많아지면 색이나 메모로 구역을 나눕니다.
출력에 가까운 노드부터 역순으로 따라가며 구조를 점검합니다.
노드를 선택하고 Ctrl + J를 누르면 프레임으로 묶을 수 있습니다. 프레임 이름을 Point Distribution, Grass Instance, Random Scale처럼 붙이면 나중에 다시 열어도 흐름을 파악하기 쉽습니다. 여기서 말하는 프레임은 오브젝트를 하나로 합치는 Ctrl + J와 다릅니다. 노드 에디터 안에서 선택한 노드들을 시각적으로 묶어 두는 정리 도구라고 보면 됩니다.
이름 정리는 결과물의 품질과 직접 관계가 없어 보이지만, 실제 작업에서는 매우 중요합니다. 특히 팀 작업이나 긴 프로젝트에서는 "어떤 노드가 무엇을 하는지" 알아볼 수 있어야 수정이 가능합니다.
실습: 작은 절차적 정원 만들기
이번 장의 내용을 하나로 묶어 작은 정원을 만들어 보겠습니다.
큰 Plane을 하나 만들고 이름을
ground로 바꿉니다.Geometry Nodes워크스페이스에서 새 노드를 만듭니다.Distribute Points on Faces로 바닥 위에 점을 뿌립니다.Cone으로 만든
grass_blade를Object Info로 불러옵니다.Instance on Points로 점 위에 잔디를 배치합니다.Random Value를Scale에 연결해 잔디 크기를 다르게 만듭니다.Join Geometry로 바닥과 잔디를 함께 출력합니다.Density, Seed, Random Value 범위를 바꾸며 결과가 어떻게 달라지는지 확인합니다.
여기까지 완성하면 아주 단순하지만 절차적 장면의 기본 구조를 만든 것입니다. 이제 잔디 대신 돌, 나무, 건물, 조명 장식, 창문 패턴을 넣어도 원리는 같습니다.
실습 중 잔디가 너무 무겁게 느껴지면 Density를 낮추십시오. 오브젝트가 보이지 않으면 Object Info에서 대상 오브젝트가 제대로 지정되었는지 확인하십시오. 바닥이 사라졌다면 Join Geometry 연결을 확인하십시오. 인스턴스가 너무 크거나 작으면 원본 오브젝트의 스케일을 적용하거나, 노드 안의 Scale 값을 조절하십시오. 원본 grass_blade까지 같이 보인다면 원본 오브젝트를 숨기거나 별도 컬렉션으로 옮겨 정리하면 됩니다.
이번 장에서 익혀야 할 것
지오메트리 노드는 처음 보면 낯설지만, 기본 흐름은 어렵지 않습니다. 원본 지오메트리가 들어오고, 노드에서 처리되고, 출력으로 나갑니다. 반복 배치에서는 표면 위에 점을 만들고, 그 점 위에 인스턴스를 올립니다.
이번 장에서 반드시 기억할 구조는 네 가지입니다.
Group Input과Group Output사이에서 모든 계산이 일어난다.Distribute Points on Faces는 표면 위에 배치 지점을 만든다.Instance on Points는 그 지점 위에 오브젝트를 반복 배치한다.Join Geometry는 원본과 생성 결과를 함께 출력할 때 사용한다.
복잡한 노드 테크닉은 나중에 배워도 됩니다. 먼저 점, 인스턴스, 랜덤 값, 출력 흐름에 익숙해지십시오. 이 네 가지만 이해해도 잔디밭, 돌밭, 간단한 도시, 반복 장식처럼 손으로 만들기 번거로운 장면을 훨씬 빠르게 구성할 수 있습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.