Новости Форум Каталог файлов Каталог статей Вики P3DM.ru Активность пользователей Платные модели
Добро пожаловать на сайт посвященной игр серии В тылу врага! Здесь Вы сможете найти самые свежие файлы и интересные новости, завести себе новых друзей, общаясь на форуме портала, а также можете помочь нам в развитии сайта.
Последние обновленные темы
Самые популярные темы
Самые активные пользователи
Новые участники
Ghosteron [2955]
TonaTor [1940]
XemorDio [1701]
UZSTALKER [539]
lappylliamaksika [28.11.2021]
izaharov519 [28.11.2021]
Ник3454 [27.11.2021]
rashevskaya973 [27.11.2021]
aleksandrgaranin38 [27.11.2021]
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум » Общее » Различные программы » Разработки от TonaTor (Разные мелкие программы)
Разработки от TonaTor
15.09.2019 в 20:18
#101
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Провёл сравнительный анализ качества сжатия в DXT1 no-alpha.
И вот результаты:

Было:


Gimp DDS Plygin (v3.0.1):


NVIDIA Texture Tools 2.0 - 2007:


Photoshop DDS Plygin - NVIDIA dds Format(v8.55.0109.1800):


AMD Compressonator-3.1.4064:


Как по мне - то лучшее качество у "Photoshop DDS Plygin", но кода от него у меня всё равно нет.
Зато у меня есть код от Compressonator`а, чьё качество тоже в принципе норм.

P.S.
У NVIDIA немного более лучшая внутристрочная цветовая коррекция. Яркие текстуры кодируются лучше.
Но у AMD, по опыту - более лучшее цветовое разнообразие на тёмных текстурах.

15.09.2019 в 21:44
#102
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Сделал новую версию DDS-оптимизатора.

Добавил поддержку форматов:
DXGI_FORMAT_B5G6R5_UNORM = 85;
DXGI_FORMAT_R10G10B10A2_UNORM = 24;
DXGI_FORMAT_B4G4R4A4_UNORM = 115;
DXGI_FORMAT_B8G8R8X8_UNORM = 88;
DXGI_FORMAT_B5G5R5A1_UNORM = 86.

Добавил режим сбора несжатых файлов (для программистов).

Добавил возможность читать повреждённые файлы (с оповещением и ожиданием реакции пользователя).

Изменил алгоритм авто-определения альфа-канала.

Планирую ввести авто-создание MIP-уровней (там где они предусмотрены).

В программе есть ошибки. Ссылка удалена.

16.09.2019 в 14:50
#103
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Благодаря этой оптимизации мои папки с модами стали весить намного меньше))) lol

https://imgur.com/0GAC4lw

24.09.2019 в 22:22
#104
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Доделал новую версию оптимизатора.

Добавил поддержку форматов:
DXGI_FORMAT_BC2_UNORM = 74;
DXGI_FORMAT_BC3_UNORM = 77;

Добавил: авто-генерацию mip-map`ов (кол-во определяется автоматически).

Добавил: поддержку нестандартных разрешений.
(теперь высота и ширина текстуры может быль не кратна 4).

Изменил: алгоритм определения необходимого формата стал ещё умнее.

Добавил: возможность удалять "чёрный" альфа-канал (это когда текстура полностью прозрачна).

https://imgur.com/ATOFUWf

После её испытаний выложу её на форум.

29.09.2019 в 14:39
#105
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Сделал новую версию DDS-оптимизатора 0.6m.

Добавил опциональную поддержку формата:
DXGI_FORMAT_BC1_UNORM = 71;

Добавил: пакетную обработку папок (каталогов), при перетаскивании выбранных папок в ярлычок программы.
В этом случае, приоритет программы для винды, будет очень низким, т.к. предполагается, что пользователь запустит ещё несколько оптимизаторов таким же образом. (короч чтб комп не лагал)

Добавил: возможность создания DXT1 с 1-битным альфа-каналом.

Добавил: вывод имени и процента обработки файла в заголовок программы.

Изменил: политику записи в файл. Сначала выполняется расчет вообще всех данных, а потом единоразовая запись всех буферов в файл.
Это защита от криворуких юзеров, которым не терпится нажать на крест. При новой политике буферизации, выживаемость файлов после криворуких юзеров, возросла почти до 100%.

