Trainz - Россия

[Новости][Статьи]


Как повысить быстродействие Trainz
и некоторые другие полезные настройки программы.


Ребята дали ссылку на сообщение в форуме Auran о том, как можно повысить быстродействие программы. Я сначала хотел просто перевести это сообщение, но когда стал разбираться, то понял, что автор описал далеко не всё. Поэтому я решил написать собственную статью на эту тему.

Итак, начнём с общих настроек компьютера. Я приведу описание собственной конфигурации компьютера:

Процессор Athlon 1900+ (256 kB кэш, шина 266 МГц), материнская плата фирмы EPOX на VIA KT400, память 512 Mb PC2700 (333 МГц), диск Seagate на 60 Gb, 7200 об. мин, стандарта UDMA 100, видеокарта NVidia Geforce Ti4200 с 64 Mb памяти, звуковая плата Sound Blaster Live 5.1

Сразу скажу о том, что Trainz относится к классу программ, которые я называю "пожиратели ресурсов". То есть, ему сколько ни дай, всё мало. Поэтому спрашивать "какой лучше всего компьютер подойдёт для Trainz?" несколько бессмысленно J . Настолько мощный, насколько у вас хватает денег. При этом даже самый навороченный компьютер будет тормозить. Например, памяти в 512 Mb на самом деле не хватает, поскольку у меня на машине в пике частенько система показывает использование 700 Mb памяти (до включения некоторых описанных ниже настроек), так что я уже подумываю об установке ещё 512 Mb.

Тем не менее, можно дать общие рекомендации по подбору конфигурации машины.

Для более-менее комфортной работы необходимо:

Оперативной памяти желательно 512 Mb (особенно если стоит Windows XP), минимум 256 Mb. На 128 Mb игра, конечно, запустится, но при загрузке насыщенных разными объектами карт диск будет молотить нещадно.

По частоте памяти для Atlhon можно остановиться на PC2700 (333 МГц), если сильно ограничены в деньгах. В остальных же случаях имеет смысл сразу брать PC3200 (400 МГц). Разница в цене незначительная. Если же память наращивается, то настоятельно рекомендую брать точно такую же, как у вас уже стоит, вплоть до того, что попробовать договориться на обмен вашего старого модуля на два новых, но одинаковых, иначе возможны проблемы. Также очень рекомендую в данном случае не жадничать и не брать самую дешёвую память в прайсе. Мой многолетний опыт показывает, что большая часть аппаратных проблем связана как раз с дешёвой плохо работающей памятью.

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

Например, из процессоров Intel на сегодня наиболее оптимальным будет использование Pentium IV 2400 с частотой шины 800 МГц и платой с двухканальной памятью с чипсетом Intel 865 или 875 (или что там у других производителей с двухканальной памятью). При этом, естественно, нужно ставить два одинаковых модуля памяти. Более быстрый процессор будет стоить ощутимо дороже, но особого выигрыша в производительности не даст. Эти деньги лучше потратить на другое.

Если говорить о процессорах AMD, то последние модели Athlon64 пока остаются вне конкуренции, но они ещё слишком дороги. Из доступных же процессоров самый простой Athlon 2400+ c кэшем 512 Kb и частотой шины 333 МГц. Тут нужно быть внимательным, поскольку есть модели предыдущего поколения с более высокой частотой, но у них 256 Kb и шина 266 МГц. Я для себя присматриваю в ближайшее время Athlon 2500+, который у нас сейчас стоит в районе 3000 руб. Двухканальный чипсет под Athlon я пока знаю только один - от широко известной Nvidia. Он, конечно, даёт выигрыш в производительности, но народ на него жалуется, поскольку приходится повозиться, чтобы всё нормально настроить. С материнскими платами частенько приходят кривые драйвера под чипсет, а без них толку от его навороченности нет. То есть, настоятельно рекомендуется использование свежих драйверов от Nvidia.

Сразу хочу подчеркнуть, что для любых материнских плат обязательно необходимо поставить фирменные драйвера, которые обеспечивают полноценную работу чипсетов. При этом необходимо драйвера к чипсету устанавливать сразу после установки операционной системы, а уже потом устанавливать всё остальное, включая драйвера видеокарты!!!

Жесткий диск на сегодня может быть практически любой, который имеет скорость вращения дисков 7200 об. мин. Практически все такие диски поддерживают UDMA66, чего вполне достаточно для работы. Диски на 5400 об. мин. не советую, поскольку у них ниже скорость передачи данных и время поиска. Ну а те, кому некуда девать деньги, могут выпендриться и поставить себе на 10000 об. мин, или даже SCSI на 15000 J . Кстати, в этом случае более предпочтительным может оказаться RAID массив из двух дисков, который построен на аппаратном контроллере. Сегодня многие материнские платы такой на борту имеют. В этом случае выбирайте не зеркалку (режим 0), а параллельную работу дисков (режим 1), тогда получите удвоение скорости передачи данных без потери объёма.

Да, для полноценной работы дисковой подсистемы необходимо, чтобы нормально работал режим UDMA, а для этого, как уже писалось выше, необходимо правильно установить драйвера к чипсету.

