FarCry бе първата от "новото поколение" игри, които предлагат изумителна визия благодарение на последното (в момента на излизането й) поколение видеокарти. Днес има следващо поколение карти, но тази статия ще получи нужното продължение, в което ще говоря повече за добавените в пач 1.2 подобрение, свързани с Radeon X800 r GeForce 6800. Двете карти ще получат не по-малко време, отколкото получи и моята FX5900. И все пак, за какво става въпрос в статията – FarCry съвсем не е сред леките игри и дори при минимални настройки трудно се подкарва на стар хардуер. FX5900 пък е една от най-разпространените видеокарти, но и най-обсъжданите покрай играта заради използването на оптимизации, стара версия на шейдърите и т.н. По всичко личи обаче, че с повечко настройки от играта могат да се извадят както (много) повече кадри, така и по-високо качество на картината без чак такава сериозна загуба на производителност във втория случай. Вариант 1 беше да накарам играта да върви по-бързо като загубя малко качество на картината, детайли или спра някои "екстри", но всеки път, когато погледнех обикновения изглед на играта ми се искаше да изглежда дори по-добре. Приемам за "обикновен вид" комбинацията от High за всички настройки без водата, която оставях на Ultra и в допълнение пусках 2 level анизотропна филтрация и 2x Antialiasing – т.е. Low в менюто на играта. Не само вграденият конфигуратор има възможност за Custom настройки, където всяка стойност си има и описание, но и в конфигурационните файлове на играта можеха да се добавят и променят още доста неща.

Драйвери:
Написаното тук важи за версия 65.62 на драйверите Forceware, и е нужно да отчета факта, че това е не само бета версия, но и сборна комбинация от файлове от различни драйвери – като изключим самият драйвер, останалите части – контролният панел и разширенията му са версия 61.77, макар маркираните с 65.62 да носят по-задна дата от излизането на 61.77. 65.62 има славата на най-добрият драйвер за DoomIII, което ще разбера съвсем скоро, тъй като следващата игра, с чиито настройки ще си поиграя е именно тъмното творение на Кармак. На всички е известно, че между режимите High Quality и Quality в драйвера има разлика, но противно на очакванията, такава липсва. Единственото различие между тях е възможността да променяте следните параметри:
- Trilinear optimization
- Anisotropic mip filter optimization
- Anisotropic sample optimization
Обясненията на nVidia за значенията им са по-долу:

Тестова система:
- Athlon64 3000+
- Abit KV8
- MSI GeForceFX 5900 128MB, , 425/850 MHz
- 2x512MB Geil Platinum DDR500 @ 2-3-3-6
- 160GB Hitachi 7K250 PATA
- WindowsXP SP2,DirectX9c

Тестове:
На графиките може да видите промените при използването на тези оптимизации в брой кадри. Означенията са както следва:
- HQ-0-0-0High Quality без оптимизации
- Q-0-0-0 - Quality режим без включване на допълнителни оптимизации.
- Q-0-0-1 - Quality режим с включена "Anisotropic sample optimization".
- Q-0-1-1 - Quality режим с включени "Anisotropic sample optimization" и "Anisotropic mip filter optimization".
- Q-1-1-1 - Quality режим с включени "Anisotropic sample optimization", "Anisotropic mip filter optimization" и "Trilinear optimization".
- AF2, AF4 и AF8 са съответно нивата на анизотропна филтрация от 2 до 8. Не съм пускал играта без филтрация, както може да се убедите след като видите конфигурационния файл това би било безмислено от гледна точка на производителност, тъй като филтрацията може да се включи и по друг начин, макар и да не може да се избира нивото й.

*Тестовете са от записани от мен демота в различни сцени, може да ги изтеглите ОТТУК. Тестовете се пускат най-лесно с HardwareOC BenchTool.


2xAF, HQ-0-0-0


2xAF, Q-0-0-0


2xAF, Q-0-0-1


2xAF, Q-0-1-1


2xAF, Q-1-1-1


4xAF, HQ-0-0-0


4xAF, Q-0-0-0


4xAF, Q-0-0-1


4xAF, Q-0-1-1


4xAF, Q-1-1-1


8xAF, HQ-0-0-0


8xAF, Q-0-0-0


8xAF, Q-0-0-1


8xAF, Q-0-1-1


8xAF, Q-1-1-1

По-горе са и екрани при различните режими без АА. Както се вижда от графиките и екраните, разликите между най-високото и най-ниското качество са минимални и с просто око се забелязват трудно. Изключение правят решетките на двете колони отпред, но пък е естествено те да отразяват светлината, а не както при нормалната 8 level AF да са тъмни. Според мен разлика от десет кадъра в секунда между двата режима си струва и е за предпочитане да използвате оптимизирана 8 level AF пред пуснат на максимално качество 2 level AF.

