본문 바로가기
DirectX/[팀플] Death's Door 모작

프로젝트 내의 셰이더 구조 고찰

by GameStudy 2022. 11. 21.

1. 클라 팀원이 에디터에서 셰이더의 종류를 고르고,

  해당 셰이더의 세기, 횟수 등을 조절할 수 있게끔 하고자 함.

  근데 문제는 여러가지 셰이더를 동시에 적용 되게끔 하는 것.

  1.1 셰이더 조절 관련 랜더러 클래스를 셰이더마다 만들고자 함.

    그럼 에디터에서 다양한 랜더러 클래스 관련 코드와의 동기화?가 필요함.

    즉, 코드 제너레이터 같은 느낌의 기능이 필요해져서 너무 배꼽이 큰듯하여

    포기했음.

  1.2 셰이더 조절 관련 랜더러 클래스는 딱 하나만 만듦.

    셰이더 파일도 한 개만 작성해서, 거기에 셰이더별 코드를 모아둔다?

    너무 길어지고, 가독성이 낮아질듯.

  1.3 셰이더 조절 관련 랜더러 클래스도 딱 하나, 셰이더 헤더 파일을 여러 개.

    셰이더 조절 관련 랜더러 클래스에서의 멤버 값을 보고 

    해당 셰이더 함수를 사용하게끔 함.

  1.4 위와 같은 내용으로 다른 팀의 셰이더 담당 팀원들과도 이야기 해봄.

    대부분의 팀에서 필요없는 기능이라 고민 중이지 않다고 함.

    한 팀의 담당 팀원과 이야기 나눠 봤는데, 나와 비슷한 결론을 내림.

  1.5 문제가 생김.

    shader file 내에서 리소스의 종류(ex. 2d, 3d, ...)와 셰이더의 종류(ex. blur, bloom, ...)에 따라

    사용하는 셰이더 리소스가 다름. 그런데, 셰이더 파일을 컴파일하는 순서가

    리소스 종류와 셰이더 종류가 결정나기 전에 진행됨.

    따라서 내가 원하는 리소스 종류 + 셰이더 종류에 필요한 셰이더 리소스는

    컴파일러에 의해 최적화 되어버림. 결국 유기.. 다른 방법 찾아야 함.

 

 

 

      

'DirectX > [팀플] Death's Door 모작' 카테고리의 다른 글

Deferred Rendering  (0) 2022.12.19
Post Process Effects  (0) 2022.11.24
나름대로 큰? 규모의 소스코드에서의 shared_ptr 고찰  (0) 2022.11.11
22-11-04  (0) 2022.11.04
22-11-02  (0) 2022.11.02

댓글