Несколько слов по поводу свободного места. Моя папка с TRS2004 весит 4959 Мб. Папка со старым Trainz UTC - 6842 Мб (правда, большая часть информации дублируется, поскольку дополнения приходится ставить и туда, и сюда). И это ещё не предел. При этом тем, у кого мало оперативки необходимо позаботиться о том, чтобы на диске всегда оставалось как минимум 500 Мб под расширение файла подкачки системы. Ну и сам Trainz имеет собственный кэш, который может достигать размера 512 Мб (об этом подробнее чуть ниже).

Несколько слов по поводу звуковой карты. Сегодня большая часть материнских плат имеют встроенный звук на борту. Но в подавляющем большинстве случаев, если это не отдельный звуковой чип, я рекомендую найти и поставить самую простую PCI звуковую плату (если нет денег на нормальный Sound Blaster). Дело в том, что большая часть звуковых контроллеров стандарта AC97, которые встраиваются в чипсет, на самом деле имеют только самые простые ЦАП и АЦП, а все эффекты и синтез звука выполняются программно с помощью ЦП. То есть, большинство игр со сложными звуками будут тормозить, иногда весьма ощутимо. В тоже время большая часть звуковых плат, которые выпускались в последние три года, поддерживают большую часть необходимых функций на аппаратном уровне в своих чипах, что разгружает центральный процессор.

Ну и в конце поговорим о ключевом элементе любой игровой системе - видеоплате с трёхмерным ускорителем. Если говорить о Trainz, то тут либо плата с видеопроцессором от Nvidia, либо от ATI. Другие пока отдыхают. :)

Минимальная карта, на которой что-то будет видно - Nvidia Riva TNT 2 c 32 Mb памяти. Более старые можно даже и не пробовать запускать. Сама Auran затачивала свой трёхмерный движок JET по карты Nvidia, о чём говорит и лейбл на их сайте. Но и на картах ATI оно работает очень даже хорошо. То есть, тут выбор за вами - что больше по душе. Какой-то принципиальной разницы нет, хотя на сегодня, по моему мнению, ATI несколько лучше, да и картинка у них на последних чипах обычно более качественная.

В общем, необходимо плата, которая поддерживает аппаратно все функции Direct X 8.1. За Direct X 9.0 можно не гоняться, поскольку движок от Auran в текущей версии их не поддерживает, а когда начнёт, многое уже поменяется. Правда, версия TRS2004 и движок Auran Jet требуют установки на машине именно Direct X 9.0, но это скорее для устранения глюков предыдущей версии Direct X 8.1 (и добавления новых от текущей J ), поскольку последняя редакция библиотеки Open GL пока не поддерживает всех тех наворотов, которые Microsoft добавила именно в Direct X 9.0, а поскольку движок у Auran универсальный и по умолчанию вообще устанавливается Open GL, то я очень сомневаюсь, что программисты Auran действительно задействовали какие-то из новых возможностей Direct X 9.0.

При выборе видеокарты для Trainz наиболее критичным параметром является объем памяти на борту карты. Чем больше, тем лучше. При этом в некоторых случаях предпочтительнее выбрать плату предыдущего поколения с большим объемом памяти, например FX5600 c 256 Mb вместо FX5700 с 128 Mb. Дело в том, что движок Trainz практически не использует сложные навороты, типа шейдеров версии 2.0 (не используются даже рельефные текстуры и карты отражений), которыми любят хвастаться производители видеокарт, но при этом практически все выводимые на экран треугольники - с наложенными текстурами, а то и с несколькими. То есть, чем больше у видеокарты будет памяти для хранения этих текстур, тем быстрее будет строиться сцена.

Также критична частота работы чипа и памяти. То есть, чип предыдущего поколения с большей частотой также предпочтительнее. Как показывает мой опыт, последние поколения чипов и от Nvidia, и от ATI практически не имеют выигрыша по базовым функциям, которые используются в Trainz, и основной упор в них сделан на обеспечении аппаратного ускорения разных эффектов, всевозможного сглаживания и т.п.

Но, ещё раз повторюсь, я высказываю собственное мнение, которое весьма субъективно. А учитывая большое количество моделей разных чипов для видеокарт и их постоянное обновление, я рекомендую за более подробной информацией обращаться на специализированные сайты, которых сегодня в сети огромное количество, после чего уже делать выбор самостоятельно.

Так, на этом тему выбора железа заканчиваем и переходим к настройкам компьютера.

Сначала настройки BIOS. Если это слово вам незнакомо, то, наверное, это раздел вам лучше пропустить. Лучше не совсем оптимально настроенный компьютер, но работающий, чем не работающий после попыток его настроить не понимая что к чему. Если же хотите разобраться, то ищите информацию в сети.

Что нужно проверить в настройках BIOS.

