'Renderer & Systems - Vulkan Game Engine Tutorial 11' 정리
Series - Vulkan Game Engine Tutorial 정리
Contents
LittleVulkanEngine 을 따라 만들어 보면서, Vulkan을 배워봅시다.
1. 주요내용
- 클래스 구조 리팩토링
- LveRenderer 클래스 추가
- FirstApp 클래스에서 SwapChain, Command Buffers, draw frame 관련 부분 뽑아냄
- SimpleRenderSystem 클래스 추가
- FirstApp 클래스에서 Pipeline, Pipeline Layout, render GameObjects 관련 부분 뽑아냄
2. 코드 수정
2.1. 개요
지금까지는 FirstApp에 너무 많은 기능이 몰려 있습니다. 요번 강에서 렌더링 관련 부분을 담당하는 클래스를 좀 떼어냅니다.
FisrtApp 의 기능 중 일부를 떼어내서
SwapChain, Command Buffers, draw Frame 을 담당하는 LveRenderer
클래스와,
Pipeline, Pipeline Layout, Push Constant 구조체, render GameObjects 를 담당하는 SimpleRenderSystem
을 만들 겁니다.
Renderer 는 하나만 존재하고, System 은 여러 종류가 있을 수 있습니다. (여기서의 “System” 은 ECS에서의 System을 의미하지는 않습니다.)
131s
2.2. LveRenderer 클래스 추가
- FirstApp에서 SwapChain, Command Buffers, draw Frame 관련 로직 옮겨 옵니다.
2.3. SimpleRenderSystem 클래스 추가
- FirstApp에서 Pipeline, Pipeline Layout, Push Constant, render GameObjects 관련 로직 옮겨 옵니다.
2.4. 결과 화면
3. 다이어그램
3.1. 클래스 다이어그램
아래 시퀀스 다이어그램과 같이 보면 좋습니다.