삼각형으로 지면 만들기 NHN NEXT 장문익
Triangle List를 이용한 지면 생성
vertex buffer와 index buffer를 사용하여 2차원 배열처럼 나열된 정점을 인덱스로 연결하여 격자
를 만든다.
지면 생성에서 가장 중요한 것은 인덱스를 만드는 것이다.
그리고 격자를 구성하는 정점 인덱스를 식으로 만들어 설정하여야 한다.
정점의 개수
가로 3개, 세로 2개의 격자로 만들어진 지면은
몇 개의 정점으로 이루어져 있는가?
당연히 (3+1)*(2+1) = 12
정점의 총 개수
= (가로 격자 개수 + 1) * (세로 격자 개수 + 1)
정점의 위치 설정
지면을 생성할 것이므로 정점은 각각 일정한
거리를 두고 생성한다.
시작 위치를 설정하고, 일정 거리만큼 계산하
여 정점의 위치를 정한다.
시작 위치
= -0.1f * 격자 가로 개수 * 정점 간격 * 0.5f
Drawing Two Triangles without Indexing
DrawPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
0, // StartVertex
2 ); // PrimitiveCount
Drawing Two Triangles with Indexing
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
0, // BaseVertexIndex
0, // MinIndex
4, // NumVertices
0, // StartIndex
2 ); // PrimitiveCount
Drawing One Triangle with Indexing
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
0, // BaseVertexIndex
0, // MinIndex
4, // NumVertices
3, // StartIndex
1 ); // PrimitiveCount
Drawing One Triangle with Offset Indexing
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
50, // BaseVertexIndex
0, // MinIndex
4, // NumVertices
3, // StartIndex
1 ); // PrimitiveCount
참고자료
http://nowcampus.tistory.com/entry/10
http://msdn.microsoft.com/en-us/library/windows/desktop/bb147325(v=vs.85).aspx