Tag: vulkan
All the articles with the tag "vulkan".
-
[Vulkan] 커맨드 풀 설계: 스왑체인 기반과 프레임 기반 구조 비교 분석
업데이트:Vulkan 학습 과정에서 접하는 두 가지 커맨드 풀 설계(스왑체인 이미지 기반, 프레임 인 플라이트 기반)를 비교 분석합니다. 각 구조의 장단점을 통해, 복잡한 애플리케이션을 위해 프레임 인 플라이트 기반 설계가 왜 더 효율적이고 확장성 있는 선택인지 설명합니다.
-
[Vulkan] Normal Mapping: TBN 행렬과 Vulkan 구현기
노멀 매핑의 탄젠트 공간과 TBN 행렬 수학, Vulkan + ASSIMP 환경에서의 구현과 UV 컨벤션 이슈를 정리한 학습 기록입니다.
-
[Vulkan] renderFinished 세마포어는 왜 프레임이 아니라 이미지에 묶어야 하는가
frames-in-flight를 줄였더니 Validation Layer 에러가 발생했습니다. fence와 semaphore가 각각 뭘 보장하는지, renderFinished를 이미지 인덱스로 관리해야 하는 이유를 정리합니다.
-
[Vulkan] 가우시안 블러 이해하기: 수식에서 GPU Compute까지
가우시안 함수의 수식을 분해하고, separable convolution의 원리를 증명한 뒤, Vulkan compute shader로 구현하고 GPU 결과를 수학으로 검증하는 과정을 정리했습니다.
-
[Vulkan] Vulkan Compute로 블룸 만들기: threshold, blur, composite, 그리고 이미지 전이
Vulkan compute shader로 블룸 후처리를 구현하며 threshold, blur, composite 3단계 파이프라인과 이미지 레이아웃 전이, 디스크립터 바인딩을 정리한 학습 기록입니다.
-
[Vulkan] MoltenVK 종료 시 메모리 할당 메시지 분석
MoltenVK 사용 시 프로그램 종료 시점에 나타나는 'GPU memory still allocated' 로그의 원인을 여러 가설과 실험을 통해 분석하고, 이것이 실제 메모리 누수가 아닌 macOS 디스플레이 컴포지터의 정상 동작임을 확인하는 과정을 정리했습니다.
-
[Vulkan] 좌표계의 Y축은 왜 아래를 향할까?
Vulkan의 Y축이 아래를 향하는 이유를 그래픽스 파이프라인의 좌표 변환 과정을 통해 설명합니다. 특히, NDC(정규화된 장치 좌표) 공간이 뷰포트 변환을 거쳐 프레임버퍼 좌표로 매핑될 때 Y축이 반전되는 원리를 Vulkan 명세를 기반으로 분석합니다.
-
[Vulkan] 초기화: 창, 인스턴스, 디바이스
Vulkan 초기화 과정, 특히 창(Window), 인스턴스(Instance), 디바이스(Device) 설정 흐름을 다룹니다. 각 구성요소의 역할과 올바른 생성 및 파괴 순서를 정리했습니다.
-
[Vulkan] WSI: GLFW를 이용한 창과 서피스 연결
GLFW를 사용하여 Vulkan 렌더링을 위한 창을 생성하고, 이를 Vulkan 인스턴스와 연결하여 `VkSurfaceKHR`를 만드는 방법을 설명합니다. 또한 `VkSurfaceKHR`가 물리 디바이스 선택, 창 크기 변경 처리, 리소스 소멸 순서에 미치는 영향을 다룹니다.
-
[Vulkan] WSI: 창과 프레젠테이션의 관계
이 문서는 Vulkan 렌더링 파이프라인에서 운영체제의 창(Window)과 화면 출력(Presentation)이 어떻게 상호 작용하는지 설명합니다. `VkSurfaceKHR`, 스왑체인, WSI(Window System Integration)의 핵심 개념과 GLFW 라이브러리를 사용한 일반적인 초기화 흐름을 다룹니다.