[Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (1)

2021. 12. 19. 05:25·Shader

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 하는 방식.

 

Constant Buffer 생성 방식

 

- Sampler 같은 경우는 설정값이 필요하여 Constant Buffer와 같은 방식으로 동일한 이름으로 선언해준 후 

  Engine 측에서 Sampler State를 생성, 1:1 대응하는 Class의 Hash_Code를 Key값으로 등록한 후

  Shader에 해당하는 Sampler 설정하는 방식

 

Sampler State 생성 방식

 

- 나머지 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
'Shader' 카테고리의 다른 글
  • [Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (3)
  • [Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (2)
  • [Shader / HLSL] RunTime Compile Shader / Shader Macro
  • [Shader / HLSL] Shader Reflection
KyuHwang
KyuHwang
  • KyuHwang
    DirectX Engine
    KyuHwang
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • C++ (4)
      • Graphics (35)
      • DLL (2)
      • Shader (7)
      • Project (4)
      • ETC (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • YouTube
  • 공지사항

  • 인기 글

  • 태그

    Win API
    Order Independent Transparency
    Project
    Return Type Operator
    animation constraint
    Alpha Blending
    C ++
    Explicit Linking
    Define Macro
    Shader Resource 관리
    bc format
    nvtt
    texture block compression
    DLL Interface
    rigging chain
    Shader Macro
    animation retargeting
    Define Function
    Directx11
    dll
    Shader Reflection
    DirectX 2D
    mobile format
    Hash Code
    Implicit Linking
    std::is_base_of
    std::enable_if
    shader
    RunTime Compile Shader
    hlsl
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
KyuHwang
[Shader / HLSL] Shader Reflection & Define Macro를 이용한 Resource 관리 (1)
상단으로

티스토리툴바