Исправил найденные баги. Оптимизировал работу со сжатыми dds`ками (там, где возможно).
И ещё много незначительных изменений и улучшений.

02.10.2019 в 14:11
#106
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Улучшена лояльность к поврежденным или рандомно-нечитабельным файлам.

https://imgur.com/QlUzEbl

02.10.2019 в 14:20
#107
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Расчет MiP-уровней для нестандартных разрешений.

https://imgur.com/RDJBZRS

07.10.2019 в 15:35
#108
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Я допустил тяжелейшую ошибку в программе. Программа портит почти все DXT3 текстуры.

Релиз отложен на 2 недели...

На этот раз тестирование будет долгим...

14.10.2019 в 19:46
#109
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
В игровых ресурсах есть такой домик... ну или то, что от него осталось...

https://imgur.com/8xsFpSq


Во время недавней оптимизации dds-файлов вылезла такая проблема:
- одна текстурка резко почернела.

https://imgur.com/gIHA5EA


Стал разбираться. Домик оказался не новым:

https://imgur.com/Evg23uw


Зашёл в папку с текстурами:

https://imgur.com/iVx4m7f


Выбрал глючащую:

https://imgur.com/KnvxnTD


Открыл её в папке с текстурами и посмотрел её свойства:

https://imgur.com/sqhPHmt


Нашёл бэкап этой текстуры, и тоже посмотрел её свойства:

https://imgur.com/kODfmz2


Далее я сравнил все графические данные этих текстур:

Вот DXT3:

Рендер:
https://imgur.com/273xkX4


Дефьюз:
https://imgur.com/mFR4Aqi


Альфа-маска:
https://imgur.com/HNWBMBp


А вот DXT1:

Рендер:
https://imgur.com/oU0v1N0


Дефьюз:
https://imgur.com/Y6YJiWU


Альфа-маска:
https://imgur.com/LfwQ7g3


В отличие от DXT3 и DXT5, у формата DXT1, альфа-канал хранится вместе с RGB-данными. И для того, чтобы впихнуть его туда - приходится упрощать цвета. Однако целевые данные (на картиночках "рендер") практически не отличаются (что в свою очередь достигается блочностью данных в 4 на 4 пикселя).
Но суть и не в этом. Суть в том, что обе эти текстуры содержат в себе полный набор графических данных. Но если та-же текстура запакована в DXT3 или DXT5, и там за альфа-канал отвечает отдельный блок данных:

https://imgur.com/TaPZvi6


То в DXT1 всё это смешано:

https://imgur.com/oGTKd11


И в следствии недоработки движка игры, при любом упоминании альфа-канала в DXT1 DDS-файле - движок просто забивает полезные данные нулями по этому принципу:

https://imgur.com/iF5x7zJ


И для того чтобы это починить, программисту движка всего лишь нужно добавить DXT1 в исключение, как здесь:

https://imgur.com/y8lsE65


То есть ещё раз.
С багом это выглядит так:

https://imgur.com/M0vFt7B


https://imgur.com/Hcfn7wH


А без бага так:

https://imgur.com/mpOF9z1


https://imgur.com/LttwraH


Надеюсь, что разработчики этот баг движка игры пофиксят.
Тем более, что метод его исправления в пару кликов уже найден.

Надеюсь, что не останусь без внимания.

23.10.2019 в 20:16
#110
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
А вот и первые испытания многопоточности)))

Было:
https://imgur.com/Vv50BLP


Стало:
https://imgur.com/Y9rYgAW

25.10.2019 в 15:07
#111
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Доделана версия с многопоточностью для блока компрессии.

https://imgur.com/o2aDhJL

26.10.2019 в 07:47
#112
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Ей! Я смог собрать тигрёнка!

https://imgur.com/sgXV0VX


https://imgur.com/mLbY95U


Банально перепутал X и Y )))

https://imgur.com/CU9Aown

28.10.2019 в 20:56
#113
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
А тем временем в моей КОНСОЛЬНОЙ программе, появляется человеческое кнопочное меню ))) :) 43 :) comptype

https://imgur.com/4RGSoCk


https://imgur.com/PHPavje


https://imgur.com/Y17Cj74


https://imgur.com/oLtPgMS


ohuenna lol

29.10.2019 в 17:30
#114
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Вот и вышла новая версия оптимизатора (v0.7m4).

Выбор папок для оптимизации традиционно осуществляется 2 способами:

1) Через выбор в обзоре папок:

https://imgur.com/F9U1f4H


2) Перетаскиванием папок в ярлычок программы:

https://imgur.com/su6SAgV


После выбора папки/папок запускается меню, в котором приведены основные пункты настройки:

https://imgur.com/LTnXsxd


1) В пункте настройки MiP-уровней можно:

https://imgur.com/FhagLE2


1.1) Включить/Отключить генерацию MiP-уровней;
1.2) Включить/Отключить генерацию MiP-уровней пока их разрешение кратно 4;
1.3) Включить/Отключить генерацию MiP-уровней, чьё кол-во, приближенно, либо такое же, что и в изначальном файле.

Примечание: MiP-уровни, чьё разрешение ниже чем 4x4 пикселя, не генерируются. Но это не влияет ни на работоспособность движка ни на качество картинки (просто техническое ограничение программы).

2) В пункте выбора приоритета программы для системы, можно выбрать желаемый уровень лагов)))

https://imgur.com/Ikx55Kk


Примечание: изначально выделена кнопка с текущим уровнем приоритета.

3) Пункт анализа и перекодировки представляет из себя большую солянку из зависимых и независимых настроек:

https://imgur.com/Hi3hZHs


3.1) Отключение первого параметра, имеет смысл лишь тогда, когда нужно по-быстрому обработать большой мод. Просто сжав несжатые файлы и почистить неиспользуемые альфа-каналы. При этом пункты 4 и 5 желательно включить.

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

3.3) Включение третьего параметра может сэкономить немного памяти. Но из-за бага в движках GEM-2.x - этот параметр не стоит включать для всех "В тылу врага"-подобных игр (при отключенном 4 и 5 пункте меню).

3.4) При включенном четвёртом параметре, все файлы с "чёрным" (прозрачным) и черно-белым (1-bit) альфа-каналом, будут кодироваться в DXT5.

3.5) Включение пятого параметра, нейтрализирует действие четвёртого параметра для DDS-файлов, которые изначально были DXT1.

Вот те настройки, которые использую лично я:


Далее просто жмём кнопку "Принять и продолжить"

https://imgur.com/eqQdvik


и ждём когда программа закончит работу.

https://imgur.com/gLdPrTt


Включение и выключение параметров, а так же вход и выход из суб. меню (при выборе соответствующих пунктов (кнопок для перехода)), осуществляется кнопкой "Enter". Для выхода из суб. меню можно нажимать "Esc" (Выбор параметров при этом сохранитъся).

Перемещать курсор вверх и вниз можно при нажатии соответствующих кнопок (клавиш) "ВВЕРХ" и "ВНИЗ" на клавиатуре.

Внутри программы (т.е. при активном окне консоли) запрещено нажимать сочетание клавиш [Ctrl+C], т.к. это ведет к неминуемому вылету с ошибкой или к зависанию программы. С возможной потеряй данных.
Так же не рекомендую закрывать программу крестом во время обработки файлов, т.к. это тоже может привести к потере данных.

Снова нужны бэта-тестеры.

Вот архив с программой:
(удалено)

Архив с исходным кодом:
(удалено)

В программе найден критический баг, ссылки удалены.

03.11.2019 в 14:21
#115
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
У BC-компрессоров увы есть свой придел.

Было:
https://imgur.com/yA9h5h5


Стало:
https://imgur.com/WIVz72W

04.11.2019 в 22:31
#116
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
DDS_Optimizer не прошёл нагрузочный тест 60ГБ-модом.

Ошибку нашёл. Ошибка сложная. Буду исправлять.

Короч при обработке 10ГБ модов malloc не хочет выделять память для графики.
После обработки десятков тысяч dds-файлов.

https://imgur.com/R1d2jmD


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

07.11.2019 в 13:01
#117
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
В программу было добавлено меню фильтров для MiP-уровней.

https://imgur.com/Up3p6v0


С набором разных фильтров:

https://imgur.com/wDPBXgz


И вот как они работают:

https://imgur.com/Zx2dcFb


Я по умолчанию включил Mitchell.

08.11.2019 в 22:05
#118
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
До исправления бага с памятью не смогу выложить новый билд(((

UPD-1:
Нашёл баг с утечкой памяти и подставил тазик. Буду тестить)))

UPD-2:
Нагрузочный тест не пройден.((

UPD-3:
Во время ревизии кода нашёл неисправность освобождения дескрипторов мьюьексов синхронизации потоков.
Это вызывало ошибку переполнения системного банка дескрипторов.
Система возвращала код ошибки 0xc000009a - STATUS_INSUFFICIENT_RESOURCES.
Это вызывало событие класса "throw", что вызывало в цикле-обработчике операцию типа "continue". И буферы памяти небыли отчищены. Вскоре. Виртуальная память типа "MEM_RESERVE" исчерпывалась и происходил сбой аллокации.
После этого начиналось "Память по адресу 0x00000000 не может быть Written".

На данный момент продолжаю тестирование.

UPD-4:
Программа прошла нагрузочный тест.
Скоро новая бетта.

UPD-5:
Провожу доп. тесты.

18.11.2019 в 14:29
#119
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Кстати; Вот как выглядит игра если отключить Mip-уровни (смотреть в полноэкранном режиме):

https://imgur.com/S7kRYoI

08.12.2019 в 13:33
#120
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Фух-х-х...
Вот и новый билд DDS_Optimizer_(v0.8m6) (для мододелов).

(На скриншоте v0.8m4, а не v0.8m6 потому что лень fuck_that )
https://imgur.com/P1Rg9Rw


Исправлена работа с памятью;
Исправлена работа с дескрипторами;
Исправлена некорректная работа с забитым диском;
Отлажена работа с сетевыми дисками.

UPD-1:
1) Фильтр по умолчанию переключён на BOX. (для ускорения)
2) В параметрах анализа и перекодировки по умолчанию включён 3 пункт меню. (это можно делать при вкл. 4 и 5 пунктах)

UPD-2:
1) Исправлена ошибка невозможности работы с не архивными файлами.

UPD-3: (18.06.20)
1) Фильтр по умолчанию переключён на MITCHELL (качество графики важнее).
2) Исправлена ошибка при записи повреждённых файлов.

01.01.2020 в 20:13
#121
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Обновил прогу для оптимизации TGA файлов (для мододелов).



Всё осталось как здесь:
http://mow-portal.ru/forum/30-189-2#4802

Но была добавлена разблокировка "read only" файлов.

UPD-1:
Была исправлена ошибка невозможности работы с не архивными файлами.

Прога:
https://yadi.sk/d/cJ__lSa-BW4t3Q

Код:
https://yadi.sk/d/G6Eh4K9p6Er39g

22.05.2020 в 18:16
#122
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Постепенно веду разработку программы для быстрого и простого создания структурок техники.
Это пока ещё сырая наработка. Доделывать ещё много)) comptype


12.06.2020 в 20:19
#123
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
А разработка тем временем продолжается...



Программа готова примерно на 50%.

11.07.2020 в 10:21
#124
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Готова первая бета-версия. Программа готова примерно на 70%



С её помощью уже можно настраивать структуры для:
В тылу врага 2 (Faces of War),
В тылу врага 2: Братья по оружию,
Чёрные бушлаты (Men of War: Red Tide),
Штрафбат (Men of War: Condemned Heroes),
В тылу врага 2: Лис пустыни (Men of War),
Битва империй: 1914 - 1918 (Battle of Empires: 1914-1918),
В тылу врага 2: Штурм (Men of War: Assault Squad),
Диверсанты: Вьетнам (Men of War: Vietnam),
В тылу врага: Штурм 2 (Men of War: Assault Squad 2),




12.07.20.
Пофиксил ошибку переключения слоёв при удалении объектов.

18.07.20.
Добавил поддержку форматов: BMP, GIF, JPG, JPEG.
Пофиксил ошибку переключения слоёв при удалении компонентов.
Пофиксил ошибку наложения фона на схему.

18.07.20. (2)
Создал английскую версию программы.

23.07.20.
Исправил ошибки подбора цвета.
Добавил рамку на объекты при выделении их курсором.
Добавил кнопку "отчистить всё".
Добавил возможность создания дочерних компонентов (дочерние компоненты ссылаются на изображения родительских компонентов).
Переделал функцию загрузки изображения схемы (чертежа). Картинка стала в разы более плавной, но при этом осталась чёткой.

18.07.2020 в 12:11
#125
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
А вот и небольшой туториал подъехал.


23.07.2020 в 08:37
#126
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Обновлённая функция-загрузчик вытягивает даже чертежи низкого качества.
Было (слева) и стало (справа).

https://imgur.com/vQ7ltOn


Все компоненты в программе делятся на 3 типа: ведущий (содержащий схему), ведомый (использующий схему ведущего) и служебный (незанятый, но существующий).
Новый пункт компонентного меню, позволяет привязывать ведомые компоненты к ведущим.
Благодаря этому, будет неважно, на какое название ссылается игра, на "trackleft" или на "trackL".
Если они оба будут, и один из них будет ведущий, а другой ведомый,
- то в любом случае подсвечиваться будет нужный компонент.

https://imgur.com/esbMuug

03.08.2020 в 13:35
#127
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Готова очередная бета-версия (BETA v0.93). Программа готова примерно на 98%

03.08.20
Увеличено цветовое разнообразие компонентов.
Добавлены подсказки в компонентном меню.
Добавлена возможность копипастить объекты (внутри одного компонента).
Добавлена полоса загрузки/выгрузки.
Переработан алгоритм загрузки схемы (чертежа). Многократная фильтрация делает чертежи более "жирными".

03.08.20 (2)
Исправлен гамма-корректор.

04.08.20
Исправлена рандомная ошибка при сохранении.

17.08.20
Исправлена ошибка неверного срабатывания кнопки "Удалить объект".
Исправлена редкая ошибка при выгрузке больших изображений из блока рендера.
Добавлена частичная поддержка формата dds:
DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B8G8R8X8_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC1_UNORM.
(Если это не Dx10, Cube, Volume).
Добавлена возможность загрузки собственной геометрии из файлов.
Добавлена возможность загрузки значков.
Добавлена поддержка альфа-канала для PNG-файлов.

20.08.20
Исправлен и доработан алгоритм чтения альфа-каналов для BMP, GIF, PNG изображений.
Доработан алгоритм рендера.

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

23.08.20
Исправлено чтение формата DXGI_FORMAT_R10G10B10A2_UNORM.
Мелкие доработки кода.

24.08.20
Добавлена поддержка формата TGA.
Добавлена возможность загружать готовые схемы.

25.08.20
Добавлена поддержка загрузки ведомых компонентов.
Исправлено: при загрузке готовой схемы, в списке компонентов отображаются лишь загруженные компоненты.
(Т.е. те, чьи Mtl`ы идут в месте со структурой.)
Исправлены мелкие ошибки.

