При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Paranoia 2: Savior
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2019, 15:40  #241
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Немаловажным препятствием в разработке служит необходимость создания новых форматов. Версии паранои, вплоть до 1.2 обходились старыми, к которым наспех былы привинчены некоторые расширения, часто - в последний момент. У меня даже не было времени это толком оттестировать. Ну вот скажем бамп-маппинг в VHLT написал вообще китаец по нашей просьбе. Он его не мог даже толком потестировать - не на чем было. Мы в свою очередь тоже руководствовались пролетарским чутьём - похоже на бамп, ну и ладно. То что свет кое-где затеняет грани, которые смотрят прямо на него - в такую ерунду никто не вникал. Или скажем везде нормально, а где-то чёрное пятно. Да и фиг с ним, нет времени на такие мелочи. Это уже потом, постепенно, в процессе ревизиии всего конвейера начали выявляться фундаментальные вещи. Так скажем делюксмапа кодировалась неправильно. В некоторых случаях нормаль разворачивало в обратную сторону. Потом тангент-матрица для брашей была тоже неправильной. Нет, она работала, но о сглаживании можно было забыть. Помните артефакты спекуляра на лестнице на p_savior1? Не на самой лестнице, а на стенах. Это вот как раз результат использования неправильной TBN-матрицы. Плюс сами нормали использовались несглаженные. Кодирование нормалмап в DXT5NM использовало какие-то стандартные методы из nvdxt. Ну и как вы догадались, они тоже были не вполне корректные. Многое вскрывается только сейчас. Но вы же сами понимаете, когда лажа сразу в нескольких местах, разобраться в проблеме весьма непросто. Всё исправляется постепенно. Сперва появились собственные компиляторы карт для паранои, где я уже лично проверял каждый участок на валидность. Был разработан собственный формат моделей с фичами из сорса, но при этом совместимый с оригинальной халфой. Затем появилась его поддержка в ДжекХаммере, тайлинг текстур, развесовка. Всё это тоже требовало времени. Даже не с бинарными форматами надо было выработать какое-то решение. Например материалы для описания текстур. В настоящий момент я остановился на подходе из Quake3. Это не значит что в параное появились такие же шейдеры, это значит, что привычные описания материалов теперь хранятся в файликах, с расширением .mat, а их имя не имеет значения - художник сам называет как ему нравится и наполняет теми описаниями, которые он хочет сгруппировать в единое целое. Можно по вадам группировать, а можно и как в сорсе - один файлик, одно описание, если кому-то так нравится. Или единый файлик на всю игру. Важен сам факт, что их может быть сколько угодно, а не только в одном-единственном matdesc.txt, что исключает возможность создания stand-alone карт к игре. Вспомните как вы мучались с халфовским materials.txt. Вроде бы и мелочь, но всё надо продумывать наперёд. Потом сами форматы далеко не всегда устаканивались сразу. BSP и его дополнительные лумпы менялись несколько раз. Причём желательно обеспечить их поддержку тоже, на случай если остались старые наработки, а исходник уже утерян. Так появилась тулза bsp31migrate, а p2rad обзавёлся возможностью пересчитывать свет у таких вот, сконвертированных карт. С текстурами тоже было много возни. Как вы помните, изначально я размахнулся на кучу вариантов кодирования нормалей и кодирование диффузок в YCoCg. Время постепенно откинуло неудобные, нежизнеспособные варианты, оставив самые привычные. Те же нормалки в DXT5NM, дико неудобно просматривать в WTV-вьювере, например. Впрочем и YCoCg тоже. Signed Distance Field для альфы я так и не смог довести до ума. То ли кодировщик SDF такой калечный, то ли я изначально от них хотел что-то не то, для чего они были предназначены. Нет, они работают, но по всему выходит, что 8-битная интерполируемая альфа в DXT5 выглядит мягче, чем этот хвалёный SDF. Увы и ах. Наверное всё же эта замута не годится для A2C, а ведь я в первую очередь думал именно в этом направлении. Мне удалось вполне корректно заставить работать ATI2N на любом железе, т.к. существует универсальный формат для двух блоков альфы. Распаковка по прежнему осталась в шейдере. Немаловажным плюсом стало и то, что нормали кодируются в параболическую проекцию, а не в ортогональную, это здорово улучшает их воспроизводимость. Артефактов сжатия практически нет, я не могу на глаз отличить картинку с несжатыми и со сжатыми нормалями. К тому же декодирование таких нормалей полностью идентично ортопроекции. Еще любопытный момент - в деле восстановления обычно участвует квадратный корень, но я его выкинул, т.к. для параболической проекции он вообще не нужен, а для ортогональной на мой взгляд выполняет бессмысленную операцию - потому что полученная нормаль в любом случае будет нормализована. А для нормализации у GPU существуют специальные команды. Впрочем использование DXT5NM это скорее дань совместимости и даже если кое-где и будет получен некорректный результат, это неважно. Теперь все нормалмапы кодируются только в ATI2N c параболической проекцией. Но вы можете использовать напрямую нормалмапы в этом формате и из других игр, например из того же Срузиса, это тоже очень удобно.
У меня остался еще единственный вопрос по организации ландшафтов. Элбер считает что текущая реализация с точки зрения дизайнера не слишком удобна в обращении. Так что возможно я пересмотрю концепцию. Остальные форматы уже вполне устаканились. Впрочем, как вы понимаете, одновременно с обновлённым движком паранои обновится и её контент, текстуры будут уже сжаты правильно, на моделях появится развесовка и джиггл-бонесы, 9-way блендинг, а карты будут пересчитаны с учётом повертексного освещения статиков. Впрочем и персонажы тоже получат улучшенное освещение.
Дядя Миша вне форума Ответить с цитированием
Старый 05.04.2019, 17:06  #242
ncuxonaT
ncuxonaT
Подполковник
Регистрация: 05.05.2013
Сообщения: 1,149


