OpenGL ES 2.0: сховище шейдерів якості [закрито]


10

Чи можете я ласкаво попросити запропонувати мені сховище високоякісних вершин та фрагментів шрифтів вершин та фрагментів OpenGL (OpenGL ES 2.0) ?

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

Відповіді:


16

Шейдери будь-якої складності, як правило, не такі речі, які ви можете завантажувати та додавати у свій проект, як-от взаємозамінні гвинтики. Як правило, більш цікаві ефекти вимагають неабиякого зв’язку з підсистемою візуалізації на стороні процесора для досягнення їх результатів. Це, як правило, стосується продуктивності - компроміси щодо продуктивності щодо точності та якості щодо кількості інструкцій або конвеєрних робіт, як правило, кореняться в конкретних вимогах програми.

Як наслідок, насправді не так багато на шляху сховищ, про які ви думаєте. Книги з графічних каменів GPU пропонують хорошу колекцію описів методів кулінарної книги з іграми, і з затіненими прикладами коду, які, можливо, ви хочете оглянути. Так само роблять книги Shader X.


+1 за дуже цінний коментар. Привіт, Джош. Дякую за Вашу відповідь. Ну, якщо людина перебуває на початку розвитку шейдера, то це дійсно допоможе побачити, як реалізуються деякі стандартні шейдери: Наприклад, як виконується Phong (що є дуже стандартним алгоритмом), піксельні освітлювальні шейдери тощо. Я розумію, що пункт, і джерела, які ви надали, звучать як хороший матеріал. Я погляну на них. Поки що найкращі знайдені нами ресурси - це книга OpenGL Shading Language Book та Lighthouse 3D-сайт.
Бункай.Саторі

2
Тому я все-таки вітаю сховища гарних шейдерів , що ілюструють розвиток цікавих ефектів. Сценарії можна використовувати як підвал для їх поєднання та створення нових привабливих ефектів.
Bunkai.Satori

@Bunkai Satori Я думаю, що Джош мав на увазі те, що в основному такі сховища не існують.
Качка комуніста

@ Комуністична качка: Привіт, дякую за ваш коментар. Я розумію, що. Я вдячний за кожну відповідь тут і за Джоша. Однак, що мені прийшло в голову, це те, що Інтернет настільки великий, що, можливо, хтось, окрім Джоша, згадає, як побачив місця, де надихнулися певні шейдери. Я можу собі уявити, що компанія / небайдужий, який багато використовує шейдери, збирає їх, а деякі з них можуть також публікувати їх. Відповідь Джоша в будь-якому випадку є моїм кандидатом на прийняту відповідь , тож якщо ніхто скоро не зробить внесок, я закрию цю тему моєю відміткою його відповіді.
Бункай.Саторі

13

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

файли .vsh містять вершинні шейдери, а файли .fsh - фрагменти шейдерів, але я думаю, що це selfexplaining ...

На сучасному мобільному апаратному забезпеченні ви повинні максимально робити всередині вершинного шейдера, і фокус для чудових і швидких ігор полягає в тому, щоб писати багато дуже спеціалізованих шейдерів, які роблять завжди саме те, що потрібно, щоб щось виглядало так, як це призначено. Принаймні, такий мій досвід роботи з моїм iPhone 3GS, який має той же gpu, що і iPhone 4, але має менше пікселів для передачі даних. Це, мабуть, вже набагато краще з тегрою 2, а ще краще з чіпами яблука A5, але наразі це означає, що не варто намагатися переносити шейдери для настільних gpus на мобільні телефони та очікувати великої продуктивності: P Це також означає, що повноекранний ефекти, особливо на пристроях з високою роздільною здатністю дисплея, як правило, повільні.

Сподіваюсь, це теж трохи допомагає :).


Привіт, ласкаво просимо до GDSE. Гарна відповідь!
Нотабене

+1 за гарну відповідь. Привіт, Слін, і ласкаво просимо на GDSE. Дякую за гарну відповідь та за приклади. Я радий, що ви поділилися своїм досвідом з програмуванням шейдерів для мобільної платформи. У цей момент я займаюся усіма розробками на ПК, планую пізніше портувати. Тож ваш досвід буде оцінений тоді.
Бункай.Саторі

9

може вийняти звідси деякі затаємничі знання http://glslsandbox.com/


Привіт, УланБ. Ця колекція виглядає чудово. Скажіть, будь ласка, як я можу завантажити ці шейдери. Коли я намагаюся відкрити будь-яку колекцію шейдерів у хромі, я отримую помилку: "WebGL не підтримується". Дякую.
Vinodtiru

Вибачте, я не можу надати вам технічну підтримку щодо сумісності webgl. Можливо, ваше обладнання, яке не підтримує webgl. Також Linux Chrome Builds ще не підтримує його.
UlanB

4

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

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

Ви також можете поглянути на ці чудові навчальні посібники від маяка3D


+1 за хороший коментар. Привіт Мартіне, дякую за ваші посилання. так, я знайшов Lighthouse3D, і це схоже на якісний ресурс.
Бункай.Саторі

1

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

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


1

Погляньте на GPUImage ( https://github.com/BradLarson/GPUImage ), його, мабуть, найбільш повну колекцію шейдерів, які я знайшов в Інтернеті досі. Оскільки всі вони розроблені для роботи з GPUImage, всі вони мають однакову структуру, тому, якщо ви адаптуєте ту саму структуру у своєму додатку / грі, ви зможете швидко імпортувати ряд різних ефектів.

Ура!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.