За да се потвърдят резултатите повторих теста и с друга сцена. И в двете броят кадри не са мерени според показаните на скрийншота, а според най-дълго задържалите се (т.е. среден брой кадри). Причината на някои шотове кадрите да са малко е в скоростта, с която съм ги свалял – след няколко смени на нивото на AF това става само с влизане-излизане в конзолата, а броят кадри пада значително в момента на сваляне на скрийншот. За среден брой кадри съм изчаквал по около 30 секунди на сцена.


2xAF, HQ-0-0-0


2xAF, Q-0-0-0


2xAF, Q-0-0-1


2xAF, Q-0-1-1


2xAF, Q-1-1-1


4xAF, HQ-0-0-0


4xAF, Q-0-0-0


4xAF, Q-0-0-1


4xAF, Q-0-1-1


4xAF, Q-1-1-1


8xAF, HQ-0-0-0


8xAF, Q-0-0-0


8xAF, Q-0-0-1


8xAF, Q-0-1-1


8xAF, Q-1-1-1

Тук разликата между най-високото качество и най-ниското е по-малка, за съжаление AF8 Q-1-1-1 е по-бавен от AF2 HQ. Все пак, съпоставка между различията в качеството на картината и броя кадри в сцената от нивото Volcano и тази би навела на мисълта, че никак не е зле да се ползва оптимизираното AF8, макар при открити пространства да е малко по-бавно.

Antialiasing:
Бъг в драйвера е невъзможността да се форсира Antialiasing във FarCry при ползване на Direct3D9 рендерер. Дали това е валидно и за други приложения не съм сигурен, дори не съм опитвал. Така или иначе това слабо ме засяга, тъй като играта разполага с контрол над заглаждането на ръбовете в своето меню, а недостъпните режими всъщност са най-високите, при които се досещате е невъзможно да се играе. 8xS е най-добрият antialiasing режим, достъпен в момента. Причината е, че всъщност това е комбинация от 4xMiltisampling с известни подобрения и Supersampling, който прилага заглаждане дори върху полигоните, което не е достъпно при ползване само на Multisampling. За съжаление точно FarCry не се възползва от нито една част от всичко това и макар в OpenGL режим да приема зададеното в контролният панел на драйвера 8xS, не пуска нищо различно от 2x. Бъг в драйвера или проблем с OpenGL рендерера – не мога да определя.


noAA


2xAA


4xAA


8xAA

Разликата в броя кадри при ползване на различни режими на заглаждане на ръбовете е много висока, особено във сцени с много детайли. За съжаление, колкото и да е добър енджина сами може да си направите изводи от следващия екран и да отправите съответните "благодарности" към създателите.

В тази сцена количеството линии, които получават заглаждане, дори след като бъдат "пресяти" и останата само видимите от тях е огромно, такива са и ресурсите, които изисква в нея заглаждането на ръбовете. Все пак много от далечните елементи не са видими при нормална конфигурация на играта – дърветата, ако трябва да съм точен, така че ще се освободи известно, макар и наистина малко количество ресурси – малко, защото видимите линии при тях са наистина малки.

Макар 4x режима да изглежда наистина много по-добре от 2x, забравете го ако сте с такава карта за всички разделителни способности над 800x600. При 1024 и висока детайлност се играе нормално с 2xAA.

1024x768 vs 1280x1024
Количествената разлика на броя кадри при двата режима почти винаги е около или дори понякога над 30%. Малко подобрение внася използването на 1152x864 свс 1280x960, които са и по-правилни като пропорции изображения. Лично аз съм ограничен от монитора на 1152 и все пак играя на 1024, за да мога да ползвам заглаждане на ръбовете – макар по-високата разделителна принципно да върши подобна работа, тя просто не е същата :).

The Radeon Way
До версия 1.1 на играта някои места в нея изглеждаха удивително зле на фона на показаното от Radeon видеокартите. Реално това бе така върху металните повърхности, където се ползват пикселни шейдъри за отражението. Оправянето на този проблем ставаше като се форсира пътят на рендиране на Radeon видеокартите с поставянето на модифицирана d3d9.dll библиотека в папката Bin32. Два са вариантите на този файл, един от тях води до забележим спад в качеството - този, а другият в забележим спад в производителността (този), още повече вторият, ползваш пълната прецизност на шейдърите водеше и до дефекти при осветяване на растенията на открити пространства. Долу може да видите за какво говоря. Във версия 1.2 проблемните точки са отстранени и картината е с далеч по-високо качество без това да намалява производителността.


1.1 Standart


1.1 d3d9.dll


1.1 Standart


1.1 d3d9.dll

