Перейти к содержимому
Zone of Games Forum
ufimez

шрифт в TGA расшифровка/разбор?

Рекомендованные сообщения

Здравствуйте, прошу подсказать как получить нормально читаемый текст в файле tga

Платформа PS3

Игра Dungeon Defenders

Возникли сложности со шрифтом, мне сказали:

"шрифтов около 10 штук и они едрёные,наложены друг на друга" рябь на картинке

https://cloud.mail.ru/public/f4095838dc6e%2...Large_PageA.tga

что с этим файлом можно сделать и куда копать чтобы получить нормально распозноваемый текст

Изменено пользователем ufimez

Поделиться сообщением


Ссылка на сообщение

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

далее в заголовке видим тип кодирования 10, это значит, цветовая схема RGB, а сжатие RLE.

Суть методов данного подхода состоит в замене цепочек или серий повторяющихся байтов или их последовательностей на один кодирующий байт и счетчик числа их повторений.

Например:

44 44 44 11 11 11 11 11 01 33 FF 22 22 - исходная последовательность

03 44 04 11 00 03 01 03 FF 02 22 - сжатая последовательность

Первый байт указывает сколько раз нужно повторить следующий байт

Если первый байт равен 00, то затем идет счетчик, показывающий сколько за ним следует неповторяющихся данных.

возможны и друге реализации RLE.

и дейчтвительно, если поглядеть на содержимое в hex (начиная с 13h - 19 символ\байт), то треммы (группы из трех) байт чередуются однобайтовами значениями длинны, а значит сомнений в том, что это именно RLE быть не может, но при декодировании всего этого бреда получается вот такая каша. глядя на эту кашу можно предположть, что данные зашифрованны (не редкий слчай в наше время, особенно для консолей) и учитывая крайнюю избыточность данных в купе с контестом (например, учитывая, что это простая картинка с алфовитом, размера 512на512), видна куча подскзок для расшифроки...

Расшифровка должна осуществлятся с ключем размера кратным 8 бит (судя по всем признакам это и есть 8), т.к. структура файла не повреждена шифрованием (наболее примитивм методом шифрования может быть побайтовый XOR, как в японских играх, а в наиболее сложным - добавляется еще перестановка бит т.к. другие методы будут увиличивать энтропию, что в файле не наблюдается). В результате декодирования (заголовок не зашифрован) должна получится RLE последовательность в которой - сумма произведений повторений суммы пикселей цвета фона (повторяемой) подстроки должна быть велика (в общем фон шрифта) из всех имеющихся (из заголовка имеем, что размер текстуры 512х512=) 262 144 пикселов, по другому - наиболее часто встречатся в конечном изображении, иначе - изображение должно получится с высокой энтропией (в случае подсчета энтропии можно стремится к ее мексимизации исходя из условий задачи, даже на сжатом наборе данных, чтобы не перебирать все варианты, хотя можно подобрать и более сложные\эффективные фильтры). После расшифровки и декодирования RLE количество 24х-битных пикселов должно соответствовать размеру текстуры.

Иначе (в случае безрезультативности достаточно быстрого перебора 8!*2^8=10 321 920 варантов, в простейшем случае 2^8=256 варианов) текстура либо не содержиит шрифта, либо является лишь его частью в избыточной форме кодирования избыточной текстуры шрифта.

Изменено пользователем AwsomeEpicCool

Поделиться сообщением


Ссылка на сообщение

UPD

еще один покозатель близости правильного результата - негэнтропия закодированной последовательности, хотя эти метрики по влянию на результат весьма похожы между собой

На первом этапе не обязательно брутфорсить все байты изображения (оно и так будет различимо), а можно лишь перебирать ключ для кодирующих байт RLE последовательности.

при перестоновках начать проверу было бы логично с циклических сдвигов (на от 0 до 7 бит в любую одну сторону, всего 8*2^8=2 048 вариантов и останется 5 040 =7! остальных комбинаций этих вариантов из 7 возможных перестановок соответственно)

Изменено пользователем AwsomeEpicCool

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Мда.

Либо umodel неправильно достал текстуру, либо обычный свизлинг, раз уж речь идет о пс3.

Поделиться сообщением


Ссылка на сообщение

Thief1987, спокойно, это предусмотрино еще в первом посте, ведь свизлинг и есть перестаовка wikipedia:Swizzling_(computer_graphics)

а как проверить, что там нет искомого я еще там же расписал :)

Кстати, здесь челвек описывает похожий баг с umodel и частично решает его

Изменено пользователем AwsomeEpicCool

Поделиться сообщением


Ссылка на сообщение

немного почитал про свизлинг и понял что последовательность, но не понял как она определяется. сложновато на анлийском, на русском не нашел примеров.

через winhex открыл файл

