콘텐츠로 바로가기

Particles & Soft Body Dynamics

불, 연기, 눈과 같이 정형화되지 않은 수만 개의 물리 입자와, 옷이나 젤리와 같이 물리적으로 말랑하게 변형되는 연성체의 수리적 시뮬레이션을 다룹니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

파티클 및 연성체 역학(Particles & Soft Body Dynamics, PSD)은 강체(Rigid Body)로는 표현할 수 없는 물리적 가소성과 수평적 복잡성을 수치적으로 모사하여 공간의 풍성함을 더하는 '비정형 물리 시뮬레이션'입니다.

학습자는 수만 개의 수리적 점(PointPoint)들이 각각의 수명과 가속도 물리량을 갖는 파티클 시스템과, 서로 연결된 점들이 물리적 인장력으로 버티는 **질량-스프링 모델(Mass-Spring Model)**을 배웁니다. 특히, 천(Cloth)이나 젤리처럼 충격에 의해 물리적 형태가 수시로 변하는 연성체의 수리적 보정 수순을 익힙니다. 이를 통해 정적인 배경을 넘어 폭발, 기상 현상, 유연한 의상 등을 하드웨어 병렬 수치로 생동감 있게 구현하는 하이엔드 시뮬레이션 거버넌스 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • Particle Lifecycle Dynamics: 탄생, 수명 감쇄, 소멸로 이어지는 수리적 입자 관리
  • Force Field Calculations: 중력, 바람, 소용돌이 등 공간 물리력이 입자 수치에 미치는 영향
  • Mass-Spring Simulation: 점과 선의 수리적 연결을 통한 물리적 장력 및 탄성 모사
  • Vertex Deformation Logic: 애니메이션 수치에 따라 물리 개체의 정점을 실시간으로 뒤트는 기술
  • Collision for Soft Bodies: 연성체가 자기 자신 혹은 지형과 물리 충돌할 때의 수리적 해소 기제

Out-of-Scope

  • 직물 공학에서의 실제 섬유 재질 분자 구조 연구 (재료 과학 영역)
  • 기상청의 정밀 수치 모델링을 통한 실제 태풍 경로 예측 (기상학 영역)

Boundaries

  • PSD vs. Rigid Body: 강체 역학(12-06-04)이 '형태 보존 물리'에 집중한다면, PSD는 '물리적 충격에 따른 외형 수치의 가변성과 불규칙한 집합적 거동'에 집중하여 구분합니다.

3. Counterexample

  • 단순히 "화면에 점 뿌리기"라 설명하는 것은 PSD 학습이 아닙니다. 왜 입자의 개수가 하드웨어 처리 물리 한계를 넘을 때 프레임 수치가 수리적으로 급락하는지 증명할 수 있어야 하며, 스프링 계수(K) 수치를 과도하게 설정했을 때 시뮬레이션이 물리적으로 '파르르' 떨리며 발산(ExplodeExplode)하는 현상을 수리적으로 방어하지 못한다면 PSD 공학의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Vector Mathematics (Basic): 04-XX-XX의 속도, 가속도, 거리에 대한 수리적 미분 이해가 필수입니다.
  • Real-time Physics Engines (Recommended): 12-06-04의 수치 적분(Euler, Verlet) 이해가 권합됩니다.

5. Learning Map

  1. Point Dynamics: 하나의 물리적 점이 힘을 받아 어떻게 수리적으로 이동하는지 이해합니다.
  2. Collective Behavior: 각자의 물리 법칙을 가진 수만 개의 점을 병렬 수리 연산으로 관리합니다.
  3. Elastic Connection: 점들을 가상의 물리적 '실'로 연결하여 천이나 연성체를 수치적으로 구성합니다.
  4. Hardware VFX: GPU의 수천 개 코어를 물리적으로 활용하여 하이엔드 비주얼 이펙트를 완성합니다.

6. Learning Topics

Basic

Core: 파티클 시스템의 물리적 생애 (Particle Lifecycle)

  • Why to Learn: 불꽃이나 비처럼 수많은 독립 개체를 효율적으로 관리하는 수리적 표준을 익히기 위해서입니다.
  • What to Learn:
    • Emitters & Spawn Logic: 입자가 물리적으로 생성되는 위치 및 방향 수치 정의
    • Velocity over Life: 시간(tt)에 따라 물리 속도가 수리적으로 감쇄하는 기제
    • Attribute Interpolation: 수명이 다함에 따라 색상이나 물리 크기가 변하는 수순
  • How to Learn:
    • Random 함수를 사용하여 사방으로 튀어나가는 분수 시뮬레이터를 수리 구현하는 실습
    • Color Gradient Mapping 수치를 적용하여, 연기가 물리적으로 흐려지며 사라지는 수리적 효과 분석
  • Implement: 매 초마다 100개의 입자를 물리 생성하고 수명 수치를 감소시키는 기초 Particle_Engine_Core

