ID3D11Device* device;
: 리소스를 생성하는 객체 (버퍼, 텍스쳐, 셰이더 등)
ID3D11DeviceContext* deviceContext;
: 생성된 리소스들을 사용해서 GPU 에게 명령을 실행 (각 렌더링 파이프라인 단계 별로 셋팅이 가능)
IDXGISwapChain* swapChain;
: 더블 버퍼링을 관리하는 객체 (백 버퍼와 화면에 그려질 프론트 버퍼를 관리하고 버퍼 화면 전환 함수 호출 가능 Present(1,0))
D3D11_VIEWPORT viewport;
: GPU가 렌더링 할 화면의 크기와 위치를 설정할 수 있는 구조체
ID3D11RenderTargetView* renderTargetView;
: GPU 가 최종으로 렌더링할 대상을 설정 ( 예 : 스왑체인이 관리하는 백 버퍼를 렌더 타겟으로 설정하여 최종 화면에 그려 출력 가능)
ID3D11VertexShader* vertexShader;
: 정점 정보를 받아 월드, 뷰, 투영 변환 등을 수행. 좌표 변환을 통해 계산된 정점들은 GPU 가 자동으로 클리핑하여 해당 정점은 그릴지 말지 판별한다.
ID3D11PixelShader* pixelShader;
: 각 픽셀의 최종 색상을 계산하는 GPU 프로그램 (텍스처, 조명, 그림자 등을 적용 가능)
ID3D11InputLayout* layout;
: 정점 정보의 입력 형식을 결정한다. GPU 에게 그 입력 형식을 알려준다. (정점의 내부 데이터의 구조를 지정해주는 역할)
ID3D11Buffer* vertexBuffer;
: 모델의 정점 데이터를 저장하는 버퍼 (POS, UV 같은 데이터)
ID3D11Buffer* indexBuffer;
: 정점을 그리는 순서를 저장하는 GPU 버퍼 (인덱스 기반으로 정점을 재사용하여 메모리 절약)
ID3D11Texture2D* ;
: 2D 리소스 저장하는 텍스
D3D11_MAPPED_SUBRESOURCE ms; // 기존 데이터 대신 새로운 데이터를 쓰기 위한 모드
// GPU 리소스를 CPU 에서 수정 가능하도록 맞춰준다.
deviceContext->Map(canvasTexture, NULL, D3D11_MAP_WRITE_DISCARD, NULL, &ms);
// ms 에 pixels를 복사해서 canvasTexture 를 수정
memcpy(ms.pData, pixels.data(), pixels.size() * sizeof(Vec4));
// GPU 가 다시 이 텍스처를 사용 가능하도록 잠금 해제
deviceContext->Unmap(canvasTexture, NULL);
'DX' 카테고리의 다른 글
Ray-Tracing (0) | 2025.03.17 |
---|---|
블러, 블룸 효과 (0) | 2025.03.05 |
렌더링 파이프라인에서 좌표 변환에 대해서 (0) | 2024.11.02 |
DX11 삼각형 띄우기 - 1 (2) | 2024.07.23 |
DX11 - 1 (2) | 2024.07.23 |