OpenGL ES 2.0: хранилище качественных шейдеров [закрыто]

10

Могу ли я попросить вас предложить репозиторий высококачественных вершинных и фрагментных шейдеров OpenGL (OpenGL ES 2.0) , пожалуйста?

Я ищу пиксельные шейдеры (например, фонг ) и симмилярные. Было бы неплохо увидеть их побольше, чтобы иметь возможность выбирать между качеством и производительностью шейдера.

Bunkai.Satori
источник

Ответы:

16

Шейдеры любой сложности, как правило, не являются той вещью, которую вы можете загрузить и вставить в свой проект, как сменные винтики. Как правило, более интересные эффекты требуют достаточного сцепления с подсистемой рендеринга на стороне процессора для достижения своих результатов. Как правило, то же самое относится и к производительности - компромиссы производительности в отношении точности и качества по сравнению с количеством команд или конвейерной работой, как правило, коренятся в требованиях к конкретным приложениям.

В результате на самом деле не так уж много способов хранения репозиториев, о которых вы думаете. Книги GPU Gems предлагают хорошую коллекцию описаний техник в стиле кулинарной книги с примерами игрового и затененного кода, на которые вы, возможно, захотите взглянуть. Как и книги о шейдерах X.


источник
+1 за очень ценный комментарий. Привет джош Спасибо за ваш ответ. Что ж, если человек находится в начале разработки шейдеров, это действительно поможет увидеть, как реализованы некоторые стандартные шейдеры: например, как выполняется Phong (очень стандартный алгоритм), пиксельные шейдеры освещения и т. Д. Я понимаю вашу и ваши источники звучат как хороший материал. Я посмотрю на них. На данный момент лучшими ресурсами, которые я нашел, являются: книга OpenGL Shading Language и сайт Lighthouse 3D.
Bunkai.Satori
2
Поэтому я бы по-прежнему приветствовал репозитории качественных шейдеров , иллюстрирующих разработку интересных эффектов. Сценарии могут быть использованы в качестве основы для их объединения и создания новых привлекательных эффектов.
Bunkai.Satori
@Bunkai Satori Я думаю, что Джош имел в виду, что такого рода хранилища в основном не существуют.
Коммунистическая утка
@ Коммунистическая утка: Привет, спасибо за ваш комментарий. Я это понимаю. Я благодарен за каждый ответ здесь и за Джоша тоже. Однако, что мне пришло в голову, так это то, что интернет настолько велик, что, может быть, кто-то, кроме Джоша, вспомнит о том, чтобы увидеть места, вдохновленные конкретными шейдерами. Я могу себе представить, что компания / частное лицо, часто использующее шейдеры, собирала бы их, и некоторые из них могли бы также публиковать их. Ответ Джоша - мой кандидат на Принятый ответ в любом случае, поэтому, если никто не внесет свой вклад в ближайшее время, я закрою эту ветку, отмечая его ответ.
Bunkai.Satori
13

Немного, но, по крайней мере, пара базовых шейдеров, с которых можно начать, также можно найти между моими файлами open sorce engine:

файлы .vsh содержат вершинные шейдеры, а файлы .fsh - фрагментные шейдеры, но я полагаю, это само по себе объясняет ...

На современном мобильном оборудовании вы должны сделать как можно больше в вершинном шейдере, и хитрость для хороших и быстрых игр состоит в том, чтобы написать много очень специализированных шейдеров, делающих всегда именно то, что нужно, чтобы что-то выглядело так, как это задумано. По крайней мере, это мой опыт работы с моим iPhone 3GS, который имеет тот же графический процессор, что и iPhone 4, но имеет меньше пикселей для доставки данных. Скорее всего, это уже намного лучше с Tegra 2 и даже лучше с яблочным чипом A5, но сейчас это означает, что вам не следует пытаться портировать шейдеры для настольных компьютеров на мобильные телефоны и ожидать отличную производительность: P Это также означает, что в полноэкранном режиме эффекты, особенно на устройствах с дисплеем с высоким разрешением, имеют тенденцию быть медленными.

Надеюсь, это тоже немного помогает :).

Slin
источник
Привет, добро пожаловать в GDSE. Хороший ответ!
Нотабене
+1 за хороший ответ. Привет Слин, и добро пожаловать в GDSE. Спасибо за хороший ответ и за пример. Я рад, что вы поделились своим опытом программирования шейдеров для мобильной платформы. На данный момент я делаю все разработки на ПК, планирую портировать позже. Так что ваш опыт будет оценен тогда.
Bunkai.Satori
9

может вырвать некоторые тайные знания отсюда http://glslsandbox.com/

UlanB
источник
Привет УланБ. Эта коллекция выглядит великолепно. Подскажите, пожалуйста, как я могу скачать эти шейдеры. Я получаю сообщение об ошибке «WebGL не поддерживается» при попытке открыть любую коллекцию шейдеров в Chrome. Спасибо.
Винодтиру
Извините, я не могу предоставить вам техническую поддержку по совместимости с webgl. Возможно, ваше оборудование не поддерживает webgl. Также Linux Chrome Builds пока не поддерживает его.
UlanB
4

Когда я искал, как реализовать туман под OpenGL ES 2.0, я обнаружил ссылку на реализующую обратно совместимую функциональность OpenGL ES 2.0, которая отсутствует в OpenGL ES 2.0, например туман, на вершину, на фрагмент (пиксель). Вы можете посмотреть прямо в источник шейдеров .

Я также реализовывал освещение для каждого фрагмента, модифицируя этот пример, созданный ClockworkCoders (не OpenGL ES 2.0).

Вы также можете взглянуть на эти замечательные уроки от lighthouse3D

Мартин Пилч
источник
+1 за хороший комментарий. Привет Мартин, спасибо за ваши ссылки. да, я нашел Lighthouse3D, и это выглядит как качественный ресурс.
Bunkai.Satori
1

Пакет AMD RenderMonkey содержит очень продвинутые шейдеры для OpenGL ES 2.0 среди примеров файлов.

Обратите особое внимание на пример шейдера Renderman в каталоге примеров GLES, который предоставляет более или менее простой шейдер OpenGL ES 2.0, который может послужить хорошей отправной точкой. И может также дать вам хорошее представление о том, почему не так много примеров хороших шейдеров. Основная проблема: шейдеры тесно связаны с конфигурацией сервера OpenGL ES и моделями, которые на них отображаются. По-прежнему. Шейдер Renderman - это отличная отправная точка, если вы можете оторвать его от инструмента REnderMonkey.

rerdavies
источник
1

Взгляните на GPUImage ( https://github.com/BradLarson/GPUImage ), это, вероятно, самая полная коллекция шейдеров, которые я когда-либо встречал в Интернете. Поскольку все они предназначены для работы с GPUImage, все они имеют одинаковую структуру, поэтому, если вы адаптируете одну и ту же структуру в своем приложении / игре, вы сможете быстро импортировать ряд различных эффектов.

Ура!

ekscrypto
источник