Частота шины процессора должна соответствовать той, на которую он рассчитан. Частота шины памяти тоже, вообще-то, должна соответствовать, но для некоторых материнских плат бывает лучше установить для памяти более низкую частоту шины, которая будет совпадать с частотой шины процессора. Что касается разгона, то я не любитель экстремальных режимов, поскольку использую компьютер ещё и для работы. Да и при игре зависание посередине часового сценария приятных эмоций не вызывает. По крайней мере, я у себя обычно всегда ставлю штатные частоты, поскольку несколько процентов производительности не стоят потраченных нервов в случае сбоев (ИМХО).

Необходимо проверить, чтобы был включен режим кэширования для System BIOS и Video BIOS, то есть напротив них должно быть enabled.

Необходимо проверить, чтобы окно памяти для AGP платы соответствовало размеру памяти на видеоплате (параметр AGP aperture size или что-то похожее, зависит от версии BIOS).

Для всех дисков желательно установить автоматический выбор режима передачи данных (auto), поскольку во многих случаях при ручном выборе режима диск начинает работать некорректно и скорость падает. Ручные режимы рекомендуется использовать только со старыми типами дисков, которые не поддерживают режима автоопределения.

Да, на сайте в англоязычной статье говорилось также о том, что необходимо проверить тип кабеля, которым подключен жесткий диск. Для UDMA дисков он должен быть 80-жильный, а не обычный 40-жильный, который раньше использовался для IDE дисков. Но, если честно, я таких случаев в практике практически не встречал, поскольку обычно материнские платы с UDMA контроллерами сразу комплектуются правильным кабелем. А вот на что следует обратить внимание, так это на то, чтобы жесткий диск и CD-ROM, когда у вас больше нет других IDE устройств, были подключены к разным портам IDE на материнской плате каждый своим кабелем. Для Trainz это, возможно, не так критично, но в остальном позволяет ускорить обмен данными.

В основном всё, подробности по настройке BIOS, кому интересно, ищите в сети.

Теперь по настройке системного программного обеспечения.

У меня всё работает под Windows 2000 Workstation Rus. Естественно, со всеми установленными сервиспаками (обновлениями системы). Работать под Win9x и Me можно, но стабильность этой системы оставляет желать лучшего. Что же касается Windows XP, то она во многом аналогична Windows 2000, но ресурсов потребляет на себя гораздо больше.

На что хочется обратить внимание. Когда вы запускаете Trainz, то рекомендуется закрыть все программы, в том числе работающие в фоновом режиме. Такие как сканер антивирусов или FireWall, если таковые используются. Ну и всякие там "быстрый поиск файлов", "ускорение загрузки MS Office" и т.д. (что там у вас ещё прописано в автозагрузке?). Правда, в отличие от автора английской стати, я хочу сделать одно замечание по поводу FireWall и антивирусов. Если вы не заходите в Internet из-под Trainz, то тогда их можно смело выгружать. А вот если заходите, или если у вас выделенная линия, то лучше оставить.

Теперь переходим к настройкам видеоподсистемы.

Во-первых, с одной стороны желательно использовать самые последние драйвера для вашей видеоплаты, причём желательно с сайта производителя чипа (Nvidia или ATI), при этом не рекомендуется использовать разные бета-версии. Лучше всего те, которые сертифицированы Microsoft (так называемые WHQL). Но это с теоретической точки зрения. А с практической применительно к Trainz, я могу сказать, что не все новые драйвера от Nvidia вели себя с Trainz корректно. Некоторые версии просто давали ужасную картинку, что, видимо, связано с не совсем корректной программной оптимизацией драйверов под некоторые тестовые программы и основные игры (об этом много писалось в журналах и сети). А поскольку Trainz не входит в число основных игр, то мне в итоге пришлось на какое-то время вернуть старые драйвера. И вообще, мой многолетний опыт говорит также о том, что если вас всё в системе устраивает, то не стоит её лишний раз трогать, пусть себе работает.

Во-вторых, трехмерный движок Auran Jet 1.0, который использует Trainz до версии 1.5 включительно, в том числе и локализованная Аккелой версия UTC (Trainz 1.3), изначально писался под библиотеку Open GL. Поддержка Microsoft Direct X появилась позже. Видимо в связи с этим первый Trainz у меня лучше работает именно в режиме Open GL. А вот с Auran Jet 2.0 дела, возможно обстоят по-другому, поскольку TRS2004 лучше работает как раз в режиме Direct X.

Проявляется это у меня следующим образом.

В Trainz 1.0, когда включен режим Direct X, картинка строится с видимыми искажениями, текст читается плохо, на границах треугольников заметных цветные всполохи, в результате чего картинка выглядит как бы гранёной. А вот в режиме Open GL подобных эффектов не наблюдается, и изображение достаточно ровное, и текст достаточно чётко читается.

В Trains Railroad Simulator 2004 (TRS2004), качество картинки и текста в обоих режимах примерно одинаковое, но в режиме Open GL, когда смотришь вдоль поверхности земли, на линиях сетки, которая образует рельеф, наблюдаются радужные переливы, что весьма раздражает. Но последнее, возможно, связано с особенностью реализации модулей Open GL фирмой Nvidia в своём последнем драйвере. На приведённом ниже скриншоте хорошо видны дефекты изображения TRS2004 в режиме OpenGL, которые у меня наблюдаются.

