std::unique_ptr<UploadBuffer<PassConstants>> PassCB = nullptr;
이 버퍼는 하나의 렌더링 패스 전체에서 변하지 않는 상수 자료를 저장한다.
// FrameResource.h
struct PassConstants
{
// 변하지 않는 상수 버퍼(시야 행렬, 투영 행렬, 시점 위치 등) 자료들.
XMFLOAT4X4 View = MathHelper::Identity4x4();
XMFLOAT4X4 Proj = MathHelper::Identity4x4();
XMFLOAT4X4 InvView = MathHelper::Identity4x4();
XMFLOAT4X4 InvProj = MathHelper::Identity4x4();
XMFLOAT4X4 ViewProj = MathHelper::Identity4x4();
XMFLOAT4X4 InvViewProj = MathHelper::Identity4x4();
XMFLOAT3 EyePosW = { 0.0f, 0.0f, 0.0f };
float cbPerObjectPad1 = 0.0f;
XMFLOAT2 RenderTargetSize = { 0.0f,0.0f };
XMFLOAT2 InvRenderTargetSize = { 0.0f,0.0f };
float NearZ = 0.0f;
float FarZ = 0.0f;
float TotalTime = 0.0f;
float DeltaTime = 0.0f;
};
상수 버퍼를 만들었으니 셰이더도 수정해준다.
// color.hlsl
cbuffer cbPass : register(b1)
{
float4x4 gView;
float4x4 gInvView;
float4x4 gProj;
float4x4 gInvProj;
float4x4 gViewProj;
float4x4 gInvViewProj;
float3 gEyePosW;
float cbPerObjectPad1;
float2 gRenderTargetSize;
float2 InvRenderTargetSize;
float gNearZ;
float gFarZ;
float gTotalTime;
float gDeltaTime;
}
'DirectX' 카테고리의 다른 글
7.5 도형 예제 (0) | 2022.01.06 |
---|---|
7.4 도형 기하구조 (0) | 2022.01.06 |
7.2 렌더 항목 (0) | 2022.01.06 |
7.1 프레임 자원 (0) | 2022.01.05 |
6.10 기하구조 보조 구조체 (0) | 2022.01.03 |