Показать сообщение отдельно
Старый 07.10.2009, 13:42   #991
tylerskald

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Risen: Технические вопросы, баги, патчи

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

Cпойлер(щелкните, чтобы прочесть):
Многие, думаю, видели "нехорошее" - границу детальной прорисовки тени и странные артефакты на текстурах вдали, напоминающие "маслянную пленку". Скрины выкладывать бесполезно, т.к. в основном заметно (и напрягает) только в движении. В общем, хотел я это дело починить и одновременно оптимизировать отображение теней.

Твики. Делаем их в ConfigDefault.xml (смотрим в шапке, где он лежит). Там нужно найти секцию теней (shadows). Правки нужно делать в подсекции настроек off, low, medium или high - в зависимости от того, что именно установлено в игре. Однако смысла тюнинговать все помимо high я не вижу.

В первую очередь нас интересует параметр DetailShadowMapSplitFactor. Именно он отвечает за границу дальности прорисовки мега-детальных теней (выяснено методом научного тыка). По умолчанию для high он выставлен на "0.40000". ежели мы хотим убрать эту границу (как вариант отдалить ее подальше), то значение нужно поменять на "1.0000". Я пробовал разные значения, но с единицей отлично работает, так что на этом и остановился.

Далее, для оптимизации работы (+fps) стоит поменять значения ScreenSpaceAmbientOcclison и SoftShadows на "false", т.е. отключить их. Кроме увеличения частоты кадров отключение мягких теней также убирает артефакт "масляной пленки" на дальних текстурах.

Дальность прорисовки детальных теней регулируется параметром DetailShadowMapViewRange. Я его не менял (включено сглаживание через nHancer, так что "лишняя" нагрузка - нехилая потеря fps). Но может быть, кому-то надо. На форумах буржуи в основном рекомендуют выставлять 13000 вместо 7500. По скринам - для любителей оочень дальнего обзора. ;)

Еще одна правка касается качества теней. DetailShadowMapSize. По умолчанию для High это "1024". Значение можно увеличить до 2048. Но лично я не особо и заметил разницы ни в качестве, ни в fps. Можно попробовать. Главное, не меняйте качество теней ландшафта - TerrainShadowMapSize. Увеличение до 2048 сказывается на полном отключении всех теней кроме тени от факела или заклинания "свет". Почему - не знаю. Но проверял опять же сам.

В итоге, получаем картинку без видимой границы среднедетальной/высокодетальной тени, отсутствие "пленки" на текстурах, увеличение производительности (даже несмотря на увеличение в 2 раза качества теней). Минус - некоторое ухудшение общего качества картинки (я бы сказал, процентов на 10%) из-за отключения Occlison и SoftShadows.

Настройки в ConfigDefault.xml (если кому недосуг править самому) должны выглядеть так:

<High
* * * * * * *DetailShadowMapCount="3"
* * * * * * * *DetailShadowMapSize="2048"
* * * * * * * *DetailShadowMapSplitFactor="1.0000"
* * * * * * * *DetailShadowMapViewRange="7500.000000"
* * * * * * * *EnableDetailShadows="true"
* * * * * * * *EnableTerrainShadows="true"
* * * * * * * *TerrainShadowMapSize="1024"
* * * * * * * *ScreenSpaceAmbientOcclison="false"
* * * * * * * * *SoftShadows="false"
* * * *>
* * * * * *</High>
Ответить с цитированием