Nephrite21

언리얼 유체 시뮬레이션 과정 6-1 - RDG와 CPP 프로그래밍 본문

언리얼/Unreal SPH 시뮬레이션

언리얼 유체 시뮬레이션 과정 6-1 - RDG와 CPP 프로그래밍

Nephrite21 2025. 8. 1. 11:35

기존에 Render Target을 이용해서 작업한 방식은 결과가 오염되는 현상?이 있어서 compute shader를 이용한 방식으로 변경했었다. 

Shadeup 플러그인을 통해 compute shader를 제작하고, 해당 셰이더를 호출하는 함수를 블루프린트에서 호출하는 방식이다.

블루프린트 입력 cpp로 이동 셰이더 연산 cpp로 데이터이동 블루프린트로 데이터 이동 나이아가라로 화면에 출력

위와 같이 대규모 데이터를 블루프린트 -> cpp -> gpu -> cpp -> 블루프린트 -> 나이아가라 로 이동하는 과정을 각각의 단계마다 반복을 한다. 

결과적으로 라이젠5 3700x, rtx2070슈퍼 환경에서 10만개의 파티클을 실시간으로 처리하지 못하고 3~4프레임씩 스킵되는 현상이 일어났고, 이를 해결하기 위해 단계를 대폭 줄이기로 하였다.

cpp 클래스 tick 마다 call gpu shader 연산 gpu에서 바로 draw

이를 위해 다음 게시물 부터는 기존 코드 리뷰와 cpp만을 이용한 렌더링을 진행해보겠다.