Replicated

Constant Buffer 본문

DirectX 11

Constant Buffer

라구넹 2026. 8. 1. 21:47

결국 게임이니 버텍스 위치가 바뀌어야 하는데

D3D11_USAGE_IMMUTABLE

이전에 썼던 이건 리드 온리임

모양 자체는 어떤 기준점을 보고 기하학적 형태는 불변한 경우가 많음. 스태틱 메시 같은?

기하학적인 도형은 냅두고 버텍스 쉐이더에서 이동시키면 간단하게 끝남

cbuffer TransformData : register(b0)
{
    float4 offset;
}

VS_OUTPUT VS(VS_INPUT input)
{
    VS_OUTPUT output;
    output.position = input.position + offset;
    //output.color = input.color;
    output.uv = input.uv;
    
    return output;
}

 

버퍼 0번 슬롯에 연결해두고

 

void Game::Update()
{
	_transformData.offset.x = 0.3f;
	_transformData.offset.y = 0.3f;

	D3D11_MAPPED_SUBRESOURCE subResource;
	ZeroMemory(&subResource, sizeof(D3D11_MAPPED_SUBRESOURCE));

	_deviceContext->Map(_constantBuffer.Get(), 0, D3D11_MAP_WRITE_DISCARD, 0, &subResource);
	::memcpy(subResource.pData, &_transformData, sizeof(_transformData));
	_deviceContext->Unmap(_constantBuffer.Get(), 0 );
}

업데이트에서 CPU데이터인 트랜스폼 데이터를 콘스턴트 버퍼에 넣어두고

 

_deviceContext->VSSetConstantBuffers(0, 1, _constantBuffer.GetAddressOf());

렌더에서 0번 버퍼 슬롯에 연결

 

이동했다

 

'DirectX 11' 카테고리의 다른 글

RasterizerState, SampleState, BlendState  (0) 2026.08.01
텍스처, UV  (0) 2026.08.01
삼각형 띄우기  (0) 2026.08.01
장치 초기화  (0) 2026.08.01
Windows API로 진입점 만들기  (0) 2025.04.07