Тема: Prey (2017)
Показать сообщение отдельно
Старый 17.05.2017, 17:46   #888
Новичок
 
Аватар для A_SaintlY
 
Регистрация: 09.09.2007
Сообщений: 93
Репутация: 22 [+/-]
Цитата:
Сообщение от lYXl Посмотреть сообщение
Это дуболомно реализованная "фича" оптимизации загрузки видеопамяти в Cryengine, в нашей игре она мне нервы жутко потрепала.
Текстуры, которые должны быть в кадре плавно подгружаются в специальный пул, который имеет ограниченный объём. Для высоких настроек это 1536 мб, что потребует видеокарту с 3 Гб видеопамяти, а всё, что не полезло начинает выгружаться на более дальние mipmaps (которые с меньшим разрешением), в итоге текстуры становятся мутными.
Дуболомность фичи в том, что текстуры загружаются и выгружаются тупо произвольно.
Пример: есть в кадре комната, по логике нужно загрузить полноразмерные текстуры рядом с игроком в радиусе 10-20 метров, а более дальние загрузить с последними mipmaps (путь будут мутноватыми, на расстоянии это не сильно бросается в глаза), но движок так не делает. Он тупо начинает грузить всё, что есть в кадре, что создаёт моменты, когда предмет под ногами в мыле (загружен какой-то из последних mipmap), а какая-то бестолковая ерунда на другом конце уровня загружена полностью.

Эту дурь можно решить расширив упомянутый пул, чтобы как можно больше текстур было загружено в видеопамять, чтобы максимально нивелировать моменты, когда какие-то внезапно начнут выгружаться (мутнеть) при переполнении пула. Попробовать расширить пул можно прописав в system.cfg (текстовый файл в корне игры) команду r_TexturesStreamPoolSize с значением более 1536, если видеокарта обладает более 3 Гб видеопамяти. Потому что кроме текстур объектов есть тени, модели, шейдеры и у каждого аспекта есть свой пул. Сюда ещё прибавляем G-буфер и прочие.

Пример: r_TexturesStreamPoolSize=3072
При этом значении очень желательно, чтобы у видеокарты было более 6 Гб видеопамяти.

Из побочных эффектов может быть значительно более долгая загрузка, общая нестабильность игры при смене настроек графики и разрешения экрана.
Да я вот так и понял, что специфичная особенность движка. Понятное дело, что текстуры так медленно подгружаются, потому что в память не помещаются все сразу. Только вот в играх на Unreal Engine, например, такого нет, а картинка то покруче выглядит.
Я вот недавно как раз задавался вопросом, какой из движков со свободным SDK все-таки круче... Все больше убеждаюсь, что точно не CryEngine
Странное решение Arkane - взять этот движок, почему не id tech 6? Непонятно, что не так с этой студией последнее время...

Последний раз редактировалось A_SaintlY; 17.05.2017 в 17:52.
A_SaintlY вне форума  
Отправить сообщение для A_SaintlY с помощью ICQ Ответить с цитированием