hlsl 쉐이더 매트릭스가 각각 적용되지 않는 문제 > IT Tip&Tech

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


회원로그인

IT Tip&Tech

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

페이지 정보

작성자 black_H 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일09-10-19 14:30 조회10,736회 댓글0건

본문

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

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

원래 기본적으로 하나의 오브젝트당 쉐이더 코드를 일일이 적용시켜줘야 하는데 이런경우 쉐이더를 일일이 정해줘야 하기 때문에 속도가 너무 떨어집니다. 
다이렉트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 목록

게시물 검색

접속자집계

오늘
664
어제
700
최대
2,826
전체
312,597
회사소개 개인정보취급방침 서비스이용약관
Copyright © LittleCandle All rights reserved.
문의메일 : littlecandle99@gmail.com
상단으로
모바일 버전으로 보기