Реестр - сила народная
А что мы знаем о реестре? Большинство юзеров скажут, что нихрена не знают не слишком компетентны в этом вопросе, но на самом деле это мощная вещь (рис.3, fuuuuu-)!А что вы знали о hex-редактировании? – забыл спросить я вас в прошлый раз...
Опишем в двух словах параметры в реестре по адресу HKEY_CURRENT_USERSoftwareActivisionSingularity
(так как по Singularity очень мало инфы, то будем отталкиваться от похожих игр – Batman: Arkham Asylum, Mirror’s Edge, Borderlands, Mass Effect и старый добрый UT (я думаю, что UE3 от UE3.5 мало чем отличается))
Основные источники инфы (кроме мозгов, многое пришлось додумывать):
udn.epicgames.com/Three/SystemSettings.html
smilaforum.org.ua/viewtopic.php?t=6016
wiki.beyondunreal.com/UE3:Engine_internal_variables_(UT3)
borderlands.wikia.com/wiki/PC_Tweaks
forums.steampowered.com/forums/showthread.php?t=1221064
www.tweakguides.com/UT3_8.html Образец написания параметра:Название=dword:значение в 16-ричном формате (значение в 10-тичном) (допустимые значения)Значения приведены по умолчанию!
AllowD3D10=dword:00000000 (0) (0-1)
Это типа должно включать Direct3D10 (если 1, то есть =true), но вот у меня после этого перестала запускаться игра, у некоторых пошло, но изменений в графе никаких, даже лаги появились. Есть мнения, что это не работает на Windows XP, а пашет на Vista только при высоком разрешении, типа 2560x1600 (ну и если ваше железо это поддерживает), работает некорректно и нестабильно, и только с Vsync. Да ну нафиг, про этот параметр можно ещё одну статью страниц на пять накатать, чёткого ответа нет, но с моим компом мне это не потестить.
AmbientOcclusion=dword:00000000 (0) (0-1)
Это модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности.
Затенение Ap в точке p поверхности с нормалью N может быть посчитано путём интегрирования функции видимости по полусфере Ω (рис.4), где Vp,ω — значение функции видимости в точке p, равное нулю, если луч из p в направлении ω имеет пересечение с объектом, и равное единице в остальных случаях... Нахер эту википедию, я завис на формуле. Короче, в теории включение этого должно ‘существенно улучшать визуальное качество сцены и восприятие трёхмерных объектов’ (то есть тени и освещение), что, естественно, приведёт к падению производительности.
ru.wikipedia.org/wiki/Ambient_occlusion
www.3dnews.ru/video/asus_engtx275/
3dyuriki.com/2009/03/26/ambient-occlusion-slovar/
Про AO тоже можно поговорить отдельно :)
bAllowBetterModulatedShadows=dword:00000001 (1) (0-1) Улучшает качество каких-то определённых теней (по словам ‘better’ и ‘shadows’ всё понятно).Toggle extra geometry pass needed for culling shadows on emissive and backfaces – вот что это делает.
Для увеличения FPS можно выключить.
www.cyberneticpunks.com/forums/all-points-bulletin-apb/6165-apb-fps-tweaks-improve-your-fps.html
bAllowFracturedDamage=dword:00000001 (1) (0-1) Whether to allow fractured meshes to take damage – разрешает разрушающимся мешам принимать урон. Поговаривают, что это как-то связано с отображаемой кровью.
www.answerlogr.com/topic/2074442/How-to-reduce-gore...html
bDisableSkeletalInstanceWeights=dword:00000000 (0) (0-1) Whether to disable instanced skeletal weights – я ещё раз убедился в содержательности пояснений на этом сайте.
Хз, что это, но если поставить значение 1, то что-то выключится.
bEnableBranchingPCFShadows=dword:00000000 (0) (0-1) Toggle Branching PCF implementation for projected shadows
Нихера не понятно, за что отвечает. Полезли в гугл…
Выражаю благодарность челу, написавшему эту статью:
koitsu.wordpress.com/2009/11/28/borderlands-shadows-and-framerate-performance/
Там речь идёт о Borderlands, но и для нас нашлось кое-что полезное: UE располагает несколькими методами прорисовки карт теней: PSSM (Parallel-Split Shadow Maps), VSM (Variance Shadow Maps), PCF (Percentage-Closer Filtering)… (и куча ссылок по этой теме).
Это тоже неплохо http.developer.nvidia.com/GPUGems3/gpugems3_ch08.html, но вот такие вещи (рис.5) меня пугают, как-нибудь в другой раз об “истории развития shadow mapping’а”.
А bEnableBranchingPCFShadows оставьте равным 0, я почитаю про это, но вроде VSM круче – жрёт меньше (наверно, включается при выключенном PCF, в старых играх с UE была ещё переменная bEnableVSMShadows).
bEnableForegroundShadowsOnWorld=dword:00000000 (0) (0-1) Hack to allow for foreground DPG objects to cast shadows on the world DPG – врубить тени на переднем плане (возможно, имеется ввиду тень самого ГГ и находящихся рядом предметов, но я в этом не понимаю нифига).
forums.ag.ru/?board=fps&action=display&s=0&num=1188509147&start=200#200 //к сожалению, эта ссылка ведёт прямиком в ад в помойку на AbsoluteGovno на AG
bEnableForegroundSelfShadowing=dword:00000001 (1) (0-1) Whether to allow foreground DPG self-shadowing – самозатенение объектов переднего плана.
Непонятно, разберёмся.
bForceCPUAccessToGPUSkinVerts=dword:00000000 (0) (0-1)
Форсирует доступ процессора к каким-то SkinVerts с видеокарты (к сожалению, я не занимаюсь трёхмерным моделированием, поэтому и эти понятия для меня – тёмный лес).
Bloom=dword:00000001 (1) (0-1) Ну это все знают, даже особо разглагольствовать не буду. Отключите – смачно прибавится FPS.
ru.wikipedia.org/wiki/Bloom
en.wikipedia.org/wiki/Bloom_(shader_effect) bUseExponentialShadowMaps=dword:00000001 (1) (0-1)
Это врубает какие-то суперские карты теней (ESM), о которых я нифига не знаю. research.edm.uhasselt.be/~tmertens/papers/gi_08_esm.pdf (там нет вируса, это просто pdf, если что).
bUseGaussianESMFilter=dword:00000000 (0) (0-1)
Вообще нет никакой инфы (только ESM что-то проясняет).
CompositeDynamicLights=dword:00000000 (0) (0-1)Whether to composite dynamic lights into light environments.
Включает какое-то составное динамическое освещение
www.tweakguides.com/ME_8.html
forums.playground.ru/mass_effect/194078/ (наши уже допёрли)
Во блин, оказалось, что если выставить 1, то “упрощается расчёт освещения от нескольких локальных источников света, расположенных близко.” (в английском гайде то же самое, но я бы в жизни не перевёл) При включении фреймрейт в некоторых локациях прибавится на 10-30%, а качество картинки на глаз не пострадает (прям чудо какое-то, проверить надо).
DecalCullDistanceScale=dword:3f800000 (1065353216)
Scale factor for distance culling decals – да что такое, нормального описания нет, что ли? Стопудово связано с дистанцией декалей, короче, разберёмся.
DepthOfField=dword:00000001 (1) (0-1)
en.wikipedia.org/wiki/Depth_of_field
www.gamedev.ru/code/terms/DOF
www.uraldev.ru/articles/index.php?id=23&page=2
Включает эффект “размытых текстур” (нет, это не те размытые текстуры, о которых я писал в прошлый раз).
На самом деле, в оптике возможно только одно расстояние, при котором точка в пространстве передаётся в виде точки на светочувствительный элемент, так что «глубина» резкости на самом деле физически не существует и является следствием несовершенства техники и глаза наблюдателя – вот и я что-то крутое узнал :). В компьютерных играх этот эффект добавляет реализма, атмосферы… читайте про него сами, статей в интернете дохера.
В теории, если его отключить, то производительность может повыситься аж на 50%, тоже затестим.
DetailMode=dword:00000002 (2) (0-2)
Ну, это проще некуда – уровень детализации. Уменьшение этого значения – ухудшение качества прорисовки воды, тумана, пара (в первую очередь).
DirectionalLightmaps=dword:00000001 (1) (0-1)
Включает более крутую прорисовку поверхностей. Может, ещё что-нибудь делает с динамическим освещением (я уже говорил, что ничего не знаю обо всех этих понятиях и рассказываю всё на любительском уровне? Именно - рис.6).
Distortion=dword:00000001 (1) (0-1)
Отвечает за красоту смачных взрывов, дым из оружия и т.п. (если во время жестоких перестрелок проседает FPS, отключите это).
DropParticleDistortion=dword:00000000 (0) (0-1)
forums.epicgames.com/showthread.php?t=602663
Вроде как уменьшает качество эффектов частиц, (тех, которые описаны выше – ведь не просто так здесь слово Distorion) то есть, если включить, то повысится производительность.
DynamicDecals=dword:00000001 (1) (0-1)
Динамические декали – следы от пуль на стенах и др.
DynamicLights=dword:00000001 (1) (0-1)
Динамическое освещение, это вы и так поняли.
DynamicShadows=dword:00000001 (1) (0-1)
Включает динамические тени (то бишь, улучшенную обработку теней движущихся объектов).
ESMDarknessClamp=dword:3e4ccccd (1045220557)
Я начинаю жалеть, что взялся ворошить реестр, может остановимся???
ESMFilterPasses=dword:00000001 (1)
FFFUUUUUUUUU-
ESMFilterSamples=dword:00000007 (7)
Если будет ещё один параметр с ESM в начале, я застрелюсь…
en.wikipedia.org/wiki/ESM - и что это?
ESMOverDarken=dword:40c00000 (1086324736)
БАМ! Пыщь!
Если серьёзно, то об этом известно только то, что это каким-то образом связано с ESM (Exponential Shadow Maps), типа фильтрация ESM и всё такое.
FloatingPointRenderTargets=dword:00000001 (1) (0-1)
Какая-то технология “рендеринга с плавающей точкой” (что за йухня???)
Тут мне подсказывают, что это влияет на постпроцессинг, позволяет включать HDR и Anti-Aliasing вместе.
FogVolumes=dword:00000001 (1) (0-1)
Так, а что за Fog?
en.wikipedia.org/wiki/Fog - да, опять Вики, ещё раз спасибо ей.
Видимо, это всякие объёмные погодные эффекты, а-ля туман, облака.
Матчасть утверждает, что это можно отрубить.
FoliageDrawRadiusMultiplier=dword:3f800000 (1065353216)
Пришлось достать старый словарь по инглишу (он ещё не раз пригодится, поверьте), стряхнуть с него пыль, открыть и узнать, что Foliage – это листва, трава. Значит, этот параметр отвечает за дальность прорисовки этой херни.
Determines when the engine starts drawing foliage, like grass for example – определяет, когда двигло начинает рисовать листву, траву и др. (я был прав, ура!)
FractureCullDistanceScale=dword:3f800000 (1065353216)Distance scale for whether a fractured static mesh should actually fracture when damaged (опять эти “меши” и всякие умные слова). Дословный перевод – “определяет дистанцию, на которой повреждающийся статический меш реально (а есть нереально?) разрушается при уроне”. Наверно, связано со следами от пуль, взрывами.
FractureDirectSpawnChanceScale=dword:3f800000 (1065353216)
“Процентный шанс респауна жёсткого объекта при прямом повреждении статического меша, ёпт” – говорит нам одна из статей.
FractureRadialSpawnChanceScale=dword:3f800000 (1065353216)
“Процентный шанс респауна жёсткого объекта при повреждении статического меша radial blast’ом” – та же статья.
Что ж такое radial blast – смотрите картинки (рис.7-8), словами сформулировать я не смог (может, какая-то атака вспышкой или взрывная волна?).
А вам не кажутся последние два параметра подозрительными? Написано же – “процентный шанс…”, какого хера такие значения??? В предыдущих играх с UE3 они равнялись 1.00000. Ну да ладно…Fullscreen=dword:00000001 (1) (0-1)
Капитан Очевидность знает, что это такое, знаете ли вы?
Конечно, вы правы (возьмите с полки пирожок), это включает полноэкранный режим.
LensFlares=dword:00000001 (1) (0-1)
Включает рендер вот таких эффектов (рис.9-10). Надеюсь, вы поняли.
en.wikipedia.org/wiki/Lens_flare
LightEnvironmentShadows=dword:00000001 (1) (0-1)
“Управляет тенями, которые отбрасывает окружающая среда” – отлично!
MaxAnisotropy=dword:00000004 (4) (0-16…)
Включает анизотропную фильтрацию, придаёт крутости текстурам на дальней дистанции (0-выкл, 1-16 – уровень фильтрации, чем больше, тем красивее, говоря по-простому)
www.tweakguides.com/Graphics_11.html
MaxMultisamples=dword:00000001 (1) (0-16…)
Контролирует мультисэмплинг – одну из форм AA, то есть сглаживание (Anti-Aliasing, если кто забыл, опять профессиональный термин)
www.tweakguides.com/Graphics_11.html
На тему AF и AA тоже можно написать статью (и не одну), уж слишком много эти понятия в себя включают. Скажу только, что чем больше это число, тем больше образцов пикселей уходит на сглаживание/фильтрацию – хорошо жрёт ресурсы.
MinShadowResolution=dword:00000020 (32) ()MaxShadowResolution=dword:00000200 (512) ()
Устанавливает минимальное и максимальное значения разрешения теней. При увеличении Min тень становится жирнее и чернее, при уменьшении тень становится светлее. Там же предупреждают, что игра с этими параметрами может привести к появлению артефактов. Затестите сами, я и так занят ))
MotionBlur=dword:00000001 (1) (0-1)
Врубает супер-пупер эффект размытия при движении и т.п. (отключение прибавит FPS).
NumFracturedPartsScale=dword:3f800000 (1065353216)
Вроде как, число определяет количество разрушающихся физических объектов или число частей, на которые они разбиваются (осторожней, а то получится как на рис.11 ;)).
OneFrameThreadLag=dword:00000001 (1) (0-1)
Я думаю, вы уже заметили слово Lag в названии и поспешили выставить в 0. Но этот параметр всего лишь включает очередную фичу движка - rendering thread to lag one frame behind the game thread (один кадр обрабатывается в запасе, то есть система уже прорисовывает следующий кадр, пока идёт этот (а разве может быть как-то по-другому???)).
OnlyStreamInTextures=dword:00000000 (0) (0-1)
Ещё одна фишка – влияет на подгрузку текстур. При включении как бы должен запретить потоковую выгрузку текстур текущей локации (а то UE любит выгружать текстуры, даже те, которые находятся совсем рядом от ГГ). Когда-то мы им пытались вылечить баг, описанный в моей предыдущей статье, но безуспешно.
ParticleLODBias=dword:00000000 (0) (…;-2;-1;0;1;… - хз, как в реестре поставить отрицательные значения, но в теории они есть)
Влияет на эффекты частиц, ещё как-то связано с мипмаппингом.
Положительные значения уменьшают детализацию, а отрицательные вроде как делают картинку более чёткой – слухи, слухи…
ResX=dword:00000320 (800)ResY=dword:00000258 (600)
Разрешение по горизонтали и вертикали.
Если не пашет, попробуйте также выставить UserSelectedResolution в True (1).
SceneCaptureStreamingMultiplier=dword:3f800000 (1065353216)
WTF???
ScreenPercentage=dword:42c80000 (1120403456)
Определяет занимаемую игрой часть экрана, только раньше это было в процентах, а сейчас числа такие жёсткие.
ShadowDepthBias=dword:3c449ba6 (1011129254)
Влияет на качество прорисовки теней, только непонятно каким боком.
ShadowFadeExponent=dword:400ccccd (1074580685)Controls the rate at which shadows are faded out – контролирует значение, при котором тени блекнут.
ShadowFadeResolution=dword:00000080 (128)Resolution in texel below which shadows are faded out - разрешение (в текселях), ниже которого тени блекнут.
ShadowFilterQualityBias=dword:00000000 (0) (…0-4…)
Контролирует качество фильтрации теней.
ShadowFilterRadius=dword:40000000 (1073741824)
Радиус фильтрации теней (логично, чёрт возьми!)
ShadowTexelsPerPixel=dword:3fa2f987 (1067645319)
Определение количества текселей, приходящихся на каждый пиксель объекта (ставлю сто баксов, что эта настройка, как и шесть вышеописанных, не работает).
ShadowVolumeLightRadiusThreshold=dword:447a0000 (1148846080)ShadowVolumePrimitiveScreenSpacePercentageThreshold=dword:3e800000 (1048576000)
Нафиг не трогайте это!
SkeletalMeshLODBias=dword:00000000 (0) (…0-1…)
Отвечает за что-то в анимации, как и ParticleLODBias, тоже связано с мипмаппингом.
Говорят, что это регулирует уровень детализации живых существ (хрен, скажу я вам).
SpeedTreeLeaves=dword:00000001 (1) (0-1)SpeedTreeFronds=dword:00000001 (1) (0-1)
Включает мега-технологию улучшенной прорисовки листьев, деревьев и другой мелочи.
StaticDecals=dword:00000001 (1) (0-1)
Отображение статических декалей (если выключить, то прибавится FPS)
UnbatchedDecals=dword:00000001 (1) (0-1)
Отображение декалей, которые have not been placed in static draw lists and have dynamic view relevance
(ну вы сами переведёте и догоните, я не понял)
UpscaleScreenPercentage=dword:00000001 (1) (0-1)This setting only has an impact if the Screen Percentage setting is below 100% - эта настройка работает, если ScreenPercentage (то бишь, процент от всего экрана, занимаемый окном игры) меньше 100%. Так что нах это, но в оконном режиме она как бы подгоняет размер обрабатываемой картинки.
UseHighQualityBloom=dword:00000001 (1) (0-1)
Bloom – это уже само по себе клёво, но кому-то наверху (рис.12) этого показалось мало. Проще пареной репы: включите – будет Bloom с высоким качеством.
UserSelectedResolution=dword:00000000 (0) (0-1)
При выставлении 1, этот параметр разрешает использовать нестандартные изменённые значения ResX и ResY (в теории).
UseVsync=dword:00000000 (0) (0-1)
Включает вертикальную синхронизацию, обеспечивает некоторую плавность картинки, стабильность FPS ("стабильность" не значит больше, даже наоборот!!).
Ну вот и всё, отмучался, рассказал, что знаю (есть ещё настройки, не обозначенные в реестре, но реально работающие, но мне и так хватило). В следующей статье будет практика: эксперименты, тесты и выводы.До встречи! :)
1167 Прочтений • [Реестр - сила народная (#2714)] [16.05.2012] [Комментариев: 0]