티스토리 뷰

Game/DirectX 11

Renderer (1) - Hierography3

newpolaris 2017. 4. 22. 22:16

봐두기만 한건 결국 머리에 안남는다.

결국 다시 보고 추가하는 중

Hierography는 Resource로 추상화 시켜서 리소스를 다루는 건 괜찮은 거 같다

int 를 들고 hi/low 부분으로 막 결합해서 리소스를 가르키고,

ParameterWriter라는 것을 둬서 이 index를 가지고, 해당 계층 구조에서

실제 쓰일 때 변경 되었다면 update 하게 된다

pEntity->Parameters.SetVectorParameter( L"gFresnelR0", { 0.001f, 0.001f, 0.001f, 0.f } );
m_pRenderer11->m_pParamMgr->SetWorldMatrixParameter(&m_WorldMatrix);
m_pScene->Parameters.SetVectorParameter( L"gEyePosW", cameraPos );

App.cpp

문제는 index로 참조하는데 안전 장치가 없다는 것, SetStructArrayParameter 와 같이 빠진거 구현했는데 index를 다른 class 의 개체를 구하니 잘못된 Resource가 setting 된다.

Resource 로 추상화하였기에 다른 Resource 가 정상적으로 setting 되니 디버깅에 고생함

다른 건 Writer로 분리해뒀기에 코드를 꽤 짜야한다. 어짜피 한번만 짜니까 상관없나?

그 다음 특이한 건,

m_pMaterial = MaterialPtr(new MaterialDX11());
m_pMaterial->Params[VT_PERSPECTIVE].bRender = true;
m_pMaterial->Params[VT_PERSPECTIVE].pEffect = pEffect;

Material 에 shader가 달리고 Params에 enum으로 특정 유형이 정해져 있다.

2 Pass 등은 별도의 SceneRenderTask 를 상속받아서 호출 chain 을 만드는 것 같다.

'Game > DirectX 11' 카테고리의 다른 글

SSAO (1)  (1) 2017.05.05
Renderer (2) - Constant Buffer  (0) 2017.04.23
ACC (1)  (0) 2017.04.21
PN-Triangle (4)  (0) 2017.04.21
PN-Triangle (3)  (0) 2017.04.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크