ncuxonaT писал: а сколько весит лайтмапа чаэс? Без директа, только свет.
Карта без лайтмапы - 8-10 килобайт, с лаймапой 70 мегабайт, делюкс половину веса занимает. Ну если сжать в DDS, будет совсем неплохо.
Но это достаточно разрежённая лайтмапа, там texturestep 32-48-64.
Поскольку последние изменения затронули формат лайтмап на моделях, да и вообще потому что перед любыми фундаментальными изменениями неплохо бы сохраниться, я вам скоро выложу обнову ЧАЭС и самой паранои естественно.
В рамках подготовки к столь масштабному компилу оптимизировал память - в структуре sample_t позаменял vec3_t на half_vec3_t. Визуально отличить невозможно, а вот потребление памяти упало почти вполовину. Надеюсь мне хватит этого, чтобы уложиться по лимитам. В пользу этого говорит еще и тот довод, что ЧАЭС, даже по меркам самого Сталкера - это самая гигантская карта и если уж скомпилится она, то остальные тем более.
Добавлено 25-06-2019 в 16:20:
ЗЫ. замена на байты уже не даёт такого выигрыша, поскольку в структурке присутствуют еще и другие переменные, то есть даже вполовину не выгдать. А тут практически бесплатная оптимизация по памяти получилась, время работы не изменилось, качество лайтмап не изменилось. Такие дела.
Моя идея с заменой на халфы оказалась удивительно в тему. Там где бы я ранее гарантировано вылез за лимиты памяти 32 бита, здесь еще и места осталось прилично. А вот с рейтрейсом на SSE из сорса не сложилось - оказался втрое медленнее моей трассы. Выкладываю скриншоты полного компила. Время рассчёта 2 часа 2 минут.
В принципе задача выполнена. Я вам соберу обновлённый пак тестовых карт и выложу компиляторы.
Добавлено 26-06-2019 в 00:17:
Ну што. Я когда-то давно уже говорил, что надо бы провести стресс-тест на реальных сталкеровских уровнях. Ну вот и провели.
В рамках теста запилил AABBTree для трассы мировых полигонов. Мне стало интересно насколько она медленее каноничной халфовской трассы. Там считается вторичка для солнца по полусфере, на каждый люксель приходится порядка 16386 трасс, то есть даже для игрушечных карт это вполне серъезная нагрузка. Ну что сказать?
Оригинальная трасса работает 3.29 секунд.
Хвалёный рейтрейсер из сорса на SSE - 7.77 секунд (здесь комбинированный режим одна трасса оригинальная по кушному дереву + 16386 трасс рейтрейсером).
AABBTree - 19.47 секунд.
Что из этого следует? В настоящий момент трейс студиомоделей как раз и базируется на AABBtree. То есть возможно его ускорить рейтрейсером. И ЧАЭС будет считаться не два часа, а всего час. Вообщем еще есть куда оптимизировать.
Дядя Миша писал: И ЧАЭС будет считаться не два часа, а всего час.
С радиосити или без?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Не знаю я почему SSE-рейтрейсер такой медленный, потом озвучу варианты.
Он работает, но не так быстро как хотелось бы. Попробую написать свой рейтрейсер, KD-три возьму из сорсовского, а саму трассу уже свою заюзаю. Плюс, оригинал писался каким-то посторонним человеком, который его тестировал на растеризации
Это вообще гениально ящитаю. При растеризации мы выпускаем пучки параллельных лучей и это прекрасно кэшируется и SSE себя отлично чувствует. При рассчёте лайтмапы мы в лучшем случае пускаем небольшой пучок (зависит от разрешения лайтмапы) параллельных лучей, а для солнца по полусфере - во все стороны. То есть вся оптимизация идёт прахом.
Я не особо шарю в SSE, то есть научиться писать на этом асме несложно, а вот сделать так, чтобы оно еще и ускорилось - это уже не для меня. Поэтому будем оптимизировать старым индейским способом.