|
1 / 1 / 1
Регистрация: 04.12.2009
Сообщений: 18
|
||||||
Оптимизация шейдера (GLSL ES)30.09.2012, 00:36. Показов 5234. Ответов 15
Метки нет (Все метки)
Уважаемые форумчане, помогите оптимизировать шейдер:
на компе(в RenderMonkey) всё нормально, выдаёт ~150fps, на трубе(HTC Wildfire S) - чуть меньше 10. уменьшать ShineIntensity(Число сэмлов) пробовал - бесполезно.Что 10 сэмплов что 100 разница в 5-6 fps. Собственно сам шейдер:
0
|
||||||
| 30.09.2012, 00:36 | |
|
Ответы с готовыми решениями:
15
Подкиньте код шейдера на GLSL для Qml-я, чтоб во круг мышки какие - нибуть искорки сыпались ) Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация Аналог шейдера |
|
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
||
| 30.09.2012, 00:46 | ||
|
Добавлено через 6 минут А, чёт я не вчитался. Давая для начала объясни, чего оно должно делать.
0
|
||
|
1 / 1 / 1
Регистрация: 04.12.2009
Сообщений: 18
|
||
| 30.09.2012, 00:49 [ТС] | ||
|
Заранее расчитать координаты и забить в массив? а потом применять их как без цикла? Если есть другие способы заблюрить картинку - внимательно вас выслушаю. Это шейдер God Rays. После зум блюра(цикл),накладывается исходник.
0
|
||
|
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
| 30.09.2012, 00:53 | |
|
Вообще странно, что уменьшение числа итераций не даёт нормального прироста, может быть узкая часть где-то ещё?
0
|
|
|
1 / 1 / 1
Регистрация: 04.12.2009
Сообщений: 18
|
||
| 30.09.2012, 01:01 [ТС] | ||
|
Можть точность флоатов уменьшить(есть ли вообще в ES-ке вещественные числа с половинной точностью, тобишь 2-хбайтовые)? Или сделать блюр по альфа-каналу, а потом какнить смешать с оригиналом?
0
|
||
|
1 / 1 / 1
Регистрация: 04.12.2009
Сообщений: 18
|
|
| 02.10.2012, 15:40 [ТС] | |
|
0
|
|
|
|
|
| 02.10.2012, 15:53 | |
|
Я конечно не спец по шейдерам, но:
Может тормоза из-за gl_FragColor? То есть мы читаем значение и пишем в переменную предназначенную только для записи. Я бы для начала завёл vec4 temp вместо gl_FragColor а в конце gl_FragColor = temp; Добавлено через 2 минуты Кстати для чего объявлена blurried? И какое стартовое значение gl_FragColor?
0
|
|
|
1 / 1 / 1
Регистрация: 04.12.2009
Сообщений: 18
|
||
| 02.10.2012, 16:10 [ТС] | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 18.02.2015
Сообщений: 6
|
|
| 18.02.2015, 21:56 | |
|
Сорри за некропостинг, но во всех GL учебниках русским по белому написано: "Никаких циклов и условий в шейдерах. Только линейная логика ибо нелинейность = дичайшие тормоза". Автор умудрился показать, как нельзя писать шейдеры нарушив оба простых правила и чему-то даже удивился.
0
|
|
|
|
|
| 19.02.2015, 12:47 | |
|
Необоснованная глупость. Сейчас не начало 2000-х, современные компиляторы, в том числе и те, которые компилируют GLSL шейдеры наверняка умеют "разворацивать" циклы.
Более того, количество итераций может быть не постоянным и различаться от вызова к вызову, например через uniform-переменную. Как тогда быть в этом случае? В этих книгах не написано что вообще не надо шейдерами пользоваться и использовать вершинное освещение и т.п.?
0
|
|
|
0 / 0 / 0
Регистрация: 18.02.2015
Сообщений: 6
|
||
| 19.02.2015, 13:21 | ||
![]() http://4pda.ru/forum/index.php... ry20580217
0
|
||
|
|
||
| 19.02.2015, 13:46 | ||
|
forenheith, где в твоём сообщении упоминание про Android?
0
|
||
|
|
|
| 19.02.2015, 14:10 | |
|
Как я понял gl_FragColor должен восприниматься только как для записи и ни как иначе.
Об этом пишут во многих форумах.(opengl.org, gamedev.ru) Хотя на тех же форумах пишут что для nVidia фокус с чтением проходит нормально. Однако, в стандарте вроде такого быть не должно(я быстро не нашёл офиц. подтвержения). Вообще nVidia сильно отклоняется от стандарта(и не только в этом случае), что значительно затрудняет разработку кроссплатформенного шейдера коим является GLSL. Возможно, это тоже является ключом к падению производительности. О циклах. Безусловно существуют алгоритмы где сложно обойтись без циклов. И конечно любой цикл значительно замедляет выполнение шейдера. Я как-то экперементировал с OpenCL(архитекута та же что и GLSL) и замедление было чуть ли не по геометрической прогрессии в зависимости от кол-ва итераций цикла. Причём на nVidia при кол-ве интераций где-то в районе 1000(в зависимости от GPU) происходило падение драйвера. На AMD падения не было, но скорость выполнения была не удовлетворительной для моей задачи. СтОит отметить, что не глубокие циклы(несколько десятков) исполнялись достаточно быстро и на всех GPU. Всё тестилось на нескольких GPU(GTX760, GT640LE, HD7970, а также CPU i7 3612QM, FX8120, да, это вам не CUDA). Учитывая что ТС пытается запускать циклы на мобилках, где GPU, мягко говоря, слабый, то, скорее всего, даже не глубокие циклы на мобилках вызывают ощутимое падение производительности. Всё вышесказанное ИМХО
0
|
|
|
0 / 0 / 0
Регистрация: 18.02.2015
Сообщений: 6
|
|
| 19.02.2015, 14:36 | |
|
0
|
|
| 19.02.2015, 14:36 | |
|
Задумка шейдера Непонятен код шейдера Позиция фрагментного шейдера Объяснить код шейдера Организация работы шейдера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|