Чат Новости Форум Каталог файлов Каталог статей Вики P3DM.ru Активность пользователей Платные модели
Последние обновленные темы
Самые популярные темы
Самые активные пользователи
Новые участники
Ghosteron [2798]
XemorDio [1696]
TonaTor [1132]
UZSTALKER [500]
andurin633 [15.12.2019]
sovetovb05 [14.12.2019]
kirill_strelok [14.12.2019]
egorvershinin123 [14.12.2019]
ceregaspamin [14.12.2019]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум » Общее » Различные программы » DDS Viewer (Просмоторщик текстур)
DDS Viewer
15.09.2019 в 20:18
#101
TonaTor
Продвинутый
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1132
Репутация: 688
Провёл сравнительный анализ качества сжатия в 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 немного более лучшая внутристрочная цветовая коррекция.

15.09.2019 в 21:44
#102
TonaTor
Продвинутый
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1132
Репутация: 688
Сделал новую версию 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
Сообщений: 1132
Репутация: 688
Благодаря этой оптимизации мои папки с модами стали весить намного меньше))) lol

https://imgur.com/0GAC4lw

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

Добавил поддержку форматов:
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
Сообщений: 1132
Репутация: 688
Сделал новую версию DDS-оптимизатора 0.6m.

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

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

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

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

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

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

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

https://imgur.com/QlUzEbl

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

https://imgur.com/RDJBZRS

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

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

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

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

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
Сообщений: 1132
Репутация: 688
А вот и первые испытания многопоточности)))

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


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

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

https://imgur.com/o2aDhJL

26.10.2019 в 07:47
#112
TonaTor
Продвинутый
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1132
Репутация: 688
Ей! Я смог собрать тигрёнка!

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
Сообщений: 1132
Репутация: 688
А тем временем в моей КОНСОЛЬНОЙ программе, появляется человеческое кнопочное меню ))) :) 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
Сообщений: 1132
Репутация: 688
Вот и вышла новая версия оптимизатора (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
Сообщений: 1132
Репутация: 688
У BC-компрессоров увы есть свой придел.

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


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

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

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

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

https://imgur.com/R1d2jmD


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

07.11.2019 в 13:01
#117
TonaTor
Продвинутый
Статус: Offline
Регистрация: 10.12.2017
Сообщений: 1132
Репутация: 688
В программу было добавлено меню фильтров для 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
Сообщений: 1132
Репутация: 688
До исправления бага с памятью не смогу выложить новый билд(((

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
Сообщений: 1132
Репутация: 688
Кстати; Вот как выглядит игра если отключить Mip-уровни (смотреть в полноэкранном режиме):

https://imgur.com/S7kRYoI

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

https://imgur.com/P1Rg9Rw


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

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

Программа + код.
https://yadi.sk/d/Iv6h0Uhi9wdh0A

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