28.08.20
Количество мастер-компонентов ограничено до 63 (потому что значение 256 выходит за рамки unsigned 8-bit)
Удалена английская версия программы. Все локализации (кроме русской, родной для программы) теперь будут находиться в файлах *.lang (рядом с exe`шником).
Исправлена некорректная работа поля редактирования угла поворота объекта.
Исправлены многочисленные недочёты кода.

https://imgur.com/xxl573t


https://imgur.com/JNnBLis


https://imgur.com/yaBzCpw


https://imgur.com/YMKTLXc


https://imgur.com/cywLwkv


Было (слева) и стало (справа).
https://imgur.com/diBMwcU


https://imgur.com/kBQtQKo


https://imgur.com/3yddsko




https://imgur.com/6BQPOwT

09.08.2020 в 17:56
#128
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Последняя версия (Release v1.2).


Программа для конвертации PLY-файлов карт. (Для мододелов).
Позволяет переносить карты с:
В тылу врага: Штурм 2 (Men of War Assault Squad 2),
Призыв к оружию (Call to Arms),
В тылу врага: Штурм 2 Холодная война (Men of War Assault Squad 2 Cold War).
На:
В тылу врага 2 (Faces of War),
В тылу врага 2: Братья по оружию (Brothers of War 2),
Чёрные бушлаты (Men of War: Red Tide),
Штрафбат (Men of War: Condemned Heroes),
В тылу врага 2: Лис пустыни (Men of War),
Битва империй: 1914 - 1918 (Battle of Empires: 1914-1918),
В тылу врага 2: Штурм (Men of War: Assault Squad),
Диверсанты: Вьетнам (Men of War: Vietnam),

Программа умеет читать стандартные SUBM-блоки; умеет парсить стандартные списки mtl-файлов; понимает нестандартные (но при этом ANSI) названия mtl-файлов; умеет парсить materials-файлы; понимает стандартный список параметров матариалов на 2020 год: (diffuse, bump, specular, height, color, parallax_scale); имеет возможность редактирования путей; имеет небольшого анимированного бота, сообщающего статус программы (бот может и заскучать); имеет небольшую защиту от пользователя-дурака.
(Внимание! Программа оперирует BYTE буферами, не пытайтесь маньячить с UTF-16 и прочей ересью в названиях и содержимом файлов)

Однако, файлы "map" и "*.mi" вам придётся адаптировать по старинке (или написать свою программу).

Программа представляет из себя суповой набор костылей и велосипедов. Запуская её, вы подтверждаете своё согласие быть БЕТА-тестером.

Обновления:

24.08.20.
Небольшая правка кода. MTL`ы некорректного размера больше грузится не будут.

14.02.21
Доработал парсер для чтения "NNNN" - цветов.

Чисто технически, существует вероятность, что при небольшой доработке кода, программа сможет переносить PLY-файлы на GEM 1.
Но он сильно устарел.

Спасибо пользователю Man232, а т.ж. разработчикам "SOEdit" и "Men-of-War-Blender-Importer-master" за описание структуры "MESH".

Программа + проект:
https://disk.yandex.ru/d/Z9NqifPUjvQheg

05.09.2020 в 06:49
#129
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Готова очередная тестовая версия программы (BETA v0.99). Программа готова примерно на 99,2%

04.09.20
При загрузке готовых схем, загружаются только mtl-файлы с допустимыми именами.
Убрана поддержка русских названий компонентов.
Переработаны настройки осей.
Добавлена функция скрытия/отображения главного чертежа.
Добавлена поддержка дополнительных чертежей.
Добавлена функция сохранения структур для КТА (без фона).

09.09.20
Сильно ускорен процесс сохранения структур.
Улучшено масштабирование структур под КТА.
Скорректирована система отображения слоёв.
Исправлены мелкие недочёты.

12.09.20
Запрещена любая работа с файлами при настройке осей.
Исправлены мелкие недочёты.

Инструкция:


Загрузка чертежей (схем) может быть долгой. / Loading drawings (scheme) can be long.
Скрытые компоненты не сохраняются. / Hidden components are not saved.

Спасибо пользователю GhostNT за тестирование, помощь в разработке и отладке.

14.09.2020 в 16:54
#130
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Готова финальная (но это не точно) версия программы "Easy structure maker" (Release 1.2m3).
Добавление нового функционала более не планируется, только баг-фиксы.

14.09.20
Добавлена иконка.

20.09.20
Исправлены некоторые баги.
Доработано меню компонентов. (Теперь в меню компонентов отображаются их цвета. Спасибо GhostNT).
Изменен стиль программы.
Добавлены значки.

21.09.20
Исправлена пара мелких багов.

02.10.2020
Подкорректирован интерфейс.

19.12.20
Исправил: ошибку исчезновения настроенной схемы при переключении режимов "Схема/Объекты".
Добавил: кнопку расчёта обратного угла объекта.

28.12.20
Добавил: предупреждалку об ошибках доступа и записи TGA-текстур.

14.01.21
Добавлена поддержка 15/16-битных TGA-изображений.
Добавлена поддержка PALETTED и RLE PALETTED TGA-изображений.
Добавлена поддержка P4 и P8 PALETTED DDS-изображений.

21.01.21
Исправил: ошибку, вызывающую отказ выбора нового ведомого компонента.
Добавил: кнопку удаления фона.

01.03.21
Исправил: слёт используемого языка после закрытия программы. (Используемый язык записывается в реестр.)

22.03.21
Исправил: уязвимость RLE-алгоритма в TGA-модуле.

20.09.21
Добавил новые компоненты в список: "body_front", "body_end", "shield_front", "shield_left", "shield_front".
Исправил баг с не появляющейся галочкой на кнопке: "Видимый без урона".

28.10.21
Исправил баг, при котором программа отказывалась создавать элемент для прописанного в поле редактирования компонента, ещё не добавленного в спилок компонентов.
Исправил баг с дубликатом компонента "body_front" в списке.
Добавил компонент "body_right" в список.

13.11.21
Исправил баг с невозможностью вставки скопированного элемента в другой компонент.
Исправил баг с пропаданием окна подтверждения закрытия программы.

20.11.21
Добавил: открытие меню в списке компонентов на двойное нажатие ЛКМ по элементу в нём.
Добавил: возможность переименовывать компоненты через кнопку в списке компонентов.
Исправил: баг неверного автовыбора предшествующего компонента с частично совпадающим названием в списке компонентов.

https://imgur.com/2dRzA1l


Прога:
https://disk.yandex.ru/d/RSxr8-P0bgw87A
https://www.mediafire.com/file....ile

21.09.2020 в 21:24
#131
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Доделал стабильную версию программы для пакетной интеграции альфа-канала "Alpha-integrator_(v0.5m6)".
Принцип простой:
1) Запускаем программу;
2) Выбираем папку с DDS и TGA изображениями в которые хотим интегрировать альфа-канал;
3) Выбираем желаемые параметры в меню;
4) Выбираем DDS или TGA файл, альфа-канал которого хотим использовать;
5) Ждём завершения работы обработчика;
6) Нажимаем любую кнопку на клаве.

