Директивы комплиятора (#pragma)

Шейдеры и все-все-все.

Директивы комплиятора (#pragma)

Сообщение SuFour 01 фев 2021, 07:02

Доброго времени суток!

Работаю с Unity 2018.4 LTS и пописываю шейдеры на CG. Я не слишком опытный и пробиваюсь "боем" и возникла потребность написать мобильный шейдер под одно конкретное устройство с конкретным видеоускорителем, но из-за особенностей процесса отрисовки - очень остро стоит вопрос количества занимаемой шейдером памяти, да и на устройстве хранить тысячи вариантов шейдера как-то не хочется + компилируются они не мгновенно - не хочется ждать обработки тех вещей, который никогда не будут использоваться.

Собственно, сейчас мой шейдер компилируется с инструкцией multi_compile_fwdbase и хотелось бы прочитать, что именно в неё входит, чтобы сделать его более ориентированным на конкретное устройство с конкретными подходами в работе над проектами.

Как я узнал из документации - можно исключить ряд возможностей, заменив multi_compile на shader_feature. Например, multi_compile_fog лёгким движением руки превращается в shader_feature FOG_OFF FOG_LINEAR, оставляя поддержку только одного типа тумана или его отсутствия и для любых других вариантов шейдерный код просто не компилируется, ускоряя сборку, не занимает место в самой сборке и видеопамяти - короче сплошные преимущества.

multi_compile_fwdbase, если верить документации - это огромный пузырь, который будет содержать в себе множество вещей, связанных с лайтмапами и освещением разных типов, их куки. Поэтому расковырять этот пузырь особенно интересно как минимум для ликбеза, а уж если это ещё позволит сбить занимаемую видеопамять - вообще здорово. Но, к сожалению, документация заканчивает объяснения на том, что эта директива компилирует варианты, необходимые для Forward Base рендер-пайплайна и игриво переводит на страницу, не показывающую ничего конкретного.
Где можно найти более подробную информацию о директивах компилятора?
SuFour
UNец
 
Сообщения: 1
Зарегистрирован: 01 фев 2021, 06:16

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2