Patch 1.2
На доста места споменах за него, но тъй като официално е изтеглен няма да го кача за сваляне от сайта. В него се въвеждат и шейдърни модели 2b за Radeon X800 и модел 3 за последните членове на фамилията GeForce. Тези дни ще имам възможността пак да се боря и с двете видеокарти, така че ще пробвам какъв е резултата върху производителността. За съжаление този пач е несъвместим със старите savegames/checkpoints и не мога да добавя всички скрийншоти от същите места без да играя отново до тях, което определено не им се прави :). Втори проблем е тоталната липса на радар в HUD диплея и появата на куп нови команди, за които все още няма пояснения. Предимството при ползването на 1.2 е по-скоро теоретично за притежателите на FX59xx карти и се състои в повишено бързодействие ан някои шейдъри - например проблемните преди отражения на светлини. Сега те са с пълно качество и без проблеми, като не влияят на количеството FPS и отпада нуждата от ползване на предоставените от TommiSystems вариации на d3d9.dll.

High, Ultra Water

Custom

Custom+patch 1.2

system.cfg
Файл с такова име може да намерите и в главната директория на FarCry, и в поддиректорията Bin32. Вторият се получава при първоначалното зареждане от автоматичния конфигуратор, но може да се редактира с FarCryConfigurator.exe. В опциите за качеството на изображението има и настройка Custom, където могат да се настройват с подробности поотделно всички секции. Там е мястото, откъдето да започнете, тъй като обяснения има за почти всяка от опциите, намиращи се до този момент в .cfg файла.

Default.cfg за тестовете премина през конфигуратора и тестовете са при High за всичко освен водата, която е на Ultra. Не съм сигурен дали във вида по-долу има промени при това положение. Custom.cfg е използваният от мен конфигурациеноне файл. Това не са реалните им имена, и в двата случая трябва да ги кръстите "system.cfg" !!! След като ги преименувате ги копирайте в главната директория на играта и в директорията Bin32, като имайте предвид, че ползването на конфигуратора променя cfg файла в Bin32, а след първото пускане този в главната директория е променен, но това не е проблем. Задължително използвайте своето име в g_playerprofile = "xxxx" за да се активират и запаметят настройките за вашия профил.

Default.cfg
ca_ambient_light_intensity = "0.2"
ca_ambient_light_range = "10"
ca_EnableDecals = "1"
cl_installshieldversion = "44"
cl_lazy_weapon = "0.0100"
cl_projectile_light = "1"
cl_punkbuster = "0"
cl_saveubipassword = "1"
cl_weapon_fx = "2"
cl_weapon_light = "2"
d3d9_TextureFilter = "TRILINEAR"
e_active_shadow_maps_receving = "2"
e_beach = "1"
e_brushes_merging = "1"
e_cgf_load_lods = "0"
e_decals = "1"
e_decals_life_time_scale = "3.000000"
e_detail_texture_quality = "1"
e_EntitySuppressionLevel = "0"
e_flocks = "1"
e_light_maps_quality = "2"
e_max_entity_lights = "4"
e_obj_lod_ratio = "10.000000"
e_overlay_geometry = "1"
e_particles_lod = "1.000000"
e_particles_max_count = "8192"
e_shadow_maps = "1"
e_shadow_maps_from_static_objects = "1"
e_shadow_maps_view_dist_ratio = "20.000000"
e_shadow_spots = "0"
e_stencil_shadows = "1"
e_stencil_shadows_only_from_strongest_light = "0"
e_use_global_fog_in_fog_volumes = "0"
e_vegetation_min_size = "0.000000"
e_vegetation_sprites_distance_ratio = "1.000000"
es_CharZOffsetSpeed = "2.0"
es_EnableCloth = "1"
ExitOnQuit = "1"
fs_homepath = ""
g_gore = "2"
g_language = "english"
g_playerprofile = "default"
g_serverprofile = ""
g_timezone = "0"
game_GliderBackImpulse = "2.5f"
game_GliderDamping = "0.15f"
game_GliderGravity = "-0.1f"
game_GliderStartGravity = "-0.8f"
i_direct_input = "1"
i_mouse_accel = "0.0"
i_mouse_accel_max = "100.0"
i_mouse_mirror = "0"
i_mouse_smooth = "0.0"
log_FileVerbosity = "0"
log_Verbosity = "0"
mp_model = "objects/characters/pmodels/hero/hero_mp.cgf"
net_cheatprotection = "1"
p_color = "4"
p_deathtime = "30"
p_lightrange = "15"
p_model = "objects/characters/pmodels/hero/hero.cgf"
p_name = "Jack Carver"
r_Beams = "1"
r_Brightness = "0.542667"
r_checkSunVis = "2"
r_ColorBits = "32"
r_Contrast = "0.542667"
r_CoronaFade = "0.125000"
r_Coronas = "1"
r_CoronaSizeScale = "1.000000"
r_CryvisionType = "0"
r_DepthBits = "24"
r_DetailDistance = "16.000000"
r_DetailNumLayers = "2"
r_DetailTextures = "1"
r_DisableSfx = "0"
r_DisplayInfo = "0"
r_Driver = "Direct3D9"
r_EnhanceImage = "1"
r_EnhanceImageAmount = "1.000000"
r_EnvCMResolution = "2"
r_EnvCMupdateInterval = "0.050000"
r_EnvLCMupdateInterval = "0.050000"
r_EnvLightCMSize = "16"
r_EnvLighting = "0"
r_EnvTexResolution = "3"
r_EnvTexUpdateInterval = "0.001000"
r_Flares = "1"
r_FSAA = "1"
r_FSAA_samples = "2"
r_Fullscreen = "1"
r_Gamma = "1.240000"
r_Glare = "1"
r_GlareQuality = "2"
r_HeatHaze = "1"
r_Height = "768"
r_MotionBlur = "1"
r_ProcFlares = "1"
r_Quality_BumpMapping = "3"
r_Quality_Reflection = "1"
r_RenderMode = "1"
r_ScopeLens_fx = "1"
r_SelfShadow = "0"
r_ShadowBlur = "2"
r_StencilBits = "8"
r_TexBumpResolution = "0"
r_TexLMResolution = "0"
r_TexQuality = "0"
r_TexResolution = "0"
r_TexSkyResolution = "0"
r_Texture_Anisotropic_Level = "2"
r_TexturesStreamPoolSize = "0"
r_Vegetation_PerpixelLight = "1"
r_VolumetricFog = "1"
r_VSync = "0"
r_WaterReflections = "1"
r_WaterRefractions = "1"
r_WaterUpdateFactor = "0.001000"
r_Width = "1024"
s_CapsCheck = "0"
s_CompatibleMode = "0"
s_DopplerEnable = "1"
s_DopplerValue = "1.0"
s_DummySound = "0"
s_EnableSoundFX = "1"
s_InactiveSoundIterationTimeout = "1"
s_MaxActiveSoundSpots = "100"
s_MaxHWChannels = "28"
s_MaxSoundDist = "500"
s_MinHWChannels = "16"
s_MinRepeatSoundTimeout = "200"
s_MusicEnable = "1"
s_MusicMaxPatterns = "12"
s_MusicStreamedData = "1"
s_MusicVolume = "0.2538750469684601"
s_SampleRate = "44100"
s_SFXVolume = "1"
s_SoundEnable = "1"
s_SpeakerConfig = "2"
s_VisAreasPropagation = "10"
sv_mapcyclefile = "profiles/server/mapcycle.txt"
sv_maxrate = "30000"
sv_maxrate_lan = "100000"
sv_punkbuster = "0"
sys_firstlaunch = "0"
sys_script_debugger = "0"
sys_skiponlowspec = "0"
sys_spec = "3"
sys_SSInfo = "0"
sys_warnings = "0"
ui_BackGroundVideo = "1"
ui_EasyToolTip = "0"
ui_RepeatDelay = "200"
ui_RepeatSpeed = "40"
ui_ToolTipDelay = "1500"
ui_ToolTips = "1"
ui_TriggerUIEvents = "1"
ui_TriggerWidgetEvents = "1"

