HIPRT-Path-Tracer
HIPRT path tracer cover
HIPRT와 Orochi 라이브러리를 사용하여 작성된 물리 기반 단방향(역방향) 몬테카를로 패스 트레이서입니다.
HIPRT는 AMD의 OptiX에 상응하는 라이브러리입니다. RDNA2+ AMD GPU의 레이 트레이싱 가속기를 사용할 수 있게 하며, AMD 전용이 아니기 때문에 NVIDIA 장치에서도 실행할 수 있습니다 (다만 RT 코어의 이점을 취하지는 못합니다).
Orochi 라이브러리는 런타임에 HIP 및 CUDA 라이브러리를 로드할 수 있도록 하여, 애플리케이션을 다른 공급업체의 GPU에서 사용하기 위해 재컴파일할 필요가 없습니다 (HIP 단독으로는 NVIDIA 및 AMD 하드웨어와 호환되지만, 재컴파일이 필요합니다).
시스템 요구 사항
- AMD RDNA1 GPU 또는 그 이상 (RX 5000 이상) 또는 NVIDIA Maxwell GPU 또는 그 이상 (GTX 700 & GTX 900 시리즈 이상)
- Windows용 Visual Studio 2022 (테스트된 버전만 해당하며, 이전 버전도 작동할 수 있습니다)
- CMake
- NVIDIA 컴파일을 위한 CUDA
기능:
계층적 물리 기반 BSDF (Layered Principled BSDF):
- 코트 마이크로패싯 GGX 레이어 + 비등방성(Anisotropy), 비등방성 회전(Anisotropy Rotation), 중간 흡수 및 두께
- SGGX 볼륨 광택 로브 LTC 적합 [Zeltner, Burley, Chiang, 2022]
- 정반사 마이크로패싯 GGX 레이어
- 확산 BRDF 로브. 지원 항목:
- 램버트(Lambertian)
- 오렌-나야르(Oren-Nayar)
- 금속성 마이크로패싯 GGX 레이어 + 비등방성 및 비등방성 회전 + 이중 거칠기 [Kulla & Conty, 2017]
- MRRM 후방 반사 도체 레이어 [Portsmouth et al., 2026]
- 정반사 투과 BTDF + 베어 램버트 볼륨 흡수 [Burley, 2015]
- 확산 램버트ian BTDF
- 코시 방정식(Cauchy's equation)을 사용한 스펙트럼 분산
- 마이크로패싯 BRDF 다중 산란:
- 불변성 원리(Invariance Principle)를 사용한 다중 반사 Smith 마이크로패싯 BRDF [Cui et al., 2023]
- 도체(이중 금속 레이어), 유전체(투과 레이어), 광택-확산(정반사 + 확산 레이어) 및 코팅된(코트 레이어) 재료에 대한 에너지 보상 [Turquin, 2019]
- 유전체 및 도체 위의 박막 간섭 [Belcour, Barla, 2017]
- 얇은 벽 모델
LayeredBSDF
LayeredBSDF
LayeredBSDF
LayeredBSDF
샘플링 (Sampling)
-
광원 샘플링 기법 (Light sampling techniques):
- 직접 조명 추정(direct lighting estimation)을 위한 균일 광원 샘플링 (Uniform light sampling)
- 전력 비례 광원 샘플링 (Power-proportional light sampling)
- 광원 계층 구조 (Light hierarchies):
- 적응형 트리 분할을 이용한 다중 광원 중요도 샘플링 (Importance Sampling of Many Lights with Adaptive Tree Splitting) Conty et al., 2018
- SAH 및 SAOH 트리 구축 비용 함수 (SAH and SAOH tree build cost functions)
- 적응형 트리 분할, 셰이딩 지점당 다중 광원 샘플 셰이딩 (Adaptive tree splitting, shading multiple light samples per shading point)
- 정확한 구면 가우시안 조명(Accurate Spherical Gaussian Lighting)을 이용한 계층적 광원 샘플링 (Hierarchical Light Sampling with Accurate Spherical Gaussian Lighting) Tokuyoshi et al., 2024
- -스타일 방향 원뿔(style orientation cone)을 이용한 후면 광원 재투영 개선 (Improved rejection of backfacing lights with -style orientation cone)
- 다중 모드 입사 복사 에너지에 대한 중요도 추정 개선을 위한 트리 노드당 다중 구면 가우시안 공간 로브 지원 (Support for multiple spherical gaussian spatial lobes per tree node to improve importance estimates on multi-modal incoming radiance)
- ReGIR (구현된 세부 사항은 아래 참조)
- 다중 광원 렌더링을 위한 학습 기반 클러스터링 (Learning to Cluster for Many Lights Rendering) Wang et al., 2021, Zheng et al., 2026의 조명 인식 KD-트리 구현과 구면 가우시안 광원 트리를 결합 (piggybacking on an implementation of the illumination-aware KD-tree of [Zheng et al., 2026] and the spherical gaussian light tree [Tokuyoshi et al., 2024])
- 다중 광원의 신경 중요도 샘플링 (Neural Importance Sampling of Many Lights) Figuereido et al., 2025
-
영역 광원 샘플링 전략 (Area light sampling strategies):
- 균일 영역 샘플링 (Uniform area sampling)
- 고각 샘플링 (Solid angle sampling) Peters, 2021
- 투영된 고각 (Projected solid angle) Peters, 2021
-
BSDF * (투영된) 고체각도 곱 샘플링을 LTCs reak[Heitz et al., 2016] 및 [[]Peters, 2021]](https://momentsingraphics.de/Siggraph2021.html)로 수행
-
NEE 추정기 (기본 기술 기반):
Chao, 1982]](https://www.jstor.org/stable/2336002)
- RISLTC [Shash et al., 2023]](https://ishaanshah.xyz/risltc/)
- ReSTIR DI [Bitterli et al., 2020]](https://research.nvidia.com/labs/rtr/publication/bitterli2020spatiotemporal/) (commit "Remove ReSTIR DI support"에서 제거됨, tag remove-restir-di-support)
-
기타 광원 샘플링 기능
-
BSDF 샘플링:
-
경로 샘플링:
-
ReSTIR 샘플러:
2026년]](https://research.nvidia.com/labs/rtr/publication/lin2026restirptenhanced/)
- ReSTIR Path Guiding [Zeng 등, 2025]]](https://research.nvidia.com/labs/rtr/publication/zeng2025restirpg/)
- 실험을 위한 다양한 MIS 가중치 방식:
- 1/M
- 1/Z
- MIS 유사 방식,
- 일반화된 균형 휴리스틱 [Lin 등, 2022]]](https://intro-to-restir.cwyman.org/presentations/2023ReSTIR_Course_Notes.pdf)
- 쌍별 MIS [Bitterli, 2022]]](https://digitalcommons.dartmouth.edu/dissertations/77/) 및 방어적 공식화 [Lin 등, 2022]]](https://research.nvidia.com/publication/2022-07_generalized-resampled-importance-sampling-foundations-restir))
- 쌍별 대칭 및 비대칭 비율 MIS 가중치 [Pan 등, 2024]]](https://diglib.eg.org/items/df9d727e-13a1-4d48-9275-57da7fb87f7f)
- 확률적 쌍별 MIS [Hedstrom 등, 2026]]](https://research.nvidia.com/labs/rtr/publication/hedstrom2026stochastic/)
- 개선된 오프라인 렌더링 효율을 위한 적응형 방향성 공간 재사용
- 호환성 기반 이웃 선택 [Junkins 등, 2026]]](https://research.nvidia.com/labs/rtr/publication/junkins2026compatibility/)
- 최적 가시성 샘플링 [Pan 등, 2024]]](https://diglib.eg.org/items/df9d727e-13a1-4d48-9275-57da7fb87f7f)
기타 렌더링 기능
UI
- 대화형 ImGui 인터페이스
- 무거운 경로 추적 커널을 사용하더라도 부드러운 UI 상호작용을 보장하는 비동기 인터페이스
- 대화형 1인칭 카메라
- 다양한 프레임버퍼 시각화 (적응형 샘플링 히트맵, 수렴된 픽셀, 디노이저 노멀/알베도 등 시각화)
기타 기능
- ASSIMP 라이브러리를 사용하여 다양한 장면 파일 형식 지원(many 참고).
- 더 빠른 애플리케이션 시작 시간을 위해 멀티스레드 장면 파싱/텍스처 로딩/셰이더 컴파일링/BVH 구축/환경 맵 처리 등 지원
- 백그라운드 비동기 경로 추적 커널 사전 컴파일
- 불필요한 커널 재컴파일을 방지하는 셰이더 캐시
빌드 (Building)
전제 조건 (Prerequisites)
Windows
- AMD GPU
-
HIP SDK 설치 (작성 시점 기준, 렌더러는 HIP SDK 7.1.1 이상에서만 작동)
-
"컴파일하기" 단계를 따르세요.
- NVIDIA GPU
NVIDIA 하드웨어에서 프로젝트를 빌드하려면 최소 버전의 NVIDIA CUDA SDK v12.2 설치가 필요합니다. 여기에서 다운로드 및 설치할 수 있습니다.
환경 변수 CUDA_PATH를 정의해야 합니다. 이는 CUDA Toolkit을 설치한 후 자동으로 설정되는 것이 일반적이지만, 만약 그렇지 않다면 CUDA_PATH/include/cuda.h가 유효한 파일 경로가 되도록 직접 정의할 수 있습니다.
Linux
- AMD GPUs
- OpenGL, GLFW 및 glew 의존성을 설치합니다: