Skip to content

Commit 9dc0fb0

Browse files
committed
revise and summary
1 parent 0a8fcae commit 9dc0fb0

File tree

9 files changed

+42
-51
lines changed

9 files changed

+42
-51
lines changed

guide/translations/ko-KR/src/SUMMARY.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,48 +4,48 @@
44

55
# 기초
66

7-
- [Getting Started](getting_started/README.md)
8-
- [Project Layout](getting_started/project_layout.md)
9-
- [Validation Layers](getting_started/validation_layers.md)
7+
- [시작하기](getting_started/README.md)
8+
- [프로젝트 레이아웃](getting_started/project_layout.md)
9+
- [검증 레이어](getting_started/validation_layers.md)
1010
- [class App](getting_started/class_app.md)
11-
- [Initialization](initialization/README.md)
11+
- [초기화](initialization/README.md)
1212
- [GLFW Window](initialization/glfw_window.md)
13-
- [Vulkan Instance](initialization/instance.md)
13+
- [Vulkan 인스턴스](initialization/instance.md)
1414
- [Vulkan Surface](initialization/surface.md)
15-
- [Vulkan Physical Device](initialization/gpu.md)
16-
- [Vulkan Device](initialization/device.md)
15+
- [Vulkan 물리 디바이스](initialization/gpu.md)
16+
- [Vulkan 디바이스](initialization/device.md)
1717
- [Scoped Waiter](initialization/scoped_waiter.md)
18-
- [Swapchain](initialization/swapchain.md)
18+
- [스왑체인](initialization/swapchain.md)
1919

2020
# Hello Triangle
2121

22-
- [Rendering](rendering/README.md)
23-
- [Swapchain Loop](rendering/swapchain_loop.md)
24-
- [Render Sync](rendering/render_sync.md)
25-
- [Swapchain Update](rendering/swapchain_update.md)
26-
- [Dynamic Rendering](rendering/dynamic_rendering.md)
22+
- [렌더링](rendering/README.md)
23+
- [스왑체인 루프](rendering/swapchain_loop.md)
24+
- [렌더 싱크](rendering/render_sync.md)
25+
- [스왑체인 업데이트](rendering/swapchain_update.md)
26+
- [동적 렌더링](rendering/dynamic_rendering.md)
2727
- [Dear ImGui](dear_imgui/README.md)
2828
- [class DearImGui](dear_imgui/dear_imgui.md)
29-
- [ImGui Integration](dear_imgui/imgui_integration.md)
30-
- [Shader Objects](shader_objects/README.md)
31-
- [Locating Assets](shader_objects/locating_assets.md)
32-
- [Shader Program](shader_objects/shader_program.md)
33-
- [GLSL to SPIR-V](shader_objects/glsl_to_spir_v.md)
34-
- [Drawing a Triangle](shader_objects/drawing_triangle.md)
35-
- [Graphics Pipelines](shader_objects/pipelines.md)
29+
- [ImGui 통합](dear_imgui/imgui_integration.md)
30+
- [셰이더 오브젝트](shader_objects/README.md)
31+
- [에셋 위치](shader_objects/locating_assets.md)
32+
- [셰이더 프로그램](shader_objects/shader_program.md)
33+
- [GLSL 에서 SPIR-V](shader_objects/glsl_to_spir_v.md)
34+
- [삼각형 그리기](shader_objects/drawing_triangle.md)
35+
- [그래픽스 파이프라인](shader_objects/pipelines.md)
3636

3737
# 셰이더 자원
3838

39-
- [Memory Allocation](memory/README.md)
39+
- [메모리 할당](memory/README.md)
4040
- [Vulkan Memory Allocator](memory/vma.md)
41-
- [Buffers](memory/buffers.md)
42-
- [Vertex Buffer](memory/vertex_buffer.md)
41+
- [버퍼](memory/buffers.md)
42+
- [정점 버퍼](memory/vertex_buffer.md)
4343
- [Command Block](memory/command_block.md)
44-
- [Device Buffers](memory/device_buffers.md)
45-
- [Images](memory/images.md)
46-
- [Descriptor Sets](descriptor_sets/README.md)
47-
- [Pipeline Layout](descriptor_sets/pipeline_layout.md)
44+
- [디바이스 버퍼](memory/device_buffers.md)
45+
- [이미지](memory/images.md)
46+
- [디스크립터 셋](descriptor_sets/README.md)
47+
- [파이프라인 레이아웃](descriptor_sets/pipeline_layout.md)
4848
- [Descriptor Buffer](descriptor_sets/descriptor_buffer.md)
49-
- [Texture](descriptor_sets/texture.md)
50-
- [View Matrix](descriptor_sets/view_matrix.md)
51-
- [Instanced Rendering](descriptor_sets/instanced_rendering.md)
49+
- [텍스쳐](descriptor_sets/texture.md)
50+
- [뷰 행렬](descriptor_sets/view_matrix.md)
51+
- [인스턴스 렌더링](descriptor_sets/instanced_rendering.md)