Core: 공간 물리력과 필드 효과 (Field Dynamics)

  • Why to Learn: 입자들이 정해진 궤적이 아닌, 공간의 물리적 흐름에 따라 수리적으로 반응하게 만들기 위함입니다.
  • What to Learn:
    • Gravity & Air Resistance: 물리적 낙하 수치와 공기 마찰 수리 모델
    • Vector Fields: 공간의 각 지점마다 정의된 수리적 방향 에너지를 입자에 투영
    • Noise Physics: 펄린 노이즈(PerlinPerlin NoiseNoise) 등을 이용한 물리적 난류 수치 제어
  • How to Learn:
    • 바람 수치를 입력받아 입자들이 수리적으로 휘어지는 궤적을 그리게 만드는 실습
    • Vortex Field (용돌이 물리)를 구축하고, 입자들이 수평적으로 회전하며 빨려 들어가는 수리적 현상 훈련
  • Implement: 입자의 좌표 수치를 입력받아 주변 물리 필드로부터 가속도 수치를 합산하는 Field_Force_Aggregator

Practical

Core: 질량-스프링과 천 시뮬레이션 (Elastic Mechanics)

  • Why to Learn: 옷이나 깃발이 물리적으로 펄럭이는 수리적 원리를 이해하고 구현하기 위해서입니다.
  • What to Learn:
    • Spring-Damper System: 점 간의 수리적 거리 유지를 위한 물리 복원력 연산
    • Constraint Projection: 늘어난 수리 길이를 물리적으로 강제 복구하는 기법
    • Self-collision Dynamics: 천이 물리적으로 겹칠 때 서로를 밀어내는 수치 거버넌스
  • How to Learn:
    • 10x10 격자로 연결된 물리 점들을 만들고, 한쪽 끝을 고정하여 처럼 아래로 물리 처지는 현상 실습
    • Shear & Bending Springs 수치를 추가하여 천이 물리적으로 종이처럼 구겨지거나 대각선으로 늘어나는 수리 오차 보정
  • Implement: 수리적 장력과 댐핑 수치를 계산하여 점들의 새로운 물리 좌표를 반환하는 Cloth_Solver_Lite

Advanced

Core: 연성체 충돌과 GPU 가속 (Advanced Governance)

  • Why to Learn: 말랑한 물체가 복잡한 물리 지형과 상호작용하는 하이엔드 리얼리티를 하드웨어 성능 한계 내에서 구현하기 위함입니다.
  • What to Learn:
    • Position Based Dynamics (PBD): 속도가 아닌 좌표 수치를 직접 교정하여 물리적 견고함을 상향
    • Boundary Volume for Particles: 입자 뭉치를 하나의 물리적 통으로 묶는 수리 최적화
    • Compute Shader VFX: 수백만 개의 입자를 GPU 하드웨어에서 병렬 수리 연산
  • How to Learn:
    • N-body Simulation 수치를 컴퓨트 셰이더로 물리 병렬화하고 수백만 개 입자의 실시간 거동 대조 실습
    • Elastic Body Audit을 수행하여, 충돌 시 물리적 부피 수치가 수리적으로 보존되는지 진단하는 프로젝트
  • Implement: GPU 메모리에 상주하는 입자 데이터 수치를 직접 갱신하는 하이엔드 GPU_Particle_Controller

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Particle 물리적 부피는 없으나 질량과 위치 수치를 가지는 시뮬레이션의 최소 수리 단위입니다. 기본 기초 요소 Atom / Point Vertex 작은 이미지 조각임 Industry core
Soft Body 물리적 충격에 따라 외형 수치가 가역적 혹은 비가역적으로 변하는 연성 물리 모델입니다. 기본 객체 유형 Rigid Body / Deformable Cloth 젤리 같은 물체임 Industry core
Mass-Spring 점들(Mass)을 가상의 스프링으로 연결하여 물리적 탄성을 수리적으로 모사하는 방식입니다. 추천 시뮬레이션 기법 Elasticity / Damper PBD 선으로 연결됨 P1:CS2023 core
VFX Visual Effects의 약자로, 파티클과 셰이더 수치를 결합하여 물리적 시각 효과를 만드는 기술입니다. 추천 결과물 Effect / Shader Animation 마술 같은 연출임 Industry core

8. References

Primary

Secondary

  • [Point-Based Graphics] various - Research on particle dynamics.
  • [Interactive Character Animation] Ken Perlin - Noise and movement physics.

Industry

  • [Unity: Visual Effect Graph (VFX Graph)] — High-end GPU particle standards.
  • [Unreal Engine: Niagara System Physics] — Industrial particle governance.

9. Final Checklist

Primary

  • 수만 개의 '파티클' 수치를 병렬적 물리 루프 내에서 하수 없이 관리할 수 있는가? (P1)
  • '질량-스프링' 모델에서 스프링의 물리적 '강성(StiffnessStiffness)' 수치가 수리적 안정성에 미치는 영향을 논증할 수 있는 가? (P1)

Secondary

  • '천 시뮬레이션'에서 물리적 '침투(PenetrationPenetration)'를 방지하기 위한 수리적 제약 수순을 설명 가능한가?
  • Velocity Smoothing 기술을 통해 물리 입자 무리의 시각적 '노이즈'를 수리적으로 억제할 수 있는 가?

Industry

  • 실무 VFX 검수 시, 입자 개수 수치에 따른 VRAM Traffic 물리 병목을 수리적으로 최적화할 수 있는 가? (SFIA)
  • Position Based Dynamics 수순을 활용하여, 낮은 수리 반복 횟수로도 물리적으로 견고한 연성 리액션을 제안할 수 있는 가?