Custom.cfg
-- [System-Configuration]
-- Attention: This file is generated by the system, do not modify! Editing is not recommended!

GL_TextureFilter = "GL_LINEAR_MIPMAP_LINEAR"
ca_EnableDecals = "1"
ca_EnableVertexColors = "1"
ca_ambient_light_intensity = "0.250000"
ca_ambient_light_range = "20"
cl_installshieldversion = "44"
cl_lazy_weapon = "0.0100"
cl_projectile_light = "0"
cl_punkbuster = "0"
cl_saveubipassword = "1"
cl_weapon_fx = "1"
cl_weapon_light = "2"
d3d9_AllowSoftware = "1"
d3d9_MipProcedures = "1"
d3d9_PalettedTextures = "1"
d3d9_CompressedTextures = "1"
d3d9_Texture_Filter_Anisotropic = "1"
d3d9_TextureBits = "32"
d3d9_TextureFilter = "ANISOTROPIC"
d3d9_TripleBuffering = "1"
d3d9_NV30_PS20 = "1"
e_EntitySuppressionLevel = "0"
e_active_shadow_maps_receving = "2"
e_beach = "1"
e_brushes_merging = "1"
e_cgf_load_lods = "1"
e_decals = "1"
e_decals_life_time_scale = "3.0"
e_detail_texture_quality = "1"
e_flocks = "1"
e_hw_occlusion_culling_objects = "1"
e_hw_occlusion_culling_water = "1"
e_light_maps = "1"
e_light_maps_quality = "2"
e_max_entity_lights = "4"
e_obj_lod_ratio = "10"
e_obj_view_dist_ratio = "100.0"
e_objects_fade_on_distance = "1"
e_occlusion_volumes = "1"
e_overlay_geometry = "1"
e_particles_lod = "0.50000"
e_particles_max_count = "4096"
e_shadow_maps = "1"
e_shadow_maps_from_static_objects = "1"
e_shadow_maps_view_dist_ratio = "20"
e_shadow_maps_self_shadowing = "1"
e_shadow_spots = "0"
e_stencil_shadows = "1"
e_stencil_shadows_only_from_strongest_light = "0"
e_terrain_merge_far_sectors = "1"
e_terrain_occlusion_culling_precision = "0.10000"
e_terrain_single_pass_vol_fog = "0"
e_use_global_fog_in_fog_volumes = "0"
e_vegetation_min_size = "0"
e_vegetation_sprites_distance_ratio = "100"
e_vegetation_sprites_texres = "0"
e_vegetation_update_shadow_every_frame = "0"
e_water_ocean_sun_reflection = "1"
e_water_ocean_tesselation = "1"
es_CharZOffsetSpeed = "2.0"
es_EnableCloth = "1"
ExitOnQuit = "1"
fov = "90"
fs_homepath = ""
g_gore = "2"
g_language = "english"
g_playerprofile = "default"
g_serverprofile = ""
g_timezone = "0"
game_GliderBackImpulse = "2.5f"
game_GliderDamping = "0.15f"
game_GliderGravity = "-0.1f"
game_GliderStartGravity = "-0.8f"
i_direct_input = "1"
i_mouse_accel = "0.0"
i_mouse_accel_max = "100.0"
i_mouse_mirror = "0"
i_mouse_smooth = "0.0"
log_FileVerbosity = "0"
log_Verbosity = "0"
mp_model = "objects/characters/story_characters/mertz/mertz_mp.cgf"
net_cheatprotection = "0"
p_color = "9"
p_deathtime = "30.0000"
p_lightrange = "25.000000"
p_model = "objects/characters/pmodels/hero/hero.cgf"
p_name = "Niki Tsekov"
r_Beams = "1"
r_Brightness = "0.550000"
r_BumpSelfShadow = "1"
r_checkSunVis = "1"
r_ColorBits = "32"
r_Contrast = "0.602667"
r_CoronaFade = "0.250000"
r_Coronas = "1"
r_CoronaSizeScale = "1.750000"
r_CryvisionType = "0"
r_DepthBits = "24"
r_DetailDistance = "16"
r_DetailNumLayers = "2"
r_DetailTextures = "1"
r_DisableSfx = "0"
r_DisplayInfo = "0"
r_Driver = "Direct3D9"
r_EnhanceImage = "1"
r_EnhanceImageAmount = "1.000000"
r_EnvCMResolution = "2"
r_EnvCMupdateInterval = "0.025000"
r_EnvLCMupdateInterval = "0.025000"
r_EnvLightCMSize = "64"
r_EnvLighting = "1"
r_EnvTexResolution = "3"
r_EnvTexUpdateInterval = "0.001"
r_FSAA = "1"
r_FSAA_samples = "2"
r_Flares = "1"
r_Fullscreen = "1"
r_Gamma = "1.000000"
r_Glare = "1"
r_GlareQuality = "2"
r_HeatHaze = "1"
r_Height = "768"
r_MotionBlur = "0"
r_ProcFlares = "1"
r_Quality_BumpMapping = "3"
r_Quality_Reflection = "1"
r_RenderMode = "1"
r_ScopeLens_fx = "1"
r_ScreenRefract = "1"
r_SelfRefract = "1"
r_SelfShadow = "1"
r_ShaderTerrainDOT3 = "0"
r_ShadowBlur = "3"
r_StencilBits = "8"
r_SunStyleCoronas = "1"
r_SupportPalettedTextures = "1"
r_SyncVBuf = "0"
r_TexBumpResolution = "0"
r_TexHWDXTCompression = "1"
r_TexHWMipGeneration = "1"
r_TexLMResolution = "0"
r_TexQuality = "0"
r_TexResolution = "0"
r_TexSkyResolution = "0"
r_Texture_Anisotropic_Level = "8"
r_TexturesStreamPoolSize = "0"
r_UseHWShaders = "2"
r_UseMultitexture = "1"
r_VSync = "0"
r_VegetationSpritesAlphaBlend = "0"
r_Vegetation_PerpixelLight = "1"
r_VolumetricFog = "1"
r_WaterReflections = "1"
r_WaterRefractions = "0"
r_WaterUpdateFactor = "0.001000"
r_Width = "1024"
s_CapsCheck = "0"
s_CompatibleMode = "0"
s_DopplerEnable = "1"
s_DopplerValue = "1.0"
s_DummySound = "0"
s_EnableSoundFX = "1"
s_InactiveSoundIterationTimeout = "1"
s_MaxActiveSoundSpots = "100"
s_MaxHWChannels = "28"
s_MaxSoundDist = "500"
s_MinHWChannels = "16"
s_MinRepeatSoundTimeout = "200"
s_MusicEnable = "0"
s_MusicMaxPatterns = "0"
s_MusicStreamedData = "0"
s_MusicVolume = "0.25"
s_SampleRate = "44100"
s_SFXVolume = "1"
s_SoundEnable = "1"
s_SpeakerConfig = "2"
s_VisAreasPropagation = "10"
sv_mapcyclefile = "profiles/server/mapcycle.txt"
sv_maxrate = "30000"
sv_maxrate_lan = "100000"
sv_punkbuster = "0"
sys_firstlaunch = "0"
sys_script_debugger = "0"
sys_skiponlowspec = "0"
sys_spec = "3"
sys_SSInfo = "0"
sys_warnings = "0"
ui_BackGroundVideo = "1"
ui_EasyToolTip = "0"
ui_RepeatDelay = "200"
ui_RepeatSpeed = "40"
ui_ToolTipDelay = "1500"
ui_ToolTips = "1"
ui_TriggerUIEvents = "1"
ui_TriggerWidgetEvents = "1"

