yuchi's Development Home
글 수 201
영 진도가 안나갔었는데 그래픽 카드를 바꾸고 나니 의욕이 좀 생겼다.
툰테이블 텍스쳐를 이용한 툰쉐이딩과 버텍스별 라이팅 처리를 끝냈다.
렌더텍스쳐 클래스도 제대로 구현해놨다.
렌더텍스쳐와 LiPSM을 이용해서 캐릭터 그림자를 구현했다.
이 와중에 갖가지 문제들을 해결하고 코드를 정리했다.
생각보다 오래 걸렸다. 렌더텍스쳐 코드를 완료한 시점에서 그림자 처리는 반나절이면 될거라고 생각했는데 사소한 문제들을 잡느라 결국 밤샜다.
기본 기능은 대충 됐다고 생각한다. 물처리와 포스트이펙트등이 남아있지만 어차피 dx9버젼으로 구현했던것들이니까 손쉽게 포팅할 수 있다..라고 생각하고 무조건 테셀레이션 들어간다.
참고로 현재 dx11버젼이 dx9버젼보다 프레임이 더 안나온다. 옵션을 싸그리 꺼도 더 안나온다.
dx9엔진에 있는 HW 오클루젼 컬링 기능이 빠져있다. 그 덕에 약간 더 느린것도 있는데 그보다는 CPU단에서 생각보다 많이 잡아먹어서 GPU가 놀고 있는 상황이다.
dx9 API가 악착같이 최적화되었었던 모양이다. dx11의 API는 dx9보다는 응답성이 떨어지는것 같다. 스레드 세이프하게 만들려고 그리 된 탓도 있겠고 멀티 스레드 렌더링 하면 되겠지..라고 생각해서 최적화에는 크게 신경쓰지 않은것 같다.
UI렌더링에서 프레임이 왕창 떨어지는데 GPU는 노는 상황이니 API호출을 줄이는게 속도향상의 지름길인듯 싶다. 나중에 시간되면 멀티스레드 렌더링으로 돌려야겠다.
위쪽 스샷이 dx9버젼
아래쪽 스샷이 dx11버젼
댓글 '2'
여치
cagetu / api가 왜 그런식으로 바뀌었는지 알거 같아요. 그렇게라도 안하면 훨씬 더 느렸을겁니다.
현재까지 이리저리 건드려본 결과... 디퍼러드 컨텍스트를 이용한 멀티 스레드 렌더링을 사용하면 어떨지 모르겠지만 확실히 api응답이 느립니다. dx9에 비해서 많이 느리네요.
dx9에서 풀옵션일때가 dx11에서 모든 옵션 다 껐을때에 비해 2배 빠른 정도니까요.
dx9에선 보통 gpu점유율 90%를 상회하는데 dx11에선 gpu점유율이 60%넘기는걸 보기 힘듭니다. 타이틀 화면처럼 스프라이트 한장만 열라 출력하는 경우 빼놓고요...
멀티 스레드 렌더링을 써야되는건지..
현재까지 이리저리 건드려본 결과... 디퍼러드 컨텍스트를 이용한 멀티 스레드 렌더링을 사용하면 어떨지 모르겠지만 확실히 api응답이 느립니다. dx9에 비해서 많이 느리네요.
dx9에서 풀옵션일때가 dx11에서 모든 옵션 다 껐을때에 비해 2배 빠른 정도니까요.
dx9에선 보통 gpu점유율 90%를 상회하는데 dx11에선 gpu점유율이 60%넘기는걸 보기 힘듭니다. 타이틀 화면처럼 스프라이트 한장만 열라 출력하는 경우 빼놓고요...
멀티 스레드 렌더링을 써야되는건지..
암튼 곁눈질로 DX11 정보를 알 수 있어서 좋네요.. ㅎㅎ