Перейти к контенту
LeDemon

Работа с текстурами

Рекомендуемые сообщения

@Sh0tri, ну....никак по идее. Это родная проблема игры - синий канал в бампе сильно убивается в качестве при сохранении в любом варианте, кроме сохранения в DDS без сжатия (ARGB 8:8:8:8 32bit). Плюсы: получаешь текстуру-бамп в исходном качестве, минусы - большой размер сохраненного файла и более чем вероятно возрастает нагрузка в игре (не уверен, но предполагаю). В некоторых играх, которые как и X-ray используют свою, не совсем классическую нормал-мапу, подобную проблему решили, поменяв нужные каналы в самих картах (самый явный пример - серия игр Метро 2033, там синий канал не задействован, просто чёрный фон).

Ссылка на комментарий

@2clip, СДК делалось для того, чтобы не бился синий. В фотошопе практически перестаёт биться начиная с 2к размера. 

 

6 часов назад, 2clip сказал:

@Sh0tri, минусы - большой размер сохраненного файла и более чем вероятно возрастает нагрузка в игре (не уверен, но предполагаю).

Всегда хотел проверить нагрузку... но, где найти упорного весельчака, который ради хохмы перебьёт все текстуры в 8-ку?-)  Теоретически нагрузка на разжатие должна уменьшится, но возникнут проблемы при ограниченной работе оперативки. Возможно, что на переделываемых заново сейчас движках х-рея, был бы толк от ARGB 8:8:8:8.

  • Сомнительно 1
Ссылка на комментарий

Не надо вам это "ARGB 8:8:8:8"! Поверьте на слово... :biggrin:

 

19 минут назад, warwer сказал:

СДК делалось для того, чтобы не бился синий.

Не совсем так.

СДК в файле _bump# в каналах RBG создаёт лечилку каналов GBA файла бампа _bump. Т.е. нормаль идущая в игру состоит из перекрытия трёх пар каналов (_bump + _bump#) - A+R, B+G, G+B соответственно. ;) 

Для справки:

Канал А файла _bump# - карта высот для параллакса (псевдо-объём поверхности).

Канал R файла _bump - карта спекуляра (реакция текстуры на свет).

Изменено пользователем Adm-RAL
  • Согласен 2
  • Полезно 2
Ссылка на комментарий

@Adm-RAL

24 минуты назад, Adm-RAL сказал:

создаёт лечилку

абсолютно согласен, но, всё же, сдк не "убивает" так сильно синий канал в бампе как фотошоп. В остальном... тогда почему бы не очистить синий канал в бампе и не вставить его исходник а бамп# ? 

Ссылка на комментарий
55 минут назад, warwer сказал:

тогда почему бы не очистить синий канал в бампе и не вставить его исходник а бамп# ?

Потому-что RGB каналы в dxt5 жмутся одинаково. Какая разница в каком канале умрут вверх/вниз тени? :) 

А, ну и в А канал _bump# нельзя занести G канал нормали, т.к. в А канале _bump# находится более важная карта - карта параллакса! ;) 

 

55 минут назад, warwer сказал:

сдк не "убивает" так сильно синий канал в бампе как фотошоп

Фотошоп вообще даёт в СДК несжатые (вообще без потери качества) каналы нормали в формате TGA.

А вот уже СДК переводит нормаль в бамп и гробит GB каналы TGA нормали занося их в BG каналы dxt5 _bump (канал R при этом заносится в канал А dxt5, который не сжимается). А потом сам же СДК пробует вылечить эти пожатые каналы за счёт создания _bump#. Причём это всё происходит в один приём... :) 

Изменено пользователем Adm-RAL
  • Согласен 1
  • Полезно 2
Ссылка на комментарий

@Adm-RAL, я неверно сформулировал вопрос. 

Канал В бампа дополнятся каналом G бамп#. Канал В бампа подвержен искажению при сжатии, а канал G бамп# не подвержен. Вопрос: почему канал В бампа не очистить полностью, а его исходник не поместить в G бамп#? Это для работа для фотошопа, естественно.

Ссылка на комментарий
55 минут назад, warwer сказал:

а канал G бамп# не подвержен.

Подвержен. В формате dxt5 каналы R,G,B жмутся абсолютно одинаково, а канал А не жмётся вообще. Так в любой текстуре в формате dxt5. Это собственно свойство и смысл формата dxt5.

Изменено пользователем Adm-RAL
  • Полезно 2
Ссылка на комментарий
22.09.2020 в 21:32, Adm-RAL сказал:

Канал А файла _bump# - карта высот для параллакса (псевдо-объём поверхности).

Так ведь псевдо-объём поверхности создается текстурой _bump, а вместо текстуры _bump#  успешно используется заглушка. Более того, практика показала, что если модель достаточно качественная, но с неправильным бампом, то вполне можно применить заглушку и для текстуры _bump: в итоге это будет выглядеть лучше, чем в случае кривого бампа.

Изменено пользователем aromatizer
  • Сомнительно 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Ссылка на комментарий
23 минуты назад, aromatizer сказал:

псевдо-объём поверхности создается текстурой _bump