guide/translations/ko-KR/src/initialization/device.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Vulkan Device
1+
# Vulkan 디바이스
22

3-
[Device](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-devices)는 Physical Device의 논리적 인스턴스이며, 이후의 모든 Vulkan 작업에서 주요 인터페이스 역할을 하게 됩니다. [Queue](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-queues)Device가 소유하는 것으로, `Gpu` 구조체에 저장된 큐 패밀리에서 하나를 가져와 기록된 커맨드 버퍼를 제출하는 데 사용할 것입니다. 또한 사용하기를 원하는 [Dynamic Rendering](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_dynamic_rendering.html)[Synchronization2](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_synchronization2.html)같은 기능들을 명시적으로 선언해야 합니다.
3+
[디바이스](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-devices)는 Physical Device의 논리적 인스턴스이며, 이후의 모든 Vulkan 작업에서 주요 인터페이스 역할을 하게 됩니다. [](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-queues)디바이스가 소유하는 것으로, `Gpu` 구조체에 저장된 큐 패밀리에서 하나를 가져와 기록된 커맨드 버퍼를 제출하는 데 사용할 것입니다. 또한 사용하기를 원하는 [Dynamic Rendering](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_dynamic_rendering.html)[Synchronization2](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_synchronization2.html)같은 기능들을 명시적으로 선언해야 합니다.
44

55
`vk::QueueCreateInfo`객체를 설정합시다.
66

guide/translations/ko-KR/src/initialization/gpu.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# Vulkan Physical Device
1+
# Vulkan 물리 디바이스
22