Да, совсем забыл, выбор режима, в котором будет работать 3D движок, осуществляется в окне Configure Trainz на закладке Display Settings, там же, где устанавливается разрешение и количество цветов дисплея во время игры. Вызывается это окно из стартового маленького окна, которое первым появляется при запуске Trainz.exe. Там нужно нажать на вторую кнопку "Configure Trainz".

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

То, что находится на первой закладке "Planet Auran" относится к подключению через интернет к Auran DownloadStation. Эти настройки будут использоваться, если при загрузке карты будет не хватать каких-то объектов и вы выберете закачку недостающих объектов. Возможно, это очень удобно за рубежом с быстрыми выделенными каналами, но у нас, при подключении через Dial-Up (модем), я предпочитаю этой возможностью не пользоваться.

Про вторую закладку я уже в основном рассказал. Там выбор базового режима 3D между Direct X и Open GL, а также выбор разрешения экрана и количество бит для Z-буфера, с помощью которого 3D объекты преобразуются к 2D изображению. Возможные варианты 16 или 32. У меня стоит 32, но, как справедливо замечает Auran в своём Technical Manual (лежит в папке D:\Trainz2004\Docs\manuals_cd\manuals\Technical_Manual.pdf), устанавливать этот режим можно только тогда, когда видеоплата поддерживает 32 битный режим для Z-буфера. Выяснить это можно на сайте производителя графического процессора вашёй платы. Большинство последних чипов этот режим поддерживают.

Что же касается разрешения экрана, то у меня рабочий и игровой 1024х768. Режим 1600х1200 устанавливается исключительно для изготовления скриншотов.

Третья страничка "Tuning Settings" настраивает внутренние параметры формирования картинки для 3D движка Auran Jet. Про них чуть позже. Кстати, эти же параметры можно настраивать и в самой игре.

Четвёртая страничка "Advanced Options". Тут есть кое-что интересное, что касается быстродействия игры.

Во-первых, параметр Texture Quality, который может быть High, Medium или Low, задаёт качество представления текстур. High даёт исходное качество, в смысле разрешение, с которым текстура создана, а остальные режимы его понижают, уменьшая количество точек. Если машина слабая или маловато памяти на видеоплате, то можно несколько повысить быстродействие, правда, потеряв при этом в качестве картинки. Хотя заметно это будет только при близком приближении к объекту.

Следующий параметр, Resource Cache Size, задаёт объём памяти в Мб, которая будет задействована для хранения данных объектов, в том числе тех же текстур. Если оперативки всего 512 Мб или больше, то смело ставьте 256, в остальных случаях рекомендуется устанавливать объем равный половине размера ОЗУ. То есть, для 256 Mб ставим 128, для 128 Мб - 64 и т.д. Правда, если памяти меньше 64, то ставим 0.

Все остальные параметры на этой страничке связаны с подстройкой под глюки тех или иных видеокарт, а поскольку у меня на Ti4200 они не наблюдаются, то я про них ничего толком сказать не могу. Если кому интересно - разбирайтесь сами.

Ну вот, теперь переходим к самому интересному - ключам настройки программы, которые прописываются в текстовом файле trainzoptions.txt. Кстати, замечательная программа под названием TrainzObjectz позволяет настраивать эти параметры, не прописывая их руками в текстовом редакторе, так что кто ещё не обзавёлся - весьма рекомендую. Иначе придётся команды прописывать руками в текстовом редакторе.

Сразу хочу предупредить, что перед тем, как экспериментировать с настройками в trainzoptions.txt, настоятельно рекомендую сделать его копию! Некоторые комбинации настроек приводят к тому, что программа перестаёт запускаться. Кстати, по этой же причине я рекомендую добавлять опции в файл постепенно, тогда вы хотя бы будете знать, какая из добавленных вами настроек привела к тому, что программа перестала работать. Если же вы одним махом пропишете все новые настройки, то сказать что же повлияло, будет невозможно.

Записываются все ключи в файле trainzoptions.txt начиная с символа "-", за которым идёт ключевое слово. Если у этого ключа есть числовые параметры, то после ключевого слова пишётся символ =, а за ним число без пробелов (с пробелами не пробовал).

Я сначала расскажу о тех ключах, которые влияют на быстродействие, а уже потом о некоторых полезных, а полное описание ключей см. ниже, где приведен русский перевод от фирмы "Аккела", который был с их версией UTC.

-ResourceMemory определяет количество памяти на диске в мегабайтах, которое будет отводиться под внутренний кэш Trainz. По умолчанию стоит 0, максимальное значение 512, возможные значения 0, 64, 128, 256, 512. Если у вас достаточно места на диске, то можете смело ставить 512 Мб. Причём я так понял, что это также относится и к кэшу, который Trainz использует при работе с интернетом. По крайней мере у меня в его папке caсhe валяются и .html, и .jpg

