Graphics
-
PathTracing (1/2)Graphics/Graphics Study 자료 2024. 3. 1. 23:30
PathTracing(1/2)최초 작성 : 2024-03-01 마지막 수정 : 2024-03-01 최재호 목차1. 목표 2. 내용 3. 구현 결과 3.1. Cornell box orig scene 3.2. Cornell box sphere scene 3.3. Hyperion sphere light scene 3.4. Hyperion rect lights scene 4. 실제 구현 코드 5. 레퍼런스 1. 목표다양한 BSDF 를 평가해보고 변형해볼 수 있는 테스트 베드를 위한 PathTracer 를 제작합니다. 이 글은 총 2개로 나뉘며, 첫 번째는 PathTracing 의 구현 기반을 마련하는 것을 목표로 합니다. 두 번째 글은 다양한 BSDF 를 도입하여 여러 가지 재질을 표현하는 것을 목표로 할 예정..
-
AsyncCompute - DX12, VulkanGraphics/기본 2024. 2. 13. 20:31
AsyncCompute - DX12, Vulkan 최초 작성 : 2024-02-13 마지막 수정 : 2024-02-13 최재호 목차1. 목표 2. 내용 2.1. 사전에 알아야 할 것들 2.1.1. CommandQueue 2.1.2. 동일한 CommandQueue 내 렌더커맨드의 실행 순서 2.1.3. Resource Barrier 2.2. CommandQueue 간의 동기화 2.3. CommandQueue 간의 동기화 구현 2.3.1. 현재 CommandQueue 에서 실행 한 렌더커맨드가 모두 실행될 때까지 기다릴 수 있도록 동기화 정보를 제공 2.3.2. 특정 CommandQueue 가 앞서 다른 CommandQueue 에서 받은 동기화 정보를 사용 2.4. 실제 사용 예제 3. 테스트 케이스 3.1..
-
RayTraced Ambient Occlusion(RTAO)Graphics/Graphics Study 자료 2024. 1. 31. 23:53
RayTraced Ambient Occlusion(RTAO) 최초 작성 : 2024-01-31 마지막 수정 : 2024-01-31 최재호 목차 1. 목표 2. 내용 2.1. DispatchRay 코드 작성 2.2. Desnosing 2.2.1. RayPerPixel 개수를 늘린 경우 2.2.2. Temporal 2.2.2.1. RayAccumulation 2.2.2.2. Reprojection 2.2.3. Spatial 2.2.3.1. Jittering 2.2.3.2. Filtering 2.2.3.2.1. GaussianBlur(Separable) 2.2.3.2.2. BilateralFilter 3. 구현 결과 4. 실제 구현 코드 5. 레퍼런스 1. 목표 RayTracing 을 사용한 Ambient O..
-
Bindless Resource - DX12, VulkanGraphics/기본 2024. 1. 17. 23:55
Bindless Resource - DX12, Vulkan 최초 작성 : 2024-01-17 마지막 수정 : 2024-01-17 최재호 목차 1. 목표 2. 내용 2.1. Bindless Resource 에 대해서 2.2. API 별 Bindless Resource 2.2.1. Vulkan Bindless Resource 2.2.2. DX12 Bindless Resource 2.2.3. DX12 Dynamic Resources 3. 레퍼런스 1. 목표 레이트레이싱을 시작하면서 Bindless Resource 필요성을 느껴서 관련해서 알아본 것을 정리합니다. Bindless 리소스가 무엇인지 알아보고 어떤 장점이 있는지 알아봅시다. DX12, Vulkan 의 Bindless Resource 의 사용법과 특..
-
jEngine Library 빌드 관련Graphics/Renderer Lab 2023. 12. 29. 22:55
Library 빌드 관련해서 겪은 이슈들을 정리합니다. 추가 사항이 있는 경우 계속 이 문서를 업데이트 할 예정입니다. 최초 작성 : 2023-12-29 마지막 수정 : 2024-03-23 최재호 목차 1. ShaderConductor [Deprecated] 2. DirectXTex 3. xxHash, CityHash 4. DirectX12 Agility SDK 1. ShaderConductor [Deprecated] Updated 2024-01-11 : Shader Language 를 HLSL, DXC 로 DX12 와 Vulkan 쉐이더 컴파일에 문제 없습니다. 추후 Metal 이나 다른 API로 포팅이 필요한 경우 다시 사용할 예정입니다. ShaderConductor 는 hlsl 을 사용하여 Vulk..
-
jEngine(Vulkan, DX12)Graphics/Renderer Lab 2023. 11. 11. 01:05
Renderer Lab 이라는 카테고리를 통해서 그래픽스 피쳐 개발을 위해 만들었던 소프트웨어들에 대한 기록을 남길 것입니다. 해당 기록들을 통해서 얻고자하는 것은 다음과 같습니다. - 만들었던 소프트웨어에 대해 잊은 경우 빠르게 리마인드 하여 그래픽스 피쳐 개발에 활용함 - 소프트웨어 제작시 발생하는 고민들이나 코너 케이스를 히스토리로 남겨 토론하고 추적함 최초 작성 : 2023-11-11 마지막 수정 : 2024-02-07 최재호 Last Updated(2024-02-07) : 2.2.10. jResourceBarrierBatcher 추가 목차 1. 개요 2. 렌더러 사용 2.1. jEngine 소개 2.2. 코드 구성 2.2.1. Shader Resource Binding 2.2.1.1. jShad..
-
DX12 Shader Visible Descriptor HeapGraphics/기본 2023. 8. 5. 00:37
DX12 Shader Visible Descriptor Heap 최초 작성 : 2023-08-05 마지막 수정 : 2023-08-05 최재호 목표 Shader visible descriptor heap(Online descriptor heap), CPU only visible descriptor heap(Offline descriptor heap) 에 대해서 알아보고 UE5.2 에서의 구현도 확인해 봅시다. 내용 DX12 리소스 중 버퍼 또는 텍스처와 같이 Shader 에 전달하여 사용할 수 있는 리소스들이 있습니다. 이런 리소스를 Shader 에서 사용할 수 있게 하려면 Descriptor 를 만들어야 합니다. Descriptor 의 종류는 CBV, SRV, UAV, RTV, DSV, Sampler 등..
-
[번역] SV_BarycentricsGraphics/번역 2023. 7. 22. 13:12
개인 공부용으로 번역한 거라 잘못 번역된 내용이 있을 수 있습니다. 또한 원작자의 동의 없이 올려서 언제든 글이 내려갈 수 있습니다. 출처 : https://github.com/microsoft/DirectXShaderCompiler/wiki/SV_Barycentrics Barycentric coordinates(무게중심좌표계) 는 삼각형이나 직선(line) 같은 geometric primitive 범위 내에서 위치를 정의하는 일반적인 방법입니다. 이 문서는 Primitive에 포함된 현재 픽셀의 Barycentric coordinates 를 읽기 위한 픽셀 쉐이더의 매커니즘을 설명합니다. 그런 뒤 high-order interpolation schemes, creative attribute unpack..