Shader 22.01.20

김주현·2022년 1월 20일

셰이더

목록 보기
18/18

한번의 렌더콜로 여러개의 정점을 그리자.

버텍스 버퍼를 추가로 만들고

이 버퍼에 라업룩포지션(월드행렬)을 저장하자.
->행렬을 표현하는 버텍스

인덱스버퍼 6개를 이용해서 사각형을 그릴때

행렬버텍스의 값을 던져주자.

버텍스버퍼를 만들어보자.

행렬 버텍스버퍼

VIBuffer_Point에서 버텍스버퍼를 하나더 만들어주자.

Create함수에 행렬의 사이즈 iNumInstance를 받아서 네컨 프로토로 던져주자.

다음 region InstanceBuffer

에서 CreateVertexBuffer해주자.

동적버퍼로 만들자-> 계속 락언락을 해야하기때문 USAGE에 DYNAMIC을 주자.

다음 락 을통해 m_pVBInstance에 행렬의 값을 넣어주자.

우선 항등행렬로 채워주자.

버텍스 버퍼를 두개만들었다 두개를 장치에 세팅해서 그려주는 처리를 해주자.

버퍼포인트의 Render_VIBUffer에서

SetStreamSource로 버텍스버퍼를 추가로 세팅해주자.

SetFVF는 잠시 주석걸자-> 두 버텍스버퍼의 FVF가 다르기때문

VI버퍼 터레인에 멤버변수로 디클레이션버퍼를 하나 만들자.

렌더VI버퍼에서 디클레이션버퍼의 함수호출해주자.

네컨프로토에서 d3dvertexelement9 Decl을 선언해서 넣어주자.

이제 SetFVF대신에 얘를 셋해주자.

정점을 4개로 늘렸다 한번 렌더할때 4개의 사각형이 그려질것이다.

렌더_VI버퍼에서 SetStreamSourceFreq(스트림,빈도)를 호출해야한다.

사각형 하나 그릴때마다 정점을 하나씩 꺼내온다 빈도를 1로 넣어주자.

복사생성자에서 인스턴스와 디클레이션 복사해주자.

셰이더 Rect에서 받아온 인자(라업룩포지션)로 행렬을 만들어주자.

스트림 소스를 호출할때마다 해주고
다그린다음 원상복귀 해줘야한다.

0개의 댓글