vulkan
-
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..
-
Variable Shading Rate(VRS)Graphics/기본 2022. 9. 27. 00:08
목차 1. 개요 2. 내용 2.1. 디바이스 생성 2.2. VRS 이미지 생성 2.3. VRS 사용을 위한 Graphics Pipeline State 생성 2.4. VRS 디버깅을 위한 코드 추가 2.5. 구현결과 2.6. 구현 코드 3. 레퍼런스 1. 개요 Variable Shading Rate(VRS) 에 대해서 알아보고 구현해봅시다. VRS 는 화면의 영역별로 쉐이딩 비율을 조정하는 기능입니다. 그림1을 보면, 1x1 부터 4x4 까지 다양한 쉐이딩 비율이 있습니다. 1x1 이 VRS 를 사용하지 않은 기본 비율입니다. 그리고 2x2 는 4픽셀당 1번 쉐이딩을 합니다. 이 기능을 활용하여 사람의 시야에서 인지적으로 크게 영향을 미치지 않는 부분는 더 적은 수의 픽셀을 쉐이딩 하여 퍼포먼스를 얻을 수..
-
[번역] Graphics API abstraction – Wicked Engine NetGraphics/번역 2021. 5. 15. 16:46
개인 공부용으로 번역한 거라 잘못 번역된 내용이 있을 수 있습니다. 또한 원작자의 동의 없이 올려서 언제든 글이 내려갈 수 있습니다. 출처 : https://wickedengine.net/2021/05/06/graphics-api-abstraction/ Wicked Engine은 여러 그래픽스 API(이 글을 쓰는 현재는 DX11, DX12 그리고 Vulkan)으로 today’s advanced rendering effects 를 처리할 수 있습니다. 이것이 가능하게 하는 핵심은 좋은 그래픽스 추상화를 사용하는 것입니다, 그래서 이런 복잡한 알고리즘은 한 번만 작성되면 됩니다. 모든 게임엔진 코드에 개발되는 모든 공용 인터페이스는 어떤 API가 실행될지 모른 상태로, 렌더링 개념을 정의하는 데 사용될 수..