[D3D] Lock Unlock SetStreamSource VertexBuffer IndexBuffer DrawPrimitive 개념 정리

Lock()
버텍스 버퍼의 메모리에 대한 독점( 외부 접근 차단 )과 버텍스 버퍼의 포인터를 얻는다.

Unlock()
버텍스 버퍼의 메모리에 대한 독점을 해제한다.

SetStreamSource
버텍스 버퍼를 스트림 소스에 연결한다.

StreamSource
버택스 버퍼에 있는 정보를 파이프 라인으로 보내기 위한 연결 매개체이다.

Stream
프로그램과 하드웨어 장치 사이를 연결하는 것과 그것을 주고 받는 것을 Stream이라 한다.

VertexBuffer
정점의 정보를 저장해놓는 버퍼이다.
1.버텍스 버퍼 생성( CreateVertexBuffer )
2.Lock()
3.데이터 복사 혹은 삽입
4.Unlock()
5.그리기 관련 작업
6.해당 버텍스 사용이 끝날 경우( 가장 흔히 프로그램 종료시 )에 버텍스 Release()

IndexBuffer
VertexBuffer만으로 무언가를 그리거나 할 때는 중복되는 버텍스가 많아져서 비효율적이다. 그래서 IndexBuffer를 통해 버텍스를 인덱싱하여 그 인덱스로 버텍스를 불러내 작업을 하므로 훨씬 효율적이고 빠르다
1.CreateIndexBuffer
2.Lock()
3.데이터 복사 혹은 삽입
4.Unlock()
5.그리기 관련 작업
6.마지막에 Release()

DrawPrimitive
버텍스 버퍼를 통해 렌더링
D3DPT_POINTLIST 버텍스를 점으로 렌더링
D3DPT_LINELIST 버텍스를 2개씩 짝지어 선을 긋는다. 홀수면 실패
D3DPT_LINESTRIP 버텍스로 연결된 선을 긋는다.
D3DPT_TRIANGLELIST 버텍스 3개를 그룹으로 삼각형 렌더링한다.
D3DPT_TRIANGLESTRIP 버텍스를 삼각형의 전개도로 렌더링한다.
D3DPT_TRIANGLEFAN 버텍스로 삼각형을 그리는데, 한개의 정점을 공유하여 삼각형을 연결해서 그리는 형태이다.
D3DPT_FORCE_DWORD 실제로 사용하진 않고, D3DPRIMITIVETYPE 열거형을 32 비트 사이즈에 컴파일한다.


이 글을 공유하기

댓글

Designed by JB FACTORY