Direct3D에서는 Shader 코드들을 이식성 있는 바이트 코드로 컴파일 해야 한다.
그래야 이후에 컴파일 된 바이트 코드를 GPU에 맞게 최적의 네이티브 명령들로 컴파일 할 수 있다.
컴파일
컴파일은 아래와 같이 옵션들과 쉐이더 모델과 경로를 넘겨주는 형태로 할 수 있다. (아래는 책에서 만든 헬퍼 함수이다)
해당 함수를 거치면 컴파일된 바이트 코드가 반환된다.
Direct3D는 CPU자원을 ID3DBlob으로 담는다.
오프라인 컴파일
쉐이터 컴파일 시간이 오래걸릴 수 있으니, 미리 컴파일 해두는 방식이다.
언리얼 빌드할 때 오래걸리는 이유
책 284p를 참고하자.