UE4 & UE5
-
[UE5] Auto Exposure (2/2) - HistogramUE4 & UE5/Rendering 2022. 12. 15. 07:00
[UE5] Auto Exposure (2/2) - Histogram 최초 작성 : 2022-12-15 마지막 수정 : 2022-12-15 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. 전체 분석할 렌더 프레임 확인 3.2. Histogram Atomic 733x603 (CS) 단계 3.3. Histogram Convert 단계 3.4. HistogramEyeAdaptation (CS) 단계 3.5. EnqueueCopy(EyeAdaptation) 단계와 Tonemapping 단계 4. 레퍼런스 1. 환경 Unreal Engine 5.0.3 (ue5-release branch d9d435c9c280b99a6c679b517adedd3f4b02cfd7) UE4.26.2 코드와 거의 유사하므로 UE4에 ..
-
[UE5] Auto Exposure (1/2)UE4 & UE5/Rendering 2022. 11. 29. 01:08
[UE5] Auto Exposure (1/2) 최초 작성 : 2022-11-28 마지막 수정 : 2022-11-28 최재호 Updated 2022-12-15 : Weighted geometric mean 을 사용한다는 내용 추가 목차 1. 환경 2. 목표 3. 내용 3.1. 전체 분석할 렌더 프레임 확인 3.2. ExposureScale 구하는 식 확인 3.3. BasicEyeAdaptationSetup 단계 3.4. BasicEyeAdaptation (CS) 3.5. EnequeueCopy(EyeAdaptation) 단계 3.6. Tonemapping 단계 4. 레퍼런스 1. 환경 Unreal Engine 5.0.3 (ue5-release branch d9d435c9c280b99a6c679b517ade..
-
[UE5] Occlusion CullingUE4 & UE5/Rendering 2022. 10. 8. 23:47
[UE5] Occlusion Culling 최초 작성 : 2022-10-08 마지막 수정 : 2022-10-08 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. 주요 클래스 3.2. BasePass 를 위한 Occlusion Culling 3.2.1. BasePass Occlusion Query 생성과 이전 프레임에서 요청한 Query 기반 Occlusion 처리 3.3. Shadow 와 Relfection 등등을 위한 Occlusion Culling 3.3.1. Shadow, Reflection 등등을 위한 Occlusion Query 생성 3.3.2. 준비한 BasePass와 Shadow, Reflection 등등의 Occlusion Query 실행 3.3.3. 실행한 Occlusion Quer..
-
[UE5] Dynamic Shadow (2/2) - Spot/Point/Rect lightUE4 & UE5/Rendering 2022. 5. 7. 02:46
[UE5] Dynamic Shadow (1/2) 최초 작성 : 2022-05-07 마지막 수정 : 2022-05-07 최재호 Updated 2020-12-17 : CubeMap 의 6면을 동시에 그리는 방식이 인스턴싱을 통해 처리한다는 설명을 추가했으며, 기존에 SV_RenderTargetArrayIndex 부분이 지오메트리에 쉐이더에서 하는 작업을 처리해준다는 설명은 잘못된 내용이라 제거 목차 1. 환경 2. 목표 3. 내용 3.1. Light가 렌더스레드에 미러링 되는 과정 3.2. Light가 렌더스레드에 추가되는 과정 3.3. Light의 Transform이 업데이트되어 렌더스레드에 반영되는 과정 3.4. Light가 렌더스레드에서 제거되는 과정 3.5. Spot light 의 쉐도우맵 렌더링 준..
-
[UE5] Dynamic Shadow (1/2) - Directional light(CSM)UE4 & UE5/Rendering 2022. 5. 2. 22:43
3.5.2. 수집된 Octree node 기준으로 쉐도우맵에서 렌더링할 프리미티브 FProjectedShadowInfo에 수집 Eng 3.5.2. 수집된 Octree node 기준으로 쉐도우맵에서 렌더링할 프리미티브 FProjectedShadowInfo에 수집 {"mean":["","오픈","","예제","","VLIVE 자막"],"word":" 수집된 Octree node 기준으로 쉐도우맵에서 렌더링할 프리미티브 FProjectedShadowInfo에 수집","basicWord":" 수집된 Octree node 기준으로 쉐도우맵에서 렌더링할 프리미티브 FProjectedShadowInfo에 수집","soundWord":" 수집된 Octree node 기준으로 쉐도우맵에서 렌더링할 프리미티브 FProje..
-
[UE5] GPUScene 과 Auto-Instancing (2/2)UE4 & UE5/Rendering 2022. 2. 17. 08:00
[UE5] GPUScene 과 Auto-Instancing 최초 작성 : 2022-02-17 마지막 수정 : 2022-02-17 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. GPUScene을 사용하는 경우 PrimitiveId를 얻는 과정 3.2. GPUScene의 InstanceSceneData 준비 3.2.1. GPUScene의 InstanceSceneData 업로드 예약 3.2.2. GPUScene의 InstanceSceneDataBuffer에 InstanceSceneData를 업로드 3.3. InstanceIdOffset 의 준비 3.3.1. Auto-Instancing을 위해 MeshDrawCommand 병합 3.4. InstanceIdOffsetBuffer와 InstanceIdsBuf..
-
[UE5] GPUScene 과 Auto-Instancing (1/2)UE4 & UE5/Rendering 2022. 2. 9. 21:21
[UE5] GPUScene 과 Auto-Instancing 최초 작성 : 2022-02-09 마지막 수정 : 2022-02-09 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. Primitive 전용 데이터인 PrimitiveSceneData의 구성과 쉐이더에 전달 3.1.1. PrimitiveData 정의 3.1.2. 실제 쉐이더에서 PrimitiveData 사용 3.1.3. 실제 쉐이더에서 PrimitiveData 사용을 위해 캐싱하는 과정 3.1.4. C++ PrimitiveData에서 UniformBuffer의 선언과 데이터 바인딩 3.2. 한 개의 버퍼에 PrimitiveSceneData를 모두 모아 사용하는 GPUScene 3.2.1. 실제 쉐이더에서 GPUScene에서 Primitive..
-
[UE5] Shader ResourceBinding [3/3] - UniformBuffer와 리소스 바인딩UE4 & UE5/Rendering 2021. 9. 13. 07:00
[UE5] Shader ResourceBinding [3/3] - UniformBuffer와 리소스 바인딩 최초 작성 : 2021-09-13 마지막 수정 : 2021-09-13 최재호 목차 1. 환경 2. 목표 3. 내용 3.1. UE5의 UniformBuffer 의 정의 3.2. UniformBuffer 의 예제 3.2.1. UniformBuffer 매크로의 확장 3.3. 컴파일된 쉐이더의 리플렉션 데이터를 FShader에 저장 3.4. 실제 리소스들의 쉐이더 바인딩 3.5. 렌더링을 위해서 바인딩한 리소스들을 Graphics API 전달 3.6. 결론 4. 레퍼런스 1. 환경 Unreal Engine 5 (ue5-main branch acc8c5f399ca01f6f549108be1fb75381fecb..