[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
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • C++ (4)
      • CS (0)
      • Graphics (32)
      • DLL (2)
      • Shader (7)
      • Project (4)
      • ETC (1)
  • 블로그 메뉴

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

    • YouTube
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바