본문 바로가기

DX

DX11 용어 간단 정리

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