영 진도가 안나갔었는데 그래픽 카드를 바꾸고 나니 의욕이 좀 생겼다.
툰테이블 텍스쳐를 이용한 툰쉐이딩과 버텍스별 라이팅 처리를 끝냈다.
렌더텍스쳐 클래스도 제대로 구현해놨다.
렌더텍스쳐와 LiPSM을 이용해서 캐릭터 그림자를 구현했다.
이 와중에 갖가지 문제들을 해결하고 코드를 정리했다.
생각보다 오래 걸렸다. 렌더텍스쳐 코드를 완료한 시점에서 그림자 처리는 반나절이면 될거라고 생각했는데 사소한 문제들을 잡느라 결국 밤샜다.
기본 기능은 대충 됐다고 생각한다. 물처리와 포스트이펙트등이 남아있지만 어차피 dx9버젼으로 구현했던것들이니까 손쉽게 포팅할 수 있다..라고 생각하고 무조건 테셀레이션 들어간다.
참고로 현재 dx11버젼이 dx9버젼보다 프레임이 더 안나온다. 옵션을 싸그리 꺼도 더 안나온다.
dx9엔진에 있는 HW 오클루젼 컬링 기능이 빠져있다. 그 덕에 약간 더 느린것도 있는데 그보다는 CPU단에서 생각보다 많이 잡아먹어서 GPU가 놀고 있는 상황이다.
dx9 API가 악착같이 최적화되었었던 모양이다. dx11의 API는 dx9보다는 응답성이 떨어지는것 같다. 스레드 세이프하게 만들려고 그리 된 탓도 있겠고 멀티 스레드 렌더링 하면 되겠지..라고 생각해서 최적화에는 크게 신경쓰지 않은것 같다.
UI렌더링에서 프레임이 왕창 떨어지는데 GPU는 노는 상황이니 API호출을 줄이는게 속도향상의 지름길인듯 싶다. 나중에 시간되면 멀티스레드 렌더링으로 돌려야겠다.
위쪽 스샷이 dx9버젼
아래쪽 스샷이 dx11버젼