https://imgur.com/C4Us5Wh


Программа основана на DDS_Optimizer. И поэтому тянет за собой уйму программных "хвостов".
Программа совмещает только тёмную часть альфа-канала (т.е. "прозрачную").

UPD-2:
Добавил: предупреждалку об ошибках доступа и записи TGA-текстур.
Добавил: автовыбор формата 87 для dds-файлов не кратных 4.
Пофиксил: декодировку 24-битных RLE TGA-текстур.
Пофиксил: регистровую ошибку строкового анализатора расширений.
Пофиксил: возможность изъятия альфа-канала из текстур без него.
Убрал: ошибочную работу с 15-битными TGA-изображениями.
Убрал: закрытие программы при нажатии Ctrl+C.

UPD-3:
Добавил: сигнатурный анализатор.
Добавил: анализ отдельных файлов.
Изменил: приоритет программы в системе. При открытии программы путём перетаскивания объектов на её иконку, программа будет запускаться с повышенным приоритетом.

UPD-4:
Исправил: уязвимость RLE-алгоритма в TGA-модуле.

Прога + проект:
https://disk.yandex.ru/d/aPeslCJkNFqkgw
https://www.mediafire.com/file....ile

23.09.2020 в 15:11
#132
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739

24.09.2020 в 13:16
#133
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Продолжил доделывать апгрейд своей "новой" клавиатуры.

https://imgur.com/FHQXHbw


И кажется, я начинаю заходить слишком далеко...

Чёт не получилось с резонатором на 16 МГц. А благодаря новой версии "CodeVisionAVR Evaluation", с её "божественным" новым интерфейсом, ещё и чип залочил. Причём залочил не через Boot lock, а как-то иначе. Уже и внешний XTAL пробовал, и от STK-500 насильно сажал на 1 МГц, всё без толку. Короче сдох чип, благо их у меня больше десятка. Но всё же обидно.
Откатился на старую версию софта (CodeVisionAVR V3.34 Evaluation) - и сразу всё стало шиться без проблем.
Всё чаще и чаще убеждаюсь, что нет "старого" софта. Есть "удобный" и "неудобный", "рабочий" и "нерабочий" софт, а термины "старый" или "устаревший" софт, придуманы для широкой массы пипла.

Решил заменить резонатор на 12 МГц, как это и рекомендуется на профильных форумах.
Правда, в обвязку теперь нужны 2 кондёра на 24 Пф, а в розничной продаже их, в моём 1,7 миллионном городе, всего 1 шт. 413

HID - это удобный интерфейс. Но библиотека USB для AVR - это ископаемое из начала нулевых, разумеется, стандарт 1.1.
Но альтернатива - хуже, RS-232. Uart, старый и такой же добрый. Но эмуляция под USB требует драйвера, а мне так лень с этим возиться.
Раньше можно было бить себя в грудь, изображать из себя TRUE-разраба, писать свой собственный драйвер, потом подписывать его.
За это, возможно, на каком-нибудь форуме, может быть и можно было получить лычку в стиле "Ботан года" или "TRUE-разраб", но нынче это не модно. Умные и опытные старики ушли, молодёжь перешла на Ардуино. Там и Boot loader есть, и гора библиотек есть, и версия Mini есть, и паять почти не нужно. Но в месте с этим - всё сводится к шаблонности. За уменьшение времени разработки - приходится платить креативностью. Это оправдано, но грустно.
Ну а я остаюсь при своём. При закостенелом восприятии и при горстке старого барахла с ворохом древних файлов и методов.
Увы. Половина моих закладок с полезными сайтами по радиоэлектронике уже не работают.
Со временем даже эти мои депрессивные стенания уйдут в небытиё (или Веб Архив).
Просто всё стало как-то непривычно. Раньше народ был на форумах и спец. сайтах, где было много веток, где были спецы и "личный" подход. А сейчас все свалили в помойку всенаправленных соц. сетей и мессенджеров. Специализации - нет, местечковости - нет, спецов - нет, ответственности - нет, всем на всех пофиг. Народ не хочет что-либо делать, хочет только мемасики потреблять.
Скажете "зато не надо регистрироваться на разных сайтах" - да "тьфу" на Вас.

Ну а пока к своим "баранам".
Вот нужные мне фьюзы:

https://imgur.com/IZ0ADay


Да, кстати. Удалось подключить костыли 2010 года к софту 2019, а именно:
WinAVR к Atmel Studio 7.0

https://sourceforge.net/projects/winavr/files/
https://www.microchip.com/mplab/avr-support

А подменить нужный компилятор можно, если всмотреться в эти картинки:
https://imgur.com/z60dSIn


https://imgur.com/0j3SN5J


И костыли работают, и интерфейс приятный. ^_^

И ещё одна полезная ссылка (из тех, что работают).
http://we.easyelectronics.ru/electro....sb.html

Вкратце, я купил "светящуюся" клавиатуру, но мне не нравится режим её работы.
Через некоторое время бездействия подсветка отключается. Чтобы её включить, нужно нажить кнопку, а я не хочу нажимать кнопку, это неудобно. Поэтому решил доработать её программно-электронную начинку.
Заодно USB-хаб и припаял, тоже удобно. Особенно для мелких файлов.

27.09.2020 в 09:23
#134
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Ей!!! Я уже и забыл на сколько это приятно :)

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

https://imgur.com/1j8QUkp


https://imgur.com/0ErsYBT


Спасибо брату за радиодетали)

27.09.2020 в 19:14
#135
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Пришлось задействовать дополнительные N-P-N транзисторы (s8050 818) для светодиодов.
https://shematok.ru/transistor/s8050
https://www.radiolibrary.ru/reference/transistor-imp/s8050.html

Вот что получилось:


По итогу прога для настройки выглядит примерно так:
https://imgur.com/Hh1zH3e


UPD-1 (17.10.2020):
Исправил баг, при котором программа не видела отключение устройства.

Файлы проекта:
https://yadi.sk/d/eRJPMc5AmSt-8g

23.10.2020 в 19:42
#136
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
А-а-а хоспадяяя. Этот божественный DXT-декодер GEM2. Не умеет читать DXT DDS-файлы при некратности разрешения 4.
Снова мучаю код оптимизатора.

https://imgur.com/nhnEdu8

24.10.2020 в 10:57
#137
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Единый текстурный оптимизатор "DDSandTGA_Optimizer" (для мододелов) обновлён до версии v1.1m6 (RELEASE).

https://imgur.com/LR173Tf