-loadingtime определяет время смены сцены в буфере графического процессора в миллисекундах. То есть, по прошествии этого времени старая сцена сбрасывается и начинается передача новой. Правда, при условии, что старая уже была выведена на экран. Минимальное значение 1, максимальное, как я понял, не ограничено, но больше 100 особого смысла уже не имеет. По умолчанию стоит 20 мс, что даёт в идеале частоту обновления изображения 50 кадров в секунду. Поскольку Trainz это не 3D стрелялка, то тут гнаться за особой скоростью обновления изображения особого смысла не имеет. Поэтому у меня сейчас это значение стоит равное 50, что даёт в нормальных условиях частоту обновления 20 кадров в секунду. Плюсы этого в том, что больше процессорного времени остаётся на остальные процессы, в том числе обработку скриптов и подгрузку ресурсов. По крайней мере, при установке значения -loadingtime=1, торможение системы очень ощутимо и объекты грузятся очень долго, поскольку большую часть времени центральный процессор занят передачей новой сцены в память графического процессора. А вот при установке -loadingtime=50 прорисовка изображения во время движения стала более плавной и ощутимо сократилось время подгрузки новых объектов с диска.

Да, не путайте этот параметр с частотой обновления изображения на мониторе компьютера. Это разные вещи. Более-менее нормальная частота обновления экрана монитора 85 Гц (кадров в секунду) и устанавливается она либо в настройках драйвера видеоплаты (рекомендуется) либо с помощью параметра -frequency=ХХ. Но вы должны быть уверены, что устанавливаемая вами частота при этом разрешении поддерживается вашей видеоплатой и, что более важно, вашим монитором. При этом разница в этих частотах объясняется тем, что пока строится очередная сцена, видеоплата выдаёт на экран монитора изображение предыдущей сцены.

-keepallresources может иметь значения 0 (по умолчанию) или 1. Если поставить =1, то большая часть ресурсов после их использования будет оставаться в памяти. Если памяти много, то включение этой опции существенно повышает скорость построения картинки. Но сразу предупреждаю, памяти при этом Trainz кушает много. У меня пиковое выделение памяти при включении этой опции по 1.2 Гб в порядке вещей. Если оперативки стоит мало, то при включении этого параметра убедитесь, что у вас достаточно свободного места на диске для файла подкачки, а также в том, что у него установлен достаточный размер (Win2k и Windows XP), либо включено автоматическое управление файлом подкачки (Win9x и Me). 1.5 Гб будет в самый раз. Кстати, во многих случаях использование виртуальной памяти может оказаться предпочтительнее, чем внутренние механизмы кеширования и подгрузки объектов самого Trainz, поскольку эти операции в системе очень хорошо оптимизированы. То есть, даже на машинах с малым количеством памяти включение этой опции может оказать положительный эффект. В общем, пробуйте.

-keepparticles аналогично предыдущему параметру (по умолчанию тоже 0), но относится к видимым на экране объектам, в то время как keepallresources влияет на все объекты, в том числе невидимые (скрипты, описания локомотивов и т.п.). Я пока не понял, включает ли keepallresources в себя действия keepparticles или нет. У меня в TRS2004 оба параметра стоят равные 1. А вот в UTC получился какой-то глюк при работе сценариев, в результате которого всё стало как-то странно тормозить и дёргаться. В итоге я их оба выключил, а по отдельности пока не проверял.

-heartbeat устанавливает время физического тактового импульса в секундах. По умолчанию стоит 0.03 сек, минимальное значение 0.01 сек, максимальное не ограничено, но ставить больше 0.05 не рекомендуется, поскольку приведёт к искажениям в поведении поездов. Увеличение этого значения также разгружает центральный процессор, поскольку он реже просчитывает поведение всех объектов на карте, что может быть существенно для карт с большим количеством поездов и вагонов. У меня пока стоит значение по умолчанию 0.03.

-arealimit определяет количество зон рельефа, которые могут кэшироваться. Каждый базовый квадрат может иметь до 27 таких зон. По умолчанию стоит 100, минимум 25, максимум 700. Значения 400 и более рекомендуется устанавливать только на крутых компьютерах (в смысле, где много памяти). У меня стоит 400.

-sectionlimit определяет количество базовых квадратов (baseboards) которые могут загружаться с диска. По умолчанию стоит 10, максимум 20. Чем больше значение, тем быстрее строится картинка и больше памяти расходуется. При установке больших значений необходимо, чтобы и значение arealimit было выставлено соответствующим образом. У меня стоит 20.

Вроде как это все основные опции, которые влияют на быстродействие. Теперь несколько полезных.

-intro позволяет отключить вступительный видеоролик, если стоит disable или выводить его на весь экран, если fullscreen. Насмотревшись на молящихся киберов, я себе поставил disable :).

-znear задаётся в метрах и определяет минимальное расстояние, после которого объекты уже не отображаются в сцене. По умолчанию стоит 0.10, что соответствует 10 см. Минимальное значение 0.05 метра, максимальное 2.0 метра. Я себе оставил 0.10 метра.

