Связь с шейдером «библиотеки функций»

#shader #webgl

#шейдер #webgl

Вопрос:

У меня есть несколько шейдеров в приложении webgl, которые используют несколько общих функций.
Эти общие функции довольно длинные и занимают несколько секунд для компиляции.
Возможно ли создать своего рода шейдер «библиотеки» и ссылаться на него из нескольких программ?

Ответ №1:

Нет, предварительная компиляция функций невозможна.

Вы можете использовать обработку строк для вставки функций в GLSL, но невозможно предварительно скомпилировать функции или скомпилировать их отдельно.

Возможно, можно скомпилировать ваши шейдеры асинхронно. Это не ускорит их компиляцию, но, по крайней мере, не приведет к зависанию браузера. Смотрите: https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile /

Комментарии:

1. По крайней мере, благодаря этому я могу дать некоторую обратную связь пользователю о том, что что-то происходит, и открепить пользовательский интерфейс. Спасибо!