UPD-1:
DDS-файлы не кратные 4, теперь по умолчанию кодируются без сжатия (но в настройках есть возможность принудительного сжатия).

UPD-2:
Поддерживаются длины путей до 3000 символов.

UPD-3:
Убрал закрытие программы при нажатии Ctrl+C.

UPD-4: (v0.9m5)
Пофиксил декодировку 24-битных RLE TGA-текстур.

UPD-4: (v0.9m6)
Сделал предупреждалку об ошибках доступа и записи TGA-текстур.

UPD-5: (v0.9m7)
Добавил: оповещалку ошибок сканера TGA-сигнатуры.
Пофиксил: регистровую ошибку строкового анализатора расширений.
Убрал: ошибочную работу и 15-битными TGA-изображениями.

UPD-5: (v0.9m8)
Добавил: поддержку DDS формата DXGI_FORMAT_BC5_UNORM.
Пофиксил: блок принятия решений.

UPD-6: (v0.9m9)
Пофиксил: блок принятия решений.

UPD-7: v1.0 (RELEASE)
Добавил: сигнатурный анализатор.
Добавил: анализ отдельных файлов.
Изменил: приоритет программы в системе. При открытии программы путём перетаскивания объектов на её иконку, программа будет запускаться с повышенным приоритетом.

UPD-8: v1.1 (RELEASE)
Исправил: уязвимость RLE-алгоритма в TGA-модуле.

UPD-9: v1.1m2 (RELEASE)
Исправил: анализ альфа-канала в TGA-модуле.
Исправил: удаление чисто черного альфа-канала.

UPD-10: v1.1m3 (RELEASE)
Исправил: анализ альфа-канала в TGA-модуле.

UPD-11: v1.1m4 (RELEASE)
Исправил: декодирование альфа-канала BC-блоков.
Изменил: MiP-фильтр на default.

UPD-12: v1.1m5 (RELEASE)
Добавлен: режим "Жёсткой альфы".
Добавлен: режим "Игнорирования цвета за альфа-каналом".
Добавлен: режим "Стандартизации разрешения".
Изменил: фильтр на "MITCHELL".
Изменил: параметры запуска многототока.

UPD-13: v1.1m6 (RELEASE)
Добавлена: английская локализация.
Добавлена: возможность переходить по пунктам меню на пробел, бэкспейс и кнопки лево/право.
Исправлен: ряд мелких багов.
Изменил: DDS`ки с MiP`ами не кратными 4 теперь кодируются без сжатия по умолчанию.

Прога + проект:
https://disk.yandex.ru/d/eqpuiR6HSnseng
https://www.mediafire.com/file....ile

Ай! Кому я рассказываю!? Всё равно никому оно ненужно...

11.01.2021 в 13:56
#138
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Опять стройка встала. На стройке паралич.
Прораб изобретает свой собственный кирпич...

https://imgur.com/llvdCuU


Фух...
Добавлена поддержка 15 и 16 битных TGA-изображений.
А вы знали, что 5-битная растровая маска для 15/16-битных TGA-изображений составлена таким образом:
GGGBBBBB RRRRRGG ?
Тут, GGGBBBBB является старшим байтом пиксельного слова, а RRRRRGG соответственно - младшим.
Схема заполнения выходных значений весьма проста, если не сказать банальна: 1A-5R-5G-5B.
Но при этом, зелёные биты раскиданы на две части DWORD`а.
Для перекодировки же его в используемый прогой ABGR-формат, есть вот эти костыли:

https://imgur.com/dulmnUb


Все 15 и 16 битные TGA-изображения, в моей программе, имеют идентификатор TGAImage::APROX.
В прочем... Использовать его можно только для чтения, ибо функционал TGA-модуля не содержит encoder`а для этого формата.
Он простой. По сути, главный encoder здесь - это операция LOBYTE((bgra) >> (NChenel * 8)) >> 3).
Но нельзя забывать, существуют такие спецификации как PAL и RLE.
Хуже того, две эти смежные для TGA технологии, могут использоваться парно.
15бит + PAL + RLE
- тот ещё геморрой.

Количество внутренних switch`еров в формате TGA, не впечатлит того, кто видел устройство DDS-файлов.
Но определённо станет вторым, после прочтения Wiki, звоночком.
В прочем, отступил...

Спецификация APROX, является уникальной для моей программы, т.к. ни один из используемых мной детерминаторов, не имеет автоконвертера для 5-битных растров.

Вот конвертер из 1,3,4-байтных в 4-байтные имаги внутри чанкового парсера RLE TGA-модуля:
for(int i2 = 0; i2 < bytespp; i2++)
{data[currentbyte++] = (i2 < OldSpp) ? FileBuffer[ByteCount++] : ((OldSpp == GRAY_SCALE) ? ((i2 < 3) ? FileBuffer[ByteCount-1] : 255) : 255);}
При этом, bytespp = 4, а OldSpp = (1,3,4).

Реализация отвратна, но суть думаю ясна.
Подобный алгоритм не справится с 1A-5R-5G-5B.
Поэтому - костыли. Натива не будет...

Подразрядное APROX`а, а именно 16-битки - тоже не порадовали...
Все встреченные мной кодировщики, кодировали альфу неверно.
Пришлось ставить 255`ую заглушку на этот канал.
Мелочь, а неприятно.

Из приятного только то, что эким раком удалось запустить NoRLE PALET`ы:

https://imgur.com/D2dn8AH


Во что я только не кодировал этого тигрёнка, но ничё. Думаю он привык)))
Просто картинка в своё время попала под руку, и подошла по параметрам тестового перекодирования.

В прочем, к чёрту дифференцирование кода! Пора браться за RLE PALET`ы!
А потом - PAL`ычи 4&8 для DDS.

13.03.2021 в 11:32
#139
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Стоило только преисполниться в познании структуры PLY-файлов,
и скины сразу стали становиться +- нормальными.

(было)
https://imgur.com/DII7GJW


(стало)
https://imgur.com/Zh8cC22

14.03.2021 в 18:22
#140
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739


И так... Кажется новая версия редактора PLY файлов - готова. MoW PLY Editor v1.3m1.
(Глубокого тестирования не проводил.)

Эта программа - пример типичного узкоспециализированного фиксерского софта.

https://imgur.com/j3jv1lN


