본문 바로가기

Descriptor pool and sets 이전 글 : Descriptor layout and buffer Descriptor pool and sets Introduction 이전 장의 descriptor 레이아웃은 바인딩 할 수 있는 descriptor 유형을 기술 합니다. 이 장에서는 디스크립터 세트를 생성하는데, 실제로는 uniform 버퍼 디스크립터에 바인드 할 VkBuffer 리소스를 지정한다. Descriptor pool 디스크립터 세트는 직접 생성 할 수 없으며 명령 버퍼와 같은 풀에서 할당해야 합니다. 디스크립터 집합에 을 우리는 디스크립터 풀이라 부릅니다. 우리는 새로운 함수 createDescriptorPool을 작성하여 이를 설정합니다. void initVulkan() { ... createUniformBuffer(); cre.. 더보기
Descriptor layout and buffer 이전 글 : 행렬다음 글 : Descriptor pool and sets Descriptor layout and buffer Introduction 이제 각 정점에 대해 임의의 속성을 정점 셰이더에 전달할 수 있습니다. 그러나 전역 변수는 어떻게 전달 할까요? 이번 강좌를 통해서 우리는 3D 그래픽의 세계로 넘어갈것 입니다. 그러기 위해서는 우리는 모델 뷰 프로젝션 매트릭스가 필요합니다. 버텍스 데이터로 포함시킬 수는 있지만 그럴경우 메모리 낭비가 있으며, 또한 좌표변환이 될 때마다 버텍스 버퍼를 업데이트 해야만 합니다. 이는 많은 비용이 들어갈 것 입니다. 변환(transformation) 은 모든 단일 프레임을 쉽게 바꿀 수 있습니다. Vulkan에서 이 문제를 해결하는 올바른 방법은 리소스 설명자(.. 더보기
행렬 이전 글 : Index buffer 다음 글 : Descriptor layout and buffer 행렬 (Matrix)행렬에 대하여 잠시 소개하고 가겠습니다.이미 알고 있는 내용이지만 정리차원에서 적습니다. 보다 자세한 내용은 행렬 관련 내용을 따로 찾아 보셔야 할 것 입니다. 엔진이 배를 움직이는 것이 아니다. 배는 그 자리에 가만이 있으나 엔진이 이 세상을 회전해 움직이는 것이다. Homogeneous 좌표계 지금까지, 우리는 3D 버텍스를 (x,y,z) 트리플렛(세묶음;triplet)으로서 다루었습니다. 여기에 w 를 소개합니다. 우리는 이제 (x,y,z,w) 벡터를 사용합니다. 이게 무엇인지 곧 알게 될겁니다. 하지만 지금은, 이것만 기억해 두세요 :w == 1 이면, 벡터 (x,y,z,1) 은.. 더보기
Index buffer 이전 글 : Staging buffer다음 글 : 행렬 Index buffer 인덱스 버퍼, 색인 버퍼 Introduction 실제 응용 프로그램에서 렌더링 할 3D 메쉬는 종종 여러 삼각형 사이에서 정점을 공유합니다. 이것은 직사각형 그리기와 같은 간단한 작업에서도 찾아 볼 수 있습니다. 사각형을 그리려면 두 개의 삼각형이 필요합니다. 즉 6 개의 정점이 있는 정점 버퍼가 필요합니다. 문제는 두 개의 정점의 데이터가 중복되어 50 %의 중복성이 발생하게 된다는 것 입니다 . 문제는 정점이 평균 3 개의 삼각형으로 사용 되는것 보다는 복잡한 메시로 된다는 것 이 더 큰 문제 입니다. 이 문제에 대한 해결책은 인덱스 버퍼를 사용하는 것입니다. 인덱스 버퍼는 본질적으로 정점 버퍼에 대한 포인터의 배열입니다... 더보기
Staging buffer 이전 글 : Vertex buffer creation다음 글 : Index buffer Staging buffer스테이징 버퍼,준비 버퍼 소개 지금 우리가 가지고있는 버텍스 버퍼는 제대로 작동 하지만 우리가 CPU에서 액세스 할 수 있는 메모리 타입으로 읽을 수 있는 메모리는 그래픽 카드 자체에 대한 최적의 메모리 타입이 아닐 수 있습니다. 가장 최적의 메모리는 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT 플래그를 갖는 메모리로, 일반적으로 전용 그래픽 카드에 적합하며 CPU에 의해 액세스 할 수 없습니다. 이 장에서 우리는 두 개의 버텍스 버퍼를 만들 것입니다. 정점 어레이로부터 데이터를 업로드 하기 위한 CPU가 액세스 가능한 메모리인 staging buffer 이고 다른 하나는 .. 더보기