그래픽스/vk(28)
-
[vk] Depth buffering
1. Introduction - geometry는 3D로 투영되지만, 여전히 평면이다. - 이번 챕터에서는 3D meshes을 위한 position에 z 좌표를 추가할것이다. - 이 3번째 좌표를 사용함으로써 현재 사각형 위에 사각형을 하나 더 배치하여 - geometry가 깊이별로 정렬되지 않을 때 발생하는 문제를 확인할 것이다. 2. 3D geometry - Vertex 구조체에서 position을 3D vector를 사용하도록 수정할것이다. - 그리고 VkVertexInputAttributeDescription 에 대응되는 format 또한 업데이트 시킬것이다. struct Vertex { glm::vec3 pos; glm::vec3 color; glm::vec2 texCoord; ... stati..
2021.09.04 -
[vk] Texture Mapping - Combined image sampler
1. Introduction - 튜토리얼의 uniform buffers 파트에서 descriptors 를 살펴보았다. - 이번 챕터에서는 descriptor의 새로운 타입인 combined image sampler를 살펴볼것이다. - 이 descriptor를 사용하면 shader가 이전장에서 만든것과 같은 sampler object를 통해 - image resource에 접근할 수 있다. - 이와같은 combined image sampler descriptor를 포함하도록 - descriptor pool 과 descriptor set, descriptor layout을 수정하는것 부터 시작할 것이다. - 그후 texture coordinates를 Vertex 에 추가할것이고, fragment shader..
2021.08.16 -
[vk] Texture Mapping - Image view and sampler
1. Image view and sampler - 이번 챕터에서는 우리는 두개의 리소스를 더 만들것이다. - 이것들은 graphics pipeline에서 필요하며, 한 이미지를 샘플링하는데 필요하다. - 첫번째 리소스는 swapchain images로 작업하는 동안 이미 본것이지만 - 두번째 리소스는 새로운것이며, 셰이더가 이미지에서 texels을 읽는 방법과 관련이 있다. 2. Texture image view - 이전에 swapchain images 그리고 framebuffer에서 보았듯이 - 이미지들은 직접 접근하지 않고 imageview들을 통해 접근한다. - 그러므로 texture image를 위한 image view를 생성할 필요가 있다. - texture image를 위한 VkImageVie..
2021.08.16 -
[vk] Texture Mapping - Images
1. Introduction - 지오메트리는 per-vertex colors를 사용하여 색을 입혔지만, 이것은 다소 제한적인 접근법이다. - 이 챕터에서는 지오메트리를 더 흥미롭게 보이도록 텍스쳐 매핑을 구현할것이다. - 여기서는 또한 또한 다음장에서 3D 모데들을 로드하고 그릴 수 있게 해준다. - 텍스처를 추가하려면 다음 단계들이 필요하다. Create an image object backed by device memory Fill it with pixels from an image file Create an image sampler Add a combined image sampler descriptor to sample colors from the texture - 우리는 이미 image objec..
2021.08.16 -
[vk] Uniform buffers - Descriptor pool and sets
1. Introduction - 이전 장의 descriptor layout은 바인딩 할 수 있는 descriptors의 타입을 설명한다. (UB) - 이번 챕터에서는 unifom buffer descriptor로 바인딩하기위해 - 각각의 VkBuffer 리소스에 대한 descriptor set 을 생성할것이다. (In this chapter we're going to create a descriptor set for each VkBuffer resource to bind it to the uniform buffer descriptor.) 2. Descriptor pool - Descriptor sets 은 직접 만들 수 없다. - 그것들은 command buffers과 같이 pool에서부터 할당되어진다...
2021.08.16 -
[vk] Uniform buffers - Descriptor layout and buffer
1. Introduction - 우리는 이제 임의의 속성을 각 정점의 vertex shader로 넘길수있다. - 그러나 아직 전역 변수에 대해서는 다루지 않았다. - 우리는 이 챕터에서 3D 그래픽스로 넘어갈것이며, 이에 필요한 model-view-projection 행렬에 대해 다룰것이다. - 우리는 vertex data로 그것들을 포함시킬 수 있지만, - transformation이 변경될때마다 vertex buffer를 업데이트 해야할 필요가 있기 때문에 메모리 낭비이다. - transformation은 모든 단일 프레임마다 쉽게 변경될 수 있어야한다. - 이것을 Vulkan에서 다룰 올바른 방법은 resource descriptors 을 사용하는것이다. - descriptor는 shader들이 자..
2021.08.16