Программа предназначена для опытных мододелов-моделлеров и мододелов-кодеров.
Возможности программы:
1) Просмотр большинства параметров PLY файлов;
2) Редактирование путей материалов;
3) Добавление флагов материала в мэши, вертексы и "Flexible Vertex Format";
4) Добавление флагов бампа в мэши. (При этом, в вертексы добавляется 255`ая заглушка.)
Это тестовая функция. Блок бампов практически не изучен;
5) Подмена линкуемых имён костей (скинов).
Подмена выполняется путём анализа и переписывания таблицы суб. скинов для каждого меша.
Специфика сопряжения костей (скинов) с вертексами не изучена в полной мере.
И НЕТ! Это не решается напрямую через индексный блок в вертексах. Пробовал уже...
Любое криворукое использования этой функции может испортить ваш скин;
6) Общее редактирование внутримешевого спекулярного цвета;
7) Общее редактирование внутривертексного цвета;
8) Возможность конвертировать объекты в карты и наоборот;
9) Открытие файлов через перетаскивание их мышкой;

Как что работает:
1) OPEN - открывает диалог для открытия PLY файла. При удачном выборе, открывает PLY файл версии "E";
2) SAVE - открывает диалог для сохранения PLY файла. При удачном выборе, сохраняет данные в выбранный файл;
3) SAVE OPEN - сохраняет открытый файл;
4) OTHER -> Remove fingers - перелинковывает кости пальцев на кисти (Только для скинов MoW AS2 CW);
5) OTHER -> Add Bump in vertexes and MESHs - эта функция должна была добавлять +- корректную поддержку бампов в мэши с флагом материала.
Но рассчитать бамп-буфер "с ходу" не удалось. В функцию была добавлена "заглушка", и сама она оставлена "в довесок".
Следующее поколение кодеров может быть разберётся..;
7) Rename - перезаписывает путь выбранного мэша.
(Можно и Enter нажимать в соответствуем поле редактирования.);
8) Replace SKIN - заменяет номера выбранного скина, на номер скина из выпадающего списка.
Функция используется для подмены невалидных костей (скинов).
9) OTHER -> BPLY (map) mode - конвертирует объект в карту;
10) OTHER -> Fvf editor - правит Fvf во всех MESH`ах сразу (позволяет включать/выключить Diffuse-цвет в вертексах);
11) OTHER -> Mesh flags editor - позволяет править флаги в выбранном мэше;
12) OTHER -> Vertex flags editor - позволяет править флаги во всех вертексах сразу;
13) OTHER -> Specular color editor - позволяет править спекуляры только в MESH`ах, и только все сразу;
14) OTHER -> Diffuse color editor позволяет править цвет во всех вертексах сразу;
(Для записи Specular/Diffuse цветов, требуется соответствующий включенные флаги в MESH-флагах и FVF-флагах соответственно);

Mesh/Vertex - флаги:
1) TWO SIDED - добавляет отображение текстур на вывернутых наизнанку деталях;
2) USE ALPHA - использует альфа-канал (флаг устарел, режим совместимости);
3) LIGHT - использует свет сцены в реальном времени (флаг устарел, режим совместимости);
4) PLCR - использует цветной свет "плеера";
5) SKINNED - скинованный мэш;
6) SHADOW - расчёт тени исходя из данных SHDW-блока;
(Если нет SHDW-блока, то флаг "SHADOW" не включать!)
7) MIRRORED - имеет отрицательное масштабирование;
8) BLENDTEX - использует отдельную текстуру с альфа-канатом;
9) BUMP - использует карту рельефа;
10) SPECULAR - имеет спекулярный цвет;
11) MATERIAL - использует файл материала (mtl, tex), а не текстуру;
12) SUBSKIN - имеет набор скинов (костей);
13) TWOTEX - имеет 2 текстуры на 1 мэш (актуально для карт);
14) USINGVD - использует вертексную декларацию FVF, вместо мэшевой (актуальность флага под вопросом);
15) LIGHTMAP - использует текстуру освещённости.

Ещё несколько заметок:
1) При использовании mtl`ов нужно включать флаг материала;
2) Если цифры в "Vertex size" и "Сalculated vertex size" не совпадают, то корректного взаимодействия с файлом не будет;
3) Скинованные PLY`шки в карты не конвертировать!
4) После конвертирования объекта в BPLY (карту) и обратно в EPLY (объект), ломается расчёт теней при использовании спекуляров в MTL`ах.
(Спекуляры в mtl придётся отключить);
5) Спекулярные данные устанавливать желательно, но не обязательно;
6) Для удобства правки геометрии в редакторе, программа просит разрешения умножить геометрию в 10 раз. (При обратном конвертировании спросит о делении в 10 раз);
7) Программа не умеет корректно работать с файлами "В тылу врага" образца 2002 года;
8) Введена частичная поддержка SUBM-блоков (тестовый режим). Можно в полуавтоматическом режиме конвертировать карты с Ш2 на Ш1.
9) Для EPLY файлов (в Ш2 и выше) нужно устанавливать флаг вертексов в 0x00000007.

Модификация X/XX`вых моделей.


Если вы программист. И занимаетесь разработками в области 3D графики "В тылу врага".
То в прикреплённом архиве вы найдёте исходные коды, которые могут вам пригодиться.

Архив с программой и исходниками:
https://disk.yandex.ru/d/oiVlakePXMoMIg
https://www.mediafire.com/file....ile

Сама программа находится в папке: "Win32\Release\".

Спасибо пользователям GhostNT и Man232 за содействие в разработке.

И ещё...
Обязательно делайте бэкапы.
https://imgur.com/4a1Gscu


UPD-1 (10.07.21):
Исправил лагающий счётчик размерности вертексов.

UPD-2 (25.07.21):
Исправил неудобства с кнопками.
Добавил отображение кол-ва полигонов.

UPD-3 (23.09.21):
Введена частичная поддержка SUBM-мэшевых вертексов длиной 36 байт.

Сколько бы ни пытался улучшить эту программу, но гибкостью своих настроек - она всё ещё напоминает камень.
Но это и не удивительно.
Её девиз - "нюх, как у орла, а глаз, как у собаки".

16.03.2021 в 19:33
#141
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
В MoW PLY Editor v1.1 была добавлена новая функция:
- Добавление флага MESH_FLAG_TWO_SIDED в меши.
Эта функция позволяет правильно отображать текстуры на вывернутых наизнанку деталях.

https://imgur.com/by12hpr


https://imgur.com/nYuTc6v


https://imgur.com/e44ahUn

20.03.2021 в 07:40
#142
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Очередная попытка влить в старые вены новую кровь.
Обновлённый SOEdit Version Next (v0.5m9b).



Лого:
https://imgur.com/dIpUAfx


Превью:

https://imgur.com/GcmAplo


Скрины:
https://imgur.com/9L7bOvC


https://imgur.com/p5tuTb1


https://imgur.com/ppUDAYE


https://imgur.com/fsfFwNU


https://imgur.com/utK5g9t


https://imgur.com/FKa63Yx


https://i.imgur.com/8Excku4


https://i.imgur.com/OppMn4n


Удобство, стабильность, юзабельность и много других красивых слов - никак не относятся к данной программе.
Зато, к ней относятся такие слова, как: [ЦЕНЗУРА], [ЦЕНЗУРА], [ЦЕНЗУРА] и ещё, возможно - [ЦЕНЗУРА].
- Пожалуй, наиболее точно описывающие особенности взаимодействия пользователя с данной программой.

При первом запуске программы нужно установить путь к РАСПАКОВАННЫМ ресурсам игры/мода (зависит от того, с чем будет взаимодействие).
Установить путь можно через "Меню -> Edit -> Preferences".
https://ibb.co/8sbXByk


Программа располагает:
1) Полурабочем тулбаром;
2) Тремя двухмерными окнами для взаимодействия с объектами;
3) Одним трёхмерным окном для просмотра готового результата;
4) Наглядным деревом компонентов;
5) Окнами настройки VOL и PLY объектов (вызываемых через ПКМ в дереве);
6) Системой воспроизведения старой анимации.
И всё это, надёжно склеено изолентой из Fix Price.
Любой программист сможет разобраться в этой программе.

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

По своей эффективности в плане скорости корректировки моделей - эта программа немного опережает блокнот.
Но не стоит оценивать её как полноценный редактор. Она неточная. Состоящая преимущественно из удачной последовательности глюков и багов.
И скорее является конструктором в вечной разработке для мододелов-программистов.

Отделом по разработке багов, недочётов и прочих "особенностей" - сообщается следующее:
1) Программа не умеет работать со вложенными скелетными файлами. Блок "Extension" не поддерживается! {Extension "bm13_16.mdl"}
2) Для TEX-файлов в качестве основной текстуры устанавливается первый фрейм.
4) Программа [УДАЛЕНО] терпит костей с одинаковыми названиями (но не более).
6) Все текстурные файлы, используемые моделью, должны быть распакованы!
11) Мои многочисленные правки парсера не чинят его в полной мере. Всё ещё остаётся много неизвестных лексем.
14) Предельный уровень использования памяти: для x64bit ~1.5GB, для x86bit ~1.7GB.
15) Шаровые волюмы конвертируются в кубы потому что гладиолус.
17) Файлы анимации нового типа (FRM2) (от 2006 года) [УДАЛЕНО] поддерживаются (но не мэшевые/скиновые).
18) Некоторые полигоны могут быть перевёрнуты. (Не знаю с чем это связано. Встречается очень редко).
20) Активная вкладка в окне настройки коллизии, обозначает собой тип используемой коллизии. Нельзя забывать об этом при закрытии окна настройки коллизии.
24) Интерфейс программы обновлён, но часть его элементов работает некорректно.
25) Если вы корректировали имя MDL-файла, то корректируйте его и внутри DEF-файла.
27) Программа не меняет координаты элементов в файлах анимации. Поэтому анимацию придётся отключать через блокнот.
28) Все Volume-блоки должны быть привязаны к существующим костям, иначе - игра вылетит (но программа должна предупредить об этом).
30) Игровые файлы образца 2002 года - не поддерживаются.
31) Все файлы геометрии и материалов должны содержать адекватное расширение для своего формата.
32) Система относительных координат в 2d окнах работает неверно (хоть и была немного исправлена).
34) Программа использует подсистему I/O Stream. И может конфликтовать с кривыми антивирусами типа Avast`а.
35) Программа может отображать в 2D окнах скрытую в PLY-файлах часть геометрии.
36) Максимально возможное кол-во задействованных текстур = 256