3-
[Physical Device](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-physical-device-enumeration)는 Vulkan의 완전한 구현체를 나타내며, 일반적으로 하나의 GPU를 의미합니다(단, Mesa/lavapipe와 같은 소프트웨어 렌더러일 수도 있습니다). 여러 GPU가 장착된 랩탑과 같은 일부 기기에서는 여러 개의 Physical Device가 존재할 수 있습니다. 이 중에서 다음 조건을 만족하는 것을 하나 선택해야 합니다.
3+
[물리 디바이스](https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#devsandqueues-physical-device-enumeration)는 Vulkan의 완전한 구현체를 나타내며, 일반적으로 하나의 GPU를 의미합니다(단, Mesa/lavapipe와 같은 소프트웨어 렌더러일 수도 있습니다). 여러 GPU가 장착된 랩탑과 같은 일부 기기에서는 여러 개의 물리 디바이스가 존재할 수 있습니다. 이 중에서 다음 조건을 만족하는 것을 하나 선택해야 합니다.
44

55
1. Vulkan 1.3을 지원해야 합니다.
6-
2. Vulkan Swapchain을 지원해야 합니다.
6+
2. 스왑체인을 지원해야 합니다.
77
3. Graphics와 Transfer작업을 지원하는 Vulkan Queue가 존재해야 합니다.
88
4. 이전에 생성한 Vulkan Surface로 출력(present)할 수 있어야 합니다.
99
5. (선택 사항) 외장 GPU를 우선적으로 고려합니다.
1010

11-
실제 Physical Device와 몇 가지 유용한 객체들을 `struct Gpu`로 묶겠습니다. 많은 유틸리티 함수가 함께 정의될 것이므로 이를 별도의 hpp, cpp파일에 구현하고 기존의 `vk_version_v` 상수를 이 새로운 헤더로 옮기겠습니다.
11+
실제 물리 디바이스와 몇 가지 유용한 객체들을 `struct Gpu`로 묶겠습니다. 많은 유틸리티 함수가 함께 정의될 것이므로 이를 별도의 hpp, cpp파일에 구현하고 기존의 `vk_version_v` 상수를 이 새로운 헤더로 옮기겠습니다.
1212

1313
```cpp
1414
constexpr auto vk_version_v = VK_MAKE_VERSION(1, 3, 0);

guide/translations/ko-KR/src/initialization/instance.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
# Vulkan Instance
1+
# Vulkan 인스턴스
22

33
Vulkan을 SDK를 통해 빌드 시점에 링킹하는 대신, 런타임에 동적으로 로드할 것입니다. 이를 위해 몇 가지 조정이 필요합니다.
44

55
1. CMake의 ext target에서 `VK_NO_PROTOTYPES`를 정의해, Vulkan API 함수 선언이 함수 포인터로 변환되도록 합니다.
66
2. `app.cpp`에서 전역에 `VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE`를 추가합니다.
77
3. 초기화 이전과 초기화 과정 중에 `VULKAN_HPP_DEFAULT_DISPATCHER.init()`을 호출합니다.
88

9-
Vulkan에서 가장 먼저 해야할 것은 [Instance](https://docs.vulkan.org/spec/latest/chapters/initialization.html#initialization-instances)를 생성하는 것입니다. 이는 물리 디바이스(GPU)의 목록을 가져오거나, 논리 디바이스를 생성할 수 있습니다.
10-
Instance
9+
Vulkan에서 가장 먼저 해야할 것은 [인스턴스](https://docs.vulkan.org/spec/latest/chapters/initialization.html#initialization-instances)를 생성하는 것입니다. 이는 물리 디바이스(GPU)의 목록을 가져오거나, 논리 디바이스를 생성할 수 있습니다.
1110

1211
Vulkan 1.3 버전을 필요로 하므로, 이를 상수로 정의해 쉽게 참조할 수 있도록 합니다.
1312

guide/translations/ko-KR/src/initialization/swapchain.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Swapchain
1+
# 스왑체인
22

3-
[Swapchain](https://docs.vulkan.org/guide/latest/wsi.html#_swapchain)은 Surface와 연결된, 화면에 표시 가능한 이미지들의 배열입니다. 이는 애플리케이션과 플랫폼의 프레젠테이션 엔진 사이를 이어주는 다리 역할을 합니다. 스왑체인은 메인 루프에서 이미지를 받아오고 화면에 표시하기 위해 지속적으로 사용됩니다. 스왑체인 생성에 실패하는 것은 치명적인 오류이므로, 그 생성 과정은 초기화 단계에 포함됩니다.
3+
[스왑체인](https://docs.vulkan.org/guide/latest/wsi.html#_swapchain)은 Surface와 연결된, 화면에 표시 가능한 이미지들의 배열입니다. 이는 애플리케이션과 플랫폼의 프레젠테이션 엔진 사이를 이어주는 다리 역할을 합니다. 스왑체인은 메인 루프에서 이미지를 받아오고 화면에 표시하기 위해 지속적으로 사용됩니다. 스왑체인 생성에 실패하는 것은 치명적인 오류이므로, 그 생성 과정은 초기화 단계에 포함됩니다.
44

55
스왑체인을 우리가 정의한 `class Swapchain`으로 감쌀 것입니다. 이 클래스는 스왑체인이 소유한 이미지의 복사본을 저장하고, 각 이미지에 맞는 이미지 뷰를 생성하고 소유합니다. 스왑체인은 프레임 버퍼 크기가 변경되거나, acquire/present 작업이 `vk::ErrorOutOfDataKHR`를 반환하는 경우처럼, 메인 루프 중에 재생성이 필요할 수 있습니다. 이를 `recreate()` 함수로 캡슐화하여 초기화 시점에도 간단히 호출할 수 있도록 하겠습니다.
66

@@ -86,8 +86,7 @@ if (!recreate(size)) {
8686
8787
## 스왑체인 재생성
8888
89-
The constraints on Swapchain creation parameters are specified by [Surface Capabilities](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesKHR.html). Based on the spec we add two helper functions and a constant:
90-
스왑체인 생성 파라미터의 제약은 Surface Capabilities에 지정됩니다. 스펙에 따라 함수 두 개와 상수 하나를 추가하겠습니다.
89+
스왑체인 생성 파라미터의 제약은 [Surface Capabilities](https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesKHR.html)에 지정됩니다. 사양에 따라 함수 두 개와 상수 하나를 추가하겠습니다.
9190
9291
```cpp
9392
constexpr std::uint32_t min_images_v{3};

guide/translations/ko-KR/src/rendering/swapchain_update.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# 스왑체인 업데이트
22

3-
Swapchain acquire/present operations can have various results. We constrain ourselves to the following:
43
스왑체인에서 이미지를 받아오고 표시하는 작업은 다양한 결과를 반환할 수 있습니다. 우리는 다음과 같은 경우에 한정하여 처리합니다.
54

65
- `eSuccess` : 문제가 없습니다.

guide/translations/ko-KR/src/shader_objects/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 셰이더 객체
1+
# 셰이더 오브젝트
22

33
[Vulkan의 그래픽스 파이프라인](https://docs.vulkan.org/spec/latest/chapters/pipelines.html)은 전체 렌더링 과정을 아우르는 거대한 객체로, `draw()` 호출 한 번에 여러 단계를 수행합니다. 하지만 [`VK_EXT_shader_object`](https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today)라는 확장을 사용하면, 이러한 그래픽스 파이프라인 자체를 완전히 생략할 수 있습니다. 이 확장을 사용할 경우 대부분의 파이프라인 상태가 동적으로 설정되며, 그리는 시점에 설정됩니다. 이때 개발자가 직접 다뤄야할 Vulkan 핸들은 `ShaderEXT` 객체뿐입니다. 더 자세한 정보는 [여기](https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/shader_object)를 참고하세요.
44

guide/translations/ko-KR/src/shader_objects/glsl_to_spir_v.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# GLSL 에서 SPIR-V
22

3-
Shaders work in NDC space: -1 to +1 for X and Y. We output a triangle's coordinates in a new vertex shader and save it to `src/glsl/shader.vert`:
43
셰이더는 NDC 공간 X축과 Y축에서 -1에서 1까지 작동합니다. 새로운 정점 셰이더의 삼각형 좌표계를 출력하고 이를 `src/glsl/shader.vert`에 저장합니다.
54

65
```glsl
@@ -19,7 +18,6 @@ void main() {
1918
}
2019
```
2120

22-
The fragment shader just outputs white for now, in `src/glsl/shader.frag`:
2321
`src/glsl/shader.frag`의 프래그먼트 셰이더는 지금은 흰 색을 출력하기만 할 것입니다.
2422

2523
```glsl
@@ -32,20 +30,17 @@ void main() {
3230
}
3331
```
3432

35-
Compile both shaders into `assets/`:
3633
이 둘을 `assets/`로 컴파일합니다.
3734

3835
```
3936
glslc src/glsl/shader.vert -o assets/shader.vert
4037
glslc src/glsl/shader.frag -o assets/shader.frag
4138
```
4239

43-
> glslc is part of the Vulkan SDK.
4440
> glslc는 Vulkan SDK의 일부입니다.
4541
4642
## SPIR-V 불러오기
4743

48-
SPIR-V shaders are binary files with a stride/alignment of 4 bytes. As we have seen, the Vulkan API accepts a span of `std::uint32_t`s, so we need to load it into such a buffer (and _not_ `std::vector<std::byte>` or other 1-byte equivalents). Add a helper function in `app.cpp`:
4944
SPIR-V 셰이더는 4바이트 단위로 정렬이 되어있는 바이너리 파일입니다. 지금까지 봐왔던 대로, Vulkan API는 `std::uint32_t`의 묶음을 받습니다. 따라서 이러한 종류의 버퍼(단, `std::vector<std::byte>` 혹은 다른 종류의 1바이트 컨테이너는 아닙니다)에 담습니다. 이를 돕는 함수를 `app.cpp`에 추가합니다.
5045

5146
```cpp

guide/translations/ko-KR/src/shader_objects/pipelines.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ auto PipelineBuilder::build(vk::PipelineLayout const layout,
191191
}
192192
```
193193
194-
`App` will need to store a builder, a Pipeline Layout, and the Pipeline(s):
195194
`App`은 빌더, 파이프라인 레이아웃, 그리고 파이프라인을 담아야 합니다.
196195
197196
```cpp

0 commit comments

Comments
 (0)