개발하는 리프터 꽃게맨입니다.

컴퓨트 쉐이더를 이용한 Smoothed Particle Hydrodynamics Fluid 본문

컴퓨터 그래픽스

컴퓨트 쉐이더를 이용한 Smoothed Particle Hydrodynamics Fluid

파워꽃게맨 2025. 2. 25. 00:21

참고문헌

https://cg.informatik.uni-freiburg.de/publications/2014_EG_SPH_STAR.pdf

 

사용 API

DirectX 11

 

입자의 데이터 구조

 

추가적으로 사용한 상수들

 

총 3개의 컴퓨트 쉐이더를 사용하여

파이프라인처럼 density, pressure -> force -> velocity, position 을 계산

 

핵심 구현 알고리즘

구현에 초점을 맞췄기에

근접 이웃을 찾지 않고 단순하게 전체를 루프

 

Compute Density Pressure

 

(4) 번 방정식을 이용하여 Wij를 계산

커널 함수는 논문에서 제시한 cubic spline 함수를 사용

 

앞서 계산한 밀도 값을 이용하여 압력 계산

 

사용한 코드

 

Compute Force

 

근사식을 이용하여 압력의 힘 벡터, 점성의 힘 벡터, 중력 등을 계산하여 합

2차미분 값을 찾는 부분에서 조금 헤맷다..

 

 

사용한 코드

 

Compute Integrate

 

마지막은 앞서 구한 물리량의 시간변화량을 고려하여 연산

더하여 매우 간단한 충돌 기능 구현

 

결과