#shader #webgl
#шейдер #webgl
Вопрос:
У меня есть несколько шейдеров в приложении webgl, которые используют несколько общих функций.
Эти общие функции довольно длинные и занимают несколько секунд для компиляции.
Возможно ли создать своего рода шейдер «библиотеки» и ссылаться на него из нескольких программ?
Ответ №1:
Нет, предварительная компиляция функций невозможна.
Вы можете использовать обработку строк для вставки функций в GLSL, но невозможно предварительно скомпилировать функции или скомпилировать их отдельно.
Возможно, можно скомпилировать ваши шейдеры асинхронно. Это не ускорит их компиляцию, но, по крайней мере, не приведет к зависанию браузера. Смотрите: https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile /
Комментарии:
1. По крайней мере, благодаря этому я могу дать некоторую обратную связь пользователю о том, что что-то происходит, и открепить пользовательский интерфейс. Спасибо!