Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / WebGL - системы частиц. Как они делаются с точки зрения WebGL? (2 стр)

WebGL - системы частиц. Как они делаются с точки зрения WebGL? (2 стр)

Поделиться

Страницы: 1 2

gammakerПостоялецwww5 окт. 201623:42#15
Blew_zc
> Не тормозит на старом ноуте, вин7, классическая тема (может в ней дело), Radeon
> HD5470M, хром.
Интересно. А если нажать цифру 7, увеличив количество частиц с 50000 до 1000000?
Blew_zcПостоялецwww6 окт. 20160:11#16
gammaker
Да, так тормозит, а потом страница отваливается через некоторое время.
gammakerПостоялецwww6 окт. 201617:52#17
Blew_zc
Исправил баги. Оказалось, что всё это было из-за setInterval. Заменил на window.requestAnimationFrame. Теперь не виснет, но подлагивает, причём это слабо зависит от количества частиц: при 50000 подлагивает, а при 1000000 может чуть сильнее, но никак не в 20 раз.
Ещё добавил полноэкранный режим на F4. Ссылка та же.

Правка: 6 окт. 2016 17:53

robotcityПостоялецwww6 окт. 201618:08#18
gammaker
> Чем это плохо? Что плохого в том, чтобы переносить свои наработки на другие платформы?
> что всё это было из-за setInterval. Заменил на window.requestAnimationFrame

gammakerПостоялецwww6 окт. 201618:15#19
robotcity
И как эти две цитаты коррелируют друг с другом?
gammakerПостоялецwww7 окт. 201615:58#20
Ещё исправил баг с частицами из-за того, что в шейдер передавался неправильный размер вьюпорта. Из-за этого частицы были маленькие и эффект был не тот.
Blew_zcПостоялецwww7 окт. 201616:20#21
gammaker
Ща норм. Выведи fps чтоль.
Xiaomi Redmi 3 Pro значительно шустрее Intel HD 4600 :)
И как на телефоне F7 нажать?)
gammakerПостоялецwww7 окт. 201617:29#22
Blew_zc
> Ща норм. Выведи fps чтоль.
Надо разобраться, как это делается в WebGL. Если для этого надо возиться с растровыми шрифтами, то я наверное лучше не буду этого делать, а выведу в заголовок или над canvas'ом. Но если есть способ проще, то сделаю поверх canvas, чтобы было видно и в полноэкранном режиме.

Blew_zc
> Xiaomi Redmi 3 Pro значительно шустрее Intel HD 4600 :)
Возможно дело не совсем в видеокарте, потому что у меня HD 4600 миллион частиц лагает не сильно больше, чем 50000 частиц. А PC-версия даёт 60-80 FPS на HD 4600. И на телефоне с Adreno 330 плавно идёт. Может с десктопным браузером что-то не так? Хотя вроде во всех лагает.

Blew_zc
> И как на телефоне F7 нажать?)
Зачем F7? Может ты имел в виду F4? Подключи клавиатуру и нажми :)
Я потом наверное кнопочки приделаю сверху.

Blew_zcПостоялецwww7 окт. 201619:09#23
gammaker
> Зачем F7?
В смысле просто 7)

> Но если есть способ проще, то сделаю поверх canvas, чтобы было видно и в
> полноэкранном режиме
Ну, див обычный вотки с абсолютными координатами.

Кстати, альфа отключена у канваса?

Blew_zcПостоялецwww7 окт. 201619:18#24
Тот, что premultipliedAlpha
gammakerПостоялецwww7 окт. 201619:35#25
Blew_zc
> В смысле просто 7)
Я наверное сделаю, чтобы это настраивалось через параметры в адресной строке браузера. типа gammaker.github.io/particles?rate=10000&lifetime=5.

Blew_zc
> Ну, див обычный вотки с абсолютными координатами.
Он же наверное может поехать, если сверху будут кнопки, размер которых наверняка браузер будет подстраивать под мобильные устройства?

Blew_zc
> Кстати, альфа отключена у канваса?
> Тот, что premultipliedAlpha
А её надо как-то специально отключать?

Правка: погуглил, отключил вот так:

this.gl = this.canvas.getContext("webgl", {premultipliedAlpha: false, alpha: false});
Но лаги не пропали.

Правка: 7 окт. 2016 19:51

gammakerПостоялецwww5 сен. 201723:58#26
Пока делал свою браузерную генерилку текстур и искал информацию о WebGL, обнаружил, что по умолчанию в WebGL включён антиалиасинг! Выключил его, передав в параметры контекста antialias: false и FPS вырос в 5 раз до 40-60! Нативно вроде было чуть больше, но в целом уже не лагает.
Ссылка та же.
MahagamПостоялецwww6 сен. 20170:20#27
gammaker
открыл ссылку. нажал "9". получил 10 млн частиц? на полном экране (4096х2160) стабильные 60fps. видюшка gtx1060 загружена на 90%. красиво, однакою
gammakerПостоялецwww6 сен. 20170:42#28
Mahagam
> открыл ссылку. нажал "9". получил 10 млн частиц?
Там только проблемы с точностью float. Из-за этого частицы слипаются вместе и фактически они выглядят как 2 миллиона, но ярче и жрут они как 10 миллионов.
Ещё я делаю Android версию, но ещё пока её нигде не выкладывал. Там эта проблема с точностью решена за счёт незаметного упрощения траектории и отказа от генерации случайных чисел прямо в шейдере. Даже 100 миллионов частиц не слипаются, зато приводят к перезагрузке моего телефона.
Ещё там добавлены всякие плюшки - можно управлять камерой, и плавно менять размеры, яркость и количество частиц прямо во время просмотра.

Страницы: 1 2

/ Форум / Программирование игр / 2D графика и изометрия

2001—2017 © GameDev.ru — Разработка игр