다음을 통해 공유


삼각형 목록

삼각형 목록은 격리된 삼각형의 목록입니다. 그들은 서로 가까이 있을 수도 있고 그렇지 않을 수도 있습니다. 삼각형 목록에는 3개 이상의 꼭짓점이 있어야 하고 꼭짓점의 총수는 3의 배수여야 합니다.

삼각형 목록을 사용하여 분리된 조각으로 구성된 개체를 만듭니다. 예를 들어 3D 게임에서 역장 벽을 만드는 한 가지 방법은 연결되지 않은 소형 삼각형을 대량으로 지정하는 것입니다. 그런 다음 삼각형 목록에 빛을 방출하는 재질 및 텍스처를 적용합니다. 그러면 벽에 있는 각 삼각형이 빛나게 됩니다. 사용자가 역장을 볼 때 삼각형 사이의 간격을 통해 벽 뒤의 장면을 부분적으로 볼 수 있습니다.

삼각형 목록은 가장자리가 날카롭고 고우러드 채색으로 음영 처리된 기본 형식을 만드는 데도 유용합니다. 얼굴 및 꼭짓점 법선 벡터(Direct3D 9)를 참조하세요.

다음 일러스트레이션은 렌더링된 삼각형 목록을 보여줍니다.

렌더링된 삼각형 목록 그림

다음 코드는 이 삼각형 목록의 꼭짓점을 만드는 방법을 보여줍니다.

struct CUSTOMVERTEX
{
    float x,y,z;
};

CUSTOMVERTEX Vertices[] = 
{
    {-5.0, -5.0, 0.0},
    { 0.0,  5.0, 0.0},
    { 5.0, -5.0, 0.0},
    {10.0,  5.0, 0.0},
    {15.0, -5.0, 0.0},
    {20.0,  5.0, 0.0}

};

아래 코드 예제에서는 IDirect3DDevice9::D rawPrimitive를 사용하여 Direct3D 9에서 이 삼각형 목록을 렌더링하는 방법을 보여줍니다.

//
// It is assumed that d3dDevice is a valid
// pointer to a IDirect3DDevice9 interface.
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

삼각형 스트립을 사용하여 서로 연결되지 않은 삼각형을 렌더링할 수도 있습니다. 이렇게 하려면 목록에서 퇴화 삼각형(즉, 크기가 0인 삼각형)을 지정합니다. 이렇게 하면 렌더링하는 동안 표시되지 않는 두 삼각형 사이에 선이 생성됩니다. 예를 들어 이전 예제의 첫 번째 및 마지막 삼각형만 렌더링하려면 다음 꼭짓점을 사용하여 꼭짓점 버퍼를 초기화합니다.

CUSTOMVERTEX Vertices[] =
{
    {-5.0, -5.0, 0.0},
    { 0.0,  5.0, 0.0},
    { 5.0, -5.0, 0.0},
    { 5.0, -5.0, 0.0}, // degenerate triangle
    {10.0,  5.0, 0.0}, // degenerate triangle
    {10.0,  5.0, 0.0},
    {15.0, -5.0, 0.0},
    {20.0,  5.0, 0.0}
};

Primitives