Есть 141 прекомпилированный шейдер и проект под Unity 5. Исходников шейдеров больше нет.
"Прекомпилированный" означает, что он уже собран под определенную платформу и вместо этого:
Синтаксис:
Используется csharp
VS_OUTPUT VS_Main(float4 InPos: POSITION0, float2 InTexCoord : TEXCOORD0)
У меня это:
Синтаксис:
Используется csharp
GpuProgramID 39543
Program "vp" {
SubProgram "d3d9 " {
Program "vp" {
SubProgram "d3d9 " {
Проблема в том, что с 2015 года Unity не поддерживает импорт прекомпилированных шейдеров из-за проблем с производительностью.
Но вот этот конструктор остался, и, вроде бы, всё ещё работает:
Синтаксис:
Используется csharp
Material(string contents)
Те места в коде, где шейдеры грузились из ассетов, я перевёл на него.
Но остались шейдеры, прописанные в сценах. Что делать с ними?
Может быть, есть какой-нибудь хитрый способ заставить Unity работать с прекомпилированными шейдерами, или декомпилятор, который превратит платформозависимый код в исходники?