인프런 커뮤니티 질문&답변

dlgmlals3님의 프로필 이미지

작성한 질문수

삼각형의 실전! Vulkan 중급

질문이 있습니다.

해결된 질문

24.07.31 00:48 작성

·

76

·

수정됨

0

질문 1)

3개의 스왑 이미지를 할당 받는 상황입니다.

하나는 출력용 프론트버퍼, 하나는 백버퍼,

하나는 G 버퍼를 사용하기 위해 컬러 첨부로 정의했다고 가정하면

추후 vkAcquireNextImageKHR 함수를 통해 렌더링할 프레임버퍼 인덱스를 가져오면..

예를들어 G 버퍼는 첨부이니 프레젠테이션 엔진에서 알아서 인덱스를 제외해주고

다음 렌더링에 필요한 프레임 버퍼 인덱스를 리턴해주는건가요 ?

질문 2)

렌더 패스 호환성의 대해서 제가 이해한 것이 맞는지 궁금합니다.

렌더 패스 호환성은

프레임버퍼를 생성할때 렌더패스를 인자로 넣게 되어 있다.

VkCmdBeginRenderPass() 호출할때 프레임버퍼와 렌더패스를 둘다 넣게 되어있는데,

이때 프레임버퍼에서 생성할때 넣은 렌더패스가 아닌 다른 렌더패스를 넣어도 된다는 의미.

단 조건이 있는데 아래 2개,

1) RenderPass의 AttachmentDescription VkFormat과 VkSampleCountFlagBits와 

    ImageView 생성시, VkImageViewCreateInfo 의 VkFormat과 VkSampleCountFlagBits 가 동일할때

2) RenderPass의 pAttachment의 개수와 FrameBuffer의 pAttachment 개수가 동일할때

답변 1

0

삼각형님의 프로필 이미지
삼각형
지식공유자

2024. 07. 31. 09:01

답변 1)

G 버퍼 목적으로 스왑체인 이미지를 사용해서는 안됩니다. 스왑체인 이미지는 말 그대로 화면에 나가는 이미지입니다. G 버퍼는 화면에 나가는 이미지가 아니기 때문에 이미지를 생성하시고 그 이미지를 기반으로 프레임버퍼를 만들어서 G 버퍼에 필요한 데이터를 렌더링해야 합니다.

답변 2)

맞습니다. 렌더 패스 호환성은 VkLoadOp, VkStoreOp가 달라도 사용할 수 있도록 하는데 있습니다.

dlgmlals3님의 프로필 이미지
dlgmlals3
질문자

2024. 07. 31. 09:46

스왑체인 이미지의 경우 vkGetSwapchainImagesKHR 을 통해서 생성하고

G버퍼용 이미지의 경우 vkCreateImage 을 통해서 생성하고

생성하는데 차이가 있군요

감사합니다.

 

삼각형님의 프로필 이미지
삼각형
지식공유자

2024. 07. 31. 10:14

네네 스왑체인 이미지는 내것이 아니라고 생각하셔야 합니다. 그리고 G 버퍼는 FLOAT32를 요구할텐데 스왑체인이 해당 포멧을 지원하지 않을꺼에요.

dlgmlals3님의 프로필 이미지
dlgmlals3
질문자

2024. 07. 31. 17:48

감사합니당