Шейдеры любой сложности, как правило, не являются той вещью, которую вы можете загрузить и вставить в свой проект, как сменные винтики. Как правило, более интересные эффекты требуют достаточного сцепления с подсистемой рендеринга на стороне процессора для достижения своих результатов. Как правило, то же самое относится и к производительности - компромиссы производительности в отношении точности и качества по сравнению с количеством команд или конвейерной работой, как правило, коренятся в требованиях к конкретным приложениям.
В результате на самом деле не так уж много способов хранения репозиториев, о которых вы думаете. Книги GPU Gems предлагают хорошую коллекцию описаний техник в стиле кулинарной книги с примерами игрового и затененного кода, на которые вы, возможно, захотите взглянуть. Как и книги о шейдерах X.
Немного, но, по крайней мере, пара базовых шейдеров, с которых можно начать, также можно найти между моими файлами open sorce engine:
файлы .vsh содержат вершинные шейдеры, а файлы .fsh - фрагментные шейдеры, но я полагаю, это само по себе объясняет ...
На современном мобильном оборудовании вы должны сделать как можно больше в вершинном шейдере, и хитрость для хороших и быстрых игр состоит в том, чтобы написать много очень специализированных шейдеров, делающих всегда именно то, что нужно, чтобы что-то выглядело так, как это задумано. По крайней мере, это мой опыт работы с моим iPhone 3GS, который имеет тот же графический процессор, что и iPhone 4, но имеет меньше пикселей для доставки данных. Скорее всего, это уже намного лучше с Tegra 2 и даже лучше с яблочным чипом A5, но сейчас это означает, что вам не следует пытаться портировать шейдеры для настольных компьютеров на мобильные телефоны и ожидать отличную производительность: P Это также означает, что в полноэкранном режиме эффекты, особенно на устройствах с дисплеем с высоким разрешением, имеют тенденцию быть медленными.
Надеюсь, это тоже немного помогает :).
источник
может вырвать некоторые тайные знания отсюда http://glslsandbox.com/
источник
Когда я искал, как реализовать туман под OpenGL ES 2.0, я обнаружил ссылку на реализующую обратно совместимую функциональность OpenGL ES 2.0, которая отсутствует в OpenGL ES 2.0, например туман, на вершину, на фрагмент (пиксель). Вы можете посмотреть прямо в источник шейдеров .
Я также реализовывал освещение для каждого фрагмента, модифицируя этот пример, созданный ClockworkCoders (не OpenGL ES 2.0).
Вы также можете взглянуть на эти замечательные уроки от lighthouse3D
источник
Пакет AMD RenderMonkey содержит очень продвинутые шейдеры для OpenGL ES 2.0 среди примеров файлов.
Обратите особое внимание на пример шейдера Renderman в каталоге примеров GLES, который предоставляет более или менее простой шейдер OpenGL ES 2.0, который может послужить хорошей отправной точкой. И может также дать вам хорошее представление о том, почему не так много примеров хороших шейдеров. Основная проблема: шейдеры тесно связаны с конфигурацией сервера OpenGL ES и моделями, которые на них отображаются. По-прежнему. Шейдер Renderman - это отличная отправная точка, если вы можете оторвать его от инструмента REnderMonkey.
источник
Взгляните на GPUImage ( https://github.com/BradLarson/GPUImage ), это, вероятно, самая полная коллекция шейдеров, которые я когда-либо встречал в Интернете. Поскольку все они предназначены для работы с GPUImage, все они имеют одинаковую структуру, поэтому, если вы адаптируете одну и ту же структуру в своем приложении / игре, вы сможете быстро импортировать ряд различных эффектов.
Ура!
источник