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 가야할듯
먼소린지 몰겟당
DirectX 는 OpenGL 과는 다르게 hlsl 이라고 다른 언어로 쉐이더 코드를 짜는데, 한 엔진에서 여러 API 에 적용되는 한 쉐이더를 만드는데 이게 API 마다 쉐이더 언어가 다르니까 손수 작성하는 수고를 덜려고, 한 언어로 쉐이더를 짠 다음에 파서 라이브러리로 여러 API 의 언어로 변환하고자 하는거임요
ㅇㅎ...
hlsl이 더 편해보이는데 진짜 편하냐?
갠적으론 hlsl 은 그렇게 많이 안 만졌지만은 gl 에 비해서 hlsl 이 더 간결하고 명확한 듯 싶음... 매트릭스 연산 빼고.
대단하다. 이글이글 거리는것도 셰이더로 가능? - dc App
이글이글 불타는거 말하는거면 그냥 스프라이트로 땜빵하던가 페를린 노이즈 + 그라데이션 써서 쉐이더로 이글이글하게 할 수는 있을듯 싶음요