Not yet

Vulkan 튜토리얼: 그래픽스 파이프라인 생성하기

이번 튜토리얼에서는 그래픽스 파이프라인 생성을 위한 버텍스 및 프라그멘트 셰이더 코드를 작성하고, 그래픽스 파이프라인에 어떤 상태(state)가 있는지를 알아보겠습니다. 그래픽스 파이프라인 개요 간략히 나타낸 그래픽스 파이프라인, 버텍스 버퍼와 인덱스 버퍼는 위 파이프라인을 거쳐 이미지의 픽셀로 대응합니다. (Vulkan Tutorial) 프리...

Preview Image

Vulkan 튜토리얼: 그래픽스 큐 설정하기

이번 튜토리얼에서는 드디어 컴퓨트 파이프라인이 아닌 그래픽스 파이프라인(graphics pipeline)을 이용해 삼각형을 렌더링하는 소주제에 돌입합니다. 이는 이전까지의 과정과 판이한 구조를 가집니다. 이 과정을 전반적으로 요약하면 다음과 같습니다. 그래픽스 파이프라인 생성. 컴퓨트 파이프라인과 달리 이는 버텍스 셰이더(vertex shade...

Vulkan 튜토리얼: 파이프라인 배리어를 이용하여 이미지 레이아웃 변경하기

이번 튜토리얼에서는 어떻게 GPU 파이프라인에 맞게 이미지의 레이아웃을 변경하고, 적절히 변경한 레이아웃을 바탕으로 이미지를 호스트 단으로 복사하여 저장할 것입니다. GPU가 상당히 파이프라인화(pipelined)된 기기임은 잘 알려진 사실입니다. 이 말인 즉슨, 큐에 제출된 어떤 커맨드는 다음과 같은 각 파이프라인의 스테이지를 거쳐가며 필요한 부분...

Preview Image

Vulkan 튜토리얼: 이미지와 이미지 뷰 생성하기

안녕하세요, 지난 번 튜토리얼에서 예고했듯 이번에는 새로운 소주제를 시작해보겠습니다. 이번 소주제의 주제는 바로 우리가 볼 수 있는 “이미지”입니다. 이제 본격적으로 Vulkan의 그래픽스 API적 면모를 볼 수 있겠군요. 사실 Vulkan에서 이미지를 바라보는 관점은 버퍼와 비슷합니다. 이 둘은 결국 바이트 데이터를 소유하는 디바이스 메모리를 가르...

Vulkan 튜토리얼: 디스크립터 셋 할당 및 커맨드 실행하기

이번 튜토리얼에서 소주제였던 버퍼 입출력을 완료할 것입니다. 이를 수행하기 위해, 다음의 네 과정을 순차적으로 수행해야 합니다: 컴퓨트 파이프라인을 완성했기 때문에, 이젠 이 파이프라인을 실행하기만 하면 됩니다. 다만 앞서 설명했듯 파이프라인은 사용할 디스크립터 셋에 대한 정보만을 담고 있을 뿐, 아직은 우리가 만든 버퍼를 파이프라인에 바인딩하...

Vulkan 튜토리얼: 컴퓨트 파이프라인 생성하기

이번 튜토리얼에서는 버퍼 원소의 두 배를 계산하는 과정을 어떻게 GPU 코드로 나타낼 수 있는지에 대해 알아보겠습니다. 앞선 C++의 코드로 GPU를 조작하는 과정은 호스트에서 실행되는 것과 달리, 이번에는 디바이스에서 병렬적으로 실행될 수 있는 셰이더를 사용할 것입니다. 셰이더는 GPU에 포함된 수많은 코어에서 병렬적으로 실행됩니다. 이 코어의 수...

Vulkan 튜토리얼: 버퍼 생성하기

목표 설정 소주제의 목표인 버퍼를 조작하고 입출력하는 과정을 구체화하겠습니다. GPU라는 병렬 연산 장치의 능력을 돋보이기 위해, 우리는 0부터 1,023까지 총 1,024개의 float을 담고 있는 버퍼를 만들고, 컴퓨트 파이프라인을 이용해 그 두 배의 값을 계산해 채워 넣겠습니다. CPU라면 총 1,024번의 곱셈 연산이 필요한 이 과정을 GPU...

Vulkan 튜토리얼: 디바이스와 큐 생성하기

목표 설정 앞선 튜토리얼을 끝냈다면 이제 본격적으로 이 튜토리얼, 그 중에서도 소주제의 목표를 설정하겠습니다. 우리는 처음부터 그래픽스 렌더링을 위해 창을 띄우고, 삼각형을 그리는 Hello Triangle을 만들지 않을 것입니다. 그 이유는 다음과 같습니다: Vulkan 창을 띄우는 것은 굉장히 복잡합니다. 우리는 크로스플랫폼에서 창을 띄우...