본문 바로가기
Graphic/Blender

23 Blender 햄버거 모델링 (Blender 사용법 정리)

by curious week 2025. 7. 30.

Blender 햄버거 모델링 수업 정리

들어가며

3D 모델을 임포트하는 방법을 배웠다면, 이제 Blender를 이용해 직접 모델을 만드는 과정을 배워볼 차례입니다. 이 수업에서는 햄버거 모델을 Blender에서 직접 만들고, Three.js에서 사용하는 glTF 포맷으로 익스포트하는 전 과정을 다룹니다.


Blender 선택 이유

Blender 외에도 다양한 3D 소프트웨어(Cinema 4D, Maya, 3DS Max, ZBrush 등)가 있지만, 다음 이유로 Blender를 사용합니다:

  • 무료
  • 높은 성능
  • 모든 주요 OS 지원
  • 강력한 기능들
  • 대규모 커뮤니티
  • 2.8 이후로 UI가 쉬워짐

Blender의 모든 기능을 익히는 건 이 수업의 목표가 아니며, 기본기를 배우고 친숙해지는 것이 우선입니다.


Blender 다운로드


🧭 Blender 인터페이스 구조

기본 화면 구성 요소

 

3D viewport

  • 3D Viewport: 주요 작업 영역

Timeline

  • Timeline: 애니메이션 작업 영역

Outliner
selection button을 이용해서 필요한 오브젝트만 클릭되게 할 수 있다.

  • Outliner: 씬 구조를 계층으로 보여줌

Properties

  • Properties: 오브젝트, 환경 속성 조절

영역(Area) 조작 방법

Change an area(영역변경)

  • 영역 변경: 각 영역 왼쪽 상단의 아이콘 클릭
  • 영역 크기 조절: 경계선 드래그

코너

  • 영역 분할: 코너 클릭 후 십자(+)커서가 생기면 원하는 영역으로 드래그
  • 영역 병합: 반대 방향으로 드래그

⌨ 단축키 사용법

Blender는 단축키 위주로 작업하면 훨씬 빠르고 효율적입니다.

단축키가 작동하지 않으면 한/영 을 꼭 확인합니다.


🌀 뷰 조작

magic mouse 또는 터치 패드 등 마우스 중앙 버튼이 없는 도구 사용 시, Edit > Preferences > Input > Mouse > Emulate 3 Button Mouse > 체크 후 Alt

  • Orbit (회전): MIDDLE MOUSE(휠) 클릭 + 드래그

이동

  • Truck/Pedestal (좌우/상하 이동): SHIFT + MIDDLE MOUSE