Това не са всички възможни конзолни команди (в тази игра командите в конзолата са същите както и тези, които се пишат в cfg файла). За да имате достъп до конзолата и всички възможности е необходимо да редактирате шорткъта към играта така:
S:\Games\FarCry\Bin32\FarCry.exe -DEVMODE – разликата е добавяне на Devmode, това пуска и чийтовете. Скрийншоти се взимат по подразбиране с F12 и се съхраняват с последователни номера в папката на играта.
Конзолата се извиква с "~" и се скрива със същият клавиш, а всички команди в нея ЗАДЪЛЖИТЕЛНО се пишат с "\" отпред !!! В cfg файла последното НЕ се прави.

Save-Load:
\save_game XX и \load_game XX играят ролята на Quick Save/Load.

Най-общо казано опциите, започващи с "e_" са за енджина и са валидни и в Direct3D9, с в OpenGL режими, тези с "r_" са също и за двата рендерера, някои от тях (r, e) могат да се променят и без нужда играта да се рестартира. "d3d9_" опциите са само за Direct3D рендера и не могат да се променят в движение. Останалите команди няма да изброявам, ще спомена само тези, които имат нужда от промяна и причината. Много от опциите имат малко или никакво значение за производителността и е едва ли не "все тая" дали ще ги ползвате. Повечето са изброени със стойността си не по подразбиране. Тези, за коиот споменавам само две възможности имат стойности само 0 и 1, т.е. изключено-включено. Командите с повече от две възможни стойности имат съответният коментар. За мое улеснение - първо променете в FarCryConfigurator.exе всички стойности на максималните възможни, като това се отнася и за Custom настройките, където има описания на всяка и необходимите стойности. Безсмислено е да ги повтарям.

