GPU Driven Rendering
-
[UE5] Nanite (5/5)UE4 & UE5/Rendering 2024. 3. 25. 20:44
[UE5] Nanite (5/5) 최초 작성 : 2024-03-25 마지막 수정 : 2024-03-25 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. DrawBasePass 전체 레이아웃 확인 3.2. FInitializeMaterialsCS 3.3. FClassifyMaterialsCS 3.4. FFinalizeMaterialsCS 3.5. BuildNaniteMaterialPassCommands 3.6. DrawNaniteMaterialPass 3.7. FNaniteIndirectMaterialVS 쉐이더 코드 확인 4. 부록 4.1. MaterialDepth 값에 생성에 대해서 5. 레퍼런스 1. 환경 Unreal Engine 5.3.2 (release branch 072300df18a94f..
-
[UE5] Nanite (4/5)UE4 & UE5/Rendering 2024. 3. 23. 22:16
[UE5] Nanite (4/5) 최초 작성 : 2024-03-23 마지막 수정 : 2024-03-23 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. EmitDepthTargets 3.2. FEmitSceneDepthPS 3.3. FEmitSceneStencilPS 3.4. FEmitMaterialDepthPS 3.5. 현재 프레임의 최종 HZB 생성 4. 레퍼런스 1. 환경 Unreal Engine 5.3.2 (release branch 072300df18a94f18077ca20a14224b5d99fee872) 개인적으로 분석한 내용이라 틀린 점이 있을 수 있습니다. 그런 부분은 알려주시면 감사하겠습니다. 이번 글은 한 번에 많은 길이의 코드를 분석하는 부분이 종종 등장합니다. 그래서 글을 2개..
-
[UE5] Nanite (3/5)UE4 & UE5/Rendering 2024. 3. 22. 23:42
[UE5] Nanite (3/5) 최초 작성 : 2024-03-22 마지막 수정 : 2024-03-22 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. AddPass_Rasterize(MainPass) 3.1.1. FRasterizerPass 준비 3.1.2. AddPass_Binning(MainPass) 전체 레이아웃 3.1.2.1. RasterBinCount 3.1.2.2. RasterBinReserve 3.1.2.3. RasterBinScatter 3.1.3. HW Rasterize 3.1.4. SW Rasterize 3.2. 현재 프레임 기반 HZB 생성 3.3. PostPass 와 MainPass 의 차이점 정리 3.3.1. FInstanceCull_CS 차이점 3.3.2. Instance..
-
[UE5] Nanite (2/5)UE4 & UE5/Rendering 2024. 3. 21. 00:14
[UE5] Nanite (2/5) 최초 작성 : 2024-03-21 마지막 수정 : 2024-03-21 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. TwoPassOcclusionCulling 의 컬링파트 3.2. FRenderer 생성 및 InitArgs 코드 분석 3.3. Main/Post Culling 전체 코드 레이아웃 3.3.1. AddPassInitNodesAndClusterBatchesUAV 3.3.2. AddPass_InstanceHierarchyAndClusterCull 전체 레이아웃 3.3.2.1. FInstanceCull_CS (MainPass) 3.3.2.2. AddPass_NodeAndClusterCull (MainPass) 전체 레이아웃 3.3.2.2.1. LoadCand..
-
[UE5] Nanite (1/5)UE4 & UE5/Rendering 2024. 3. 14. 20:51
[UE5] Nanite (1/5) 최초 작성 : 2024-03-14 마지막 수정 : 2024-03-14 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. Nanite 에서 주요 기술 둘러보기 3.1.1. MeshShader 와 같은 Cluster 기반 렌더링 3.1.2. TwoPassOcclusionCulling 3.1.3. Visibility Buffer Rendering 3.2. Nanite MeshDrawCommandCaching 3.3. Nanite PrimitiveSceneProxy 의 생성 3.4. 새로 생성한 Nanite PrimitiveSceneProxy 를 UpdateAllPrimitiveSceneInfos 으로 FScene 에 등록 3.5. GPU Scene MaterialSlot ..