Т.ж. отмечу, что эта программа страдает синдромом "Неуловимого Джо" (того самого - которого никто не ловит, потому что он никому не нужен).
Но всё же надеюсь, что сей старый контрабас ещё сыграет свою трель...

Программа распространяется вместе с исходным кодом для "Visual Studio 2017 Community".
Сама программа находится в папке "Release".
(Начиная с версии v0.5m8, в папке с программой обязательно должна быть библиотека "FreeImage.dll")

UPD-1: 01.04.2021
Добавил: параметр лимитирования костей.
Исправил: баг сохранения лимитов костей.
Оптимизировал: общее форматирование данных в сохраняемом файле.

UPD-2: 02.04.2021
Исправил: уязвимость к обратным слэшам в модулях загрузки геометрии.
Исправил: отказ изменять модель кости в окне настройки костей.
Исправил: нерабочую кнопку выбора модели кости в окне настройки костей.

UPD-3: 07.04.2021
Исправил непрогрузку текстур при замене модели кости.
Исправил исчезновение дерева компонентов при нажатии кнопок "Enter" и "Esc" в нём.
Исправил непонимание программы запятой в окнах настройки геометрии.
Исправил множество утечек памяти.
Исправил автоматическое создание имён геометрии.
Оптимизировал окно настройки волюмов.

UPD-4: 22.04.2021
Исправил ещё немного ошибок по памяти.
Исправил отказ удаления значений параметров в окнах настройки костей и волюмов.
Заменил функцию открытия дочерних компонентов на функцию открытия окна настроек в дереве компонентов.
(Дочерние компоненты открываются при нажатии на картинку с плюсом слева от себя)
Добавил возможность редактировать скорость поворота кости.

UPD-5: 13.05.2021
Частично исправлена: система сопряжения координат и позиционирования перемещаемого объекта относительно проекций WireFrame - окон (при нескалированной и прямой цепи матриц).
Исправлено: лимиты и скорость кости больше не сохраняется при отсутствии кинематических команд.
Добавлена: проверка подшивки волюма к костям. Если при сохранении модели, программа найдёт не подшитый волюм, то сообщит об этом с указанием имени волюма.

UPD-6: 21.07.21
Кратко:
Исправлено огромное кол-во ошибок.
Уменьшена нагрузка на процессор и память.
Добавлена поддержка модов.
Добавлена проверка правильности сборки модели.
Добавлены новые возможности.

Подробно:
Добавлен анализ наличия альфа-канала в dds-текстурах.
Добавлен парсер путей текстур.
Добавлена округляющая кнопка "Round" для матриц.
Добавлен счётчик полигонов используемых PLY и VOL файлов (в шапке программы).
Добавлена проверка существования/доступности PLY и VOL файлов при сохранении mdl-файла.
Исправил плавность хода камеры в 3d окне.
Исправил некорректную загрузку/сохранение Axis в Obstacle.
Исправил ошибку несохранения Layer`а в VolumeView.
Исправил все найденные утечки памяти.
Исправил тип лимитирования "Prizmatic" с "Limits N" на "Limits N N".
Исправил гору мелких ошибок.
Добавлена библиотека FreeImage 3.18.0. Это дало поддержку форматов: BMP, TIF, JPG, PNG, GIF.
Доработаны парсеры некоторых модулей.
Добавлена поддержка модов с ПОЛНОСТЬЮ РАСПАКОВАННЫМИ РЕСУРСАМИ (тестовый режим).
Добавлена возможность редактирования модификатора скорости кости в режиме "Speed2".
Добавлена поддержка загрузки/сохранения многобазисных моделей.
Добавлена саморегуляция вызовов ожидания действий.
Добавлена проверка правильности сборки модели.
Доработана логика сохранения путей файлов геометрии:
(Если используемый в модели Ply или Vol-файл находится перед каталогом mdl-файла модели, то для них используется абсолютный путь. Вы сами должны перемещать файлы геометрии в папку с моделью, и заново перевыбрать путь.)

UPD-7: 22.07.21
Исправил ошибку невозможности ручного добавления дополнительных базовых костей.
Исправил ошибку адресации базовых костей при удалении части из них.
Упаковал исполняемый файл и графическую библиотеку UPX-упаковщиком.
Пропатчил 4GB-patch`ером исполняемый файл и графическую библиотеку.

UPD-8: 23.07.21
Исправил ошибку m_hDC-пространства в 2D-окнах.

UPD-9: 23.09.21
Кратко:
1) С гармоничностью кучи мусора вываленной посреди асфальта,
по разным контекстным меню было добавлено множество новых функций.
2) С любовью были устранены одни, и добавлены другие мелкие баги и недочёты.
3) Программный код был щедро удобрен рядом креативных испражнений нестандартных решений,
улучшающих работоспособность и юзабельность программы.

Подробно:
Добавлена поддержка суб-мэшей костей (из mdl).
Добавлена корректная поддержка LOD`ов.
Добавлена возможность открытия окон редактирования на кнопку ENTER (в дереве).
Добавлена возможность удаления костей и волюмов на кнопку DELETE (в дереве).
Добавлена частичная поддержка файлов анимации FRM2.
Добавлена совместимость с импортёрами GEMI 3D-MAX обр. начала 2021г. и Men-of-War-Blender-Importer-master обр. конца 2020г.
Добавлена поддержка SUBM-блочных мэшей (но не их файлов материалов).
Добавлена частичная поддержка SUBM-мэшевых вертексов длиной 36 байт (тестовый режим).
Добавлена возможность копипастить параметры и матрицы объектов.
Добавлена возможность добавления волюма к кости через ПКМ (в дереве).
Добавлена возможность разворачивания всего скелета. (В меню корневой кости скелета, "Bones").
Добавлена возможность сворачивания/разворачивания отдельных ветвей дерева компонентов.
Добавлена возможность просмотра схемы бронирования в 2D окнах.
Для включения этого режима нужно:
1) Через ПКМ включить "Закраску" во всех 2D окнах;
2) Включить в главном меню -> View -> Просмотр коллизии.
Доработаны парсеры.
Доработано окно настройки коллизии.
Исправлена улетающая каретка выделения после удаления объекта (в дереве).
Исправлено некорректное выделение объектов на правую кнопку (в дереве).
Исправлен режим селектирования.
(В этом режиме, если будет выделен волюм, то все остальные волюмы будут скрыты, а все кости будут отображены.
И наоборот. Если выделить кость, то все остальные кости в этом режиме будут скрыты, а вся коллизия будет отображена.)
Исправлены пропадающие кадры анимации для FRMN и FRM2.
Частично исправлена невозможность нормального взаимодействия с костями и волюмами с повторяющимися именами.
Исправлена система линкования волюмов к костям.
Оптимизирован процесс рендера во время анимации.
Исправлены ошибки управления анимацией.
Разрешено использование кости с названием SKIN. Старый рендерер скинов деактивирован. Покойся с миром ;..(
(Процесс рендера скинов перенесён на рендерер общего назначения).
Исправлены и добавлены режимы рэндера в 2D и 3D окнах.
Частично исправлен баг с улетающей камерой в 2D и 3D окнах.
Переделано управление камерой в 3D окне.
Новое управление:
ЛКМ - левая кнопка мыши.
СКМ - средняя кнопка мыши (колесо).
ПКМ - правая кнопка мыши.
1) Если зажать СКМ и CONTROL при отпущенных ЛКМ и ПКМ:
Курсором мыши будет зуммироваться модель (этот режим немного не доделан).
2) Если зажать СКМ без CONTROL при отпущенных ЛКМ и ПКМ:
Курсором мыши будет перемещаться камера.
3) Если зажать ЛКМ при отпущенных ПКМ и СКМ, то
3.1) При зажатом CONTROL будет меняться ориентирование камеры;
3.2) При отпущенном CONTROL будет меняться ориентирование модели.
4) Любое нажатие ПКМ включает меню режима рендера.

UPD-10: 26.09.21
Добавлена автоматическая сортировка списка имён костей в окне редактирования волюмов.

UPD-11: 02.10.21
Добавил возможность менять расположение источника освящения
(перемещая курсор мыши с зажатой ЛКМ и SHIFT`ом в 3D окне).
Добавлена возможность копирования/вставки/вырезания костей (в нескольких режимах).
Активированы кнопки копировать/вставить/вырезать (на главной панели инструментов)
Кнопка "Копировать" - копирует всю ветвь выделенной кости в буфер обмена windows.
Кнопка "Вставить" - вставляет костную структуру из буфера обмена windows, после выделенного элемента.
Кнопка "Вырезать" - копирует всю ветвь выделенной кости в буфер обмена windows и удаляет выделенную кость со всем её содержимым.
В меню 3D-окна добавил режимы отображения: "без текстур" и "сетка без текстур".
Добавил поддержку сохранения команд "Off" и "NoCastShadows" для LOD`ов.
Исправил ошибку некорректного сохранения LOD`ов.
Изменил изначальное расположение источника света.
Переделано меню взаимодействия с костями.
Переделано управление камерой 3D-окна в режиме ЛКМ + CTRL.

