hlsl 쉐이더 매트릭스가 각각 적용되지 않는 문제

본문 바로가기
사이트 내 전체검색

로그인
회원가입
IT Note

hlsl 쉐이더 매트릭스가 각각 적용되지 않는 문제
0

View 12,009  | 작성일2009.10.19 14:30

본문

쉐이더 사용시 한 오브젝트당 여러가지 매트릭스를 공급해 줘야 하는 일이 생기는데

여러개의 오브젝트들을 사용할 시에 마지막 공급한 매트릭스 기준으로 모든 오브젝트들이 적용되는 문제가 있습니다. 

원래 기본적으로 하나의 오브젝트당 쉐이더 코드를 일일이 적용시켜줘야 하는데 이런경우 쉐이더를 일일이 정해줘야 하기 때문에 속도가 너무 떨어집니다. 
다이렉트X 최근 SDK 에서는 이러한 문제를 해결하기 위해서 쉐이더를 한번만 적용시키고 매트릭스를 각각 따로 줄 수 있도록 해결됐습니다.

m_pEffect->SetMatrix(m_hmWVP, m_mViewProj);
m_pEffect->SetMatrix(m_hmWorld, m_mWorld);
m_pEffect->SetMatrix(m_hmView, m_mView);
m_pEffect->SetMatrix(m_hmProj, m_mProj);
m_pEffect->SetFloat(m_hSelection, m_fSelection);
이게 한 세트라면

m_pEffect->CommitChanges();

Commitchages() 를 써줘야 합니다. 

그리고 다음 세트를 공급해줄수 있는거죠

이것때문에 '악 왜 마지막꺼 밖에 적용이 안돼!!!' 이러면서 머리를 쥐어 뜯던 나날이 생각나는군요(먼산)

댓글목록

등록된 댓글이 없습니다.

IT Tip&Tech 목록

게시물 검색

접속자집계

오늘
2,408
어제
1,963
최대
6,399
전체
978,184
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
모바일 버전으로 보기