시뮬레이션이란?
현실 세계에서 일어나는 물리현상을 컴퓨터 안에서 계산해 가상의 움직임으로 재현하는 기술
ex) 천이 바람에 날리는 모습, 공이 튕기는 모습 등...
핵심 3요소
1. Solver: 물리 시뮬레이션을 계산하는 엔진
| Cloth | 천, 커튼 의상 등 |
| Fluid | 물, 액체, 연기, 불 등 |
| Rigid Body | 단단한 물체 간 충돌 |
| Soft Body | 탄력있는 물체 |
| Dynamic paint | 색칠이나 표면에 효과 남기기 |
2. Parameter: 물리 계산에 영향을 주는 변수 값
~ 오브젝트 변수 ~
| Mass | 질량(낙하 속도, 충돌 강도 등) |
| Damping | 감쇠(물체의 이동/회전 속도를 느려지게 함) |
| Stiffness | 탄성 강도(물체가 얼마나 구부러지는지) |
| Friction | 마찰력(미끄러지지 않도록 저항하는 힘) |
| Bounciness | 튕김(물체가 얼마나 튕기는지) |
~ 환경 변수 ~
| Gravity | 중력 세기(기본 -9.8m/s^2) |
| Force Fields | Wind, turbulence 등 외부 힘 |
| Time Scale | 시뮬레이션 속도 조절 |
| Solver Quality | 전체 계산 정확도 |
3. Cache / Bake: 계산 결과를 저장하고 재사용
실시간 계산이므로 굉장히 무거운 시뮤레이션을 캐시로 저장 => 저장 후에는 다시 계산하지 않고 빠르게 재생됨
| Cache | 시뮬레이션 프레임별 계산 결과 저장 공간 |
| Bake | 계산된 결과를 실제로 저장하는 작업 > 빠른 재생, 렌더링 가능 |
Physics 속성창 > Rigid body > Type
- active: 움직이는 물체에 적용
- passive: 바닥 등 고정된 배경 물체에 적용
Rigid body > Settings
Dynamic 체크를 해제하면 물리 시뮬레이션이 적용되지 않음
Animated는 키프레임이 걸려있는 오브젝트의 모션과 시뮬레이션을 동시에 볼 때 사용
Rigid body > Collisions > Shape
- Convex Hall: 오브젝트의 외형을 반영하긴 하지만 가장 위와 가장 아래를 기준으로 표면을 껍질(막?)로 감싸버림.
성능이 빠르지만 외형을 100% 반영하지 못함.
- Mesh: 외형과 구조를 그대로 반영.
외형을 100% 반영하지만 성능이 느려서 렌더 시간이 오래 걸림.
shape을 Covex Hall이나 Mesh로 두면 나타나는 Source
- Base: 변형되기 전 원형의 모양으로 인식 (모디파이어로 변형된 것은 인식 X)
- Deform: 모디파이어에서 Deform으로 변형된 외형만 인식
- Final: 모든 오브젝트를 다 인식
Rigid Body > Surface Response
active와 passive 오브젝트 각각의 Friction 값을 곱해서 마찰력이 나타남
active와 passive 오브젝트 각각의 Bounciness 값을 곱해서 튕김 정도가 나타남
* 하나라도 0이면 곱해서 0이 되므로 효과가 나타나지 않음!
Rigid Body > Sensitivity
Margin: 충돌 간격 값
active와 passive 각각의 margin 값의 합
넓게 퍼져있는 사탕들을 병 안에 들어가게 하기
실린더를 추가해 깔때기 모양으로 만들어서 병 안으로 들어갈 수 있게끔
* 렌더되면 안되니까 카메라 눈 꺼주기!
Object 속성창 > Viewport Display > Display As를 Wire로 변경
=>> 사탕이 깔때기를 통해 들어가는 걸 자세히 볼 수 있음
여러 오브젝트에 같은 Rigid body 값 적용하기
복사할 오브젝트들 선택 후, 마지막에 복사당할 오브젝트 선택(활성화 오브젝트)
Object 메뉴 > Rigid body > Copy from Active
캐시 메모리로 저장
Scene 속성창 > Rigid Body World > Cache > 시작&끝 프레임 설정하고 Bake
* 이미 Bake를 완료했다면 수정해도 반영되지 않음
> Delete Bake를 하고 수정을 하고 다시 Bake를 해야한다
유리 재질을 표현하기 위해 glass BSDF 노드 연결
* 렌더 엔진이 Cycles인 경우는 바로 적용되지만, EEVEE인 경우는 바로 안 나타남
> Render 속성창의 Raytracing 체크
> Material 속성창에서 Settings의 Surface 안에 있는 Raytraced Transmission 체크
> 그 밑의 Thickness를 Slab으로 변경
> Shader 창에서 Transparent BSDF 노드 추가
> Mix Shader 노드 추가해서 Transparent와 glass 노드 동시에 연결 (Fac 값 조절)
> Fresnel 노드 추가 (유리, 물, 피부 등 현실감 있는 쉐이딩 작업 시 사용): 바라보는 각도에 따라 다른 출력값 배출
Compositing 탭
이미지를 한번 렌더했는데도 이미지 안 뜨는 경우
> Render Layers 노드의 아이콘 클릭 후 Scene 누르면 이미지가 뜸
Ctrl + Shift 누른 채로 Render Layers 노드 클릭: 뷰어 노드 추가 단축키
모델링은 강사님이 제공해주셔서 물리 시뮬레이션만 직접했다!
너무 신기하다 🫢
'Blender' 카테고리의 다른 글
| [Blender] 물리 시뮬레이션 기초 - Soft Body 응용 (0) | 2025.10.11 |
|---|---|
| [Blender] 물리 시뮬레이션 기초 - Soft Body 개념 (0) | 2025.10.11 |
| [Blender] 무빙 포스터 - 다마고치 (0) | 2025.10.08 |
| [Blender] 무빙 포스터 - 풍선 텍스트 (0) | 2025.10.08 |
| [Blender] 무빙 포스터 - 키링 (0) | 2025.10.06 |