00000A00000000000000000000020002180000424242813F3F3F813C3C3C81393939013636363C3C3C813939398136363681323232012F2F2F35353581323232052F2F2F2E2E2E2A2A2A2B2B2B2828282F2F2F812C2C2C812929290325252526262622222235353581323232812F2F2F812C2C2C092929292E2E2E2C2C2C2B2B2B2828282929292626262525252323232929298126262681232323031F1F1F2020201C1C1C23232381202020811C1C1C82000000032727272222222424241F1F1F83000000022121211C1C1C1E1E1E94000000001B1B1B9E000000082727272525252323232020202222221F1F1F1D1D1D0000001D1D1D86000000001C1C1CFF

 

и запутался в конец, а где в заголовке указано? -

там указан 24битный режм

на ресурсе по разбору заголовка http://open-file.ru/articles/file-header

если вводить первые 3 блока "00000A" то он мне ничего не выдал а на первые 2 "0000" сказал что это Том архива WinOptimizer #1

открывал через фотошоп тоже не понимаю, там в channels единственно показывает "RGB+Red+Green+Blue"

Изменено пользователем ufimez

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Продвигаемые темы

  • Последние сообщения

    • Товарищ, спасибо за твой труд! Скажи, а до звука ты добрался или ты только текст можешь поменять?
    • перевод для для  Blue Dragon вышел отличным ставится и играется легко без тормозов на моей слабенькой ддр3
    • Это один из питонов, одно из твоих многочисленных тел, из альтернативных миров, который предпочёл в какой-то момент карты от амд (дело прошло ну вот прям совершенно точно без участия Мирослава), ага-ага, и это вот так резко изменило его жизнь, определённо, не иначе. Две кошкодевочки с ним — это то, во что превратилась его 5090 от шока, когда увидела, что её вытаскивают, а на её место ставят карту от амд. Теперь они повсюду следуют за ним, пытаясь убедить вернуться на сторону зелёных, но тот питон не сдаётся, так как он понимает, что в тот же момент, как он сдастся под их напором, они из девчин превратятся обратно в кусок кремния с нвидевской маркировкой. Точно-точно.
    • Застревает там же, что с тем bat, что с новой сборкой, что с этим скриптом. Может, сделаешь какой-нибудь лаунчер с галочками, что качать, а что нет? Мне Argos может и не понадобится.
    • В 2 диске чтоль или где то там должен был текст который переведен, весь или нет, но должен быть
    • ну нужно сказать что это скорее всего еще сырая работа кустарных прог (нужно ждать официальную поддержку) и конечно она явно делается для 6000 серии видюх, так как 5000 все же довольно слабая в обработке этих трейсингов и нейрослопов.) 
    • Попробовал немного DLSS 5. Херота глючная, кривая, косая — через жопу всё заводится. Нашёл две программы для запуска: одна не запускает, ругается на свежий драйвер «Нвидиа» и просит откатиться на старую. Вторая работает, но не работает нормально в HDR, а если отключить HDR — работает, но роняет производительность просто в конский унитаз. Запустил «Онимушу», смотрел слайд‑шоу, тыкал «отключить/включить». Честно, драматической разницы не увидел. Да, свет местами лучше работает, тени лучше рассеиваются от мелких деталей, но прям чтобы картинка стала «Синема» — нет, не произошло. Включил «Атомное сердце»: тут с производительностью заметно лучше, но и тут же прям драматической ситуации не увидел. Да, картинка становится приятнее, но прям чтобы двухкратно — нет. Я, как понял, весь эффект создаётся за счёт более качественного освещения: тени начинают нормально отбрасывать все объекты. То есть вот рыбка лежит — тень не отдаёт, включаешь DLSS 5 — уже есть тень. За счёт этого картинка становится более реалистичной и атмосферной. Но как это всё жрёт — не описать словами, дохрена. DLSS 5 прям для современных проектов — настоящая габела: работает плохо, поднимает уровень графики не драматично. Недаром куча роликов с тестами — это в основном старые проекты с более слабой требовательностью к железу, где больше заметен эффект от более продвинутого освещения, но при этом не заметен эффект от упавшей производительности, так как игра не требовательная. Если включить DLSS 5 в современной игре, производительность падает до уровня «кошмар», но картинка настолько качественно не меняется. Но что ещё я заметил — это артефакты. Их много: от мерцающих текстур, до шума в картинке и мыла. Рендерить проще статичную картинку, чем динамичную. Стоит только добавить скорости — картинка начинает плыть и выдавать разные помехи типа мерцания, шумов, и мыльной картинки. То есть с реал‑таймом, быстро меняющейся картинкой, пока работает плохо. В общем, пока вещь не стоит свеч, хотя, не спорю, результат показывает. Лучше, конечно, себя проявляет и показывает в более оптимизированных и устаревших проектах, хуже — в новых. При этом работает не идеально, с графическими косяками. Технология перспективная, но очень сырая. Нужно допиливать и допиливать ещё.
    • Тогда у меня только одна догадка - это Мирослав. Во первых усы а во-вторых AMD
    • это наш дружбан которого мы поддерживаем и все тут собрались 
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
  • Лучшие авторы


×