씬뷰는 주로 게임 엔진이나 그래픽 에디터에서 작업 영역을 제공하며, 사용자는 해당 공간에서 드래그 앤 드롭, 키보드 및 마우스 이벤트, 렌더링된 이미지 확인 등을 수행할 수 있습니다.
씬뷰를 분석하기 이전에 스왑체인에 가지고 있는 최종렌더타겟(프레임버퍼)를 텍스처 리소스로 가져와야 imgui창에서 이미지를 그릴 수 있습니다. 추후 디퍼드렌더링 등등 여러가지 렌더타겟을 활용한것들이 많아질수 있기에 RenderTarget클래스를 설계하였습니다.
렌더 타겟은 프레임 버퍼와 유사한 개념으로, 렌더링 결과를 저장하거나 특정 렌더링 작업을 수행하는 데 사용됩니다.
eRenderTragetFormat
(렌더 타겟 포맷)cpp
코드 복사
enum class eRenderTragetFormat
{
None = 0,
RGBA8,
RED_INTEGER,
DEPTH24STENCIL8,
SHADER_RESOURCE,
Depth = DEPTH24STENCIL8
};
RGBA8
: 8비트 RGBA 컬러 데이터 저장.RED_INTEGER
: 정수 데이터 저장을 위한 RED 채널 포맷.DEPTH24STENCIL8
: 깊이 및 스텐실 버퍼 포맷.SHADER_RESOURCE
: 셰이더 리소스로 사용할 수 있는 포맷.Depth
: 기본 깊이 포맷으로 DEPTH24STENCIL8
을 사용.RenderTargetTextureSpecification
cpp
코드 복사
struct RenderTargetTextureSpecification
{
eRenderTragetFormat TextureFormat = eRenderTragetFormat::None;
};
TextureFormat
:
None
.RenderTargetAttachmentSpecification
cpp
코드 복사
struct RenderTargetAttachmentSpecification
{
std::vector<RenderTargetTextureSpecification> Attachments;
};