Ранняя версия этой программы создавалась без особой оглядки на качество.
Сейчас, преимущественно, выполняется доведение программы до работоспособного состояния.
Ведущие разработчики:
2004-2005 годы - Brian A. Kay (rogerwilco99).
2020-2021 годы - TonaTor.

Спасибо пользователям GhostNT и Man232 за прямое или косвенное содействие в разработке.
Отдельное спасибо пользователю Gocha за сохранение архива.

Ссылка на каталог файлов:
https://mow-portal.ru/load....-0-4011

Утерянные хроники:
https://web.archive.org/web....ttp

Чудом уцелевший архив старой версии программы и исходных кодов, на базе которых я делаю новые версии программы:
https://disk.yandex.ru/d/738W5k9f-HDxtg
https://www.mediafire.com/file/n3szalojdega2tu/SOEdit_v0.50.7z/file

Ссылки на скачивание:
https://disk.yandex.ru/d/lpX9aRvcx09ebw
https://www.mediafire.com/file....ile

20.03.2021 в 08:11
#143
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
https://imgur.com/qEl8ubf


Для того, чтобы создать ряд иконок для кнопок в MFC - нужно:
1) Чтобы ширина файла иконок (в пикселях) была равна кол-ву кнопок, умноженных на ширину одной кнопки.
2) Чтобы высота файла иконок была равна высоте кнопки, но при этом кратна восьми.
3) Преобразовать 24-битный файл иконок в индексный:
https://imgur.com/7qDeutG


4) Экспортировать в BMP с такими настройками:
https://imgur.com/CJBFBkI


Обязательно надо использовать RLE-кодировку!!!

23.03.2021 в 08:57
#144
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Сравнение игровых текстур до перекодировки их из несжатого формата в сжатый.
1) Текстура в несжатом виде:
https://imgur.com/o19KZHh


2) Текстура после BC-сжатия:
https://imgur.com/ikG34zX


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

10.05.2021 в 16:18
#145
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Удалось частично починить сопряжение систем координат в SOEdit. А это значит, что скоро новый патч !!!

https://i.imgur.com/gxtR7k3.png

24.05.2021 в 20:17
#146
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Мои творческие испражне изыскания всё продолжаются...
Если удастся при помощи движка вносить правки в геометрию, то этот инструмент станет немного полезнее)))



https://imgur.com/GW682Gu

11.06.2021 в 19:50
#147
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Плагины, плагины, плагины...
Процесс вытаскивания моделек упростился до безобразия.

https://imgur.com/Y2NHOot


Ещё бы плагин для автоматического раскидывания текстур.

https://imgur.com/OgNdeZL


И плагин для адекватной оптимизации вертексов коллизии:
https://imgur.com/C8cRGva


А то лажа иногда случается...
https://imgur.com/c8ApoBX

19.06.2021 в 08:05
#148
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
Для "DDSandTGA_Optimizer" была добавлена функция стандартизации разрешения.
https://imgur.com/e3yaplh


Эта функция подтягивает разрешение текстуры к ближайшему стандартному.
(На основании этих рекомендаций от bestway и моего коэффициента жадности)

Вот алгоритм выбора разрешения:
https://imgur.com/eDSKYmV

24.06.2021 в 17:52
#149
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
И так...
Снова мытарства с "DDSandTGA_Optimizer".

То, что что-то пошло не так, я заметил в версии v1.1m3.
Альфа BC`шных MiP`ов могла "белеть".
Этот баг мог проявляться только в специфических условиях и поэтому не был замечен.

(Все деревья и кусты на скриншоте были специальным образом обработаны оптимизатором версии v1.1m3)
https://imgur.com/8kAjz97


В версии v1.1m4 этот баг был исправлен, и сразу был найден новый:
https://imgur.com/NFO0LKa


Дело в том, что при создании MiP-уровней, фильтрацию проходит и альфа-канал.
Там, где альфа-канала много - он сильно замыливается. Кусты стали терять листву.
Чтобы этого не было, фильтрация была переключена в режим "DEFAULT" (единственный фильтр, который не был подвержен этому багу).
- В таком виде была выпущена версия v1.1m4

Разумеется я не мог оставить программу в таком виде.
Фильтр "DEFAULT" - это убожество, от которого вытекают глаза.

Смотрите сами.
Вот пример работы фильтра "DEFAULT":
https://imgur.com/guGdg8d


А вот пример работы фильтра "MITCHELL":
https://imgur.com/RRGhQsd


Уже на этом месте любой человек скажет "просто рендерь RGB с "MITCHELL", а альфу в "DEFAULT".
При разработке версии v1.1m5 я так и сделал.
Нооо.....
Я забыл, что у нас полно "талантливых" мододелов.

Видите подвох? )))
https://imgur.com/eBiE3yM


Долго же я блок аппроксимации в программе ковырял...
Коэффициенты пересчитывал. Под микроскопом изучал память программы...
Белые пиксели по кромке альфы. Почему?

А вот почему:
https://imgur.com/HNzJEFM


Неверный цвет фона за альфа-каналом.

Опять стройка встала. На стройка паралич.
Прораб изобретает свой собственный кирпич...

А именно:
Кинул внахлёст алгоритм грубого рендера альфы.
Усёк его на мягком фильтре.
Создал алгоритм выборки основного цвета (с мест, где нет альфы).
Создал алгоритм подмены цвета за альфой меньше 41.

Альфа стала жёсткой, листва исчезать перестала, а шумы на кромке - исчезли:
https://imgur.com/JVpSGle


В саму программу была добавлена пара кнопок:
https://imgur.com/q6hVIUx


1) "Жёсткая альфа" - использовать жёсткий и чёткий альфа-канал на фильтруемых изображениях.
2) "Игнорировать цвет за альфа-каналом" - это небезопасный для RGB-пространства режим, который можно использовать только с режимом "Жёсткой альфы".
Он:
2.1) Рассчитывает основной (усреднённый) цвет изображения, исходя из цвета ПОЛНОСТЬЮ НЕПРОЗРАЧНЫХ пикселей, которых не касался альфа-канал;
2.2) Забивает этим цветом пиксели, находящиеся на границе воспринимаемого взглядом альфа-канала (тем самым - подменяя данные для выборки)
2.3) Для фона (за альфа-каналом) быстро создаётся изображение в "DEFAULT"-качестве.

Почему этот режим является небезопасным для RGB-каналов?
Вот как выглядит готовый результат:
https://imgur.com/SCanTuW


Но вот как выглядят RGB-каналы:
https://imgur.com/bRvcFXl


Использовать режим "Игнорирования цвета за альфа-каналом" рекомендую только осмысленно и очень точечно.
А использовать режим "Жёсткий альфы" совместно с режимом "стандартизации разрешения" - вообще не рекомендую.

28.06.2021 в 14:21
#150
TonaTor
Зам. Основателя
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1940
Репутация: 739
В SOEdit Version Next (v0.5m8) была улучшена поддержка "мягкого" альфа-канала,
а т.ж. добавлена библиотека "FreeImage 3.18.0" образца июля 2018 года.

https://imgur.com/srzAqjf

Форум » Общее » Различные программы » Разработки от TonaTor (Разные мелкие программы)
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:
Индекс цитирования