ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 버텍스 렌더링 하기
    Programing/DirectX 2008. 1. 26. 21:26

    버텍스 버퍼를 만들고 렌더링을 하기 위하여 아래와 같은 3단계를 거쳐야 한다.

    1. 정점 정보가 담겨 있는 정점 버퍼를 출력 스트림으로 할당 (SetStreamSource 메서드 사용)

    HRESULT SetStreamSource(
          UINT StreamNumber,
          IDirect3DVertexBuffer9 * pStreamData,
          UINT OffsetInBytes,
          UINT Stride
          );

    StreamNumber : 버텍스 버퍼를 연결할 스트림 소스를 지정, 스트림을 사용하지 않을시에 0

    pStreamData : 스트림과 연결하고자 하는 버텍스 버퍼로의 포인터

    OffsetInBytes : 렌더링 파이프라인으로 공급될 버텍스 데이터의 시작을 지정하는 스트림의 시작 오프셋 보통 0

    Stride : 스트림에 연결하고자 하는 버텍스 버퍼 내 각 요소의 바이트 수

    2. D3D에게 정정 셰이더 정보를 지정, 대부분의 경우에는 FVF만 지정한다.


    3. 기하 정보를 출력하기 위한 DrawPrimitive()함수 호출

    HRESULT DrawPrimitive( 
     D3DPRIMITIVETYPE PrimitiveType,
      UINT StartVertex,
      UINT PrimitiveCount);
    PrimitiveType : 그리고자 하는 기본형 타입 많은 종류의 타입이 있다

    StartVertex :
    버텍스 읽기를 시작할 버텍스 스트림 요소로의 인덱스 버텍스 버퍼내의 데이터를 일부만 그릴 수 있도록 유연성을 제공

    PrimitiveCount :
    그리고자 하는 기본형의 수

    예를 들면 다음과 같이 사용된다.



    g_pd3dDevice->SetStreamSource(0,g_pVB,0,sizeof(CUSTOMVERTEX));

    g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX);

    g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0,1);

    g_pd3dDevice->EndScene();














    참고로 모든 렌더링 메서드가 다음과 같은 구조로 되어 있다는 것을 명심하자


    _device->BeginScene();

    _ device->DrawPrimitive(.....);

    _device->EndScene();




    'Programing > DirectX' 카테고리의 다른 글

    자주 사용하는 API 함수  (1) 2008.02.16
    ID3DXSprite 사용하기  (1) 2008.02.13
    D3DXCreateTextureFromFileEx 함수  (0) 2008.01.30
    DrawPrimitive, DrawIndexedPrimitive, DrawPrimitiveUP, DrawIndexedPrimitiveUP  (1) 2008.01.28
    렌더링 파이프라인  (0) 2008.01.27
    Lock()  (0) 2008.01.26
    CreateVertexBuffer 메서드  (0) 2008.01.26
    CreateWindow() 함수  (0) 2008.01.25
    WNDCLASSEX 구조체  (0) 2008.01.25
    VS2005 에서 DirectX 9 AppWizard 만들기  (0) 2008.01.09
Designed by Tistory.