본문 바로가기

Engine Development

Shader 빌드 시스템

728x90
반응형

UberShader 시스템을 구현하기는 했다.. 하지만... 문제는
어디까지 쉐이더 빌드 시스템을 쓸지가 문제...
모델 하나당 쉐이더가 생성되는 것을 기본으로 생각하면 리소스 관리 측면에서 큰 부하가 생기는 것 같고...
옵션이 변경될때마다 새로 빌드를 해야하는 문제...
어제 들은 애기로는 배틀필드3에서 그래픽 옵션 바꿔서 다시 시작하는데 2분이 걸린다는 애기를 듣고.... 당연히 쉐이더 최적화 부분에서는 if문이 없게 디파인 걸어서 모두 만드는게 정답인데 옵션조정시 2분이라.. 그것을 최적화하기 위해 미리 디파인된 쉐이더를 모두 뽑아서 데이터로 가지고 있자니 용량이 너무 크다고 하더라...
흠.... 여러가지 생각해 볼 문제는 더 있겠지만...
현재는 구현햇다는거에 만족해야지...
다음 구현 목표는 PostEffect시스템의 Xml화?
단순히 애기하면 XML을 읽어서 하드 코딩된 랜더링 파이프라인을 유연하게 바꿀수있는 시스템 구축이다! ㅋㅋ
728x90
반응형