• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Гайд по улучшению графики Gothic 3 с помощью ini-файла

NikosK

Участник форума
Регистрация
30 Сен 2023
Сообщения
3
Благодарности
3
Баллы
5
Приветствую всех и каждого!

В этой теме, я постараюсь изложить известную мне информацию о том, как можно улучшить графику третьей Готики, попробовав немного покопаться в ini-файле с настройками.
Основной файл настроек игры, где в числе прочих приводятся и настройки графики называется ge3.ini, который располагается в папке с игрой по адресу ..\Gothic 3\Ini.
Перед тем, как изменять параметры файла, не забудьте сделать бэкап ge3.ini, чтобы в случае проблем с его настройками всегда была возможность откатить их назад.
Если нет желания читать всю простыню текста, где я детально объясняю за что отвечает та или иная опция, в конце этого сообщения я привожу пример своих настроек графики. Для использования данных настроек отыщите нужный параметр в файле ge3.ini и замените значение в соответствии с указанными данными.
Следует учесть, что большинство затрагиваемых параметров относится к ультравысоким настройкам графики.
ini-файл третьей Готики устроен так, что одни и те же параметры могут относиться как к низким, средним, так и к высоким, и очень высоким настройкам, и разница в наименовании параметра, относящегося к тому или иному качеству графики отличается только соответствующим постфиксом. Я буду приводить параметры относящиеся к очень высоким настройкам графики. Таким образом, перед тем как пробовать вносить изменения в файл вам нужно убедиться, что у вас в игре, в разделе "Настройки" -> "Детализация" установлено качество графики: "Очень высокая". Если вы вносили изменения в опциях графики вручную, и сейчас у вас активна опция "Настроить", это будет работать, но только в случае, если до этого также стоял параметр "Очень высокая" графика. Также, следует отметить, что увеличение настроек дальности прорисовки достаточно сильно нагружает процессор и оперативную память, и я крайне рекомендую, чтобы в системе имелось минимум 8 Гб ОЗУ и относительно новый процессор имеющий высокую частоту.

Что-ж, думаю, с вводными данными ситуация понятна, теперь приступим.
Предыстория такова. Задался я на днях желанием перепройти игру, установил ее, накатил поверх все нужные патчи, поставил текстуры высокого разрешения... И вроде все ничего, Готика с новыми текстурами преобразилась, но дальность видимости в игре ясно давала понять, что она родом из 2000-х, и ничего с этим не сделаешь. Я припомнил, что когда играл последний раз в игру, менял через инишник некоторые параметры, позволявшие увеличить дальность прорисовки объектов, но как и куда нажимать полностью позабыл. Стал копать интернет на эту тему, но сколько ни искал, так и не нашел толкового гайда по настройке графики с ini. Возможно плохо искал, но те статьи, что попадались на глаза, либо искажали понимание настроек для той или иной опции, либо приводили какие-то, слишком уж туманные и общие сведения, которыми рядовой юзер вряд ли смог нормально воспользоваться. Пришлось провести собственное исследование, результаты которого выкладываю здесь.
Наиболее важная часть, касающаяся улучшения графики с помощью ini-файла будет относиться к увеличению дальности прорисовки в игре, но также, в конце, мы немного затронем параметры HDR. Итак, приступим.


Важные параметры влияющие на видимость прорисовки

Опции, влияющие на глобальную дальность прорисовки:
Render.PrefetchGridCellSize
Render.PrefetchGridCellSizeLowPoly


Опции необходимые для плавности перехода от ближнего плана видимости к удаленным объектам, задействующие алгоритмы оптимизации:
DistanceHigh.fFarClippingPlane_High
DistanceLow.fFarClippingPlaneLowPolyMesh_High


Разберем чуть подробнее каждую опцию отдельно.

Render.PrefetchGridCellSize
Настройка отвечает за дальность отрисовки ячеек ландшафта. Значение по умолчанию = 10000. Установка значения осуществляется с шагом 5000.
Это, пожалуй, самая важная опция касающаяся дальности. Изменение параметров отвечающих за детализацию видимости, таких как дальность отрисовки травы и статичных объектов, речь о которых пойдет ниже, не будет иметь особого смысла, если данная опция останется неизменной.
ВАЖНО! Это опция сильнее всех прочих нагружает систему и забивает кэш памяти. Крайне не рекомендую выставлять значение этой опции больше 15000! При моих попытках установить значение равное 20000 или выше, спустя некоторое время игра падала с ошибкой "Where is the guru?" (отчет о проблемах с памятью). Если несмотря на предупреждение, вы все же захотите увеличить этот параметр, примите к сведению, что если столкнетесь с "Гуру", то 99% появления ошибки будет по вине этого параметра. Впрочем, несмотря на все сказанное, при значении 15000 игра ведет себя стабильно и крашей замечено не было.

Render.PrefetchGridCellSizeLowPoly
Дальность отрисовки ландшафтных LOD-мешей. Влияет на то, как вы будете видеть издалека горы и башню Ксардаса.

DistanceHigh.fFarClippingPlane_High
Подрезка отрисованных ячеек посредством размытия дальнего плана (алгоритм оптимизации). При повышении значения, размытие дальнего плана будет отдаляться, увеличивая тем самым дальность прорисовки.
Эта настройка связана с опцией Render.PrefetchGridCellSize. Чем выше значение Render.PrefetchGridCellSize, тем более высокое значение можно установить для DistanceHigh.fFarClippingPlane_High. Если попытаться увеличить значение без повышения Render.PrefetchGridCellSize будут появляться разрывы ячеек ландшафта.

