1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Серия игр Heroes of Might and Magic - GL Wrapper & Patches

Тема в разделе "Мастерская", создана пользователем Verok, 23 май 2018.

  1. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Ох... откуда у вас такая информация? Неужели трудно погуглить?

    На macOS 10.15 (Catalina) OpenGL 4.1 жив и здоров, драйвер GPU принимает и обрабатывает вызовы OpenGL: как от не пожелавших переходить на Metal нативных приложений, так и от запущенных в Wine. Принудительно на Metal никто никого не загонял, и многие разработчики этим воспользовались (забили на него болт).

    Начиная с 11.0 (Big Sur) OpenGL 4.1 эмулируется: соответствующая поставляемая из коробки библиотека на лету транслирует вызовы в Metal, и драйвер GPU работает уже с ними. Транслятор этот поставляется самой Apple как часть системы. Потому мало кто чешется переходить на Metal, а в особенности -- разработчики дорогущего business-to-business софта про аналитику, CAD и т.д., аудиософта и много чего еще, что не требует от GPU подвигов. Негладкий переход на Metal вызовет убытки у клиентов, и разработчика съедят живьем.

    У совсем древних макинтошей версия OpenGL 3.3, если на них установлена последняя совместимая с железом версия macOS, а 2.1 только в том случае, если зачем-то пользователь не хочет или не может уходить с macOS версий 10.6-10.8.

    У меня macOS 10.13 (High Sierra) с карточкой Nvidia, которая никогда не использовалась в реальных макинтошах. Драйвер для нее поставляет сама Nvidia. Комбинация этих трех обстоятельств (версия ОС, неродной GPU и полностью развязанные руки Nvidia на предмет, какой им делать feature set в их third-party драйверах) приводит к тому, что внутри Wine мне доступен максимум OpenGL 3.0 -- с этим я немного ошибся, приношу извинения.

    Вот какие OpenGL feature sets поддерживаются у меня для приложений, запущенных внутри Wine:

    OpenGL.png

    Единственное, чего не хватает для 3.0 -- версия GLSL ниже, чем 1.30, а какая конкретно -- уточнить смогу не раньше воскресенья (но есть очень сильные подозрения, что 1.20). Остальные 22 расширения стандарта 3.0 из 23 поддерживаются. Если загвоздка именно в требовании иметь GLSL 1.30 и не ниже, то приношу извинения еще раз, ну его нахрен, этот 3.0.

    Я никогда в жизни не был обладателем устройств от Apple и не планирую. Я использую macOS на обычном x86 PC из компонентов 2012-2017 годов выхода на рынок. Параллельно у меня стоит Windows 10, а до этого стояла Windows 7. Начиная с 2012 года, когда я перешел на macOS, и по сей день, любая попытка что-то сделать в Windows ощущается, как прыжок в сточные воды. Начиная от производительности и заканчивая обновлениями каждый день, каждое из которых может загнать компьютер в BSOD или бутлуп. С миром Linux я знаком очень близко, много лет моим хобби был Arch Linux и до сих пор приходится с ним работать за пределами дома. Но дома мне этот автобус из буханки бородинского не нужен.

    В macOS нет понятия Mesa3D, а Wine для Linux и Wine для Mac -- это как лук (растение) и лук (оружие). Там из общего осталось практически только название.

    Вот эту фразу я не понял. Софтверный есть, он не Mesa, он глубоко deprecated, потому что пока есть аппаратный -- софтверный не нужен вообще никому, и никто его в Wine для Mac оптимизировать не будет. Но на 2.1 нет аппаратного масштабирования по Ланцошу, xBRZ и иных. А был какой-то очень простецкий фильтр (не дома, навскидку не вспомню) который строго при 2x проходе давал довольно четкую картинку, при этом не слишком сильно отличающуюся от оригинального пиксель-арта. Ради него и хотелось бы 3.0.

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

    Абсолютно все части -- от 1 до 4, включая вашу реализацию OpenGL в известно чьем HD-моде для тройки. Что характерно -- в Wine для Mac и без враппера все эти игры работают (плохо, но без вылетов), и с вашим враппером (хорошо и тоже без вылетов), даже трюк с CPU против зависаний включать в настройках враппера не приходится.

    Если можно -- приделайте к тестовому билду тщательное логгирование того момента, когда делается запрос feature set OpenGL (каким именно вызовом? какой ответ получает конкретно ваша программа, а не абстрактный test.exe, запущенный под вайном?) и запрос контекста (context request) -- я помню несколько хитрых штук (вроде dgVoodoo2 когда-то этим страдал), когда при запуске в Wine версия OpenGL определялась правильно, но сама программа чего-то не делала, и ей по умолчанию выделялся контекст OpenGL 2.1.

    Проверить смогу в воскресенье, я сейчас несколько дней в чем-то вроде командировки.

    P.S. Есть еще feature request, подозреваю что там слишком много труда, но мало ли. У меня 28'' монитор, у всех моих знакомых -- от 21'' до 28''. Так вот, если выбрать 1920x1080 в HD-моде для Heroes IV, то даже на 28'' мониторе UI и текст становятся мелкими, хоть глаз коли, а в 1368x768 во-первых графика существ грузится Lo-Fi, во-вторых -- кое-где все крупновато. Нельзя ли как-то сделать, чтобы стратегическая карта, окно тактической битвы и UI рендерились с разными факторами увеличения, да хотя бы через Bilinear масштабирование. Карту сделать одним render surface, битву другим, UI третьим. Масштаб карты и UI хотелось бы как что-то в промежутке между 720p и 1080p, а масштаб окна битвы -- чтоб грузились ресурсы для режима 1600x1200 и масштабировались по вертикали до 1080p. Игра в 1366x768 вполне устраивает, но всегда хочется большего. Есть еще ощущение, что наборов шрифтов там тоже в ресурсах несколько -- подогнанных под родные разрешения от 1024x768 до 1600x1200, и тот вариант шрифта, который для 1600x1200, в 1080p бы выглядел заметно более четко, нежели тот, который грузится при запуске игры в 1366x768 и растягивании картинки до 1920x1080.
     
    Последнее редактирование: 27 янв 2022
  2. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Вкину еще 5 копеек по поводу H4.

    Задумался о том, в каких разрешениях viewport'a обычно играют в разные части Героев. В Heroes I и и Heroes II вообще нет возможности выбрать разрешение viewport'a, оно 640x480. Но с масштабом UI там изначально все в порядке, достаточно отмасштабировать содержимое viewport'a до нужного экранного разрешения -- и все происходящее в игре отлично смотрится и читается что на ноутбучном экране 17'', что на телевизоре 36'' (c учетом дистанции, на которой обычно в таких случаях сидит пользователь).

    C Heroes III -- интереснее. Если разрешение viewport'a выбрать больше 1365x768 (например, 1920x1080), то становятся очень мелкими как стратегическая карта, так и экраны битвы и обзора города. В результате подавляющее большинство игроков играет в Heroes III с viewport'ом либо в 1066x600, либо в 1180x664 (если используются моды, показывающие action queue, которым 600 точек по вертикали недостаточно). А дальше картинка просто масштабируется враппером под реальное разрешение монитора игрока, с апскейлером по выбору на вкус игрока. И снова мы получаем масштаб UI и всего остального, примерно как в I и II частях, и все выглядит хорошо да хоть в 4K.

    В Heroes IV все гораздо грустнее. Под рукой как раз Linux, быстренько настроил H4 + мод Equilibris + актуальную версию враппера под Wine, все правильно заработало из коробки с OpenGL 3 (под Linux иного я и не ожидал).

    При разрешении viewport'a 1366x768 UI выглядит очень пропорционально, шрифт не мелкий и не крупный, все иконки отлично читаются что с ноутбука, что на телевизоре, масштаб практически идеальный. Масштаб стратегической карты -- крупноват, но есть одно важное "но": графика в игре представляет собой 2D-рендеры с 3D-моделей в изометрии, и контрастность деталей у такой картинки заметно ниже, чем у третьей и тем более у второй части. Поэтому немного увеличенный масштаб изображения на стратегической карте (по сравнению с предыдущими частями) позволяет глазам не напрягаться. Но, увы, графика битвы грузится из ресурсов для 1024x768:

    H4_2.jpg

    А вот 1920x1080. Стратегическая карта становится по масштабу ближе к H3 и H2, но глаза от нее устают из-за особенностей графического стиля, постоянно хочется вернуться к масштабу от 1366x768 (в H3 и H2 стандартный более мелкий масштаб абсолютно не напрягает глаза). Экран тактической битвы начинает радовать HD-графикой существ. А вот UI становится практически нечитаемым, даже с большого экрана / телевизора, и у меня такое ощущение, что чисто из-за размера шрифта в 1920x1080 не играет вообще никто.

    H4_1.jpg

    Насчет ресурсов я, похоже, ошибался. Разные варианты графики есть в ресурсах игры лишь для экрана боя и обзора города. UI и стратегическая карта в разных разрешениях рисуются внутри viewport'a самой игрой точка в точку, то есть чем выше разрешение -- тем больше масштаб и меньше буквы и объекты на стратегической карте. Смутно припоминаю, что лет 15 назад не смог играть в Heroes IV в 1600x1200 на огромном по тем временам 23'' ЭЛТ мониторе по той же самой причине и всю игру с expansion pack'aми проходил в 1280x1024.

    Поэтому хочу внести такое рацпредложение по режиму 1920x1080 для Heroes IV. Либо изменить имеющийся режим, либо добавить новый режим 1920x1080 (Optimized). В этом режиме:

    - UI и карта рендерятся в своем собственном surface в тех же пропорциях, в каких это делается в варианте 1366x768, и далее растягиваются до 1920x1080 апскейлером на выбор игрока. Глазам полегчает. Но предвижу, что это большой труд, т.к. абсолютные координаты всех элементов UI получатся совсем иные, нежели в 1366x768 и 1920x1080.

    - Экран битвы и обзора города рендерятся в отдельном surface с графическими ресурсами для 1600x1200, как это делала бы игра без враппера на мониторе 1600x1200, после чего уменьшаются до 1080p по вертикали и рисуются поверх surface с UI и стратегической картой.

    В результате получаем не бьющий по глазам масштаб UI и стратегической карты + HD-графику городов и сражений. При этом ничего не теряем: то, что было в высоком разрешении, (практически) не уменьшается; растягивается же только то, что изначально было в низком разрешении, и для чего HD-вариантов не предусмотрено (но растягивать требуется из милосердия к глазам).

    Еще хочу обратить внимание на скорый выход (в феврале) Steam Deck -- наверняка эта штука будет очень популярной, и наверняка все геройские игры на ней получат вторую жизнь (по умолчанию на борту Arch Linux + проприетарная сборка Wine от Valve, но по сути это обычный x86 PC с возможностью установки любой совместимой ОС, и полной поддержкой Windows). Экранное разрешение у этого чуда техники 1280x800. С H1, H2 и H3 никаких проблем по понятным причинам не предвидится, а вот с H4, возможно, выйдет конфуз: режим 1024x600 будет смотреться слишком крупно + экран города и битвы будет использовать максимально шакальное разрешение графики. Ну а 1366x768 не будет уже вписываться по горизонтали. Так что предвижу через несколько месяцев появление в этой теме челобитчиков за 1280x800, хоть сам эту новинку покупать и не собираюсь.

    Просто нативные порты Heroes II и I безумно популярны на PSP-сцене, а H2 и H3 активно играются на планшетах и смартфонах через всякие VCMI и FHEROES2. Просьбы как-нибудь запустить H4 на handheld устройствах никогда не прекращались. И вот на рынок врывается x86-совместимая handheld-консоль с Linux / Windows на борту. Что это означает для любителей старых игр, предсказать нетрудно.
     
    Последнее редактирование: 27 янв 2022
  3. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    GLSL 1.30 - нет, значит openGL 3.0 не поддерживается, так как враппер задействует 1,30 шейдеры для апскейлинга

    Но все равно, я приложил тестовый билд для H3. Все режимы в нем включены. Если выбрать OpenGL 3 в Renderer меню, то игра профорсирует запуск в OpenGL 3.0

    Насчет вьюпорта битв и карты. Четкость в битвах ниже, так как игра имеет свой алгоритм интерполяции, и уменьшает ресурсы расчитаные на 1280х1024. Менять здесь ничего не хочу, так как прийдется при переходе в битву переключать разрешение игры.

    Насчет текста. Ну я в ресурсы текста не лез. Там кажись MAX делает новую версию Equilibris с поддержкой HD. Как я вижу по ресурсам, он укрупняет элементы для новых разрешений. Возможно он и текст сделает крупнее и четче.

    Мой мод на разрешения поддерживает 1280x800. Нет нужды использовать 1024x600, а просто переключится в 16:10 и выбрать 1280x800. Да и враппер не меняет разрешение экрана, а только картинки, а потом уже интерполирует под разрешение рабочего стола. Так что можно будет выставить хоть 1920х1080 под экран 1280x800.
     
    bvedargh нравится это.
  4. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Ясно. Но за билд огромное спасибо. Есть у меня ноутбук с 10.15 и нативным GPU, там есть поддержка GLSL 1.30 в вайне. Проверим.

    То есть в этот алгоритм нельзя вмешаться — заставить игру брать ресурсы от 1200p и интерполировать по-своему до 1080p, даже если все остальное приказано рендерить в 720p? Понятненько. Я думал, что построение кадра можно как-то разбить на два этапа — рендер UI и стратегической карты, апскейлинг, рендер битвы, апскейлинг (если нужен), наложение второго на первое. Так-то если будет мод на UI покрупнее, проблема решится.

    Вот это круто, а можно ссылку? После гибели Succession Wars для меня H2 и H4 стали любимыми геройскими играми (H3 заиграна до дыр, но никогда её не любил за коричнево-желтый арт и попытки впихнуть максимум всего «лишь бы было»). Поскольку Fheroes2 ещё не дорос до 1.0, а по четвёрке вообще нет опенсорса, выручают лишь ваши врапперы.

    * * *

    В HD-моде последнем режим «OpenGL от Verok» имеет подрежим Smooth Sai + Linear Sharper — это лучшее, что я видел из всех комбинаций масштабирования и интерполяции. Немного видоизмененные ваши же Linear и xSAI. Лучше обрабатывают кривые контуры и почти не мажут, ощущение как будто смотришь на pixel-art, но нарисованный для 1080p, а не 480p. При этом «AI-художник» незаметен, что для меня огромный плюс (см. например текстуру кольчуги у дварфов и пикинеров в H2, которую xBRZ уделывает насмерть)

    Нельзя ли эти режимы реализовать на OpenGL 2? Sai использовался ещё на доисторических эмулях NES и SNES, в эпоху до OpenGL 3. Ещё была мысль, что для интерполяции круче будет Lancosz + Sharper, т.к. обычный Lancosz работает лучше с контрастными переходами и границами, чем линейный фильтр. Не хватает только Sharper.

    Убил кучу времени на сравнение разных фильтров. Под H3 и H4 смысл IMHO имеет только (Smooth) Sai (остальные не справляются с мутными рендерами 3D-моделей в 2D-арт и мелкими кустиками, деревьями с большим количеством color dithering'a — больше портят, нежели перестраивают изображение), а под H1 и H2 он хоть и не один хорошо себя проявляет, но по-моему лучше всех (в т.ч. из-за консервативно выглядящих результатов).
     
  5. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    Ресурсы сохранены в 1024p, а игра в 1366x768 выводит картинку в 768p. Не забываем что это не 3D игра, где просто можно указать размер вьюпорта и на каждом стейте менять параметры. То-есть игра создает сурфейсы (полотна) в 768p (1366х768), на которые накладывает ресурсы от 1024p (1280x1024), перед этим интерполируя их, естественно. Если бы так было легко, то и HD мод для 3-ки выводил битву на весь экран, а не в маленьком окне при 1080p. Игры Heroes буфферизирует картинку, и не на каждом кадре все перерисовывает. И отследить весь этот процесс трудновато. Что то на подобии отрисовки окон в Windows с GDI, но со своим блэкджеком и шлю...

    Например, в той же Disciples 2, это делать легче, так как там каждый кадр перерисовывается с нуля, и нужно в коде только узнать в каком месте начинает рисоватся новый рисунок. Но и это очень трудоемкий процесс

    Конешно все можно, но тогда нужно куча сил и времени убить на это. Фактически перекроить всю логику рендеринга игры, и переделать игровой графический 2D движок, ну и враппер под него. Мой враппер не движок написаный с нуля, как тоn же fHeroes. Это графическая оболочка, а Resolution Mod только добавляет необходимые разрешения в игру, ну и некоторые дорисованые ресурсы.

    Equilibris_v3.60 HD beta от Max_HMMI

    Можно, но во первых для OpenGL 2 должно быть доступным разширение EXT_framebuffer_object (которое в 3.0 уже в ядре). А во вторых, не все апскейлеры будут работать, так как попросту может не хватить количества инструкция для шейдера в OGL 2. Может для XSai и хватит, но для других - нет. А отделять котлеты от мух не хочется, тем более что даже Lanczos не у всех на OGL 2 работает
     
    bvedargh нравится это.
  6. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    А какие симптомы у тех, для кого не работает lanczos? Случайно не Linux+Radeon+опенсорсные, а не проприетарные дрова на него? На старых радеонах (типа 5450) с опенсорсными дровами бывает такое, что не реализованы некоторые инструкции. А некоторые реализованы, но анонсируютcя как нереализованные. На убунте эта болячка годами длилась, а арче в AUR обычно сразу патченые дрова выкладывались и там все было хорошо.

    Беда с дискордом на Nvidia случается независимо от того какая версия opengl выбрана в моде?

    Завтра протестирую тестовый билд, посмотрю какой feature set анонсируется в ОС и какой в вайне, что там с GLSL.

    За ссылку на новый Эквилибрис премного благодарен: такой незаметный анонс такой крутой штуки там, где уж казалось, что проект на пенсии!

    В понедельник поснимаю скринов про SmoothSai VS xSai (там, где чётко видна разница) и Lanczos VS Linear (там уже труднее разницу заметить). Но вообще, чтобы заценить smooth sai, нужно пару часов поиграть: забываешь, что включена какая-то постобработка (а картинка все равно лучше, чем без масштабирования).

    IMHO Smooth Sai + даже Linear + умеренный Sharpen далеко позади оставляют все остальное. На втором месте идёт любая интерполяция плюс никакого масштабирования (играю на macos так, выглядит лучше xBRZ и прочих на мой взгляд).

    С маком, хрен с ним, нас мало, а вот ради линуксоидов со старым железом (особливо ATI) может, реализовать smooth Sai + bilinear sharpen на OGL2 стоило бы (но много ли на свете линуксоидов со старым железом? Того не ведаю).
     
    Последнее редактирование: 29 янв 2022
  7. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    @Gury, ну у кого как. У меня на какой-то карточке просто был черный экран. Может у кого-то и ошибка выскочит. OGL2 не любит жирные шейдеры
     
  8. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Да я бы хотел на какой-нибудь из доступных мне машин эти проблемы воспроизвести, чтобы может помочь чем-нибудь в плане отладки. У меня Nvidia, есть винда дома, но (насколько помню) во время использования враппера с дискордом проблем не было.

    Попробовал Equilibris 3.60 HD. Озадачен. Он вообще в любом разрешении выводит картинка точка в точку. То есть в 1366x768 мы получаем аккуратный квадратик в центре экрана. В 1920x1080 некоторые элементы интерфейса отскейлены нормально (текст достаточно крупный, хорошо читается), кое-где -- текст микроскопический, а экран найма существ, например, вообще крошечный, как и некоторые другие окна.

    Поп-апы всякие иногда рисуются настолько медленно, что я успеваю заметить постепенное 'залитие прямоугольника' глазом (то есть ~150-200 мс), похоже никаким аппаратным ускорением рендеринга там и не пахло. Нагрузка на CPU больше, чем у обычного Equilibris + OpenGL враппер.

    С враппером сразу крашится. Хотя враппер бы и там пригодился -- разрешения ниже нативного растягивать, а в нативном -- как минимум аппаратно ускорять отрисовку.

    Экран города разочаровал. Чтобы попасть в 16:9, они увеличили и обрезали существующие задники от 1200p, а графику построек выводят точка в точку на немного других местах (в абсолютных координатах). Домики крошечные, но четкие, а задник замылен. Либо от усталости меня уже глаза обманывают.

    скриншот_я.jpg

    Надеюсь, в 2022 году все уже знают про Topaz Gigapixel AI (вылеченная от жадности версия лежит по всем подворотням) и совершенное бесплатные альтернативы типа ESRGAN (но там да, нужно вручную с гитхабом ковыряться, настраивать, а Topaz все делает одним нажатием на кнопку).

    Мелкие спрайты из старых игр типа Doom, H2/H3 и т.п. все эти AI увеличивают с артифактами, требующими кропотливой ручной очистки, но вот огромные спрайты из H4 в варианте для 1200p увеличить что в 2 раза, что на треть или половину -- для того же Topaz раз плюнуть (он до 6X увеличивает практически без потери качества). Тем более, если речь идет про задники со скалами и природой, т.к. Topaz работает с датасетом, натасканным в т.ч. на миллионах фото природы, людей, артов из игр и т.д.

    Но спорить или советовать с разработчиками у меня желания нет. Думаю, они сами с усами и все знают. Главное, что мелкобуквенному интерфейсу в 1080p объявлена война, и победа не за горами.
     
    Последнее редактирование: 30 янв 2022
  9. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    В режимах OpenGL 1 & 2 отлично работает на любых движках (ориентировался на наиболее актуальный для игр CX21.1, который поставляется не только как часть одноименного коммерческого продукта, но и собирается вручную энтузиастами с открытых исходников для использования в сторонних проектах наподобие Unofficial Wineskin by Gcenx). Все фишки работают.

    В режиме OpenGL 3 мгновенный вылет, в логе вайна ошибка вида 'Инструкция X обратилась к памяти по адресу Y' но нормально отдебажить не хватило времени (если правильно настроить debug channels, можно будет увидеть причину вылета в более понятной форме).

    Специально ради эксперимента временно обменял свою 1050Ti на 750Ti и получил полную совместимость с OpenGL 4.1. Поддерживается 100% расширений и core-функциональности по ревизию 4.1 включительно.

    OpenGL_features.png opengl.jpg

    Ситуация не изменилась.

    При переключении на OpenGL 3 вылезает pop-up с сообщением, что создан отчет crash.nfo, но что-то внутри вайн-контейнера такого файла не появилось. В остальных режимах стабильно работает вообще все, как враппер так и сама игра. На движках не-CX (мейнстримный wine for mac, wine-staging и т.д.) такая же ситуация. На движках из более ранних поколений wine (6.X, 5.X) такая же ситуация.

    Прошу выложить враппер с форсированным включением OGL3 и подробным debug logging для HoMM 1 -- поскольку эта игра весит всего ничего, я бы мог готовую вайн-сборку разослать другим заинтересованным лицам, чтобы понять, как оно будет работать на AMD и других Nvidia.

    Как только будет понятно, что это вина Wine, а не реализации OpenGL в драйверах GPU на уровне ОС, можно будет просить Gcenx внедрить соответствующий фикс, либо вообще открывать тикет на багтрекере мейнстримного Wine for Mac.
     
  10. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.024
    @Verok, а это можно скомпилить с помощью minGW? Я сам с Ц++ особо не работал, больше на манагед всяком.
     
  11. DRONIC90

    DRONIC90

    Регистрация:
    6 янв 2009
    Сообщения:
    357
    @Gury,
    Offtop
    очень много лишнего здесь в посте выше про Apple. А у Вас вовсе Хакинтош. Вы учтите что там теперь ARM M1+Metal (буквально - iOS) на железном и ОС уровне. А для старых устройств актуальная MacOS несколько отличается и как-никак что-то еще поддерживает от x86-x64+opengl. Есессно раз у Вас Хакинтош а не Мак то и x64+opengl система в целом, а не ARM. Так что Вы зря человека в Гугл послали, раз сами с Хакинтоша всего лишь. Это теперь с реал Маком еще более разные вещи.
    Это еще и не учитывая x86(-x64), поддержка которого была выпилена в Catalina. Сейчас именно в актуальных устройствах НЕТ поддержки и десктопных x64 и этих приложений. Только M1 приложения из мобильного App Store, общие с iOS.


    Если нужна поддержка Wine-Mac - то лучше с этим к Wine-Mac авторам. Ну а если уже подходящий Wine есть и на Вашей версии МакОС (какая бы там по факту не была) уже работает - то настройки.
     
    Последнее редактирование: 19 фев 2022
  12. Baratorch

    Baratorch

    Регистрация:
    21 янв 2009
    Сообщения:
    19
    Рад, что находятся те, кто заценил эти фильтры.
    SmoothSaI - это переработанный мной лично SaI.
    SaI разработан для малоцветных изображений и очень плохо подходит для такой многоцветной картинки как в героях 3 или 4.
    В SaI идет прямое сравнение цветов - равен или не равен. А я всего лишь заменил это на близок или не близок цвет, как в xBRZ фильтре.
    Результат оказался очень неплох, особенно для текста. И действительно какой то эффект пиксельарта или дизеринга наблюдается.
    То же я проделывал и с другими малоцветными фильтрами Scale2x, Eagle, SuperSaI и другими.. Но именно SaI дал лучший результат при таком преобразовании.
    Через враппер по итогу SmoothSaI оказался даже менее производительным чем xBRZ (Хотя через CPU в HD моде - в 32-bit GDI фильтре - он гораздо производительнее), хотя он проще по логике.
    Я лично затрудняюсь в выборе между xBRZ и SmoothSaI, но склоняюсь пока скорее к xBRZ, т.к. SmoothSaI все-таки дает лесенку или мыло там, где их нет в xBRZ.

    Linear Sharper - это обычный простой фильтр резкости + Linear рендеринг. При определенном коэффициенте резкости малоотличим от Lanczos'а, при том что он гораздо легче/быстрее.
    Но я сознательно сделал коэффициенты такими, чтобы картинка была заметно резче чем при Lanczos'e.
    И коэффициенты подобраны индивидуально для SmothSaI, для xBRZ и для откл. масштабирования.
    Я пробовал более сложные фильтры резкости - Unsharp Mask, Adaptive Sharpen, они дают шикарную картинку там где арт, но делают бледным и неконтрастным текст, что критично, поэтому не стал их включать в сборку.

    Я не против чтобы эти шейдеры использовались в во всех врапперах Verok'а. Могу дать исходники (хотя они легкго вытаскиваются из ресурсов HD_VGL2.dll Хд-мода).
     
    Последнее редактирование: 22 фев 2022
    bvedargh и Yuriy_X нравится это.
  13. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Не хочу сойти за грубияна, но... Вы мои посты внимательно читали? Я как давнишний пользователь и тестер-ветеран, помогающий в ловле багов проекту Gcenx, как минимум не хуже вас знаю, что сейчас именно нужно для добавления поддержки в Wine-Mac, позвольте еще раз самого себя процитировать: "Прошу выложить враппер с форсированным включением OGL3 и подробным debug logging для HoMM 1 -- поскольку эта игра весит всего ничего, я бы мог готовую вайн-сборку разослать другим заинтересованным лицам, чтобы понять, как оно будет работать на AMD и других Nvidia. Как только будет понятно, что это вина Wine, а не реализации OpenGL в драйверах GPU на уровне ОС, можно будет просить Gcenx внедрить соответствующий фикс, либо вообще открывать тикет на багтрекере мейнстримного Wine for Mac."

    Сейчас у меня на руках GeForce 750Ti с полной поддержкой OpenGL 4.1 и 1050Ti с поддержкой 3.3, но, похоже, каким-то косяком в плане определения feature set на стороне Вайна. Владелец 750 Ti покорно сидит без любимого GPU на встройке, и мы терпеливо ждем реакции от Verok.

    Чтобы понять, где лыжи не едут, нужен враппер с подробным логгированием всех вызовов API и ответов на них, чтобы было понятно, что враппер запрашивает и какие ответы получает. А чтобы можно было привлечь разный народ, желательно чтобы этот враппер был для HOMM1, чтоб вот прям готовый комплект прямо с игрой можно было да хоть через телеграм кидать тестерам. Я практически уверен в том, что проблема в 'обвязке' Вайна, какие-то поддерживаемые на уровне ОС и на уровне самого Вайна функции не анонсируются запускаемому приложению, как поддерживаемые.

    Ну или есть другой вариант -- реализовать SmoothSAI и Linear Sharper на OpenGL2, но это во-первых много лишнего труда, а во-вторых оставит в самом вайне грабли, которые потом будут давать по лбу в других приложениях.

    @Baratorch, увы, я это все заценил лишь эпизодически, под Win / Linux, а под Mac и в составе HD-мода все это не работает. То есть игра запускается, но фильтры не применяются. Если форсировать, то результат будет как у тестовой сборки обычного враппера из поста выше, скорее всего. Вылетит с непонятной ошибкой, что инструкция X обратилась по адресу Y.

    xBRZ не очень хорошо работает с изометрической графикой и 2D-рендерами 3D-моделей в низком разрешении (обилие градиентов, которыми изобилует подобный графон). Там, где Smooth SAI выдает едва заметные лесенки, xBRZ порой выдает неопрятную кашу. Самый простой способ проверить -- сравните, как выглядит пустой треугольник (дырка в альфа-канале) между рукой существа Naga / Naga Queen и ее змеиным туловищем. Короче, смотрите на внутренний сгиб локтя. И тому подобные места, где с альфа-каналом соседствуют темные пиксели. Там xBRZ рисует какой-то мусор, который выглядит хуже, чем лесенки.

    Еще один момент. Сравните, как выглядят шрифты в HoMM3 со Smooth SAI супротив xBRZ. Везде, где появляются кривые линии между двумя контрастными цветовыми фронтами (то есть буковки, виньеточки, рамочки и т.д.) Smooth SAI однозначно лучше справляется с задачами масштабирования.

    Также xBRZ насыщает картинку шизофренически монотонным паттерном 'кисти AI-художника', о чем я уже упоминал. Текстуры кольчуг в HoMM2 и много что еще начинают выглядеть, как будто над ними работал outsider artist, повторяющий кистью 3-4 одинаковых движения и панически боящийся отступить от алгоритма. После долгой игры картинка начинает доставлять психологический дискомфорт, со временем снова возвращаешься на Smooth SAI.

    Наконец, в HoMM2 / HoMM3 полно мелких объектов на карте, обильно использующих Color Dithering для создания детализации, причем особенно это выражено в HoMM2. Кустики, деревья, трава, вода. Когда xBRZ добирается до мелких объектов буквально пять на семь пикселей, где с помощью Dithering автор спрайта пытался заложить какую-то детализацию, xBRZ не понимает, что хотел сказать художник, и результат масштабирования начинает выглядеть грустно. Кому разница не бросается в глаза -- присмотритесь к деревьям, лесам, зарослям в HoMM2 и HoMM3, причем тройка страдает сильнее.

    Вот такое у меня субъективное создалось впечатление.
     
    Последнее редактирование: 24 фев 2022
  14. Baratorch

    Baratorch

    Регистрация:
    21 янв 2009
    Сообщения:
    19
    @Gury, Кстати, xBRZ можно настраивать. И можно в xBRZ мне попробовать сократить расстояние между цветами которое определяет "равны" ли цвета. Картина, по идее при этом должна будет написана более мелкими мазками. Но линии станут менее плавными.

    Я не секу в OpenGL, так что я в ХД мод я могу прикрутить форсирование OpenGL 3 только вслед за Verok'ом, после того как это сделает он.
    А вот попробовать адаптировать фильтры под OpenGL 2, я бы наверное мог попытаться... Хотя и здесь я не знаю разницы между 2 и 3, не знаю ограничений 2, и мне в этом всем надо разбираться...
     
  15. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    Дело не в размере мазка, а в навязчивой монотонности паттерна этих мазков. Ещё xBRZ съедает дизеринг, где он сделан намеренно, и делает менее нюансированными родные градиенты (которых очень много у существ из H2). По итогу после xBRZ в картинке порой остаётся меньше информации, чем до него.

    xBRZ хороший результат показывает лишь на довольно крупных спрайтах и то лишь при 2x, при 3x и более все объекты становятся одутловатыми как Ельцин с похмелья (на движке Gzdoom очень заметно, там встроенный настраиваемый xBRZ, при 2х спрайты хорошеют, а при 3х и выше выглядят неприятно).

    А вот от Smooth Sai ощущение, как от игры в оригинал практически, который чутка перерисовали под HD, но без отсебятины. И шрифты, элементы UI он лучше всех масштабирует.

    Правильнее найти причину и вылечить Wine for Mac, а от OGL2 выиграет лишь горстка людей у которых на уровне связки железка-драйвер нет OGL3 ну совсем. Таких единицы.
     
    Последнее редактирование: 25 фев 2022
  16. DRONIC90

    DRONIC90

    Регистрация:
    6 янв 2009
    Сообщения:
    357
    Это как с играми. Требовать фиксов от игры если она несовметсимы с новой ОС или с каким модом. Вместо требований к автору мода\фикса\ОС. Сейчас тут мод оказался в роли такого должным что-то поддерживать или иметь какую-то функцию чтобы дебаггить проблемы Вайн-эмулятора и изначально неподдерживаемой ОС Мак (Линух? а что это такое :kappa: :p ). Пусть даже если признаете что проблема все-таки не в GL враппер-моде (а я чего-0то додумал сам от себя в Ваших словах), дебаг работы эмулятора явно опциональный функционал.

    Если ближе к делу. Как бы сказать...

    Verok's Official Blog
    а это работает пока


    То есть < и мы терпеливо ждем реакции от Verok >, имеется не_иллюзорная вероятность не дождаться. Без политики ("спасибо партии за это"), но и без прикрас - судьба Верока точно неизвестна даже ему самому (завтра), а если не будет выходить на связь - то и нам (вчера-сегодня). Потому что лично я не видел сообщения от него, что там случилось с ним и акция ли это протеста против войны (просто лень было делать плашку "нет войне" и поскрывал лишь записи, мб нельзя выборочно это делать в блогспоте), либо реально что-то может случилось. Гадать теперь как скоро от него будет реакция.

    Нет, если есть желание и не жалко - можно задонатить на Патроне. И что-то по возможности выполнения попросить. Помочь в дебагге почему в Вайне что-то не так работает и куда там копать в настройках. А фраза "не жалко" при этом в двух смыслах: может не получится получить желаемое - и не страшно, не жалко все равно - Верок заслужил этот донат, чего там деньги прям;
    - Верок может реально без условностей не успеть чем-то помочь в дебагге, по понятной причине.
     
    Последнее редактирование модератором: 2 мар 2022
  17. Gury

    Gury

    Регистрация:
    25 янв 2022
    Сообщения:
    12
    @DRONIC90, в плане технической части — вы рассуждаете о том, о чем имеете крайне поверхностное представление. Всё что вы написали про вайн, мак, линукс — это какой-то trainwreck из слов. Я никак не могу это прокомментировать.

    По поводу политики — ссылки ведут на пустой блог, но сам блог открывается нормально.

    Screenshot_20220303_033746_org.bromite.bromite.png

    Я всю жизнь живу в России и всю жизнь крайне враждебно отношусь к структурам государственной власти. Это все, что я могу сказать по этому поводу. Если Верока убьют на войне или швырнут в каталажку — моё отношение известно к каким «людям» не ухудшится, потому что ненавидеть сильнее просто уже невозможно.

    Патреон и т.п. — все методы платежа перекрыты, и дальше будет только хуже. Я все свои скромные цифровые активы уже перевёл в условные соль, спички и гречу. Чего и всем вам советую.

    Как человек, тянущий с чужими реквестами месяцами и годами, я сам очень хорошо научен терпеть, и год-два — словно полуденный сон в тени дерева. Пока что все врапперы отлично работают под маком в OGL2 — просто нет поддержки продвинутых алгоритмов масштабирования. Проблемы запуска игр на современном мониторе под macOS они полностью решают, все выглядит лично на мой вкус хорошо. Но я-то ещё хочу бараторчевский чумовой Smooth Sai, которого у Верока пока и в OGL3 нет.

    Посты свои пишу чисто чтоб зафиксировать мысли и потом иметь возможность вспомнить, чего хотел. Ничего ни от кого не требую, никого не тороплю и не понукаю ни прямо, ни лукавством.
     
    Последнее редактирование: 3 мар 2022
    Solanacean нравится это.
  18. leiz

    leiz

    Регистрация:
    15 сен 2018
    Сообщения:
    20
    @Verok, могу я на Handbookhmm для желающих выложить те версии враппера, которые у меня есть или не стоит?
     
  19. Lawliet13

    Lawliet13

    Регистрация:
    5 ноя 2020
    Сообщения:
    1
    У меня осталась версия 1.57 для третьих героев, если кому-то будет нужно.
     
  20. DRONIC90

    DRONIC90

    Регистрация:
    6 янв 2009
    Сообщения:
    357
    В теме на GOG именно по Героям есть ссылка на архив версий. Вообще ссылок хватает. Одной больше одной меньше - ничего не меняет. Именно самые актуальные были на G.Drive Верока, в остальных местах (гитхаб) архив мажорных лишь версий по сути, не всех.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление