Войти
ПрограммированиеФорумГрафика

Корректный алгоритм декомпрессии *.dds (DXT5) (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#15
23:51, 30 июля 2012

DXT5:

+ Показать


#16
0:05, 31 июля 2012

твою то мать
ещё один вариант !

как выглядит DxtcReadColors ?

отличие этого варианта от squish:
0) точно не знаю как выглядит DxtcReadColors
1) при декомпрессии цвета прибавляется 1
2) при декомпресси альфа прибавляется 2 и 3

что за хрень ??????

#17
9:33, 31 июля 2012

DevilDevil
> в вопросах точности догадки неуместны

Ну ты сам в теме убедился, что может быть несколько вариантов.
Делай по спеке да и всё.

#18
9:47, 31 июля 2012

Executor
> Ну ты сам в теме убедился, что может быть несколько вариантов.
> Делай по спеке да и всё.

меня не волнует кто как извращается.
меня интересует как правильно.

и какой алгоритм правильный по твоей спеке ?

#19
10:33, 31 июля 2012

DevilDevil
> меня интересует как правильно.

Да нету правильно. Есть подругому.
Как я уже написал выше, возьми из спеки, уж точно этот алгоритм НЕ правильным быть не может.

> и какой алгоритм правильный по твоей спеке ?

Я про ГЛ спеку.
Алгоритм там один.

#20
10:42, 31 июля 2012

Отрендери во в фреймбуфер и сохрани, вот будет правильный вариант :)

#21
11:04, 31 июля 2012

Executor
> Да нету правильно. Есть подругому.

может и километр теперь не 1000 метров ? а шагов ? или может в футах измеряется ?

если ты не знаешь как правильно - это не значит что правильно не существует

Executor
> Как я уже написал выше, возьми из спеки, уж точно этот алгоритм НЕ правильным
> быть не может.

ну так посмотри эти спеки и приведи правильный алгоритм

project_manager
> Отрендери во в фреймбуфер и сохрани, вот будет правильный вариант :)

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

#22
12:53, 31 июля 2012

laMer007

я гляжу тут психологи одни заселили геймдев ру )
не думал о том, что я в отличие от большинства "програмиров" борюсь за качество собственных продуктов ?

любые офтоп сообщения будут удаляться. Особенно от "психологов"

#23
16:43, 31 июля 2012

DevilDevil
> может и километр теперь не 1000 метров ? а шагов ? или может в футах измеряется?
Во а мне всегда казалось что км это: это длина пути, проходимого светом в вакууме за (1000 / 299 792 458) секунды.
Не поверишь но дину можно измерять и в футах. например 1кми -    314.1109 Тирольских футов.

Для начало реши что есть правильно:
вот есть 2 коринки отличаются бинароно
перевели их в DTX5 и в результате перестали отличаться бинароно.
что есть правильно декомпрессии этого?
1) результат должен быть первая картинка.
2) результат должен быть вторая картинка.
3) результат должен быть усредняя картинка между этими двумя.( бред )
4) свой вариант.

Когда ответишь на этот простой вопрос. Попробуй ответить на негоже но учитывая что в реальности не 2 не 4, а намного порядка больше картинок имеют одно и тоже отображение в DTX5. ( в среднем 340282366920938463463374607431768211456 )

#24
17:25, 31 июля 2012

susageP

к нам присоединились философы :))))

имеешь одно изображение.
программа 1 получила из него один *.dds файл в формате DXT5
программа 2 получила из него второй *.dds файл в формате DXT5, не равный первому

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

Для этого высчитывается степень отклонения от оригинала одного изображения и другого. У кого меньше отклонение - тот лучше жмёт
Для DXT применим простой рассчёт отклонения в каждом блоке 4х4. Каждый из 16 пикселей блока оригинала сравнивается с соответствующим пикселем результата. Сумма "ошибок" по пикселям = "ошибка" по блоку. Сумма ошибок по блоку = ошибка по изображению.

2 цвета (пикселя) тоже часто сравниваются простым способом.
Ошибка = sqrt((dr*mr)^2 + (dg*mg)^2 + (db*mb)^2)
dr, dg, db - это дельта (разница) между двумя составляющими цвета
mr, mg, mb - это компоненты метрики, константы, определяющие чувствительность человеческого глаза к составляющим цвета

Но суть не в этом. Суть в том, что чтобы рассчитать ошибку по одному пикселю - нужно грамотно распаковать цвет из DXT
И если выбирать ориентир "как правильно" - то наверно это тот вид, который графическая карта должна получать из DXT файла.
И я предположил, что за всё это время гиганты графикостроения давным давно должны были реализовать аналог распаковки DXT-файлов. Собственно я жил до недавнего времени думая, что реализация у всех одинаковая жёстко стандартизированная. Оказалось что не у всех. Остаётся вопрос. У кого точная реализация распаковки ?

#25
18:05, 31 июля 2012

DevilDevil
Возьми вариант из D3DX и с ним сравнивай

#26
18:18, 31 июля 2012

suc-daniil

напиши утилиту, которая принимает dds, а на выходе даёт 32битный bmp с альфаканалом

*но именно как графическая карта "воспринимает" этот файл, а не то как какой-нибудь внутренний драйвер может преобразовать DXT в BGRA

#27
18:21, 31 июля 2012

DevilDevil
Без утилит: просто рисуешь текстуру на квад, делаешь скрин фрапсом, в нужный тебе формат

#28
18:31, 31 июля 2012

suc-daniil

антиалиасинг, альфаканал
если это так просто, то почему бы тебе не наваять утилитку ?

#29
18:40, 31 июля 2012

DevilDevil
Я сейчас немного занят(разбираюсь с тряпками из Physx 3.2)

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.