Sidebar

XashNT: информация, скриншоты

XaeroX

Crystice Softworks
VIP
05.09.08
9 215
38
  • Бронзовая медаль 212
  • Золотая медаль 325
  • Золотая медаль 214
  • Золотая медаль 233
  • Золотая медаль 221
10 текстур размером 1024х1024 конвертировались шесть часов
Сколько времени они у тебя грузятся с использованием орб текстур компресион? Неужто тоже 6 часов? Там та же самая запаковка в DXT делается. Ещё можешь проверить под д3д функция LoadSurfaceFromMemory, которую я использую для сжатия в дхт в рантайме, она тоже очень быстрая.
И добро бы сам по себе алгоритм был поганый.
Алгоритм не может быть в данном случае поганым. Дело в реализации.
Может быть заюзать джипег, к примеру
Что ты от этого выиграешь, кроме места на винчестере, которое сейчас измеряется терабайтами?
 

ncuxonaT

Well-known member
05.05.13
1 221
51
48
2 Дядя Миша:
ок, на моём 11-летнем ноуте, на котором сталкеры-кризисы даже не запустятся, нвидиевский плагин сжимает текстуру 2048х2048 в DXT1 за 40 секунд, амд компрессонатор сжимает ту же текстуру за 20 секунд. О каких 6 часах может идти речь?
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Там та же самая запаковка в DXT делается.
Нет, не та же. Я удивлён, если ты не в курсе, почему DDS так медленно пакуется.
Точнее говоря, вы вероятно даже и не подозреваете, что методов энкодинга существует несколько штук, и самый быстрый из них действительно пакует у меня менее секунды. А теперь задумайся, почему же я вместо этого ждал шесть часов.
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Суть алгоритма DDS: береём квадратик 4х4 пикселя и находим для него два ключевых цвета. Я раньше наивно полагал, что эти цвета как-то ищутся с учётом влияния соседних квадратиков, но как выяснилось - ничего подобного. Просто два ключевых цвета, максимально способые собой заменить прежние 16 цветов. Строить микро-палитру, как я понял нельзя, квантизаторы всегда имеют в виду всю картинку, а не маленький квадратик, т.е. квантзатор-то со своей задачей справится, но итоговый результат будет пестреть этими выделяющимися квадратиками, поскольку, напомню, в соседние блоки алгоритм не заглядывает.
Он тупо ищет два оптимальных цвета (которые потом еще и пожмёт в 16 бит).
И вот этот поиск цветов имеет столько разных реализаций, от сверхбыстрой до сверхмедленной, что время кодирования в DDS варьируется от 0.1 секунды до часу. Естественно я кодировал с максимальным качеством, вследствие чего оно происходило так долго. Алгоритм, к слову крайне чувствителен к входной информации, если на блоке будет слишком много разных цветов он задумается надолго, если весь участок покрашен в один и тот же цвет - ну вы понели.
Корочи не нравится мне всё это, совсем не нравится.
 

ncuxonaT

Well-known member
05.05.13
1 221
51
48
2 Дядя Миша:
ты на примерах покажи, есть смысл в этих супердолгих алгоритмах или нет. В статье про ycocg вообще описывают паковщик в реальном времени.
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
В DXT и так качество не фонтан, еще нехватало их паковать по-бырому.
Нет, это всё не решение ни разу. Надо джипег пробовать, с коэффицентом качества 75-80. Думаю это более разумный вариант. Да и в архитектуру он лучше укладывается.
 

XaeroX

Crystice Softworks
VIP
05.09.08
9 215
38
  • Бронзовая медаль 212
  • Золотая медаль 325
  • Золотая медаль 214
  • Золотая медаль 233
  • Золотая медаль 221
2 Дядя Миша:
Я тебе много лет назад говорил, что поддержка DDS мало пользы приносит в сравнении с минусами. А ты не верил. Теперь вот сам к этому пришёл.)
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 XaeroX: да всё оно, если так разобраться какое-то калечное...
как будто не для людей делалось.
 

mittorn

Active member
22.04.10
1 229
22
38
2 IvanZ9:
Уж точно не гиф, tga намного лучше.
А вот png хорош.
 

crystallize

Well-known member
06.06.14
1 715
46
48
Дядя Миша сказав(ла):
В DXT и так качество не фонтан, еще нехватало их паковать по-бырому.
Нет, это всё не решение ни разу. Надо джипег пробовать, с коэффицентом качества 75-80. Думаю это более разумный вариант. Да и в архитектуру он лучше укладывается.
И в чём преимущество калечить картинку 80% JPEG-сжатием перед тем чтобы калечить её "быстрым" сжатием DDS?
Попробуй формат PowerVR. :)
 
Останнє редагування:

ComradeAndrew

๖ۣۜC++
02.04.10
1 044
28
7
0
Что может быть хуже JPEG артефактов на текстурах? Да даже 8 битные текстуры выглядят приятнее.
 

