Разработки от TonaTor
|
|
|
Провёл сравнительный анализ качества сжатия в 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 немного более лучшая внутристрочная цветовая коррекция.
|
|
|
|
|
Сделал новую версию 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-уровней (там где они предусмотрены).
В программе есть ошибки. Ссылка удалена.
|
|
|
|
|
|
|
|
Доделал новую версию оптимизатора.
Добавил поддержку форматов: DXGI_FORMAT_BC2_UNORM = 74; DXGI_FORMAT_BC3_UNORM = 77;
Добавил: авто-генерацию mip-map`ов (кол-во определяется автоматически).
Добавил: поддержку нестандартных разрешений. (теперь высота и ширина текстуры может быль не кратна 4).
Изменил: алгоритм определения необходимого формата стал ещё умнее.
Добавил: возможность удалять "чёрный" альфа-канал (это когда текстура полностью прозрачна).
https://imgur.com/ATOFUWf
 После её испытаний выложу её на форум.
|
|
|
|
|
Сделал новую версию DDS-оптимизатора 0.6m.
Добавил опциональную поддержку формата: DXGI_FORMAT_BC1_UNORM = 71;
Добавил: пакетную обработку папок (каталогов), при перетаскивании выбранных папок в ярлычок программы. В этом случае, приоритет программы для винды, будет очень низким, т.к. предполагается, что пользователь запустит ещё несколько оптимизаторов таким же образом. (короч чтб комп не лагал)
Добавил: возможность создания DXT1 с 1-битным альфа-каналом.
Добавил: вывод имени и процента обработки файла в заголовок программы.
Изменил: политику записи в файл. Сначала выполняется расчет вообще всех данных, а потом единоразовая запись всех буферов в файл. Это защита от криворуких юзеров, которым не терпится нажать на крест. При новой политике буферизации, выживаемость файлов после криворуких юзеров, возросла почти до 100%.
Исправил найденные баги. Оптимизировал работу со сжатыми dds`ками (там, где возможно). И ещё много незначительных изменений и улучшений.
|
| |  |
|
|
|
|
|
|
|
|
|
|
Я допустил тяжелейшую ошибку в программе. Программа портит почти все DXT3 текстуры.
Релиз отложен на 2 недели...
На этот раз тестирование будет долгим...
|
|
|
|
|
В игровых ресурсах есть такой домик... ну или то, что от него осталось...
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

Надеюсь, что разработчики этот баг движка игры пофиксят. Тем более, что метод его исправления в пару кликов уже найден.
Надеюсь, что не останусь без внимания.
|
| |  |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вот и вышла новая версия оптимизатора (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], т.к. это ведет к неминуемому вылету с ошибкой или к зависанию программы. С возможной потеряй данных. Так же не рекомендую закрывать программу крестом во время обработки файлов, т.к. это тоже может привести к потере данных.
Снова нужны бэта-тестеры.
Вот архив с программой: (удалено)
Архив с исходным кодом: (удалено)
В программе найден критический баг, ссылки удалены.
|
| |  |
|
|
|
|
|
|
|
DDS_Optimizer не прошёл нагрузочный тест 60ГБ-модом.
Ошибку нашёл. Ошибка сложная. Буду исправлять.
Короч при обработке 10ГБ модов malloc не хочет выделять память для графики. После обработки десятков тысяч dds-файлов.
https://imgur.com/R1d2jmD

Ошибка в утечке памяти. Буду делать надстройку для внутрипрограммного менеджера памяти.
|
|
|
|
|
|
|
|
До исправления бага с памятью не смогу выложить новый билд(((
UPD-1: Нашёл баг с утечкой памяти и подставил тазик. Буду тестить)))
UPD-2: Нагрузочный тест не пройден.((
UPD-3: Во время ревизии кода нашёл неисправность освобождения дескрипторов мьюьексов синхронизации потоков. Это вызывало ошибку переполнения системного банка дескрипторов. Система возвращала код ошибки 0xc000009a - STATUS_INSUFFICIENT_RESOURCES. Это вызывало событие класса "throw", что вызывало в цикле-обработчике операцию типа "continue". И буферы памяти небыли отчищены. Вскоре. Виртуальная память типа "MEM_RESERVE" исчерпывалась и происходил сбой аллокации. После этого начиналось "Память по адресу 0x00000000 не может быть Written".
На данный момент продолжаю тестирование.
UPD-4: Программа прошла нагрузочный тест. Скоро новая бетта.
UPD-5: Провожу доп. тесты.
|
|
|
|
|
|
|
|
Фух-х-х... Вот и новый билд DDS_Optimizer_(v0.8m6) (для мододелов).
(На скриншоте v0.8m4, а не v0.8m6 потому что лень ) https://imgur.com/P1Rg9Rw

Исправлена работа с памятью; Исправлена работа с дескрипторами; Исправлена некорректная работа с забитым диском; Отлажена работа с сетевыми дисками.
UPD-1: 1) Фильтр по умолчанию переключён на BOX. (для ускорения) 2) В параметрах анализа и перекодировки по умолчанию включён 3 пункт меню. (это можно делать при вкл. 4 и 5 пунктах)
UPD-2: 1) Исправлена ошибка невозможности работы с не архивными файлами.
UPD-3: (18.06.20) 1) Фильтр по умолчанию переключён на MITCHELL (качество графики важнее). 2) Исправлена ошибка при записи повреждённых файлов.
|
|
|
|
|
|
|
|
Постепенно веду разработку программы для быстрого и простого создания структурок техники. Это пока ещё сырая наработка. Доделывать ещё много))
|
|
|
|
|
А разработка тем временем продолжается...
Программа готова примерно на 50%.
|
|
|
|
|
Готова первая бета-версия. Программа готова примерно на 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. Исправил ошибки подбора цвета. Добавил рамку на объекты при выделении их курсором. Добавил кнопку "отчистить всё". Добавил возможность создания дочерних компонентов (дочерние компоненты ссылаются на изображения родительских компонентов). Переделал функцию загрузки изображения схемы (чертежа). Картинка стала в разы более плавной, но при этом осталась чёткой.
|
| |  |
|
|
|
|
А вот и небольшой туториал подъехал.
|
|
|
|
|
Обновлённая функция-загрузчик вытягивает даже чертежи низкого качества. Было (слева) и стало (справа).
https://imgur.com/vQ7ltOn