GL_TextureFilter = "GL_LINEAR_MIPMAP_LINEAR"
Включва трилинейната филтрация при използване на OpenGL рендер.

ca_EnableDecals = "1"
Включва или изключва налагането на текстури на местата, къедто попадат куршумите ви. Това се отнася живите същества, за предмети се ползва e_decals = "1". С e_decals_life_time_scale = "3.0" се контролира времето, за което остават на мястото си тези допълнителни текстури - няма значение каква стойност ще напишете, "3" е по подразбиране, но ако искате да се задържат повече може да пробвате с 10 или защо не и по-висока стойност.

ca_ambient_light_intensity = "0.250000"
ca_ambient_light_range = "20"

Стойностите по подразбиране са различни, тези са от моето cfg. Интензитета и обхвата на обкръжаващата светлина, желателно е да не прекалявате с обхвата, тъй като се отразява на производителността в комбинация с някои други опции.

ca_EnableVertexColors = "1"
Това се счита за чийт. Друг е въпроса, че не се отразява никак на производителността, а и за растителността да се пренебрегва при ползване на r_Vegetation_PerpixelLight = "1".

cl_projectile_light = "0"
Можете с чиста съвест да иззключите тази опция (по подразбиране стойността е "1"), шансът да видите този ефект е..повече от минимален :).

cl_weapon_light = "2"
Вида на осветлението върху оръжието ви - "1" означава Diffuse, "2" пуска Specular+Diffuse, естествено втория вариант е по-добър, още повече почти не се отразява на производителността.

d3d9_TextureFilter = "ANISOTROPIC"
Стойности "TRILINEAR" и "ANISOTROPIC", но за да е активно ще трябва да добавите и d3d9_Texture_Filter_Anisotropic = "1".

d3d9_PalettedTextures = "1"
d3d9_CompressedTextures = "1"

И двете са скрити по подразбиране и имат стойност "1". Първото е зависимо от r_SupportPalettedTextures = "1".

d3d9_TripleBuffering = "1"
По подразбиране стойност "0". Макар да няма значение за производителността, за прдпочитане е да ползвате Tripple Buffering ако сте включили вертикалната синхронизация. Най-общо казано това е броят кадри, които да се пресмятат докато един кадър е на екрана - при "0" този брой ще е 1 кадър (Double), при Triple ше е два кадъра.

