본문 바로가기

예전/3D

Direct3D의 그리기 2. 정점 버퍼



Direct3D의 그리기 연산



오늘의 목표


1) 기하 자료의 정의. 저장. 그리기. 를 위한 Direct3D 인터페이스와 함수를 파악한다.

2) 기본적인 vertex shader, pixel shader를 작성하는 법을 배운다.

3) rendering pipeline을 구성하는 방법을 파악한다.

4) Direct3D 효과 프레임워크를 이용해서 


논리적으로 연관된 셰이더들과 

렌더 상태들을 하나의 렌더링 기법으로 묶는 방법과

효과 프레임워크를 '셰이더 생성기'로 사용하는 방법

을 배운다.






GPU가 정점 배열에 접근하기 위해서는 정점을 buffer에 담아야한다. 

Direct3D 에서의 buffer는 ID3D11Buffer 인터페이스이며, 정점을 담는 버퍼를 정점 버퍼라고 부른다. 


버퍼는 자료를 담을 뿐만 아니라,

CPU나 GPU가 자료에 어떻게 접근할 수 있고,

버퍼가 파이프라인의 어디에 묶이는 지에 대한 정보도 가진다. 


정점 버퍼를 생성하려면 아래 과정을 거쳐야 한다.

 

1. D3D11_BUFFER_DESC struct : 생성할 버퍼 서술

2. D3D11_SUBRESOURCE_DATA struct : 버퍼의 초기화에 사용할 자료를 서술

3. ID3D11Device::CreateBuffer를 호출해서 버퍼를 생성한다. 



D3D11_BUFFER_DESC 


버퍼의 크기, 버퍼가 쓰이는 방식, 등이 담겨있다. 



'예전 > 3D' 카테고리의 다른 글

동차좌표  (0) 2014.12.05
D3D11 wireframe  (0) 2014.05.23
Direct3D의 그리기 1 정점의 입력과 배치  (0) 2014.04.01
DirectX11 초기화  (2) 2014.03.31
[OPENGL] quaterinion  (0) 2013.09.24