Material 데이터 처리에 대한 노트
아주 유연하진 않아도 최대한 많은 종류의 재질을 지원하고 싶다. (정확히는 여러 종류의 BRDF를 위한 Material 데이터를 통합적으로 관리하고 싶다.)이 상황에서, 가장 쉽게 처리하는 방법은 재질 타입 enum (또는 플래그)를 공통 데이터로 하고, 실제 데이터는 union으로 정의하면 최소한의 데이터 크기로 여러 종류의 데이터 묶음을 통합하여 관리할 수 있다.아쉽게도, HLSL에서는 아직 union을 지원하지는 않는다( Unions | hlsl-specs). 하지만 ByteAddressBuffer를 사용한다면 동일한 처리 방식을 취할 수 있다.여기서 좀 더 유연하게 만들고 싶은 경우, 엔진에 존재하는 모든 재질당 하나의 저장소를 할당하고, Scene Data를 GPU에 동기화 시켜주는 과정에서 실..
2025.03.23