DistanceLow.fFarClippingPlaneLowPolyMesh_High
Подрезка ландшафтных LOD-мешей (алгоритм оптимизации).
Эта настройка связана с опцией Render.PrefetchGridCellSizeLowPoly. Чем выше значение Render.PrefetchGridCellSizeLowPoly, тем более высокое значение можно установить для DistanceLow.fFarClippingPlaneLowPolyMesh_High.


Параметры отвечающие за детализацию дальности прорисовки

Entity.ROI
Дистанция отрисовки персонажей и существ.

VegetationViewRange.fViewDistance_VeryHigh
Дистанция отрисовки травы.

ObjectDetails.fScreenObjectDistanceCulling_VeryHigh (меньше -> лучше)
ObjectDetails.fProcessingRangeFadeOutRange_VeryHigh (меньше -> лучше)
ObjectDetails.fRangedBaseLoDOffset_VeryHigh (больше -> лучше)
Три вышеприведенных параметра взаимосвязаны и отвечают за дистанцию отрисовки крупных объектов (строения, деревья, камни и т.д.). Изменение этих параметров, при ультравысоких настройках графики имеет смысл, если значение Render.PrefetchGridCellSize составляет 20000 или выше. Но как было указано ранее, во избежание ошибок, параметр Render.PrefetchGridCellSize не следует устанавливать выше 15000, соответственно и изменение трех вышеприведенных параметров особого смысла не имеет, так что можно оставить их значения по дефолту.

Собственно, выше перечислены все, сколько-нибудь значимые параметры, отвечающие за дальность прорисовки. От себя скажу, что после всех проведенных манипуляций с настройками дальности, картинка реально похорошела.
И немного о грустном. До того как как я занялся этими настройками средний FPS в игре находился на уровне 130 к/с, после изменения параметров дальности, средний FPS опустился до 50 к/с. Падение частоты кадров более чем в два раза! Кроме того, в некоторых местах при резком повороте камеры появились небольшие подтормаживания. И тут уж сами определяйтесь - нужно ли оно вам. Для меня частота кадров в 50 FPS является вполне играбельной, и я готов пожертвовать проседанием кадров в угоду красивой картинке.
Система на которой игра тестировалась: i7-6700k, DDR4 64 GB, GeForce GTX 1080, монитор 3840x2160.
Таким образом, если у вас более мощная система и вы не играете в разрешении 4k (впрочем, дальность отрисовки в первую очередь процессорозависима), то теоретически, в вашем случае могут быть играбельные 60 кадров.

Теперь, касательно HDR. Изменение его параметров не отразится на частоте кадров. Смысла расписывать каждый параметр относящийся к этой функции, думаю не имеет. Скажу лишь, что по моему мнению, в параметрах HDR установленных по дефолту чрезмерно завышена экспозиция и интенсивность свечения. В результате картинка выглядит немного "пластиковой", и я попытался, насколько возможно, устранить это. Настройки HDR будут приведены после параметров дальности отрисовки.

Как и обещал выше, в качестве примера, привожу свои настройки графики. Удачи в преображении игры. :)


Дальность прорисовки:

Entity.ROI=15000.0
Render.PrefetchGridCellSize=15000
Render.PrefetchGridCellSizeLowPoly=65000
DistanceHigh.fFarClippingPlane_High=19250.0
DistanceLow.fFarClippingPlaneLowPolyMesh_High=280000.0

VegetationViewRange.fViewDistance_VeryHigh=29000.0


Render.HDRExposure=2.05
Render.HDRGamma=0.69
Render.HDRVignette=0.30
Render.HDRBlueShiftThreshold=13.0
Render.HDRBlueShiftIntensity=1.27
Render.HDRGlowThreshold=0.57

Render.HDRGlowIntensity=3.19
 
Последнее редактирование:

IdeaGen

Участник форума
Регистрация
28 Апр 2017
Сообщения
2.206
Благодарности
580
Баллы
295
без скриншотов было/стало гайд что вилами по воде ) и чуется - не спроста их нет. ибо тут все про дальность прорисовки, а значит, зная географию г3, для игрока фундаментальной разницы в общей картине тут не будет, ибо взор по большей части будет сфокусирован в радиусе 100м.
DistanceHigh.fFarClippingPlane_High
Подрезка отрисованных ячеек посредством размытия дальнего плана (алгоритм оптимизации). При повышении значения, размытие дальнего плана будет отдаляться, увеличивая тем самым дальность прорисовки.
спорный момент. может фича и работает на производительность, но это, скорей, побочный бонус, а цель другая.
 

Jenua

Участник форума
Регистрация
30 Июл 2019
Сообщения
6
Благодарности
0
Баллы
95
Благодарю. Всё никак не мог устранить разрывы между локациями прорисованными в далеке и вблизи. Оказывается надо было Render.PrefetchGridCellSize подкрутить.
 

dnsava94

Участник форума
Регистрация
11 Мар 2019
Сообщения
73
Благодарности
55
Баллы
170
С таким ROI и НПС которые дерутся персонажи не погибают пока вы до них недошли? например тристан или горн в готе, рудокопы в нордмаре?
ObjectDetails.fScreenObjectDistanceCulling_VeryHigh (меньше -> лучше)
ObjectDetails.fProcessingRangeFadeOutRange_VeryHigh (меньше -> лучше)
ObjectDetails.fRangedBaseLoDOffset_VeryHigh (больше -> лучше)
Можно привести примеры значений для этих показателей, т.к. непонятны диапазоны допустимые
 

Zeke

Участник форума
Регистрация
24 Авг 2015
Сообщения
89
Благодарности
35
Баллы
180
dnsava94, Вот тоже хотел узнать появилось ли решение этой проблемы, чтобы можно было выставить Entity.ROI=15000.0 и чтобы мобы не дрались за километр от героя, а только когда гг к ним подходит.
 
Сверху Снизу