첫 번째 Vulkan 프로그래밍 step4 이미지 보기
소스 코드는 다음 위치에 두십시오.각자의 버전에 따라 속성을 설정한 후 자유롭게 사용하세요.
GitHub
개시하다
Image 객체는 프로그램을 직접 읽고 쓸 수 없습니다.대신 ImageView를 사용합니다.
VkImage 가져오기
Vkimage는 창을 직접 표시하는 이미지입니다.
교환 체인에서 이미지를 가져오려면 vkGetSwapchainImagesKHR을 사용해야 합니다.
void Window::_InitSwapchainImages()
{
std::vector<VkImage> _swapchain_Image;
std::vector<VkImageView> _swapchain_image_view;
vkGetSwapchainImagesKHR(device, _swapchain, &_swapchain_image_count, nullptr);
_swapchain_Image.resize(_swapchain_image_count);
_swapchain_image_view.resize(_swapchain_image_count);
vkGetSwapchainImagesKHR(device, _swapchain, &_swapchain_image_count, _swapchain_Image.data());
VKimageView 생성
렌더링 경로에서 VkImage를 사용하려면 VKimageView를 만들어야 합니다.
VKimageView는 1D 텍스쳐, 2D 텍스쳐로 이미지를 처리하는 등의 방법으로 이미지에 액세스하는 방법을 지정합니다.
for (int i = 0; i < _swapchain_image_count; i++) {
VkImageViewCreateInfo image_view_create_info{};
image_view_create_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
image_view_create_info.pNext = nullptr;
image_view_create_info.flags = 0;
image_view_create_info.image = _swapchain_Image[i];
viewtype,format을 통해 그림의 처리 방법을 지정합니다.components를 지정하면 임의의 색만 꺼낼 수 있습니다.
이번에는 임의의 색만 꺼내는 것을 고려하지 않았기 때문에components의 값을 기본값으로 설정합니다.
image_view_create_info.viewType = VK_IMAGE_VIEW_TYPE_2D;
image_view_create_info.format = VK_FORMAT_B8G8R8A8_UNORM;
image_view_create_info.components.r = VK_COMPONENT_SWIZZLE_IDENTITY;
image_view_create_info.components.g = VK_COMPONENT_SWIZZLE_IDENTITY;
image_view_create_info.components.b = VK_COMPONENT_SWIZZLE_IDENTITY;
image_view_create_info.components.a = VK_COMPONENT_SWIZZLE_IDENTITY;
subreasourceRange는 그림의 목적이 무엇인지, 그림의 어느 부분에 접근해야 하는지를 나타낸다aspectMask...Image에서 가져온 데이터를 표시합니다.
image_view_create_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
image_view_create_info.subresourceRange.baseMipLevel = 0;
image_view_create_info.subresourceRange.levelCount = 1;
image_view_create_info.subresourceRange.baseArrayLayer = 0;
image_view_create_info.subresourceRange.layerCount = 1;
완료되면 vkCreateImageView 함수를 호출합니다.
vkCreateImageView(_renderer->GetVulkanDevice(), &image_view_create_info, nullptr, &_swapchain_image_view[i]);
}
}
이미지 뷰 삭제
그림 보기는 명확하게 만들어졌기 때문에 프로그램이 끝날 때 버려야 합니다
void Window::_DeInitSwapchainImages()
{
for (auto view : _swapchain_image_view) {
vkDestroyImageView(_renderer->GetVulkanDevice(),view,nullptr);
}
}
끝맺다
다음부터 우리는 도형 파이프라인과 같은 새로운 개념을 접하게 될 것이다.
연락처
tweeter: tositada_nakada
mail: [email protected]
기부하다
paypal: tositada_nakada
Amazon: 원하는 목록
Reference
이 문제에 관하여(첫 번째 Vulkan 프로그래밍 step4 이미지 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tositada_nakada/items/f46b638b1b21e75c4d45텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)