전체 글(218)
-
[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 -
[vk] Vertex buffers - Index buffer
1. Introduction - 3D meshes 은 다수의 삼각형으로구성되며 정점들을 공유한다. - 이것은 간단한 사각형에서도 알 수 있다. - 두개의 삼각형으로 사각형을 그려보면, 6개의 정점이 필요하게된다. - 문제는 두개의 정점이 중복된다는것이고 이것은 50%에 해당하는 수치이다. (4개의 정점중 2개) - 이 문제에 대한 해결방안은 index buffer를 사용하는것이다. - index buffer는 본질적으로 정점 버퍼에 대한 포인터 배열이다. - 이것은 vertex data를 재정렬하는것을 허용해주며 - 존재하는 다수의 정점 데이터를 재사용하게 해준다. - 위 그림은 정점 4개를 가진 정점버퍼와 인덱스버퍼를 사용하여 사각형을 나타내는 한 예시이다. - - - - 첫번째 3개의 indices는..
2021.08.14