단일패스 GPU 레이캐스팅 기반 SAMR 데이터 시각화
초록
본 논문은 구조적 적응형 격자 정밀화(SAMR) 데이터를 GPU에서 단일 패스로 레이캐스팅하여 시각화하는 방법을 제안한다. k‑d 트리를 3D 텍스처로 인코딩하고, 두 가지 데이터 저장 전략을 활용해 CPU와의 교류 없이 전체 레이를 GPU에서 적응적으로 샘플링한다. 이를 통해 기존 방식의 다중 패스 한계와 고급 조명 기법 적용 제약을 극복한다.
상세 분석
SAMR은 고해상도 영역을 선택적으로 정밀화함으로써 물리 시뮬레이션의 계산 비용을 크게 절감한다. 그러나 정밀화된 서브그리드가 서로 겹치고 비정형적인 위치에 존재하기 때문에, 전통적인 볼륨 렌더링 파이프라인에서는 데이터 접근과 메모리 레이아웃이 비효율적이다. 기존 GPU 기반 레이캐스팅 접근법은 k‑d 트리를 이용해 겹치지 않는 블록으로 분할했지만, 각 트리 노드마다 별도의 렌더링 패스를 요구했다. 이는 쉐이더가 동시에 여러 블록에 접근해야 하는 고급 조명(예: 경계면 섀도우, 다중 스칼라 필드 결합) 구현을 방해한다.
본 논문은 이러한 제약을 해소하기 위해 트리 구조 자체를 3D 텍스처에 압축한다. 각 텍스처 셀은 트리 노드의 경계와 자식 포인터를 비트 필드 형태로 저장해, GPU 쉐이더가 레이와 교차하는 노드를 실시간으로 탐색하도록 설계했다. 두 가지 데이터 저장 전략은 (1) “텍스처 매핑 방식”으로, 각 레벨의 격자 데이터를 별도 3D 텍스처에 저장해 샘플링 시 트리 노드가 가리키는 텍스처를 직접 조회한다. (2) “프래그먼트 리스트 방식”으로, 모든 격자 셀을 하나의 큰 1D 텍스처에 연속적으로 배치하고, 트리 노드가 시작 오프셋과 크기를 제공해 샘플링 범위를 계산한다. 첫 번째 방식은 텍스처 바인딩 비용이 낮아 작은 데이터셋에 유리하고, 두 번째 방식은 텍스처 수 제한을 회피해 대규모 데이터에 적합하다.
알고리즘 흐름은 다음과 같다. ① CPU에서 SAMR 데이터를 전처리해 k‑d 트리를 구축하고, 트리 메타데이터와 격자 데이터를 각각 3D 텍스처에 인코딩한다. ② 렌더링 단계에서 프래그먼트 쉐이더는 화면 공간의 각 픽셀에 대해 레이를 생성하고, 트리 텍스처를 순회하며 현재 레이가 통과하는 노드를 찾는다. ③ 찾은 노드에 대응하는 격자 텍스처에서 선형 보간을 수행해 색상 및 불투명도를 계산하고, 누적 합산한다. ④ 모든 노드가 처리될 때까지 반복해 최종 픽셀 색을 출력한다.
핵심적인 기술적 기여는 (a) 트리 구조를 GPU 친화적인 텍스처 포맷으로 압축해 단일 패스에서 완전한 트리 탐색을 가능하게 한 점, (b) 두 가지 저장 전략을 제시해 메모리 제한과 텍스처 바인딩 비용 사이의 트레이드오프를 유연하게 조절한 점, (c) CPU‑GPU 인터랙션을 최소화해 실시간 인터랙티브 렌더링을 달성한 점이다. 실험 결과, 제안 방법은 기존 다중 패스 방식에 비해 평균 2~3배의 프레임 레이트 향상을 보였으며, 복잡한 조명 효과(예: 입체 음영, 경계면 강조)를 적용해도 성능 저하가 미미했다. 또한, 1억 개 이상의 셀을 포함하는 대규모 천문학 시뮬레이션 데이터셋에서도 메모리 사용량을 30% 이하로 줄이며 원활한 시각화를 구현했다.
이러한 성과는 GPU의 텍스처 유닛과 메모리 계층 구조를 최대한 활용한 설계 덕분이며, 향후 더 높은 차원의 적응형 격자(예: 4D 시뮬레이션)나 멀티 GPU 환경에서도 확장 가능성을 시사한다.
댓글 및 학술 토론
Loading comments...
의견 남기기