-zfar тоже задаётся в метрах и определяет максимальное расстояние, до которого объекты попадают в сцену. Значение по умолчанию 1500, минимальное 1000. Правда, тут фокус в том, что версия UTC не обрабатывает объекты, которые дальше 1300 метров, то есть устанавливать этот параметр больше 1300 для UTC особого смысла не имеет, поскольку это всё равно влияет на точность Z-буфера, а вывода данных в область от 1300 до 1500 метров не будет. На счёт TRS2004 сказать точно ничего не могу. Упоминания об ограничениях в 1300 метров в фирменной документации уже нет, да и ребята, которые делали Modula City, тоже говорят о том, что видимость теперь до 1500 метров.

Теперь об этих двух параметрах вместе. На общее быстродействие они практически не влияют, но зато влияют на точность построения изображения, особенно если используется 16 разрядный режим Z-буфера. Дело в том, что современные 3D ускорители для повышения скорость построения сцены используют 16 или 32 разрядное целочисленное представление расстояния от плоскости экрана до отображаемой точки, в то время как внутренние расстояния обычно задаются вещественными числами. То есть, происходит преобразование одной системы в другую. При этом чем больше расстояние, которое мы делим на 32768 (16 бит) или около 4 млн. (32 бит), тем больше длина одного элемента и ниже точность построения сцены. И если для 32 разрядного режима это значение получается достаточно маленьким, то для 16 разрядного мы имеем при 1500 метрах около 4.5 см, что уже будет заметно.

Да, практически все опции совпадают и у UTC (версии Trainz 1.3 и 1.5), и у TRS2004. Хотя, ещё раз повторюсь, многое зависит от компьютера и особенностей используемого вами ПО. То есть, нужно многие вещи проверять экспериментально, поскольку то, что у меня дало положительный эффект, у вас может дать обратный результат и наоборот.

О, чуть не забыл рассказать о том, как проверить быстродействие.

Выберите себе для тестов какой-нибудь маршрут, который вы будете загружать и проходить в Driver'e или какой-нибудь сценарий. После этого запускаете Trainz, загружаете и проходите тестовый маршрут или сценарий, после чего сразу же выходите. Если программа завершилась без сбоев, то в каталоге, куда устанавливался Trainz, будет файл JetLog.txt, в котором в последней строчке будет что-то типа:

- 0000048C Prog 84:53.2 Trainz : Averaged 25.449656 fps over 4912.325684sec

При этом указывается время от момента запуска программы в минутах (84) и секундах (53.2), а также частота обновления изображения (25.449656 кадров в секунду) и время, в течение которого этот параметр считался. Кстати, в этом же файле движок Jet сообщает о разных ошибках, в том числе по поводу загрузки объектов. Нас интересует, естественно, частота обновления кадров. При этом значение времени при тестировании должно быть примерно одно и тоже, иначе сложно сравнивать, что же получилось. Для этого же используется один и тот же тестовый маршрут. Кстати, лучше выбирать маршрут достаточно насыщенный объектами и на большой карте, а то разницу можно и не заметить. :)

Это пока всё. Появится что-то новое - напишу.

Да, о настройках качества картинки напишу в отдельной статье. Там нужно скриншоты делать, а на это у меня пока не хватает времени.

С уважением,
Дмитрий Мыльников

3 – 9 февраля 2004 года


Опции командной строки из документации к русской версии UTC, выпущенной фирмой “Аккела”

Используются в файле trainzoptions.txt для оптимизации характеристик игры в соответствии с конфигурацией компьютера.

Не забывайте, что вы используете эти параметры командной строки на свой страх и риск. Если у вас возникнут какие-либо проблемы, включая аварийное завершение программы либо искажения видео, верните файл trainzoptions.txt в исходное состояние (см. ниже), прежде чем обращаться в службу технической поддержки Auran. Auran не предоставляет техническую поддержку по вопросам, связанным с использованием данных опций.

-DepthBits = XXX

Определяет число бит, используемых z-буфером (буфер насыщенности цвета). Как правило, возможные значения – 16, 24 или 32. Драйверы некоторых видео-карт ошибочно интерпретируют '32' как '16', так что для таких карт лучше всего подойдет значение '24'. При использовании буфера теней значение насыщенности необходимо устанавливать с учетом значения StencilBits; например, 24 бита насыщенности + 8 бит теней = 32. Вполне вероятно, что значение данной опции будет заменено настройками драйвера видео-карты.

-StencilBits = XXX

Определяет число бит, используемых буфером теней. Как правило 0 или 8. Буфер теней необходим для передачи теней. Некоторые карты не поддерживают буфер теней в принципе либо в определенном разрешении / режиме. Когда карта не поддерживает буфер теней, драйвер может попытаться использовать программный буфер теней – очень медленный. Для использования буфера теней, как правило, необходимо установить 24 или 32 бита DepthBits.

-disablestencil

Заменяет значение StencilBits на ноль.

-ColorBits = XXX

Определяет число бит, используемых буфером цвета. Как правило, 16, 24 или 32. Чем больше значение, тем точнее будет цветопередача и тем меньше размытость. Некоторые карты требуют ColorBits = (DepthBits + StencilBits)

-Jet = XXX