По умолчанию

Чо-т про выкидывание квадратного корня сомнительно. По крайней мере в том, что ты называешь ортогональной проекцией. Ведь normalize(vec3(a,b,c)) != normalize(vec3(a,b,c * c))
А про SDF - его нужно генерировать для хайрез исходника. Если к уже готовой текстуре применять, толку не будет.

Последний раз редактировалось ncuxonaT, 05.04.2019 в 17:10.
ncuxonaT вне форума Ответить с цитированием
Старый 05.04.2019, 17:26  #243
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

[ Цитата ] Ведь normalize(vec3(a,b,c)) != normalize(vec3(a,b,c * c))
В общем случае да, но у нас нормалки "синие", т.е. blue-компонента доминирует в любом случае. Лично я не заметил особой разницы.
[ Цитата ] А про SDF - его нужно генерировать для хайрез исходника
У меня сложилось строго обратное впечатление - SDF может помочь сгладить однобитную альфу. То есть наоборот, из хреновой текстуры сделать что-то боле-мене приличное. Для декалей я этот момент еще взапроверю.
Дядя Миша вне форума Ответить с цитированием
Старый 07.04.2019, 21:11  #244
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Для окончательной отладки билд придётся выложить в публичный доступ.
Как думаете лучше, набрать добровольцев или пусть все тестируют?
Дядя Миша вне форума Ответить с цитированием
Старый 07.04.2019, 21:48  #245
GaNDyRaC
GaNDyRaC
Регистрация: 01.12.2006
Сообщения: 3,253


По умолчанию

2 Дядя Миша:
Все
GaNDyRaC вне форума Ответить с цитированием
Старый 09.04.2019, 05:14  #246
IvanZ9
IvanZ9
Старшина
Регистрация: 27.04.2009
Адрес: Недалеко от Владивостока
Возраст: 29
Сообщения: 434


По умолчанию

2 Дядя Миша:
По-моему, лучше пару человек контрольных (по наводке отрабатывать), а остальные до кучи, в обычном режиме.
IvanZ9 вне форума Ответить с цитированием
Старый 09.04.2019, 07:00  #247
Cybermax
Cybermax
Супер Модератор
Регистрация: 11.03.2008
Сообщения: 2,739


По умолчанию

2 Дядя Миша:
Всем. Больше людей, больше шансов отловить баги.
Cybermax вне форума Ответить с цитированием
Старый 09.04.2019, 07:33  #248
crystallize
crystallize
Генерал-Лейтенант
Регистрация: 06.06.2014
Сообщения: 1,486