FiEctro

Супер Модератор
Команда форуму
Супер Модератор
28.07.06
17 167
33
  • Золотая медаль 213
  • Neh
2 DarkEssence:
Не надо судить о формате по одному лишь паинту, там довольно кривая реализация. Формат допускает любую степень сжатия, следовательно все артефакты ты всегда можешь свести к минимуму.
 

ZGreen

Navarro
15.06.06
3 643
37
  • Спец медаль MM18
Не припомню, чтобы в ку3 были артефакты, а там текстурки в жпегах.

Post automatically merged:

P.S. У кого-нибудь осталась картинка с кривущими руками, что были у меня в подписи, а то моя куда-то пропала.
 
Останнє редагування:

FiEctro

Супер Модератор
Команда форуму
Супер Модератор
28.07.06
17 167
33
  • Золотая медаль 213
  • Neh
ZGreen сказав(ла):
P.S. У кого-нибудь осталась картинка с кривущими руками, что были у меня в подписи, а то моя куда-то пропала.
Оффтоп

*к удалению
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Всё товарищи. Вопрос успешно разрешен! :)
Джпег даёт просто фантастически точное качество картинки, обеспечивая при этом весьма приличное сжатие, от пяти до восьми раз. Я удивлён, что мы так долго и упорно этого не замечали, но этому есть логическое объяснение - в большинстве программ, умеющих сохранять в джипег нет возможности манипуляцияи некоторыми тонкими настройками, которые некритичны для диффузных текстур. Это в свою очередь породило красивую легенду, что джипег артефачит всегда. Это всего лишь стереотип. Джпег, объективно - самый лучший формат. Потому что такого качества с таким сжатием не даёт больше ни один другой формат, как ни старайся. Итак, плюсы от внеджрения джипега:
1. возможность регулировать качество в широких пределах (меняется только размер картинки).
2. весьма быстрая перекодировка (менее секунды обычно)
3. такая же быстрая распаковка
4. возможность хранить изображения в различных цветовых пространствах, в том числе и черно-белые.
5. полный контроль в движке за генерацией мипов, операций над текстурами (со сжатым DDS особо не поколдуешь).
Из минусов можно отметить следующее:
1. отсутствие альфа-канала. ну беда невелика, во первых я в ваде специально предусмотрел раздельную загрузку альфа-канала с суффиксом _mask (кстати так делаю не только я), а в движке диффузка и маска склеятся в однму RGBA текстуру при загрузке в видеопамять в целях экономии места. Это так же может оказаться полезным для редактирования маски в редакторах, которые не умеют нормально работать с альфа-каналом. И вы всегда будете уверены, что ваш альфа-канал никуда не денется, если вы отредактируете исходник в паинте. Так что минус довольно относительный.
2. текстуры не сжаты в видеопамяти. DXT были разработаны комапений s3 (она же придумала и GLSL) в те далёкие времена, когда видеопамяти на борту было дай бог, чтобы 4 мегабайта и сжатие было весьма актуально. Сейчас даже самая позорная видяха несёт в себе минимум гиг. Да и скорость рендеринга от сжатия текстур практически независит. А вот экономией места на диске озабочены весьма многие. Джипег с этим успешно спровляется.

А че не гиф или пнг?
Гиф точно такой же индексированный формат, как текстуры в ваде. PNG - полное дерьмо, долго загружается, зачастую не сжимается вообще. Единственный плюс - наличие альфа-канала. Если интересно, могу рассказать про PNG подробнее.

И в чём преимущество калечить картинку 80% JPEG-сжатием перед тем чтобы калечить её "быстрым" сжатием DDS?
Что может быть хуже JPEG артефактов на текстурах? Да даже 8 битные текстуры выглядят приятнее.
Вот перед нами тепичные жертвы стереотипов, о которых я упоминал в начале поста. Настало время небольшой демонстрации.

www.hlfx.ru/xash/normalmap_jpeg_test.7z

Здесь у нас референс в tga, jpeg без артефактов (сделанный мейквадом) и jpeg с артефактами, сделанный AcdSea. Прошу заметить, в обоих случаях кодирования было выставлено максимальное качество - 100%. Но в моём примере не то что нет артефактов - его вообще от TGA отличить затруднительно, а в том что сгенерила AcdSea артефакты весьма отчётливые. Впрочем и размеры файлов отличаются почти в два раза. Разгадка, как я уже упоминал выше, заключается в том, что из кода я могу осуществить более тонкую настройку кодирования, которая никогда не даётся в руки пользователю графических программ. Вы может быть думаете, что у меня какая-то волшебная библиотека джипега? Нет, самый обычный jpeglib 6b из третьей кваки или третьего дуума.
 

Game Server

Доноры Красавчики

Користувачі онлайн

Немає користувачів онлайн.