Накропал draft про новые dll. Будет у людей интерес - оформлю как положено с треками и скринами, выложу.
Наконец-то нашлось время покрутить так и эдак новые DLL (релиз 15-02-08). Цель процесса как всегда одна – максимальная видимость при максимальных FPS, красивости, те которые мешают видеть, - в сад.
Ил-2 версии 4.08
Системник:
Core2Duo E6550 @ 2.33GHz //в штате
2x1Gb DDR2-800 //в штате, 5-5-5-18
GF-7900GT //в разгоне, 468/756
В качестве бенчмарка используется дистрибутивный трек TheBlackDeath.ntrk, и автопилот на карте Окинава, высота 1000м
Для начала посмотрим, что нам может показать 4.08. Выключаем звук, ставим близкий к дефолтному конфиг (вложение):
Минимальный профиль в nHancer:
AA: 4x
AF: Off // выключено умышленно
VSync: Off
BD: 117 FPS и стандартные «прелести» превосходного режима – мерцающие края у леса и берега лесенкой.
Использование текстур большего размера (TexQual=3) даст нам -3FPS, отказ от сжатия текстур (TexCompress=0 TexFlags.TexCompressARBExt=0) те же -3FPS
Пока отсутствует серьезная нагрузка на видеокарту в виде анизотропной фильтрации и AA=8S смысла что-то менять в конфиге нет, быстродействие упирается в процессор, разница в результатах смены настроек нивелируется длинными процессоро-зависимыми сценами.
Слово об анизотропке.
Пока в драйвере выключена анизотропная фильтрация - выставление оной в конфиге (TexMipFilter=3, TexFlags.TexAnisotropicExt=1) ничего не дает. Неизменная картинка и неизменный FPS. Ставим в профиле AF:Application и смотрим, что получится.
BD:108FPS и стандартные «прелести» иловской анизотропки – текстурный шум (shimmering) на воде и даже кое-где на зеленке. Его можно немного придушить, но у нас цель пощупать новые dll. Осталось сделать необходимые скриншоты и вперед.
Ставим новые dll, конфиг тот же, анизотропка в драйвере выключена, LandGeom пока 2
BD: 115FPS. Т.е. все пока на месте, и лес и «лесенки», а FPS чуть-чуть, но упал. Включаем оптимизацию «лесных» шейдеров (TexFlags.TexAnisotropicExt=1).
BD: Те же 115 FPS и замечательный лес. Выше всяких похвал. Закраины больше не шумят, причем все это практически за бесплатно.
Теперь первая ложка дегтя. Первые шейдеры малость попортили. Лично мне нравилась water=1 с форсированными первыми шейдерами. Спокойная водичка, практически без ряби, замечательно на ней все видно (ForceShaders1x=1, water=1)
BD: 113 FPS – совершенно неожиданное падение, раньше была прибавка. Хотя.. было написано на форуме, что оптимизировали землю под вторые шейдеры. Тем не менее, владельцы старых видюшек явно не будут рады изменениям, так как первые шейдеры попортили - появились страшные скачущие тени от холмов, которые к тому же присутствуют не в каждом кадре.
скрин скрин
Хорошо видно, если скачать оба скрина в родной разрешалке и быстро попереключаться с одного на другой во вьювере. Еще одна серия демонстрирует, что на 4.08 этого не было:
скачиваем, последовательно крутим. Кадры практически синхронные, 4.08/4.09/…
Смотрим на оптимизацию «береговых» шейдеров в части устранения «лесенок». Для этого придется вернуть вторые шейдеры (оптимизированы только они) и включить LandGeom=3. BD:105 FPS. По сравнению с 4.08 падение производительности порядка 10% - такую смехотворную цену надо заплатить за берега без лесенок. Тут стоит добавить, что если с той же целью вместо LandGeom=3 влупить сглаживание 8S, то получится 62 FPS, т.е. уже -40% если у вас не 8800GTS. Достаточно посмотреть на скрины, чтобы понять, что оптимизация, сделанная в LandGeom=3 стоит того, чтобы ее использовать. К тому же дальше видно (надо только залезть повыше).
скрины
Скрины по ошибке сняты с water=1, но в отношении берегов оно практически не влияет.
Неброская, немного «заблюреная» поверхность земного шарика – самое то для хардкорных полетов. Со сглаживанием 8S все как-то почетче, но мне больше по вкусу «блюр» - лучше видно коны, которые как известно 8S немного мылит.
С берегами на море все не так шоколадно, и белые барашки (жирные скачущие точки), и лесенки, все на месте. Сравнительные скрины можно поделать самим. Вот треки
001/004?
Пряников наелись, теперь последняя ложка старого, настоенного дегтя. Имя ей – упоминаемая выше анизотропная фильтрация. Она как была, так и осталась «не фонтан». Тестурный шум на water=0 – мама не горюй. Достаточно посмотреть на эту серию скринов:
это в статике. А в динамике там шумит так, что различить нижние контакты достаточно непросто. FPS 98, почти бесплатно по сравнению с предыдущим тестом. Попытка избавиться от текстурного шума на воде, выставив water=2, где рябь изначально меньше, дает 79 FPS, что в принципе неплохо, с учетом того, что FPS еще немного подрастет в процессе придавливания шиммеринга на зеленке путем уменьшения детализации текстур.
Так и осталось для меня неясным, что же не так в иле с анизотропной фильтрацией. Достаточно взять любое одиночное задание, например La-5 рейд на Котку, стартануть и не включая двигатель посмотреть вправо. Самолет совсем чуть-чуть тащит в сторону (т.е. смещается камера на ничтожно малое расстояние), а статики хоть немного, но мерцают. На рулежке муар. Не должно такого быть imho. Интуиция подсказывает, что что-то не так с вещественными числами. Либо теряется точность при преобразовании типов, либо где-то выскакиват противная погрешность.
Выводы такие: работа проделана хорошая, результат налицо. Патч ориентирован на видеокарты, которые неплохо шевелятся на вторых шейдерах. Анизотропная фильтрация по прежнему страдает, трилинейная все-так лучше, хоть и есть комбинации карта/время суток, где анизотропка рулит, в плотных вулчевых догфайтах из-за качественной обработки дымов и большого их количества она будет подтормаживать.
Осталось собрать все тесты в единую диаграмму.