По умолчанию

[ Цитата ] Сообщение от GaNDyRaC: 2 Дядя Миша:
Все
Будет лавина одинаковых багрепортов и суматоха. Ну и негры на часах запустят и скажут что УГ.
crystallize вне форума Ответить с цитированием
Старый 09.04.2019, 07:49  #249
Tenryuu
Tenryuu
not friendly
Регистрация: 02.08.2015
Сообщения: 58


По умолчанию

[ Цитата ] Сообщение от crystallize: Будет лавина одинаковых багрепортов и суматоха. Ну и негры на часах запустят и скажут что УГ.

Поэтому почти всегда тестят в два этапа.
Tenryuu вне форума Ответить с цитированием
Старый 09.04.2019, 11:29  #250
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Ну сейчас мы вдовём с Элбером тестируем самое основное. Починили сглаживание глосса на брашах и моделях, убираем лишний функционал, добавляем недостающий, улучшаем быстродействие и скорость загрузки.
Дядя Миша вне форума Ответить с цитированием
Старый 10.04.2019, 12:05  #251
Qwertyus
Qwertyus
Генерал-Майор
Регистрация: 13.08.2009
Сообщения: 1,343


По умолчанию

Чем больше тестирующих, тем больше данных. Актуально для Паранойи из-за специфики рендерера.
Qwertyus вне форума Ответить с цитированием
Старый 10.04.2019, 13:08  #252
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Всё-таки скейлы у статиков я вырежу. Нехватает переменных ни на бленды, ни юниформов на шейдеры. Один хрен эту фичу никто не юзает.
Дядя Миша вне форума Ответить с цитированием
Старый 10.04.2019, 23:35  #253
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Хм. еще один баг исправил с бампом. Тут что интересно, оно себя проявляет ярким образом может на одной модельке из ста, но когда исправишь - везде становится только лучше.
Дядя Миша вне форума Ответить с цитированием
Старый 11.04.2019, 00:11  #254
GNU/Hurt
GNU/Hurt
Maïté
Регистрация: 05.03.2014
Сообщения: 1,097


По умолчанию

2 Дядя Миша:
Только в ксашмоде оставь обязательно, очень нужная штука.
GNU/Hurt вне форума Ответить с цитированием
Старый 11.04.2019, 00:47  #255
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 GNU/Hurt: в ксаш-моде я ничего трогать не планировал.
Дядя Миша вне форума Ответить с цитированием
Старый 11.04.2019, 09:29  #256
ElbeR
ElbeR
Wunderknabe
Регистрация: 23.04.2009
Адрес: Siedlce,Poland
Возраст: 32
Сообщения: 863
Замечания: 1


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: Всё-таки скейлы у статиков я вырежу. Нехватает переменных ни на бленды, ни юниформов на шейдеры. Один хрен эту фичу никто не юзает.
Зачем вырезать скейл статических моделей? Как их тогда скейлить на левеле? Странное решение.
ElbeR вне форума Ответить с цитированием
Старый 11.04.2019, 11:06  #257
crystallize
crystallize
Генерал-Лейтенант
Регистрация: 06.06.2014
Сообщения: 1,486


По умолчанию

2 ElbeR:
если ты забыл, альтернатива кажется-вырезать координаты или вращение.
crystallize вне форума Ответить с цитированием
Старый 11.04.2019, 11:10  #258
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 ElbeR: так ты их никогда и не скейлил
Дядя Миша вне форума Ответить с цитированием
Старый 11.04.2019, 12:46  #259
Raid
Raid
Регистрация: 11.07.2006
Адрес: CSM-чат
Возраст: 30
Сообщения: 8,311


По умолчанию

Ох лол. Оффтоп
Raid вне форума Ответить с цитированием
Старый 11.04.2019, 13:32  #260
crystallize
crystallize
Генерал-Лейтенант
Регистрация: 06.06.2014
Сообщения: 1,486


По умолчанию

2 Дядя Миша:
А вдруг он будет делать римейк Дюка на П2 а моделить поленится?
crystallize вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 17:32.


Designed by FT-502, [email protected] Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2021 by CS-Mapping.com.ua Community