Все компоненты в программе делятся на 3 типа: ведущий (содержащий схему), ведомый (использующий схему ведущего) и служебный (незанятый, но существующий). Новый пункт компонентного меню, позволяет привязывать ведомые компоненты к ведущим. Благодаря этому, будет неважно, на какое название ссылается игра, на "trackleft" или на "trackL". Если они оба будут, и один из них будет ведущий, а другой ведомый, - то в любом случае подсвечиваться будет нужный компонент.
https://imgur.com/esbMuug
|
|
|
|
|
Готова очередная бета-версия (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
|
| |  |
|
|
|
|
Последняя версия (Release v1.1).

Программа для конвертации 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: Братья по оружию, Чёрные бушлаты (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`ы некорректного размера больше грузится не будут.
Чисто технически, существует вероятность, что при небольшой доработке кода, программа сможет переносить PLY-файлы на GEM 1. Но он сильно устарел.
Спасибо пользователю Man232, а т.ж. разработчикам "SOEdit" и "Men-of-War-Blender-Importer-master" за описание структуры "MESH".
Скачать программу: https://yadi.sk/d/fXQIjypVHCGwhA
Скачать проект программы: http://www.mediafire.com/file/mzowxxhu6n7qeuo/54_map_convertor.7z/file
|
| |  |
|
|
|
|
Готова очередная тестовая версия программы (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 за тестирование, помощь в разработке и отладке.
|
|
|
|
|
Готова финальная версия программы "Easy structure maker" (Release 1.1m7). Добавление нового функционала более не планируется, только баг-фиксы.
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 Исправил: ошибку, вызывающую отказ выбора нового ведомого компонента. Добавил: кнопку удаления фона.
https://imgur.com/2dRzA1l

Прога: https://yadi.sk/d/QGZuaHNmBsKKdg https://www.mediafire.com/file....ile
Код для RAD Studio XE3: https://yadi.sk/d/3B9iIXYTRb-ASg
|
| |  |
|
|
|
|
Доделал стабильную версию программы для пакетной интеграции альфа-канала "Alpha-integrator_(v0.5m4)". Принцип простой: 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.
Прога + проект: https://yadi.sk/d/aOoEl8WiTSlr0w
|
| |  |
|
|
|
|
Объединил две программы в одну. Единый текстурный оптимизатор "DDSandTGA_Optimizer_(v0.9)". Давно уже хотел сделать единый комплексный мультитул для оптимизации текстур на уровне суб. форматов. Программа может оптимизировать как оба формата сразу, так и только DDS или TGA на выбор пользователя.
https://imgur.com/SuHrhoA
|
|
|
|
|
Продолжил доделывать апгрейд своей "новой" клавиатуры.
https://imgur.com/FHQXHbw

И кажется, я начинаю заходить слишком далеко...
Чёт не получилось с резонатором на 16 МГц. А благодаря новой версии "CodeVisionAVR Evaluation", с её "божественным" новым интерфейсом, ещё и чип залочил. Причём залочил не через Boot lock, а как-то иначе. Уже и внешний XTAL пробовал, и от STK-500 насильно сажал на 1 МГц, всё без толку. Короче сдох чип, благо их у меня больше десятка. Но всё же обидно. Откатился на старую версию софта (CodeVisionAVR V3.34 Evaluation) - и сразу всё стало шиться без проблем. Всё чаще и чаще убеждаюсь, что нет "старого" софта. Есть "удобный" и "неудобный", "рабочий" и "нерабочий" софт, а термины "старый" или "устаревший" софт, придуманы для широкой массы пипла.
Решил заменить резонатор на 12 МГц, как это и рекомендуется на профильных форумах. Правда, в обвязку теперь нужны 2 кондёра на 24 Пф, а в розничной продаже их, в моём 1,7 миллионном городе, всего 1 шт. 
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-хаб и припаял, тоже удобно. Особенно для мелких файлов.
|
| |  |
|
|
|
|
Ей!!! Я уже и забыл на сколько это приятно 
Получилось создать своё оборудование для компьютера. Пускай это всего лишь скромная микросхема с парой функций, зато сделанная своими силами. Микрокод ещё нужно слегка доделать и оптимизировать, но комп уже способен её видить)))
https://imgur.com/1j8QUkp

https://imgur.com/0ErsYBT

Спасибо брату за радиодетали)
|
|
|
|
|
|
|
|
А-а-а хоспадяяя. Этот божественный DXT-декодер GEM2. Не умеет читать DXT DDS-файлы при некратности разрешения 4. Снова мучаю код оптимизатора.
https://imgur.com/nhnEdu8
|
|
|
|
|
Единый текстурный оптимизатор "DDSandTGA_Optimizer" (для мододелов) обновлён до версии v0.9m7.
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-изображениями.
Прога + проект: https://yadi.sk/d/VLzLGo6Ied8oGA
На подходе более свежая версия. С поддержкой формата №-83.
Ай! Кому я рассказываю!? Всё равно никому оно ненужно...
|
|
|
|
|
Опять стройка встала. На стройка паралич. Прораб изобретает свой собственный кирпич...
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.
|
| |  |
|