Указывает путь к директории Jet. В окончательной версии игры это путь из директории Trainz в директорию bin. Для внутренних компоновок он обычно указывает на директорию "Jet", не "Jet/Bin". Данный параметр обязателен, если он установлен неправильно, во время загрузки произойдет сбой.

-ResourceMemory = XXX

Определяет объем памяти (в мегабайтах), зарезервированной для обмена через кэш. Это позволит избежать слишком частого обращения к диску и 'торможения' игры в результате слишком медленного обращения к диску, а также уменьшит время обмена через кэш. По умолчанию 0.

-vsync

Активизирует 'вертикальную синхронизацию'. Значение данной опции могут автоматически заменить настройки драйвера видеокарты. Результатом активизации данной опции является более ровное обновление (отсутствие видимых разрывов), но меньшая частота смены кадров. Эквивалент "-vsync = 1".

-vsync = XXX

См. "-vsync". Улучшенный контроль над синхронизацией, попытка синхронизации каждого второго кадра ("-vsync=2") либо каждого третьего кадра ("-vsync=3") и т.п. Большие значения приводят к уменьшению максимальной частоты смены кадров, однако увеличивают вероятность получения более ровного обновления экрана. Опция для продвинутого пользователя.

-frequency = XXX

Пытается установить определенную частоту обновления экрана (в Гц). Если видеокарта не поддерживает данную частоту при определенном разрешении, может произойти перезагрузка игры с сообщением "проверьте настройки". Наиболее используемые частоты: 60, 70, 72, 75, 85. Чем больше значение, тем выше качество изображения при условии, что монитор поддерживает выбранную частоту. Значения частоты, которые поддерживаются видеокартой, но слишком высоки для монитора, могут привести к искажению изображения.

-width = XXX

Принудительно установите ширину окна/экрана (в пикселях). В режиме fullscreen это значение должно соответствовать разрешению экрана, то есть следует установить соответствующую высоту экрана. В режимах dualhead и surround это значение определяет горизонтальное разрешение для всех экранов, а не для каждого.

-height = XXX

Принудительно установите высоту окна/экрана (в пикселях). В режиме fullscreen следует установить соответствующую ширину экрана. Отношение ширины к высоте 4:3; другие значения не тестировались. В режимах dualhead и surround это значение все равно определяет высоту одного экрана.

-640

Эквивалент "-width=640" и "-height=480".

-800

Эквивалент "-width=800" и "-height=600".

-1024

Эквивалент "-width=1024" и "-height=768".

-znear = XXX

Заменяет значение ближней видимости z-буфера. Определяется в метрах. По умолчанию 0.1 м. Небольшие значения позволяют видеть объекты, расположенные ближе, чем в 10 см, но значительно понижают точность z-буфера и приводят к визуальным артефактам на большинстве видеокарт. Большие значения улучшают точность z-буфера и уменьшают число артефактов, особенно в 16-битовых режимах z-буфера, однако, могут привести к худшей видимости близлежащих объектов, например, в режиме кабины.

-zfar = XXX

Заменяет значение дальней видимости z-буфера. Определяется в метрах. По умолчанию 1500 м. Уменьшение значения дальней видимости приведет к небольшому улучшению точности z-буфера, но вы не сможете видеть отдаленные предметы. (Примечание: может не привести к улучшению качества, если в экране настроек игры выставлено высокое значение видимости, поскольку игра все равно будет считать дальние объекты видимыми, даже если видеокарта не сможет их отображать.) Увеличение видимости z-буфера, возможно, бессмысленно, поскольку игра не поддерживает значения видимости, превышающие 1300 м, а точность z-буфера уменьшится, что приведет к появлению визууальных артефактов.

-disablefog

Полностью отключает туман.

-fullscreen

Полноэкранный режим игры. Оптимальный режим.

-windowed

Оконный режим игры. Удобен при отладке, но может привести к уменьшению скорости смены кадров и 'торможению', особенно в режиме DirectX.

-dualhead

Позволяет использовать два монитора. Режим возможен только в том случае, если два монитора подсоединены к одной видеокарте и работают как один большой экран (единый кадровый буфер). Режим невозможен, если два монитора подключены к разным видеокартам либо настроены как два отдельных монитора. В настоящее время поддержка режима dualhead осуществляется только в модуле Машиниста. Данная опция требует установки соответствующего разрешения (8:3) и полноэкранного режима игры. Некоторые видеокарты требуют переключения на соответствующее разрешение до запуска игры.

-surround

Позволяет использовать три монитора. Режим возможен только в том случае, если три монитора подсоединены к одной видеокарте и работают как один большой экран (единый кадровый буфер). Режим невозможен, если три монитора подключены к разным видеокартам либо настроены как три отдельных монитора. В настоящее время поддержка данного режима осуществляется только в модуле Машиниста. Данная опция требует установки соответствующего разрешения (12:3) и полноэкранного режима игры. Некоторые видеокарты требуют переключения на соответствующее разрешение до запуска игры.

-forcerealtimeload = X

По умолчанию 1 (вкл.). Значение 0 (откл.) может повысить качество изображения, но увеличить время загрузки и обмена через кэш. Режим 'откл.' почти не тестировался.

