셰이더 노드와 재질: 색과 질감이 정해지는 원리
재질은 물체의 '옷', 셰이더 노드는 그 옷을 만드는 레시피입니다. Blender에서 색과 질감이 정해지는 원리를 쉽게 설명합니다.
한국어English

기준: Blender 5.2 LTS 공식 매뉴얼(영어 화면, 기본 단축키)
3D 모델을 처음 만들면 모든 물체가 밋밋한 회색입니다. 여기에 빨간 플라스틱, 반짝이는 금속, 투명한 유리 같은 느낌을 입히는 것이 재질(Material, 머티리얼)이고, 그 재질을 블록을 이어 붙여 설계하는 도구가 셰이더 노드(Shader Nodes)입니다. 이 글에서는 재질과 셰이더 노드가 무엇인지, 노드를 읽는 법, 가장 많이 쓰는 Principled BSDF의 값 네 가지, 물체의 일부에만 다른 재질을 주는 법을 설명합니다.
재질: 물체의 옷
재질은 메시(면으로 이루어진 3D 모양)나 커브 같은 물체의 겉모습을 정합니다. 물체가 무엇으로 만들어졌는지, 어떤 색과 무늬(텍스처)를 가졌는지, 빛과 어떻게 만나는지가 재질에 담깁니다.
비유하자면 3D 모델은 마네킹이고, 재질은 마네킹에 입히는 옷입니다. 같은 마네킹이라도 가죽 재킷을 입히느냐 비단 셔츠를 입히느냐에 따라 전혀 다르게 보입니다. 마찬가지로 똑같은 공 모양도 재질만 바꾸면 당구공, 쇠구슬, 유리구슬이 됩니다.
재질에는 세 부분이 있습니다.
| 부분 | 하는 일 | 쉬운 예 |
|---|---|---|
| Surface(표면) | 겉면의 색, 무늬, 빛 반사 | 플라스틱 장난감의 광택 |
| Volume(부피) | 물체 안쪽을 채우는 것 | 연기, 불, 뿌연 유리 속 |
| Displacement(변위) | 표면 모양을 울퉁불퉁하게 | 벽돌 사이의 홈 |
처음에는 대부분 Surface만 다룹니다. 연기나 불처럼 Volume만 쓰는 재질도 있고, 뿌연 유리처럼 Surface와 Volume을 함께 쓰는 재질도 있습니다.
셰이더 노드: 재질의 레시피
재질, 조명, 배경은 모두 셰이더 노드의 연결망으로 정해집니다. 노드(node)는 한 가지 일만 하는 작은 상자입니다. 색을 정하는 상자, 무늬를 만드는 상자, 두 재질을 섞는 상자가 따로 있고, 이 상자들을 선으로 이어 재질을 완성합니다.
요리에 비유해 보겠습니다. 노드 하나는 '밀가루 준비', '반죽하기', '굽기' 같은 요리 단계 하나입니다. 단계를 순서대로 이으면 레시피가 되고, 마지막 접시에 담긴 요리가 화면에 보이는 재질입니다. 중간 단계 하나만 바꿔도(예: 설탕을 더 넣기) 결과가 달라지는 것처럼, 노드 하나의 값만 바꿔도 재질이 바뀝니다.
노드는 왼쪽에서 오른쪽으로 읽습니다. 예를 들어 무늬를 만드는 텍스처 노드에서 나온 색(노란 소켓)과 숫자(회색 소켓)가 Principled BSDF 노드로 들어가고, Principled BSDF는 이것을 '빛과 만나는 방식'(초록 소켓)으로 바꿔 내보냅니다. 이 초록 흐름이 맨 끝의 Material Output 노드에 도착해야 물체에 재질이 입혀집니다. 소켓 색과 두 노드는 아래에서 하나씩 살펴봅니다.
노드 읽는 법: 소켓과 선
노드는 제목, 소켓, 속성으로 이루어집니다.
- 소켓(socket): 노드 양옆의 작은 동그라미입니다. 왼쪽은 들어오는 값(입력), 오른쪽은 나가는 값(출력)입니다.
- 선(link): 한 노드의 출력 소켓을 다른 노드의 입력 소켓에 끌어서 잇습니다. 값이 이 선을 따라 흐릅니다.
- 소켓 색: 어떤 종류의 값이 흐르는지 알려 줍니다. 콘센트와 플러그 모양을 맞추듯, 같은 색끼리 잇는 것이 기본입니다. 다른 색끼리 이으면 Blender가 값을 자동으로 바꿔 주기도 하는데(아래 '자주 하는 실수와 오해' 참고), 이때 뜻밖의 결과가 나올 수 있습니다.
| 소켓 색 | 흐르는 값 | 예 |
|---|---|---|
| 노랑 | 색(Color) | 빨강, 무늬 이미지의 색 |
| 연회색 | 숫자(Float) | 거칠기 0.5 |
| 진한 파랑 | 벡터(Vector) | 좌표, 표면 방향 |
| 밝은 초록 | 셰이더(Shader) | 완성된 '빛과 만나는 방식' |
노드가 많아져 화면이 복잡해지면 H로 노드를 접고, Ctrl+H로 안 쓰는 소켓을 숨길 수 있습니다.
초록 소켓: 색이 아니라 빛과 만나는 방식
처음에 가장 헷갈리는 부분입니다. 셰이더 소켓에서 나오는 것은 표면의 색이 아닙니다. 빛이 표면이나 부피와 어떻게 만나는지입니다. 빨간 공은 '빨간색'이라는 값만 가진 것이 아니라, "빛이 오면 빨간 부분만 돌려보내고 겉은 살짝 반짝인다"는 행동 규칙을 가진 것입니다.
셰이더 노드의 종류도 이 규칙에 따라 나뉩니다.
- BSDF: 표면에서 빛이 반사, 굴절, 흡수되는 방식 (대부분의 재질)
- Emission: 스스로 빛을 냄 (전광판, 네온사인)
- Volume: 부피 안에서 빛이 흩어짐 (연기, 안개)
- Background: 주변 환경이 내는 빛 (하늘)
초록 셰이더끼리는 Mix Shader(섞기)와 Add Shader(더하기) 두 노드로만 합칠 수 있습니다. 색처럼 밝기를 곱하거나 빼는 계산은 초록 선에서 할 수 없습니다.
모든 선이 모이는 곳: Material Output
노드 트리의 맨 끝에는 Material Output 노드가 있습니다. 이 노드가 표면 재질 정보를 물체로 내보냅니다. 입력 소켓은 앞서 본 세 부분, 곧 Surface, Volume, Displacement입니다. 요리로 치면 '완성 접시'입니다. 아무리 멋진 노드를 만들어도 이 접시에 연결하지 않으면 화면에 나오지 않습니다. EEVEE에서만 쓰는 Thickness(두께) 입력도 있지만, 처음에는 몰라도 됩니다.
가장 많이 쓰는 노드: Principled BSDF
새 재질을 만들면 기본으로 Principled BSDF 노드가 Material Output에 연결되어 나옵니다. 여러 층을 하나로 합친 쓰기 쉬운 노드입니다. OpenPBR Surface라는 모델을 바탕으로 하고, 다른 프로그램의 비슷한 셰이더와 호환되는 값을 쓰기 때문에 Substance Painter 같은 프로그램에서 만든 텍스처 이미지도 해당 입력에 바로 이을 수 있습니다.
입력 칸이 많아 보이지만, 처음에는 네 가지만 알면 충분합니다.
| 입력 | 뜻 | 값의 의미 |
|---|---|---|
| Base Color | 기본 색 | 재질 전체의 바탕색 |
| Roughness | 거칠기 | 0은 거울처럼 선명한 반사, 1은 뿌옇게 퍼진 반사 |
| Metallic | 금속성 | 0은 비금속(플라스틱, 나무), 1은 바탕색으로 물든 금속 반사 |
| Alpha | 불투명도 | 1은 완전히 불투명, 0에 가까울수록 투명 |
거칠기는 새 볼링공과 오래 쓴 탁구공의 차이입니다. 매끈한 볼링공에는 조명이 작고 또렷하게 비치고, 표면이 거친 공은 빛이 넓게 번져 반짝임이 흐려집니다. 금속성은 플라스틱 장난감 반지와 진짜 금속 반지의 차이입니다. 금속성 1은 확산 반사(물체 겉에 고르게 퍼지는 색) 없이 반사광 전체가 바탕색으로 물든 상태입니다. 그래서 금속의 색은 바탕색이 정합니다. 바탕색이 주황이면 금속성을 1로 올렸을 때 구리처럼 주황빛 도는 금속이 되고, 노란빛 바탕색이면 금처럼, 밝은 회색이면 은이나 쇠처럼 보입니다.
이 밖에도 피부나 우유처럼 빛이 표면 아래로 살짝 스며드는 Subsurface, 유리처럼 빛이 통과하는 Transmission, 굴절 정도를 정하는 IOR(기본값 1.5는 유리에 가까움), 자동차 도장 같은 겉 코팅인 Coat, 스스로 빛을 내는 Emission 같은 항목이 있습니다. 모두 한 노드 안에 들어 있어서 노드를 여러 개 잇지 않고도 다양한 재질을 만들 수 있습니다. 금속·거칠기를 조합해 사실적인 재질을 만드는 원리는 PBR 재질 가이드에서 더 자세히 다룹니다.
무늬 입히기: 텍스처 노드
단색이 아니라 나뭇결이나 벽돌 무늬를 넣고 싶다면 텍스처 노드를 Base Color 같은 입력에 연결합니다. 방법은 크게 두 가지입니다.
- 절차적(procedural) 텍스처: Noise, Voronoi처럼 수식으로 무늬를 만드는 노드입니다. 좌표와 설정값을 받아 색이나 숫자를 내보냅니다. 이미지 파일이 없어도 되고, 확대해도 깨지지 않습니다.
- Image Texture: 사진이나 그림 파일을 입히는 노드입니다. Vector 입력을 비워 두면 물체의 활성 UV 맵 좌표를 씁니다.
여기서 좌표는 "그림의 어느 점을 물체의 어느 곳에 붙일지" 정하는 주소입니다. 절차적 텍스처의 기본 좌표는 Generated(물체 크기에 맞춰 자동으로 만든 좌표)이고, 이미지 텍스처의 기본 좌표는 UV입니다. 좌표를 직접 고르고 싶을 때는 Texture Coordinate 노드를 텍스처의 Vector 입력에 잇습니다. 3D 물체를 종이처럼 펼쳐 그림을 붙이는 UV의 원리는 UV 펼치기 가이드에서 이어서 설명합니다.
물체 일부에만 다른 재질 주기: 재질 슬롯
지붕은 빨강, 벽은 베이지, 문은 파랑인 집을 하나의 모델로 만들었다고 해 보겠습니다. 이렇게 한 물체의 부분마다 다른 재질을 주려면 재질 슬롯(Material Slots)을 씁니다. 슬롯은 물체에 달린 '옷걸이 칸'입니다. 재질은 여러 물체에 줄 수 있는 데이터 블록(Blender가 따로 저장해 두고 돌려 쓰는 자료 단위)이라서, 슬롯에는 이미 만들어 둔 재질을 걸 수도 있습니다.
- 속성 편집기(Properties)의 재질(Material) 탭에서 Material Slots 목록의
+버튼으로 슬롯을 추가합니다. - 슬롯마다 새 재질을 만들거나 이미 있는 재질을 고릅니다.
Tab으로 편집 모드(Edit Mode)에 들어가 칠할 면을 선택합니다.- 원하는 슬롯을 고르고 Assign 버튼을 누릅니다.
기본 슬롯은 하나라서 처음에는 재질 하나가 물체 전체에 입혀집니다. 두 재질이 경계 없이 부드럽게 섞여야 한다면(예: 녹이 번져 가는 금속) 슬롯을 나누기보다 Mix Shader 노드로 섞는 편이 낫습니다.
작업하는 곳
재질은 속성 편집기의 재질 탭(Material)에서도, 셰이더 편집기(Shader Editor)에서도 만들 수 있습니다. 둘은 같은 노드와 설정을 다른 모양으로 보여 줄 뿐입니다.
- Shading 작업 공간: 화면 위쪽 탭에서 Shading을 누르면 셰이더 편집기와 3D 뷰포트가 함께 열립니다. 뷰포트를 Material Preview 보기나 Rendered 보기로 두면 노드를 바꾸는 즉시 결과를 볼 수 있습니다.
- 재질 탭: 노드 화면 없이 목록 형태로 값을 바꿀 때 편합니다.
화면의 각 영역이 무엇인지는 Blender 화면 구성 가이드를 함께 보면 찾기 쉽습니다.
EEVEE와 Cycles가 함께 쓰는 노드
셰이더는 기본적으로 Cycles와 EEVEE가 함께 씁니다(Material Output 노드의 Target 설정). 한 번 만든 재질을 두 렌더 엔진에서 그대로 쓸 수 있다는 뜻입니다. 필요하면 출력 노드를 엔진별로 따로 두어 다르게 설정할 수도 있습니다. 두 엔진이 빛을 계산하는 방식이 달라 결과는 조금 다를 수 있으니, EEVEE와 Cycles 가이드를 참고해 엔진을 바꾼 뒤에는 꼭 결과를 확인하세요.
자주 하는 실수와 오해
- "노드를 만들었는데 색이 안 바뀐다." 선이 Material Output까지 이어졌는지 확인하세요. 중간에 끊기면 반영되지 않습니다.
- "색(노랑)을 Material Output의 초록 소켓에 바로 이었더니 조명을 바꿔도 그대로다." 연결 자체는 됩니다. 색·숫자·벡터를 셰이더 소켓(초록)에 이으면 Blender가 자동으로 변환해 Emission 노드를 쓴 것과 같은 결과를 냅니다. 곧 물체가 스스로 빛나는 단색이 되어 조명이나 그림자에 반응하지 않습니다. 빛을 받는 재질을 원한다면 색은 Principled BSDF의 Base Color로 보내고, Principled BSDF의 초록 출력을 Material Output에 이으세요.
- "Add Shader로 섞으면 더 밝아서 좋다." 재질은 들어온 빛보다 많은 빛을 돌려보내지 않아야 합니다. 이것을 '에너지 보존'이라고 합니다. 색을 0~1 범위로 두고 Mix Shader로 섞으면 자동으로 지켜지지만, Add Shader나 1보다 큰 색 값은 이를 깨뜨릴 수 있습니다.
- "거칠기 0이 가장 예쁘다." 현실의 물체는 대부분 조금씩 거칩니다. 0은 완벽한 거울에 가깝기 때문에, 현실의 물건처럼 보이게 하려면 값을 조금 올려 보세요.
모양을 규칙으로 만드는 노드도 같은 방식으로 연결합니다. 셰이더 노드에 익숙해지면 지오메트리 노드 입문도 훨씬 쉽게 읽힙니다.
참고 자료
매뉴얼 링크는 버전이 고정된 Blender 5.2 LTS 주소입니다.
- Blender 5.2 LTS Manual, Materials Introduction — https://docs.blender.org/manual/en/5.2/render/materials/introduction.html
- Blender 5.2 LTS Manual, Material Assignment — https://docs.blender.org/manual/en/5.2/render/materials/assignment.html
- Blender 5.2 LTS Manual, Shader Nodes Introduction — https://docs.blender.org/manual/en/5.2/render/shader_nodes/introduction.html
- Blender 5.2 LTS Manual, Principled BSDF — https://docs.blender.org/manual/en/5.2/render/shader_nodes/shader/principled.html
- Blender 5.2 LTS Manual, Material Output Node — https://docs.blender.org/manual/en/5.2/render/shader_nodes/output/material.html
- Blender 5.2 LTS Manual, Image Texture Node — https://docs.blender.org/manual/en/5.2/render/shader_nodes/textures/image.html
- Blender 5.2 LTS Manual, Texture Coordinate Node — https://docs.blender.org/manual/en/5.2/render/shader_nodes/input/texture_coordinate.html
- Blender 5.2 LTS Manual, Node Parts — https://docs.blender.org/manual/en/5.2/interface/controls/nodes/parts.html
- Blender 5.2 LTS Manual, Shader Editor — https://docs.blender.org/manual/en/5.2/editors/shader_editor.html





