xash3d-fwgs
xash3d-fwgs copied to clipboard
[Android] [VBO] [GLES1] Мерцают glow-спрайты на карте disposal
Заметил что спрайты свечения при включённом VBO на GLES1 (NanoGL) рендерере могут появляться перед игроком и менять своё местоположение.
Видео записано на карте disposal, которая была добавлена в обновлении в честь 25-летия Half-Life Видео: https://youtu.be/czZCrkRz5I0
Проверял на: Xash3D FWGS v49/0.20 Номер сборки: 3246 Тип сборки: android-arm64 Коммит: https://github.com/FWGS/xash3d-fwgs/commit/e11f9e05d4ca1d0031cbddec71b7c2e8e0d7eec3 Ветка: master
Устройство: Samsung Galaxy A52 (SM-A525F) ОС: Android 13 (OneUI 5.1)
Нужно как-то санитизировать состояние nanogl/glwes для нового движка. В nanogl были сделаны проверки под режимы, включающиеся при включении vbo рендера и даже для старого движка они не всегда правильно биндили текстуру (баг с белыми конвеерами в некоторых случаях после загрузки сохранения, видимо, из-за порядка ентитей). Сейчас nanogl сломан даже без vbo - полоски из квадов ломаются. Перемещение ентитей вызвано неправильным порядком вызовов функций трансформации матриц. В gl-wes проблем меньше, но он крайне неэффективен из-за тяжёлого щейдера и я вряд ли в близжайшее время это исправлю Пока что временно, (пока я с этим не разобрался) рекомендуется использовать ref_gles3compat, он должен быть совместим со всеми gles2 gpu (и когда-нибудь заработает и с gles1)
Я если честно не вижу большого резона поддерживать nanogl и gl-wes-v2, если они выдают такие приколы, когда можно использовать gl2_shim и на крайний случай gl4es.
GLES1-only устройств в природе практически никогда не существовало. Исторически nanogl был добавлен потому что его было проще всего адаптировать, тогда VBO не было.
https://github.com/FWGS/nanogl/commit/a939f24c1cad6d02f17f3824ab12323785780d80
Это исправляет disposal, но проверял только на new-dlights2, а она ещё требует рефакторинга
Поддерживаю идею депрекейтнуть эту конфигурацию. Совсем можно пока не убирать, но уж точно не рекомендовать к использованию.
Касательно поддержки gles1 - её можно реализовать куда более эффективно, если это действительно будет нужно, даже mali400 на gles3compat нет сильной разницы с nanogl даже несмотря на отсутствие батчинга, хоть nanogl там и быстрее --=_67b14b2634ef2ac38a2d7653e0010e82 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8
https://github.com/FWGS/nanogl/commit/a939f24c1cad6d02f1= 7f3824ab12323785780d80
=D0=AD=D1=82=D0=BE =D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0= =B5=D1=82 disposal, =D0=BD=D0=BE =D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D1=8F= =D0=BB =D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE =D0=BD=D0=B0 new-dlights2, =D0= =B0 =D0=BE=D0=BD=D0=B0 =D0=B5=D1=89=D1=91 =D1=82=D1=80=D0=B5=D0=B1=D1=83=D0= =B5=D1=82 =D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0= =B3=D0=B0
=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=B8=D0=B2=D0=B0=D1=8E =D0= =B8=D0=B4=D0=B5=D1=8E =D0=B4=D0=B5=D0=BF=D1=80=D0=B5=D0=BA=D0=B5=D0=B9=D1= =82=D0=BD=D1=83=D1=82=D1=8C =D1=8D=D1=82=D1=83 =D0=BA=D0=BE=D0=BD=D1=84=D0= =B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1=8E. =D0=A1=D0=BE=D0=B2=D1=81=D0= =B5=D0=BC =D0=BC=D0=BE=D0=B6=D0=BD=D0=BE =D0=BF=D0=BE=D0=BA=D0=B0 =D0=BD=D0= =B5 =D1=83=D0=B1=D0=B8=D1=80=D0=B0=D1=82=D1=8C, =D0=BD=D0=BE =D1=83=D0=B6 = =D1=82=D0=BE=D1=87=D0=BD=D0=BE =D0=BD=D0=B5 =D1=80=D0=B5=D0=BA=D0=BE=D0=BC= =D0=B5=D0=BD=D0=B4=D0=BE=D0=B2=D0=B0=D1=82=D1=8C =D0=BA =D0=B8=D1=81=D0=BF= =D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8E.
=D0=9A=D0=B0=D1=81=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE =D0=BF=D0= =BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D0=B8 gles1 - =D0=B5=D1=91 =D0=BC= =D0=BE=D0=B6=D0=BD=D0=BE =D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2= =D0=B0=D1=82=D1=8C =D0=BA=D1=83=D0=B4=D0=B0 =D0=B1=D0=BE=D0=BB=D0=B5=D0=B5 = =D1=8D=D1=84=D1=84=D0=B5=D0=BA=D1=82=D0=B8=D0=B2=D0=BD=D0=BE, =D0=B5=D1=81= =D0=BB=D0=B8 =D1=8D=D1=82=D0=BE =D0=B4=D0=B5=D0=B9=D1=81=D1=82=D0=B2=D0=B8= =D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE =D0=B1=D1=83=D0=B4=D0=B5=D1=82 =D0=BD= =D1=83=D0=B6=D0=BD=D0=BE, =D0=B4=D0=B0=D0=B6=D0=B5 mali400 =D0=BD=D0=B0 gle= s3compat =D0=BD=D0=B5=D1=82 =D1=81=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9 =D1= =80=D0=B0=D0=B7=D0=BD=D0=B8=D1=86=D1=8B =D1=81 nanogl =D0=B4=D0=B0=D0=B6=D0= =B5 =D0=BD=D0=B5=D1=81=D0=BC=D0=BE=D1=82=D1=80=D1=8F =D0=BD=D0=B0 =D0=BE=D1= =82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5 =D0=B1=D0=B0=D1=82=D1= =87=D0=B8=D0=BD=D0=B3=D0=B0, =D1=85=D0=BE=D1=82=D1=8C nanogl =D1=82=D0=B0= =D0=BC =D0=B8 =D0=B1=D1=8B=D1=81=D1=82=D1=80=D0=B5=D0=B5
--=_67b14b2634ef2ac38a2d7653e0010e82--
--=_9afc50c93670d4ef51750bf7ce7a36a1 Content-Transfer-Encoding: base64 Content-Type: image/gif; name=blocked.gif Content-Disposition: attachment; filename=blocked.gif; size=118
R0lGODlhZAAyAIAAAPrOzgAAACH5BAAAAAAALAAAAABkADIAAAJNhI+py+0Po5y02ouz3rz7D4bi SJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvls KwAAOw== --=_9afc50c93670d4ef51750bf7ce7a36a1--
Исправлено.