이것으로 정점 버퍼에 정점이 격납되었습니다. 다음은 표시를 렌더링합니다. 표시의 렌더링에서는 먼저 백 버퍼를 클리어 해 청색으로 하고 그 다음 BeginScene 을 호출합니다.
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0L ); g_pd3dDevice->BeginScene();
정점 버퍼로부터 정점 데이터를 렌더링 하려면 몇 단계를 거칩니다. 우선 스트림 소스를 설정합니다. 이 때 스트림 0을 사용합니다. 스트림 소스는
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
첫번째 파라메터는 스트림 번호, 두번째 파라메터는 정점 버퍼로의 포인터 입니다. 세번째 파라메터는 스트림의 선두로부터 정점 데이터의 선두까지의 오프셋입니다. 이 예에서는 0입니다. 마지막 파라메터는 정점 선언의 각요소의 바이트 수입니다.
다음은
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
SetFVF 의 유일한 파라메터가 정점 데이터 레이아웃을 정의하는 고정 정점 함수 코드입니다.
다음은 아래의 샘플 코드에 나오는 것처럼
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );
DrawPrimitive 가 받아들이는 1번째의 파라메터는 Direct3D에 드로우하는 프리머티브의 종류를 지시하는 플래그입니다. 이 샘플에서는 D3DPT_TRIANGLELIST 플래그를 사용해 삼각형의 리스트를 지정합니다. 두번째 파라메터는 처음 로드할 정점의 인덱스입니다. 세번째 파라메터는 드로우할 프리머티브의 수를 나타냅니다. 이 샘플에서는 1개의 삼각형만 드로우하므로 이 값은 1이 설정됩니다.
각종 프리머티브의 자세한 내용에 대해서는 「프리머티브」를 참조해 주십시오.
마지막으로 신을 종료한 후 백 버퍼를 프론트 버퍼에 할당합니다. 이 예를 다음 코드에 나타냈습니다.
g_pd3dDevice->EndScene(); g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
백 버퍼를 프론트 버퍼에 할당하면 클라이언트 윈도우에 3개의 다른 컬러의 포인터를 가진 삼각형이 표시됩니다.
이 튜토리얼에서는 정점을 사요해서 지오메트릭 쉐이프를 렌더링하는 방법을 다뤘습니다.「튜토리얼 3: 행렬의 사용방법」에서 행렬의 컨셉과 그 사용방법을 소개합니다.