d3d9_NV30_PS20 = "1"
Това форсира използването на Pixel Shaders 2.0 при наличие на видеокарта с nv3x ядро. Резултата поне в patch 1.1 не е видим, тъй като и в двата случая се използват и по-стари версии. Във версия 1.2 обаче това вече има значение и би трябвало да е активирано по подразбиране.

e_beach = "1"
Струва си да спомена как да махнете грозните вълни по крайбрежието - тази опция го позволява. Водата във FarCry изглежда перфектно, но вълните не са направени добре (или поне аз не ги хаерсвам). Ако гледате от много далеч ефектът е приятен, но при приближаване не изглежда добре и оттук може да го изключите.


e_hw_occlusion_culling_objects = "1"
e_hw_occlusion_culling_water = "1"
e_occlusion_volumes = "1"

По подразбиране първата опция е включена, втората изключена. Не съм измервал поотделно резултата за всяка. Ползването на e_use_global_fog_in_fog_volumes = "0" не дава възможност на втората опция да работи. Третата не променя визуално нищо.

e_use_global_fog_in_fog_volumes = "0"
Пускането на тази опция значително променя вида на водата и то към лошо - става МНОГО прозрачна, както може да видите на следващите екрани:

e_obj_view_dist_ratio = "55.0"
e_objects_fade_on_distance = "1"

Първата стойност ви дава възможност да контролирате разстоянието, при което обектите (не се отнася за растенията!) стават видими. Втората пуска "избледняването" им - не изчезват изведнъж, а постепенно при отдалечаване, което изглежда със сигурност по-добре.

e_particles_lod = "0.50000"
e_particles_max_count = "4096"

Най-тежките места в играта са при стрелба и повечко участници, особено при експлозии. Разликата между използване на много или малко частици не е забележима, по подразбиране са 8192, но може да ги намалите дори до 2048 без последици откъм вид. Нивото им на детайлност получава стойност от 0.5 до 1.0, в случая е най-ниското, сами се досещате е излишно да е по-високо поради краткото време на живот на частиците, използвани при екплозии, дим и т.н.

e_terrain_occlusion_culling_precision = "0.10000"
e_terrain_single_pass_vol_fog = "0"

Първата команда дава възможност да контролирате прецизността при определяне на видимостта на терена, тъй като това се отнася предимно за отдалечени обекти може да си позволите дори по-ниска (а тя вече е ниска) стойност.
Втората команда е невъзможно да се ползва ако искате да запазите това, което виждате :) - явно картите на nVidia не се оправят толкова добре с обемната мъгла, че да могат и да я правят на един пас. Пускането със стойност "1" води до забележим артефакт в далечината.

e_vegetation_sprites_distance_ratio = "100"
Нарастването на тази стойност определя при какво разстояние от играча растенията да се превръщат от тримерни обекти в спрайтове, в тестовете е ползвана тази стойност, но лично за себе си ползвам "20" (по подразбиране е и по-малко).

e_vegetation_update_shadow_every_frame = "0"
Тази команда е въведена в 1.2 и все още не съм проверил как се отразява на производителността, но е твърде вероятно да няма забележим ефект, тъй като сенките не са особено затормозяващи във FarCry, но от друга страна не е и нужно бавнопроменящите се сенки от растенията да синхронизират обновяването си с броят кадри.

e_water_ocean_sun_reflection = "1"
e_water_ocean_tesselation = "1"

Двете ми любими опцийки, за голямо съжаление след пач 1.2 по някаква причина спряха да работят, а по метода на пробите и грешките вече открих предостатъчно неща, че да започна отначало :). Принципно за да се октивират е нужно да е изключена r_WaterRefractions = "1" (т.е. стойност "0") и да е включена r_WaterReflections = "1", която позволява фактически да се тразява абсолютно всичко над водата (дори ракетите и птиците).

fov = "90"
Field of View е опция, която има ЗНАЧИТЕЛНО влияние над производителността. При ползване на zoom с някои оръжия тази стойност намалява, а с намаляването, противно на очакванията се увеличава натоварването. Причината е, че намаляването й увеличава частта от екрана, която виждате, но тъй като това води до повишаване на детайлността в тази част, а тя се изчислява в допълнение към останалото около вас (или по-точно останалото е допълнение) сцената става по-тежка. Най-добре изглеждат стойностите от 80 до 90 градуса, тези между 90 и 100 са с по-добра производителност, но при над 95 вече има видимо "удължаване" на картината в ъглите, известно като fish eye ефект. Стойността по подразбиране е 90 градуса.

p_lightrange = "25.000000"
По подразбиране "15" - разстоянието, което се осветява от фенерчето ви.

r_CoronaFade = "0.250000"
r_Coronas = "1"
r_CoronaSizeScale = "1.750000"