-loadingtime = XXX

Устанавливает время кэширования для каждого графического кадра. Определяется в миллисекундах. По умолчанию 20 мс. Большие значения обеспечивают более быструю, но 'дерганую' загрузку и используются на медленных компьютерах с небольшой частотой смены кадров. Небольшие значения обеспечивают более медленную загрузку, но помогают устранить 'торможение' и используются на более мощных компьютерах с высокой частотой смены кадров. Для быстрых компьютеров рекомендуется частоты до 1 мс.

-disablecarz = X

По умолчанию 0 (транспорт вкл.). Значение 1 (транспорт откл.) отключает движение транспорта по дорогам. Обеспечивает (возможно) более гладкую смену кадров. Экспериментальная опция.

-keepallresources = X

По умолчанию 0 (откл.). Значение 1 (вкл.) обеспечивает сохранение большинства ресурсов в памяти после их использования, что приведет к более гладкой смене кадров (игра меньше 'тормозит') и уменьшению времени обмена через кэш. Также увеличивает использование памяти и может привести к общему ухудшению качества изображения, особенно на медленных машинах.

-arealimit = XXX

Данная опция определяет число 'зон' рельефа, геометрия которых может кэшироваться. Большие значения приводят к большему использованию памяти, но могут уменьшить 'торможение' графики. Каждая секция может включать до 27 зон. По умолчанию значение этой опции - 100. Значения больше 400 оправдывают себя только на быстрых компьютерах.

-sectionlimit = XXX

Данная опция определяет число секций рельефа, загружаемых с диска. Большие значения приводят к большему использованию памяти, но могут уменьшить 'торможение' графики. По умолчанию 10. Значения больше 20 оправдывают себя только на быстрых компьютерах и если значение arealimit выставлено соответствующим образом.

-framestoaverage = XXX

Данная опция контролирует 'сглаживание' частоты смены кадра. Большие значения уменьшают 'торможение' графики, но могут привести к периодическим 'скачкам' в случае быстрого изменения частоты смены кадров. Максимальное значение опции следует использовать только на современных компьютерах с быстрыми видеокартами, на которых частота смены кадров остается практически постоянной. По умолчанию 4, максимальное значение 16, минимальное – 1 (средних нет).

-keepparticles = XXX

По умолчанию 0 (откл.). При значении 1 (вкл.) все объекты будут сохраняться в памяти после появления на экране. В результате графика будет меньше 'тормозить'. Данная опция также увеличивает использование памяти и может привести к ухудшению общего качества графики, особенно на медленных машинах.

-groundpolyoffset

ATI fixer. details tba.

 

<geforce3 fixer tba>

 

-heartbeat = XXX

Определяет интервал времени для физического тактового импульса (в секундах). По умолчанию 0.03 секунд. Большие значения уменьшают использование процессора за счет точности. Устанавливать значения более 0.05 секунд не рекомендуются. Изменение этой опции может негативно повлиять на точность.

-filter = XXX

Определяет режим фильтрации текстур. По умолчанию выставляется значение trilinear, обеспечивающее оптимальный режим графики. Остальные опции - bilinear и none – вряд ли приведут к улучшению качества, разве что на совсем уж медленных видеокартах.

-intro = XXX

Изменяет режим воспроизведения вступительные видео-ролики. Возможные значения - disable и fullscreen. Fullscreen проигрывает ролики в полноэкранном режиме. Disable отключает воспроизведение роликов.

 

-quit

Закрывает приложение после выполнения последовательности загрузки. Используется только в целях диагностики.

-DisableEnvMap

Отключает карты окружения. Эта опция может улучшить общее качество графики на медленных компьютерах.

-framerate = XXX

Устанавливает лимит частоты смены кадров (в кадрах в секунду). Не проверено. Не работает с включенной опцией vsync. Может способствовать достижению стабильной частоты смены кадров на быстрых машинах.

-render=renderdirectx

Использует Direct3D API для передачи игровой графики вместо OpenGL (используется по умолчанию). Может улучшить качество изображения либо решить проблемы совместимости, если драйверы видеокарты не поддерживают OpenGL.

-autopilotsignaldistance = XXX

Устанавливает значение видимости сигналов для автопилота (в метрах). По умолчанию 200 м, меньшие значения не поддерживаются. Опция определяет реагирование автопилота на сигналы – как скоро он начнет тормозить и насколько близко к сигналу он попытается остановить поезд.

-disableztest

Отключает тестирование z-буфера для эффекта свечения (огни семафоров, прожекторы, солнце). В результате свечение будет просвечивать *сквозь* другие объекты, но количество артефактов уменьшится для изображения рельефа и поезда на фоне свечения.


Исходный файл trainzoptions.txt выглядит следующим образом:

-DepthBits=24

-StencilBits=8

-fullscreen

//////////////////////////////////////////////////////////////////////////////////////

// REQUIRED OPTIONS (DO NOT CHANGE)

//

-Jet=bin

-time=0.0


[Новости][Статьи]


Хостинг от uCoz
Хостинг от uCoz