Бамп не создаёт реального объёма, он только затеняет участки текстуры в зависимости от положения источника света. Ну и регулирует реакцию разных участков текстуры на динамические источники света. Это ты воспринимаешь как объём, но в реальности это не он. :) 

Псевдо-объём создаёт именно параллакс. Сложно (долго) словами объяснить технологию параллакса. Да и нету больше никакого параллакса... Весь был, да вышел, после внедрений ОГСЕ и младших рендеров. Я уже 100500 раз на это сетовал. Только в ТЧ R2 остался параллакс, который давал настоящий псевдо-объём! Могу доказать... :) Пока мне не удалось никого уговорить вернуть "тот самый" параллакс в рендер ОГСР (хотя я всего у пары человек спрашивал :)). А то что у нас (то что тебе "практика показала" в Арсенале (не к ночи помянутом)) осталось - лишь двоение в глазах при сильной карте параллакса! :( 

И да, на моделях (особенно на оружейке) параллакс не так интересен и бывает вреден. Но, как ты знаешь, я занимаюсь в основном другими текстурами игры, и там параллакс архиважен! И его теперь нет... :( 

  • Полезно 1
Ссылка на комментарий
45 минут назад, Adm-RAL сказал:

Бамп не создаёт реального объёма

Это потому, что объем - это свойство не текстуры, а модели. :guru:

Изменено пользователем aromatizer
  • Сомнительно 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Ссылка на комментарий
6 часов назад, aromatizer сказал:

это свойство не текстуры, а модели.

Ну а ты вообще в курсе для чего изобрели бамп? Точнее даже не бамп - а "normal map", это уже в сталкере bump текстура. А задача "normal map" - передача повышенной детализации на лоу поли модели, т.е. при создании модели изначально создаётся хай поли модель, с повышенной детализацией, высокого качества, с миллионами полигонов, со складками на ткани, с проработанным каждым болтиком и гайкой и т.п. - ты сможешь такую модель засунуть в игру в несколько миллионов поликов? Вот для этого и нужен "normal map", его запекают с этой хай поли модели, потом делается лоу поли модель, никакой детализации, никаких складок и прочего - ровная поверхность - становится ровной в пару полигонов - но разве эта модель будет выглядеть привлекательно, относительно детализированной высоко полигональной? - Нет, зато теперь её игра "скушает" без проблем, и вот тут на помощь приходит "normal map", накидываем на модельку - и у нас лоу поли выглядит по детализации, как хай поли. Ну в сталкере для рендера работает bump текстура, но во многих играх работает именно "normal map". Вот ты "ошибочно" считаешь, что бамп нужен для объёма - это не так, он нужен для детализации, чтоб к примеру ровная стена в два полигона выглядела на вид, как детализированная много полигональная кирпичная кладка - вот представь - сколько будет у стены полигонов, если там каждый кирпичик проработать, если сделать модель кирпичной стены из реальных моделек кирпичей, и сами кирпичи ещё проработанные, с осколами, с выпирающими камушками в них, не ровными - много полигонов получится, игра потянет? - А тут будет всего два полигона, но за счёт "normal map" она будет выглядеть на тысячи полигонов.

  • Согласен 2
  • Полезно 1
 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий

Товарищи текстурщики, подскажите наименее трудоёмкий алгоритм восстановления "убитого" А-канала. Вводная: имеем dds-ку, беспощадно сохранённую в DXT1. Необходимо А-канал привести к виду DXT5.

Ссылка на комментарий

@Купер, нет такого алгоритма.

При сохранении полнобитной альфы в однобитную альфу, все оттенки серого ниже значения 128 становятся чёрными, а все оттенки выше 128 становятся полностью белыми. При сложных полнобитных альфах, это может приводить к абсолютно непредсказуемому результату при сохранении в однобитную альфу. Если же альфа была простенькая (типа альфы текстур веток, например), то можно попробовать просто применить несильное размытие альфы, чтобы немного сгладить края видимой части текстуры... Но, это всё баловство. :) Ищи исходники текстуры с нормальной непожатой альфой.

  • Спасибо 1
  • Согласен 3
Ссылка на комментарий

@Adm-RAL, так поэтому и было интересно мнение светлых голов: кто как выкручивается (если выкручивается) в подобной ситуации. Получение максимально возможной аутентичности при минимальных временных затратах. То, что творят для этого сейчас шаловливые ручонки @Купера, оптимальным способом явно не назовёшь.

Ссылка на комментарий
27.09.2020 в 19:01, Romann сказал:

за счёт "normal map" она будет выглядеть на тысячи полигонов

Дополню. Еще и параллакс, который также в текстуре находится. Он и задает основной объем на статичных объектах. И если уже полноценно рассматривать в ракурсе "модель-объемность", то и шейдеры нельзя забывать, которые и задают высоту нормалей. Чисто ради примера, в дефолтном варианте ПЫС, то шейдеры отрабатывают с двойной высотой нормали в бампах. Кто-то писал, что в том же движке ОГСР потерялась объемность, в сравнении с ПЫС. Она не потерялась, а приведена к тому значению, которая в большинстве игр. Теперь в движке ОГСР нет необходимости "гробить" нормали, чтобы привести к вменяемому объему. А кто желает вернуть ПЫС объемность в ОГСР, то совет- правьте значение обработки нормалей в шейдерах. 

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Ссылка на комментарий
3 часа назад, ed_rez сказал:

Кто-то писал, что в том же движке ОГСР потерялась объемность, в сравнении с ПЫС.

Эд, вот ну честно, ну надо же было посмотреть "кто писал"... ;) Кто вообще постоянно всем недоволен и тычет всем в косяки всегда? :) Ну я, конечно же... :pardon:

А теперь по делу... Смотрим... ;) Показываю...

 

Полностью серая текстура 50% серого. Максимальные значения карты высот при создании нормали и карты параллакса.

 

ТЧ бамп БЕЗ параллакса - https://youtu.be/j0uZ31Y4LE8

ТЧ параллакс БЕЗ нормали (бампа) - https://youtu.be/xFP--1Z1XiY

ТЧ бамп С параллаксом - https://youtu.be/bxfsCJjdqo4

(при этом, параметр r2_parallax_h в ТЧ не работает вообще)

 

ОГСР работа параллакса на том же комплекте бампа - https://youtu.be/A1v_Vsp0zFs

Если ты мне сейчас серьёзно скажешь, что параллакс должен работать так, то я удивлюсь! ;)

И да, и это уже для всех - параметр юзера r2_parallax_h на движке ОГСР следует держать 0.01, ибо он на этом рендере работает! Ну, это если кто не совсем понял содержания видиков... :) 

 

P.S.

За музычку левую извинтиляюсь, ибо просто забыл выключить во время экспериментов... :hm:

Изменено пользователем Adm-RAL
  • Полезно 1
Ссылка на комментарий
2 минуты назад, Adm-RAL сказал:

 параметр r2_parallax_h в ТЧ

Я не про этот параметр. Я про командную строну в самых шейдерах. Пытаюсь вспомнить ее, но не получается. По-тиху возвращаюсь в моддинг после сезона работы по жизни. Сложно сходу освежить все знания.

А то, что параллакс не работает без нормали, это очень странно и нужно искать проблему в иных параметрах заданному объекту (статичная модель). Я не проводил такие опыты. Поверю "на слово" видео. Странно другое, что ПЫС И ОГСР варианты с полным комплектом почти не имеют разницы, если не учитывать какие-то шейдерные эффекты на последнем. Также не вижу особой разницы между "с бампом без параллакса" и "с бампом и параллаксом". По своему опыту работы с текстурами все как-то сомнительно. Бамп работает, возьму условную единицу в миллиметрах, до 10-20 мм по высоте, параллакс работает до 50-100 мм (шейдерная высота нормали умножена на 2). Цифры взяты сугубо от визуальной оценки в своих трудах. Параллакс без бампа (пустышка (серый) на каналах создающих нормаль) не имеет никакого смысла. Бамп без параллакса используется на всех динамических моделях. Оно понятно, плавающая точка освещения будет пагубно влиять на модель. Картинка модели начнет "плавать" на анимациях. 

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Ссылка на комментарий
34 минуты назад, ed_rez сказал:

А то, что параллакс не работает без нормали

Почему не работает? Смотри внимательней, я там стреляю в линию сдвига высот/низов карты параллакса. Он нормально работает в ТЧ, именно как и должен - верхи карты параллакса отдаляются от камеры, а низы приближаются. Ну и текстура рвётся (как-бы перегибается), понятное дело... :biggrin:

 

34 минуты назад, ed_rez сказал:

какие-то шейдерные эффекты на последнем.

Ну, я там забыл (поленился) текстуре детейл отключить... А у ОГСР он ещё и со своим бампом. :) Других эффектов там нет.

 

34 минуты назад, ed_rez сказал:

Параллакс без бампа (пустышка (серый) на каналах создающих нормаль) не имеет никакого смысла.

Да, его плохо видно, за счёт отсутствия теней при отсутствии бампа, но он явно есть. Ещё раз - смотри ещё внимательней. ;) Он даёт те же высоты, что и при совместной работе с бампом.

 

Ну, ТЧ обсудили и бог то с ним, там всё супергуд. Но, проблема параллакса в ОГСР теперь видна? Он двигает верхи и низы карты параллакса в одном направлении! А должен двигать в разных от 50% её серого! :) 

Изменено пользователем Adm-RAL
Ссылка на комментарий
1 час назад, Adm-RAL сказал:

Он двигает верхи и низы карты параллакса в одном направлении

Не обращал внимания. Интересный эффект, но думаю, исправим на уровне шейдеров.

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

Ссылка на комментарий
22.09.2020 в 21:12, warwer сказал:

Всегда хотел проверить нагрузку... но, где найти упорного весельчака, который ради хохмы перебьёт все текстуры в 8-ку

Антишнапс делал видео с текстурами куртки новичка из ТЧ, в 8к и 16к прогнанных в нейросети, и ещё что-то менял в большие разрешения ... игра не долго играла.

Avandsan.gif

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...