"Короната" около светлинните източници се контролира от тези опции. Пределно ясни са като имена, тъй като се отразяват визуално може да си поиграете и да прецените за себе си кои стойности изглеждат добре, като естествено променяте първата и третата с неголеми стъпки (0,10-0,25).

r_DetailDistance = "16"
Стойности от 0 до 16. При ниска стойност детайлите в далечината ще са по-неясни, но пък това се отразява на производителността малко, а реално е трудно забележимо.

r_Driver = "Direct3D9"
Стойност Direct3d9 или OpenGL - няма нужда от обяснение, нужно е да го знаете тъй като често това не може да се променя в менюто на играта или конфигуратора. НЕ Е желателно да активирате OpenGL ако имате пуснат Stinger емулатор - т.е. емулатора на NV40, който някои програми позволяват да се пусне - RivaTuner, например. По-долу се вижда ефектът в поддръжката на различни разширения, показан от OpenGLExtensionViewer при пускане на емулатора, за съжаление когато е пуснат е невъзможно да играете играта с OpenGL рендера.

r_MotionBlur = "0"
При този брой кадри според мен ефектът е тотално излишен, пък и незабележим.

r_Glare = "1"
Работи в комбинация с r_RenderMode = "1" и би трябвало да ви дава естественото нагаждане на окото когато погледнете към осветен от слънцето плаж - първоначално не ивждате детайли и постепенно зениците ви се свиват и започвате да виждате по-ясно. При r_RenderMode = "0" се губи, макар че и при "1" не е много ясно забележим или поне на мен не ми прави впечатление.

r_RenderMode = "1"
Стойностите са различните режими от менюто в играта, обикновено ползвам 0 или 1 (default, improved). Ваш си избор ;).

r_ScopeLens_fx = "1"
Включва или изключва ефекта върху лещите на оптичния мерник на оръжието. Този ефект е силно забележим, но ако не ви прави впечатление може да го изключите, защото коства със сигурност известна доза производителност.

r_ScreenRefract = "1"
r_SelfRefract = "1"
r_SelfShadow = "1"

С тези опции, макар да си поиграх доста и да търсих информация не се променят нито картината, нито производителността, въпреки че за последното не бих се заклел с ръка на сърцето :). Не е сигурно дали не се отразяват на e_water_ocean_sun_reflection = "1" и e_water_ocean_tesselation = "1", но поне за момента не успявам да пусна отражението на слънцето след като инсталирах 1.2, а нямам представа за предишните им стойности. Ще обновя информацията за тях когато намеря инфо какво променят.

r_ShaderTerrainDOT3 = "0"
r_ShaderTerrainSpecular = "0"

На екраните по-долу се вижда какво точно променя тази команда. Държа да отбележа, че това е свързано със значителен спад в броя кадри, и все пак ако гледате промените наблизо ефектът е поразително добър, обаче се отразява много зле върху осветените от слънцето обекти в далечината и най-вече върху скалите, и няма никакъв ефект върху подове/стени и т.н. в затворените пространства.


no DOT3 BM


DOT3


DOT3+Specular


no DOT3 BM


DOT3


DOT3+Specular

r_SunStencil = "0"
НЕ го включвайте. Макар на теория това да би трябвало да повиши производителността, тъй като картата поддържа хардуерно повече от един светлинен източник, а слънцето е главният такъв във сцените на открито, пускането води до артефакти и премигване на цели обекти, най-често дървета, което е изключително неприятно. Проблемите вероятно ще се разрешат при ползване на r_checkSunVis = "2" или "3", но и двата метода са трудоемки (описание има в конфигуратора) в сравнение с простото прочитане на z-буфера. Ако това не реши проблема, ще трябва да стигна до спиране на някои от опциите за z-culling, но това би намалило производителността, съответно ще стопи предимството от ползване на r_SunStencil. Така или иначе - стойност 0 остава най-добрият вариант.

r_FSAA = "1"
r_FSAA_samples = "2"

Опциите за пускане на Antialiasing - стойности 0, 2 и 4 - съответно noAA, low quality, medium quality. Във версия 1.2 е въведена и r_FSAAQuality (не съм сигурен за изписването й), но засега не съм опитвал да я ползвам.

r_Texture_Anisotropic_Level = "2"
Нивото на анизотропна филтрация. Стойности 2, 4, 8.

r_VSync = "0"
С тази команда може да контролирате включването и изключването на вертикалната синхронизация.

Реално играта подлежи на още оптимизации, стига да осъзнавате, че промяната на разделителната способност на някои текстури никак не променя визуално играта, но все пак може да получите поредният шут от ATi феновете. FarCry определено върви по-добре на R3xx видеокарти, но не този спор е целта на статията. От тестовете ясно се вижда, че дори след значителна промяна на качеството в посока добро резултатите остават ако не същите, то близки и играта остава в играемият диапазон FPS. Приятна игра - било то срещу гадовете, било с cfg файловете ;).

Counter
OldNavy