Shader Resource 관리 방식
현재 사용하고 있는 Shader Reflection을 이용하여 Constant Buffer와 1:1 대응하는 Struct의 Hash_Code를 이용하여
List를 생성한다.
Shader Resource Update 동작 과정
- Shader에 선언되어 있는 Constant Buffer와 같은 이름을 갖는 Struct 생성.
- Define Marcro를 이용하여 해당 Class의 Hash_Code를 Hash List에 등록.
- Shader Load 후 Shader Reflection을 통해 해당 Constant Buffer의 이름을 Hash Table에서 검색 후 Buffer List의
Key 값으로 사용
- 해당 Constant Buffer Update시 1:1 대응하는 Struct를 넘겨 받아 해당 Hash_Code 검색후 Update 하는 방식.
- Sampler 같은 경우는 설정값이 필요하여 Constant Buffer와 같은 방식으로 동일한 이름으로 선언해준 후
Engine 측에서 Sampler State를 생성, 1:1 대응하는 Class의 Hash_Code를 Key값으로 등록한 후
Shader에 해당하는 Sampler 설정하는 방식
- 나머지 Shader Resource들도 동일하게 해당 Shader 내의 Name과 동일한 Struct 선언하여 관리한다.
'Shader' 카테고리의 다른 글
[Shader / HLSL] Shader Reflection & Define Macro Resource Hash Table 을 이용한 Resource 동기화 (0) | 2022.01.17 |
---|---|
[Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (3) (0) | 2021.12.19 |
[Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (2) (0) | 2021.12.19 |
[Shader / HLSL] RunTime Compile Shader / Shader Macro (0) | 2021.12.19 |
[Shader / HLSL] Shader Reflection (0) | 2021.12.18 |