Content Creation / Rendering

이제 새로운 Vulkan 샘플로 NVIDIA RTX Mega Geometry 사용 가능

Reading Time: 3 minutes

지난 30년 동안 컴퓨터 그래픽의 기하학적 디테일은 기하급수적으로 증가해 왔습니다. 더 많은 인스턴스를 렌더링하고, 트라이앵글 밀도를 높여 고품질 에셋을 구현하기 위해 NVIDIA는 RTX Mega Geometry를 도입했습니다. RTX Mega Geometry는 AI를 활용해 게임을 레이 트레이싱하고, 방대한 지오메트리로 장면을 렌더링하며, 사실적인 비주얼로 게임 캐릭터를 제작할 수 있는 렌더링 기술 제품군 NVIDIA RTX Kit을 통해 오늘부터 사용 가능합니다.

이번 릴리스에서는 모든 개발자가 새로운 Vulkan 샘플을 활용할 수 있습니다. 이 오픈 소스 샘플은 트라이앵글 클러스터를 활용해 가속 구조를 더욱 빠르게 구축하고, 대량의 애니메이션 지오메트리를 렌더링하며, **스트리밍 세부 수준(LoD)**을 적용한 경로 추적 모델을 구현하는 방법을 보여줍니다. 또한, NVIDIA는 지오메트리를 클러스터 단위로 처리할 수 있도록 지원하는 두 개의 라이브러리도 함께 출시합니다. RTX Mega Geometry에 대한 자세한 내용은 GitHub 설명서를 참고하세요. 개별 Vulkan 샘플에 대한 정보는 각 리포지토리에서 확인할 수 있습니다.

샘플: 애니메이션 클러스터

이 샘플에서는 클러스터를 소개하고 VK_NV_cluster_acceleration_structure 확장 기능을 사용하여 대규모 애니메이션 씬을 레이트레이싱하는 방법을 보여줍니다. NVIDIA RTX Mega Geometry를 사용하면 애니메이션 오브젝트의 가속 구조를 이전 API를 사용하는 것보다 더 빠르게 구축할 수 있습니다. 또한 VK_EXT_mesh_shader를 사용하여 클러스터를 래스터화하는 방법도 보여줍니다.

그림 1. 이 장면의 각 메시는 독립적으로 변형되어 매 프레임마다 모든 삼각형의 위치가 변경됩니다.

자세한 내용은 vk_partitioned_tlas GitHub 리포지토리를 참조하세요.

샘플: 파티션화된 최상위 가속 구조

프레임 간에 씬의 일부만 변경되는 경우가 종종 있습니다. 새로운 VK_NV_partitioned_acceleration_structure 확장 기능을 사용하면 씬의 일부가 변경될 때 앱이 전체가 아닌 최상위 가속 구조(TLAS)의 일부를 다시 구축할 수 있습니다. 파티셔닝된 TLAS 샘플은 10만 개 이상의 물리 오브젝트에 대한 간단한 시뮬레이션을 사용하여 이 확장 기능을 보여줍니다.

그림 2. TLAS의 일부만 변경될 때 일부만 재구축할 수 있도록 하는 VK_NV_partitioned_acceleration_structure

자세한 내용은 vk_partitioned_tlas GitHub 리포지토리를 참조하세요.

샘플: 클러스터를 위한 동적 테셀레이션

이 샘플은 클러스터와 VK_NV_cluster_acceleration_structure를 활용해 동적 테셀레이션과 디스플레이스먼트 기반의 경로 추적을 구현하는 방법을 보여줍니다. 이를 통해 프레임마다 지오메트리를 생성해야 하는 상황에서도 효율적인 렌더링이 가능합니다. 또한, VK_NV_mesh_shader를 사용해 콘텐츠를 렌더링할 수도 있습니다.

그림 3. 동적 테셀레이션에 사용할 수 있는 NVIDIA RTX Mega Geometry

자세한 내용은 vk_tessellated_clusters GitHub 리포지토리를 참조하세요.

샘플: 클러스터의 세부 수준

이 샘플은 레이 트레이싱에 VK_NV_cluster_acceleration_structure를 사용하는 클러스터를 사용한 연속적인 LoD 기법을 보여줍니다. 또한 VK_NV_mesh_shader를 사용하여 콘텐츠를 래스터화할 수도 있습니다. 또한 이 샘플은 지오메트리에 대해 RAM에서 VRAM으로 온디맨드 스트리밍 시스템을 구현합니다.

그림 4: vk_lod_clusters는 클러스터 그룹에서 세부 수준을 구축합니다. 이는 선택한 세부 수준이 메시 전체에 걸쳐 달라지더라도 렌더링이 원활하게 이루어지도록 구조화되어 있습니다.

자세한 내용은 vk_lod_clusters GitHub 리포지토리를 참조하세요.

라이브러리: 클러스터 빌더

nv_cluster_builder는 레이 트레이싱을 위해 트라이앵글 메시를 클러스터링하기 위해 만들어진 작은 일반 공간 클러스터링 C++ 라이브러리입니다. 이 라이브러리는 바운딩 볼륨 계층 구조를 생성하는 데 사용되는 재귀적 노드 분할 기법과 유사한 알고리즘을 구현합니다. 축 정렬 분할로 제한되지만, 출력은 레이 트레이싱에 적합합니다.

그림 5: nv_cluster_builder는 바운딩 박스와 선택적 연결 데이터가 주어지면 트라이앵글, 쿼드 및 더 작은 클러스터를 클러스터링합니다.

자세한 내용은 nv_cluster_builder GitHub 리포지토리를 참조하세요.

라이브러리: 레벨 오브 디테일 클러스터 빌더

nv_lod_cluster_builder는 기존의 개별적인 LoD에 비해 메시 내의 지오메트리 디테일을 세밀하게 제어할 수 있는 연속적인 LoD 메시 라이브러리입니다. 트라이앵글 클러스터는 원본 메시를 데시메이션하여 여러 LoD 레벨에서 원활하게 결합할 수 있도록 신중하게 사전 계산됩니다. 렌더링할 때 이러한 클러스터의 하위 집합을 선택하여 카메라가 씬을 탐색할 때 필요한 디테일을 적응적으로 제공할 수 있습니다.

그림 5: 원활한 디테일 레벨로 클러스터화된 메시를 생성하는 nv_lod_cluster_builder

자세한 내용은 nv_cluster_lod_builder GitHub 리포지토리를 참조하세요.

이 RTX Mega Geometry 샘플은 NVIDIA RTX Kit의 일부입니다. 지금 NVIDIA RTX Kit 웹사이트에서 RTX Kit 기술에 대해 자세히 알아보세요. 레이 트레이싱에 대한 질문, 피드백, 다른 개발자와의 토론은 NVIDIA 개발자 포럼에서 가능합니다.

관련 리소스

Discuss (0)

Tags