Вы видите копию треда, сохраненную 9 сентября в 07:38.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
есть кстати специальный tex viewer ("dds" запакованы внутрь tex) для этой игры, он импортирует и отображает текстуру словно без альфа канала (пик 3), но если ее экспортировать в tga формат, то превью у нее словно без альфа канала, но при открытие изображения nomacs'ом там альфа канал присутствует...
в общем, что это за хуйня может быть? и какой способ верный?
саму игру не видел, но альфа-канал они могут использовать для чего угодно, например, хранить в нём ещё и roughness map или какие-то другие данные, это не просто прозрачность
>непонятно, что ты хочешь сделать
пишу свой конвертер из .tex в .png, чтобы экспортировать все файлы текстур из игры для удобного анализа и поиска конкретных текстур, чтобы потом их использовать для кое-чего.
данный инцидент - просто индикатор текущей верности в обработке данных. т.е. если я буду уверен, что правильно обрабатываю данные в этом случае, то можно будет идти дальше и начинать писать декодер для DXT1, DXT3 и тд сжатий.
>они могут использовать для чего угодно
ну я примерно так и думал, что вероятно игра сама обрабатывает этот альфа канал как ей надо. т.е. его лучше просто декодировать как есть, не смотря на визуальный эффект
не знаю что ты имеешь в виду под считыванием, вероятно всё пашет, просто то, чем ты смотришь текстуру, предумножает RGB на альфу. удали альфа-канал из текстуры или настрой софт так, чтобы он не применял альфу
>>48297
>пишу свой конвертер из .tex в .png
прозрачность в png это не то же самое, что альфа-канал: png удаляет пиксели под прозрачностью. правильно будет конвертировать в tga, там сохраняются и пиксели RGB, и A
без потерь информации конвертацию в png можно применять только для текстур без альфа-канала
либо сохранять текстуру в 2 пнг файла: отдельно PNG RGB 24-bit и отдельно альфу в PNG G 8-bit
>png удаляет пиксели под прозрачностью
что значит "удаляет"? если я обратно декодирую IDAT чанк с данными о пикселях в png, то я получу абсолютно тот же буфер, который был до сжатия (deflate). и записываю я инфу о пикселе в 4 байта, т.е. все 4 канала записываю. или я тебя не понял
>>48303
>png удаляет пиксели под прозрачностью
или ты имеешь ввиду как он интерпретирует данные для отображения?
>правильно будет конвертировать в tga
но тга тоже отображается с прозрачностью. или это зависит от декодеров этих форматов?
вообще странно все как-то, данные то по сути и в первом и втором случае есть, просто они не видны...
>не знаю что ты имеешь в виду под считыванием
это значит если инфа о пикселе идет в формате BGRA, например [120, 23, 56, 98] (4 байта), то я их беру все и записываю в PNG как они есть, без изменения, меняю только местами порядок B и R, т.е. получаю RGBA (этого требует PNG для корректного отображения).
а когда я менял принудительно А канал на 255, для примера выше я бы заменил 98 на 255.
я возможно хуйню сморозил и это не обязательно так
обычно если сохранить в пнг в графическом редакторе, то альфа премултиплаится и удаленные пиксели под ней уничтожаются для экономии размера. под 100% прозрачностью остаётся что-то вроде flood fill пикселей, видимо чтобы не было артефактов при отображении
пикрил пример, попробуй сам его разобрать на ргб и альфу
а tga точно хранит альфа-канал отдельно
>но тга тоже отображается с прозрачностью. или это зависит от декодеров этих форматов?
от софта зависит. например я пользуюсь XNview MP, тут можно произвольно смотреть отдельно альфу, отдельно ргб, всё вместе
я кстати из-за пнг так накалывался несколько раз. думаю, откуда, сука, зеленая кайма лезет по краям спрайтов, ни пикселя зеленого нет на пнгхе. а это вот эти фладфиллы которые зачем-то были кислотно-зелеными проблидились в мип-мапы
я короче поставил гимп (у меня ни фотошопа не было, ни гимпа... надо было сразу так сделать), так вот, если я правильно понимаю, в самой первой текстуре из шапки треда, которую я декодировал "как есть", данные остались (что по идее не удивительно, хотя отображается она во всех приложениях с учетом альфы, но остальные каналы под этой афльвой НЕ ПРОЕБАНЫ)
да это нормально, когда в одну текстуру пакуют несколько одноканальных карт. это экономит семплеры в шейдере. один раз семплишь текстуру, получаешь 4 карты
в блек опс 2, например, спекуляр был запакован в альфу диффузной текстуры
>как и для чего движок использует это вообще не ясно
похоже на карту металлик или просто любую маску для смешения двух алгоритмов. глянь на саму модельку, которая использует эту текстуру, там скоре всего будет визуальная разница
модельку я в игре найти не могу (игра про дрочь и фарм), может она вообще из длц которого у меня нет. но нашел это. похоже на модельку лука. то что под альфу попадало на той текстуре - видимо его ручка
да, явно маска-переключалка между блестящим металлизированным шейдингом и шершавым диффузным
не совсем понял... типа когда в шейдер освещения все 4 канала попадают, там где альфа = 0, по другому освещение рассчитывается?
в шейдере ты что угодно можешь делать. как напишешь - так и будет
хочешь переключать металлический блеск с сухим диффузом по маске? можешь эту маску как отдельную текстуру подавать. а можешь эту текстуру запаковать в один из каналов другой текстуры, например занять пустующий альфа канал карты нормалей. так поступили разрабы этой игры
В альфе скорее всего хранится дополнительная информация, маска для чего-то.
Для начала разберемся с композингом альфа-канала, почему везде оно выглядит по разному: https://en.wikipedia.org/wiki/Alpha_compositing
https://learn.microsoft.com/en-us/windows/apps/develop/win2d/premultiplied-alpha
Если кратко: альфа-канал может быть как "предварительно перемножен", так и нет. Когда такую картинку, особенно в TGA, запихиваешь в профессиональный софт, то тебя спросят: а альфа у тебя премультиплаена, или нет? Могут спросить в отдельном диалоге, а могут просто галочку сделать. И от этой галочки будет зависеть, как картинка будет отображаться, причем зависеть сильно.
При этом, с точки зрения самого файла, в нем просто лежат какие-то данные. Может быть несжатые байтики, а может быть пожатые дефлейтом (PNG). Проблемы начинаются, когда ты эти байтики пытаешься интерпретировать. И еще больше проблем, когда какая-то либа, программа или двигло пытается "сделать заебись", исходя из своих представлений о прекрасном. Например, зачем сохранять пиксели, если они на 100% прозрачны? В результате появляются >>48300 >>48308, откуда мы узнаем чудеса:
>png удаляет пиксели под прозрачностью
>под 100% прозрачностью остаётся что-то вроде flood fill пикселей
Нет, никакого удаления сам по себе формат не вносит. Зато говнософт, вроде фотошопа, вполне способен это сделать. На протяжении долгих лет фотошоп некорректно справлялся с альфа-каналом в PNG, не удивлюсь, что они или другие, "самые умные" могли приделать и вырезание пикселей.
>>48300
>отдельно PNG RGB 24-bit и отдельно альфу в PNG G 8-bit
А вот это правильно, но я бы все же попытался разобраться: что именно делает альфаканал? Оно просто "замазывает неиспользуемые области", или там какой-нибудь спекуляр закодирован? Если первое - логично просто распаковывать в png24 c вытеранием пикселей под маской, если второе - распаковывай в 2 отдельные карты, ибо у них разное назначение. Еще лучше сделай настройки, чтобы можно было оригинальные битмапы сдампать тоже.
640x360, 5:33
Это не мой тред, просто я тут расписал детальки, хотел обкашлять нюансики, показать свою писечку в деле моддинга... А тут уже похоже ОП сыбал и забыл про тредик. Мне печально, что помогать некому
640x360, 2:30
>Это ты сам заставил Сидоджи летать? Молодец.
Нет, это сделали за меня, а вот звуки - моя работа, я как раз пытаюсь понять где какой звук используется и сделал такую замену для отладки.
это карта нормалей для динамического освещения
>вот звуки - моя работа
А, сейчас послушал со звуком - теперь стало понятно.
>пытаюсь понять где какой звук используется и сделал такую замену для отладки
Игра 20 лет назад вышла, и, вроде бы, к ней уже были любительские озвучки...
Что за древний TTS ты откопал? Есть же новее, бесплатно и без регистрации.
>Игра 20 лет назад вышла, и, вроде бы, к ней уже были любительские озвучки...
Любительских озвучек - великое множество. Утилит для ковыряния звуков - еще больше. А вот какой звук за что отвечает - это надо долго пылесосить форумы, да и информация разрозненная. Как делают озвучки, какой софт и пайплайн при этом используется - непонятно, такое если и публикуют, то хуй найдешь ту страничку форума, где это опубликовано. Вот в результате я сам пишу свои утильки и сам ебусь со звуками. С нуля. Почти с нуля - есть некоторая информация на вики, где описываются принципы кодирования звуковых файлов, а дальше самому. Иногда информация не полная, иногда с ошибками. Иногда ты все сделал по инструкции, все работает, а вот ритм-игры почему-то вылетают. И надо разобраться почему.
>Что за древний TTS ты откопал? Есть же новее, бесплатно и без регистрации.
Это Екатерина и не менее древний Николай.
Эти движки можно скачать к себе на компьютер и засунуть в скрипт, сгенерив тысячи файлов.
А как быть с вашим модным нейродерьмом, которое работает в браузере? Мне ручками 5000 файлов сохранять?
Вы видите копию треда, сохраненную 9 сентября в 07:38.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.