sph 3

[유체 시뮬레이션] 3d연기 Down=> Up Sampling으로 성능향상 기법

3d연기를 계산할 때, 여러 쉐이더를 거쳐서 계산이 되는데, Projection부분을 Down sampling하고 그 후 upSampling해서 해상도를 조절하여 속도를 향상시키고 결과는 Up해상도에서 진행된 것처럼 보이게 할 수 있습니다. 순서는 Volticity =>DownSampling=> sourcing => Projection => UpSampling => Advection 순서입니다. DownSampling상태에서 Sourcing과 Projection단계를 진행하고 그 차이만큼 UpSampling에 다시 갱신해주는 방식입니다. 이 그림을 보고 강의 예제 코드를 다시 살펴보면 이해하기 수월할 것입니다. 강의 출처 : 홍정모 그래픽스 새싹코스 Part4 (3d연기 시뮬레이션 2/2)https://..

그래픽스 기술 2025.03.06

[Volume Rendering] 구름 볼륨 렌더링 + SDF

구름 볼륨 렌더링을 할 때, 3가지 방식을 진행합니다. CloudDensity-> CoudLighting-> Scattering이죠. 우리가 흔히 무엇을 그리는 과정은 2d texture에다가 했습니다. 하지만 3d texture에다 노이즈를 생성하여 형성하는 방법이죠. 1) CloudDensitydensity의 방법을 살펴보겠습니다. density란 밀도라는 뜻입니다. 노이즈를 형성하여 3d텍스춰에 노이즈를 형성합니다. perlinWorley방식을 사용하여 노이즈를 생성하였습니다. (참고링크 https://www.shadertoy.com/view/3dVXDc) 구름의 움직임을 표현하기 위해서 [numthreads(16, 16, 4)]void main(uint3 dtID : SV_DispatchThrea..

그래픽스 기술 2025.03.01

[Gradient] 스칼라 값을 벡터로 편미분하기

SPH논문을 구현하는 중에 그레디언트 개념 정립이 필요할 것 같아서 정리를 해보려고 합니다. W=f(q)입니다. q는 위치 pi - 위치 pj로  x,y,z로 이루어져 있습니다. 우리가 원하는 것은 ∇W입니다. 즉 x,y,z로 편미분 한 값이죠. W는 q로 이루어져있어서, x,y,z로 바로 편미분 할 수 없으니 q와 x,y,z를 통해 계산합니다. 수식 정리 하기 전에 Gradient개념을 설명해드리려고 합니다. 스칼라 값을 벡터로 미분하기 위해서는 정미분으론 안되고 편미분을 해야합니다. 예를들어 V= x^2 * y * z^3이 있다면 V를 x,y,z로 각각 편미분 하면∇V = (2x*y*z^3, x^2 * z^3 , x^2 * y * 3 * z^2)입니다. 표현은 ∇V=(∂V/​ ∂x, ∂V/​ ∂y ​..