dxc 는 DirectX ShaderCompiler 라 해서 DirectX 의 HLSL 을 Vulkan 의 바이너리화된 SPIR-V 코드 (중간 쉐이더 코드) 로 뽑아내고,

SPIR-V Cross 는 이 SPIR-V 코드를 glsl 버전에 맞게 텍스트화된 glsl 코드로 뽑아내줌.


glslang 이라고 오픈소스 진영에서 만든 HLSL => SPIR-V 컨버터도 있긴 한데, 이건 dxc 보단 쫌 최적화가 덜 된 채로 나오는 듯함.

엔진 보강하면서 각종 그래픽스 API 의 쉐이더 코드를 어떻게 커버해야할지 고민하고 있는데, 아무 문제가 없으면 HLSL 을 공통 쉐이더 언어로 해서,

다른 API 에서 쉐이더 코드 컴파일할때는 dxc 랑 SPIR-V Cross 가지고 코드 변환한 뒤에 컴파일 하면 될 듯 싶음. 아마도



+ dxc API 어떻게 써야할지 문서도 없고 답도 없어서 그냥 glslang + SPIR-V 가야할듯