dolly

  • Dolly (전후 이동): WHEEL 스크롤 or SHIFT + CTRL + MIDDLE MOUSE
  • Walk/Fly 모드: SHIFT + ` (Mac에서는 키매핑 필요 → SHIFT + F로 변경 가능)

뷰 전환

  • Orthographic/Perspective: NUMPAD 5

정렬

  • X/Y/Z 정렬: NUMPAD 1/3/7 (CTRL 누르면 반대 방향)

view

  • 카메라 뷰: NUMPAD 0
  • 전체 리셋: SHIFT + C
  • 선택한 오브젝트에 포커스: NUMPAD , (또는 NUMPAD /) 또는 / (취소도 동일 /)

노트북의 경우 숫자 패드 설정이 따로 가능하다. (Preferences > Input > Emulate Numpad) 이렇게 설정한 경우, Edit Mode에서 정점/간선/면으로 전환이 불편할 수 있기 때문에 Preferences > Keymap > 'mesh.select_mode'를 검색해서 다른 키로 설정해주면 된다. (commend + 1 (정점) / 2(간선) / 3(면)으로 설정)

좌 - 숫자 패드 설정 / 우 - 단축키 설정


🖱 오브젝트 선택

  • 단일 선택: LEFT MOUSE
  • 다중 선택: SHIFT + LEFT MOUSE
  • 선택 취소: SHIFT + LEFT MOUSE
  • 전체 선택: A
  • 전체 선택 해제: A 두 번
  • 박스 선택: B 드래그
  • 브러시 선택: C (WHEEL로 반경 조절)
  • 연결된 요소 전체 선택: L
  • 반전 선택: CONTROL + I

 

  • 부모로 연결
    • 여러 오브젝트를 하나의 오브젝트에 부모로 연결해 그룹처럼 움직이게 함.
    • 자식이 될 오브젝트들을 모두 선택
    • 마지막에 부모로 삼을 오브젝트를 Shift + 클릭
    • Ctrl + P → Object (Keep Transform) 선택
  • 컬렉션
    • 여러 오브젝트 선택
    • M 키 → 새로운 컬렉션으로 이동
    • 단점: 이동/회전은 컬렉션 단위로 직접 못함 (간접적 제어만 가능)
  • 병합
    • 병합할 메쉬 오브젝트 선택
    • Ctrl + J
    • 진짜로 하나의 메쉬가 됨 (편집 모드에서 모두 보임)
    • 다시 분리, 분리할 부분 선택 후 P키 + selection

➕ 오브젝트 생성 및 삭제

  • 원하는 위치 지정해서 오브젝트 생성: 3D 커서 위치 지정 Shift + 오른쪽 클릭
  • 생성: SHIFT + A → Mesh 등 선택
  • 삭제: 선택 후 X → 확인 클릭
  • 병합(여러 오브젝트를 하나로 취급): ctrl + J
  • 선택한 부분 분리: edit mode에서 P -> Selection
  • 부분 삭제

n-gon으로 생성
Triagle Fan으로 생성
x키(삭제)를 누르고 faces 선택 / 비어버린 면에 F키로 면을 생성

X키를 누르고 Faces를 선택하면 면을 삭제할 수 있다. 삭제 후에 비어버린 면은 생성하고 싶은 곳들의 정점들을 선택 후 F키를 눌러서 면을 생성할 수 있다.

Text는 shift + A로 생성해서 우측 (a 아이콘)Data에서 수정 가능하다. Geometry > Extrude로 (앞 뒤로)두께 조절을 하거나 Depth로 전체 두께 조절(커지면 겹친다) Spacing에서 자간 등을 조절 가능하다. 우클릭(object) > Convert > MeshMesh로 변환해서 수정도 가능하다. 

Data > Font에서 Regular / Bold / Italic / Bold&Italic 폰트 설정 가능.


🔎 오브젝트 숨김

  • 선택된 것만 숨김: H
  • 숨긴 것 복원: ALT + H
  • 선택되지 않은 것 숨김: SHIFT + H

🔁 오브젝트 변형

  • 이동: G
  • 회전: R
  • 스케일(크기): S
  • 축 고정: G/R/S 이후 X, Y, Z
  • 연결된 채로 확장: E

i key - Extrude Region and move / Bisect

  • 테두리를 따라 안쪽으로 새로운 면을 복사: I
  • Bisect: 원하는 모양으로 자르기 (fill 자른 면 채우기, clear outer: 잘라낸 부분 삭제s)

여러 개로 쪼개기

Edit Mode로 들어가서 우클릭 > Subdivide > Number of Cut 계산해서 숫자 증가

객체를 뒤집는 방법 4가지

  1. 객체(Object Mode) 선택 > Ctrl + M > 뒤집고 싶은 축 선택 (X → X축 대칭 / Y → Y축 대칭 / Z → Z축 대칭)
  2. 객체 선택 > S → X → -1 입력 (또는 Object Properties → Scale → X 값을 -1로 변경)
  3. 객체 선택 > Modifier → Add Modifier → Mirror > Axis(X/Y/Z) 선택
  4. 객체 선택 > R → Z → 180 입력 → Z축 기준으로 완전 반대 방향을 가리킴 (회전)

🔄 모드 전환

  • Object Mode ↔ Edit Mode: TAB
  • Preferences > Keymap > Tab for Pie Menu를 설정하면 다양한 모드로 전환 가능하다.
  • Ctrl + TAB: 모드 휠 메뉴

Edit Mode

  • 기본 선택: Vertex (정점)
  • 변경: 상단 아이콘 or 1/2/3 (정점/엣지/면)

Transform Pivot Point 

화면 상단의 작은 동그라미 아이콘(Transform Pivot Point)

  • Blender에서 회전(R)·스케일(S) 할 때 어떤 위치를 중심점(Pivot) 으로 삼을지 정하는 설정
  • Median Point(기본값): 선택한 요소들의 평균 위치를 중심으로 회전/스케일한다.
  • 3D Cursor: 회전/스케일을 3D Cursor를 중심으로 한다(정교한 조작에 매우 유용).
  • Individual Origins: 여러 개를 선택했을 때 각 요소가 자기 중심 기준으로 따로 회전/스케일한다.

스냅(Snap) 메뉴

  • Shift + S 단축키
  • 3D 커서와 오브젝트(또는 정점)의 위치를 정확하게 서로 맞출 때 사용한다.
  • Cursor to Selected → 커서를 선택한 위치로 옮긴다.
  • Selection to Cursor → 선택한 오브젝트/정점을 커서 위치로 즉시 이동한다.
  • Cursor to World Origin → 커서를 세계 좌표(0,0,0)로 보내 원점 정렬에 자주 사용된다.
  • Cursor to Grid 3D 커서를 가장 가까운 그리드 라인으로 스냅한다. → 정확히 격자 단위에 맞추고 싶을 때 사용.
  • Cursor to Active  여러 개가 선택돼 있을 때, 마지막으로 선택한(active) 오브젝트 또는 정점의 위치로 커서를 보낸다. → 기준점을 “내가 선택한 메인 오브젝트”에 맞추고 싶을 때.
  • Selection to Grid 선택한 오브젝트(또는 정점)를 가장 가까운 그리드에 정렬한다. → 치수나 정렬 정밀도를 맞춰야 할 때 좋음.
  • Selection to Cursor (Keep Offset) 선택한 오브젝트를 커서 주변으로 이동시키되, 각자 가진 상대적 거리(오프셋)는 그대로 유지한다.
  • Selected to Active 여러 오브젝트를 선택하고, 마지막에 선택한 하나를 기준(active) 으로 다른 선택된 요소를 정확히 그 위치로 맞춘다.


🎨 셰이딩(Shading)

우측 상단 - outliner 옆

  • X-Ray 모드: shift + Z
  • Z → 셰이딩 휠 메뉴:
    • Wireframe
    • Solid
    • Material Preview
    • Rendered (실제 조명 포함)

🧱 Properties 패널 주요 항목

  • Object Properties: 위치, 회전, 스케일 등

  • Modifiers: 비파괴 편집 (Subdivision, Solidify 등)

Array를 이용해서 하나의 객체를 흩뿌리기

 

Modifier

Blender에서 가장 자주 쓰는 Modifier (실전 기준)1) Mirror (미러)대칭 모델링의 핵심.한쪽만 만들면 반대쪽 자동 생성.Clipping 켜는 게 중요.2) Subdivision Surface (서브디비전/서브디브)모델을 부드럽게 만

curiousweek.tistory.com


  • Material: 재질 색상, roughness 조절

PBR 기반의 Principled BSDF 사용 → Three.js의 MeshStandardMaterial과 비슷

색상변경 기본 방법 두 가지!

(좌)우측 하단 Material로 색상 변경, (우) 상단 메뉴 중 Texture Paint에서 브러쉬로 칠하기 X키로 지정한 두 가지 색상을 왔다갔다 가능.


 선택한 Face에만 그 재질이 적용

 

  • Material Properties(붉은 구 아이콘) 클릭
  • + 버튼 눌러 재질 슬롯 추가
  • Edit Mode 로 들어가기 (Tab)
  • Face Select 모드(3) 로 전환
  • 오른쪽 Material 슬롯 리스트에서 원하는 색의 슬롯 선택
  • Assign 버튼 클릭

 Image 삽입하기

 

Image Texture

1. 활용할 이미지를 최대한 작은 사이즈로 변환한다. (https://squoosh.app/)2. 프레임이 될 메쉬를 생성하고 Material을 하나 더 생성한다.3. Shader Editor에서 Shift + A > Image Texture를 선택한다.4. 생성된 Image T

curiousweek.tistory.com

 


⚙ 렌더 엔진 설정

  • Eevee: 실시간 렌더링 (Three.js와 유사)
  • Cycles: 광선 추적 기반 고품질 렌더링 (느림)
  • Workbench: 예전 엔진

렌더링: F12 (카메라 뷰 기준)


🔍 검색 기능

  • F3 (또는 fn + F3): 액션 검색창 열기

💾 기본 레이아웃 저장

  • File → Defaults → Save Startup File

🍔 햄버거 만들기

단위 설정

  • 1 unit = 1cm 처럼 사용 (Scene Properties → Unit System = None)

하단 번 (Bottom Bun)

  1. 큐브 생성 → Subdivision Surface 추가
  2. Subdivisions 수치 증가
  3. Shade Smooth 적용
  4. Edit Mode → Loop Cut(Ctrl + R)로 엣지 다듬기

패티 (Meat)

  • 기존 번 복사: Object Mode → SHIFT + D
  • 위치 및 쉐이딩 조정

치즈 (Cheese)

  1. 평면 생성 → Edit Mode에서 Subdivide (Cuts: 10)
  2. 꼭짓점 선택 → O(Proportional Editing) → 모양 조절
  3. Solidify Modifier로 두께 조정
  4. Auto Smooth로 쉐이딩 개선

상단 번 (Top Bun)

  • 하단 번과 유사한 방식으로 만들되, 더 둥글게 조절

🎨 머티리얼 설정

  • 각 구성 요소에 재질 할당
    • Bun: BunMaterial
    • Meat: MeatMaterial
    • Cheese: CheeseMaterial
  • Base Color와 Roughness만 조정

조명 문제로 너무 어두울 경우:

  • Directional Light 선택 → 위치 조정 → Power를 5000 정도로 증가

면 뒤집힘(Backface) 체크

  • Overlays → Face Orientation 켜기 (파랑 = 정상, 빨강 = 뒤집힘)
  • 전체 자동 정리 : Edit Mode → A → Shift + N (지오메트리 기준 자동 정렬)
  • 일부 면만 수동 Flip : Edit Mode → 선택 → Alt + N → Flip
  • 스케일/미러 적용 : Object Mode → Ctrl + A → Rotation & Scale
  • 다시 Face Orientation 확인 (전부 파랑 = OK, 빨강 있으면 해당 면만 재수정)
  • 필요 시 Cleanup (Merge by Distance / Delete Loose)
  •  모델 전체가 정상화(정면 방향 통일)

📤 glTF로 내보내기

  1. 햄버거 구성요소만 선택
  2. File → Export → glTF 2.0 (.glb/.gltf)
  3. .glb 형식으로 저장 (Binary 형식, 압축 포함)
  4. Three.js의 /static/models/ 경로에 저장

주요 설정:

  • Format: glTF Binary
  • Include: Selected Objects
  • Transform: +Y Up
  • Geometry: Apply Modifiers, Normals

 내보낸 모델 확인하기

조명이 없다면 조명 추가 (https://threejs.org/editor/)


Three.js에서 테스트

const gltfLoader = new GLTFLoader();
gltfLoader.load('/models/hamburger.glb', (gltf) => {
  scene.add(gltf.scene);
});

📚 추가 학습 리소스

Blender 2.8 이상 버전 기준 튜토리얼을 따라가는 걸 권장합니다.


tip! 바닥 높이 맞추기 Scripting Python code

Scripting에 코드 작성하고 객체 전체 선택(A) 후 코드 재생(▶) 클릭

import bpy

# Object Mode로 전환
if bpy.context.object and bpy.context.object.mode != 'OBJECT':
    bpy.ops.object.mode_set(mode='OBJECT')

for obj in bpy.context.selected_objects:
    if obj.type != 'MESH':
        continue
    
    # Scale 적용 (중요)
    bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
    
    # 바운딩 박스 최저점 계산
    local_coords = [obj.matrix_world @ v.co for v in obj.data.vertices]
    min_z = min(v.z for v in local_coords)
    
    # 바닥 Z=0에 밀착
    obj.location.z -= min_z

'Graphic > Blender' 카테고리의 다른 글

Modifier  (0) 2025.11.14
49 Blender에서 장면 만들기  (5) 2025.08.07
Blender 관련 사이트  (0) 2025.05.27
Blender 단축키  (0) 2025.05.26
Blender  (2) 2025.04.25