Так и есть, это - репост моей же статьи с гиктаймс. Все права соблюдены.


Изначально задумывалось как простенький дневниковый пост. В память об этом статья начинается именно так сумбурно

Краем глаза

[​IMG]

Перед вами снова та самая легендарная Крива, убийца 3dfx (в лице ASUS V3800PRO). Данное утверждение показалось сомнительным, потому с неё и начнём.

[​IMG]

Поддерживает AGP4x, а вот Sideband'а кстати у неё нет. Ну вот теперь и заценим важно всё это или нет ;)
...На остальные фишки типа фичеконнектора и тв-тюнера давайте положим...

Ближе к сердцу

Карта построена на чипе RIVA TNT2 PRO. 1999 года рождения.

[​IMG]

Вообще TNT - это TwiN Texel. То был первый в истории десктопов !один! чип, способный накладывать две текстуры за такт. А вот это - уже TNT2.
Данная карта (PRO) - это как бы изначально разогнанная версия стандартного TNT2 (к слову, в ассортименте была ещё ULTRA - это как бы изначально разогнанная версия PRO). Работает на 142/166 (чип/память).

[​IMG]

К слову, это та самая классная видеокарта, в которой приходилось выбирать между либо честной трилинейной фильтрацией, либо мультитекстурированием. Уже страшно...
Однако что всё это значит на самом деле и как это посмотреть на практике? С этим вот и разберёмся.

Реализация

Встроенные дрова в winme !очень! старые, с ними даже quake3 не запустится, сообщив, что ваш opengl устарел или попросту отсутствует.
Драйвера от асус для тнт2 никуда не годятся. Вы только посмотрите на обилие таких понятных и доступных каждому школьнику опций, как Расширение буферной области или же Режим трансон... трапсон... чёрт...

[​IMG]

ОМФГ, Бедные люди! А ведь есть ещё драйвера ForceWare аж от !2005! года с поддержкой аж D3D9. Deus Ex с ними замечательно артефачит. Теперь становится понятно, почему владельцы карт так изнемогали поменять её на вуду - кажется, нормальных дров за всю историю для карты никто так и не написал.

А ещё есть известная утилита, написанная нашим соотечественником Unwinder'ом - RivaTuner.
I have only two words for the developers to say: user interface!!!
Надо сказать, достойное усовершенствование серии. Как пользоваться утилитой окончательно я понял только спустя, наверное, пару суток. И то, обилие вкладок и скрытых возможностей реестра до сих пор для меня осталось загадкой... Во всяком случае, главное я получил: возможность низкоуровневого разгона карты.

Прикладной уровень

[​IMG]

ВНИМАНИЕ, Конфиг:

MB: Gigabyte 6vtxe (Apollo Pro133T chipset)
CPU: Pentium 3-S 1.4Ghz/512Kb/133FSB
RAM: 3x256Mb PC133
HDD: healthy UDMA-5 WD с приличным кэшем 2Мб и 5400RPM
WinME
Video: Riva TNT2 PRO

ВАЖНО:
Все настройки графики в игре - на максимум!!! Это значит примерно следующее: если что-то красивое и/или полезное можно включить, мы это включаем.
Карту сразу же разгоняем со штатных 142/166 почти до уровня Ultra (180/210). А Почему бы и нет? На деле разгон даст кадров 5-7. Чтож, тоже неплохо. Выше гнать не пробовал, уверен: начнёте собирать артефакты.
Разрешение в игре для этой карты подобрал 1280x1024. Всё, что ниже, меня просто не интересует (не интересовало на момент написания абзаца). Всё, что выше, - это уже не её планка. Итак показывает меньше 30 кадров почти везде.

Значит, поехали по технологиям.

API и цветастость
Карта стандартно умеет Direct3D и OpenGL.

Чего?

Также позвольте напомнить, что в то время в каждой второй игре потихоньку внедрялся и предлагался 32-битный цвет. Так что появлялся выбор между 16-быстро и 32-медленно. Если кто интересуется, в чём разница.

Nvidia позиционировала карту как мощный 32-битный конвеер. К слову, у конкурента за именем 3dfx был только 16-ти битный цвет и он пал в этой битве. Ослеп?

Чтож, посмотрим на картинку в разных API, а заодно попробуем найти отличие между 16-битным и 32-битным цветом ;)
Как обещал, дальше везде будут шоты с мониторингом и всеми делами, где это возможно; размеры оригинальные по клику (подписи слева внизу жёлтым - мои, признаюсь...)

[​IMG]

[​IMG]

[​IMG]

[​IMG]

Ну что тут скажешь...

  • Во-первых, хочу заметить, что на самом деле в игре всё выглядит "несколько" ярче... Скриншоты эти честные и делаются средствами движка. Вот честно, это место было очень наглядным, правда, я старался :D
    Вообще с яркостью в игре большие проблемы. Вот то, что вы видите, это яркость выкручена на 100% По дефолту стоит 50% - понимаете? Я слышал про фикс, но вот ставить его как-то было уже поздно. Да и атмосферность хорошая... В конце концов, кому нахрен сдались эти скриншоты? И тааак сойдёт... Ладно, не расстраивайтесь, будут и ещё скриншоты.

  • Во-вторых, можно заметить разницу между 16 и 32bpp в Direct3D: если вы вернётесь к шотам, увидите страшную рябь в центре у d3d_16bpp. Такое вот качество дизеринга у TNT2. У других карт такого обычно нет.
    В OGL разницы в цвете нет вообще. Это говорит о том, что игра жульничает и всегда работает в каком-то одном режиме битности. Т. е. здесь в OGL настройка битности цвета не играет роли.
    Вообще же, если скачаете на комп и выкрутите в фотожопе яркость, увидите разницу в api. Она есть и в цвете и в прорисовке, но довольно незначительная. Так что вряд ли 3dfx тогда ослеп... вот уж не думаю.

  • В-третьих, мониторинг (справа сверху жёлтым) вы увидели только в OGL. Почему? Да потому что в те далёкие только неизвестные мне программы умели мониторить в D3Dx, который используется в Unreal Engine 1.
    Плюс к тому проц в WinME всегда загружен на 100%. Видимо, это - его кредо (проца). Достаточно войти в винду и нажать ПУСК!
    Памяти видно, что за глаза. В общем видно, что упираться нам только если в чип, так что дальнейший мониторинг бессмысленен, ну а кадры нам и сам Unreal Engine посчитать может (внизу под инвентарём белым по центру).

AGP
Как уже было сказано где-то там выше, карта умеет AGP4x. В то время это было новаторство. Даёт ли это что-нибудь? Мы это сейчас обязательно выясним, но для начала я "особо сведующим" приведу настройки Unreal engine-на для D3D (для OGL интересной нам опции вообще нет).

[​IMG]

Почитать про эти опции можно тут. Как видно, я форсировал прокачку текстур в видеопамять. Зачем? А чтобы быть уверенным, потому как в криве тнт2 всё ещё не использовался agp-texturing (DiME). Если верить слухам, AGP-aperture использовалась только как промежуточное хранилище перед отправкой текстур в локальную память. Это известная недоработка чипа и её запросто можно нагуглить.

Ну вот, прекрасно, теперь можно начинать мерить потенцию:

AGP2X

[​IMG]

Напомню: !!!FPS считается движком внизу шота!!!

[​IMG]

[​IMG]

Кстати вот тут видно разницу между api. Посмотрите на отражение шара.

AGP4X

[​IMG]

Заметьте, ни на один параметр скорость AGP не повлияла!! На практике:

[​IMG]

[​IMG]

Ну ведь видно, что карта не выдаёт даже 35 кадров в agp2x и подъём до agp4x ничего вообще не меняет? Я очень не думаю, что не хватает серверного тулика 1.4Ghz, который, простите, вышел спустя три года. Памяти точно хватает. Соотношение FSB : DRAM - 1 : 1, и я уверен, жёсткий успевает.
Думаю, чип просто давится и ничего тут не поделаешь. Маркетинг такой маркетинг.

Трилинейка
Вот тут самое интересное. Можно процитировать себя:

К слову, это та самая классная видеокарта, в которой приходилось выбирать между либо честной трилинейной фильтрацией, либо мультитекстурированием. Уже страшно...
Со, чудесный движок UE1 позволяет всё это проверить, не отходя от кассы. Но проверить можно только в D3Dx. В OGL мултитекстурирование через опции игры не настраивается.

Что проверить? Ну... В TNT2 впервые была введена трилинейка. Но использовать её одновременно с мультитекстурированием чип не справлялся. А надо, ибо конкуренты! Поэтому она как бы была, но работала в двух вариантах: настоящая трилинейная фильтрация без мультитекстурирования, либо менее затратный mip-map dithering («аппроксимация», как его тогда неверно называли) и мультитекстурирование.

Для начала попробую объяснить, что вообще такое трилинейка (может, не слишком удачно)...

Трилинейка это развитие билинейки. Применяется только к 2D-объектам, которые находятся на расстоянии от игрока и близко друг к другу. Хорошим примером может служить, например, пол или стена, состоящие из однотипных плиточек, которые вплотную прилегают друг к другу. При отдалении от игрока плиточки должны уменьшаться (это кстати зовётся "мипмапинг"), что и происходит, но в результате уменьшения между плиточками становится заметен резкий переход, теряется однородность общей картины. Ну вот трилинейка и призвана исправить это. В общем и целом она усредняет крайние пиксели до общего значения цвета...

Так. Это настоящая. А mip-map dithering что тогда делает?

Объяснение mip-map dithering на примере вуду5:

http://www.beyond3d.com/content/articles/57/4
Mip Mapping introduces a new annoying artifact: Where the hardware swaps from one level to another, you usually notice a discontinuity in the texture. You can notice the swap from a sharp to a more blurry level. This swap discontinuity can be hidden using two techniques: trilinear filtering and Mip Map Dithering. Tri-Linear filtering is the best method, but is rather expensive since more texture information has to be fetched (8 texels to be correct also trilinear filtering would require 2X multi texturing if application does single texturing, and 4X multi texturing if application does 2X multi texturing). Mip Map Dithering, on the other hand, has roughly the same cost as normal Mip Mapped rendering but it uses a dither trick to hide the sudden swap from sharp to blur. The basic idea behind Mip Map Dithering is that instead of changing from the high level to the lower level in one go you do it gradually. This is done by adding a random value to the Mip Level selector, as a result you will swap between the level for a while (jumping over the limit and back) rather than one move over the change value. While Mip Map dithering successfully hides the sudden change it also results in more blurry graphics. Some people consider Mip Map dithering cheating, but remember — it does not require you to perform double texture passes for each pixel.
Ладно, давайте, я лучше шоты покажу... Значит, пойдём путём обзорщиков середины 90-х. Выставим 640x480. Теперь всем смотреть на сглаживание ламп на потолке в коридоре и сглаживание знака Radioactive слева от прохода!!!

[​IMG]

[​IMG]

[​IMG]

[​IMG]

Вы тоже не видите разницы? На самом деле, она есть, просто вам нужно сейчас натянуть эти 640x480 на свой 20+ дюймов монитор и тогда справедливость восторжествует (сегодня в каждом броузере есть каретка). Понятно же, что на большом разрешении маленькие картинки все одинаковые...

Если всё же кто натянул, тот заметил, что при включенном мультитекстурировании:
  • Падает общий уровень яркости в игре. Это известный баг движка.
  • Трилинейка с мультитекстурированием (mip-map dithering) на скринах выглядит немногим хуже билинейки. Но в игре разница будет тем заметнее, чем больше ваш монитор. Это факт.

Вернёмся к 1280x1024.

[​IMG]

[​IMG]

Ну вот тут лучше видно, как фонит mip-map dithering. Ужас, правда? Вот честно, если бы мне не сказали, я бы никогда не заметил. Моё мнение, прозвище "крива" чип получил незаслуженно. Он же не виноват, что вы играете в 640x480 в 1998 году, правда?

И хотя выискивать огрехи mip-map dithering с лупой в 640x480 среди квадратиков мне кажется идиотизмом, всё же для тех особых случаев, которым чертовски необходимы шашечки, чтобы ехать, наш соотечественник Unwinder предлагает такое же особое решение:

[​IMG]

no more comments...

Ну так вот, знаете...

Очень достойно. 1280x1024x32bpp. 20-30fps в разогнанном состоянии. По мне, так если мышь начинает тупить в меню, а инвентарь в бою прорисовывается с задержкой в полсекунды, можно подождать. Нельзя было, например, на пентиуме 150 и 2D-видеокарте подождать своего хода в Героях3 по 5-7 минут, или, например, нельзя было подождать в Квейк 2 в коперативе, где ракеты появлялись уже потом, а задержка звука составляла около секунды. Так что 20-30 кадров - это уже вполне играбельно.

Не нравится, не хотите гнать? Ну и играйте в 1024x768 и ниже. Или в 16-битном цвете.

Но всё-таки, конечно, вуду3000 была быстрее, пусть и только с 22битами. Жаль 3dfx, но кое-что он всё-таки нам оставил...

З.Ы.
В процессе тестирования столкнулся с проблемой мониторинга. Недавно набросал кратко о том, как мониторить на Win9x/me. Всех понимающих и разделяющих (идею) приглашаю делиться опытом, ибо подобной инфы нигде вообще не нашёл (неудивительно).


Благодарности
  • Открывателям горизонтов и срывателям покровов - комьюнити VOGONS. За кучу уникальных исследований и наработок!
  • Christian Ghisler'у низкий поклон за TC. Пользуюсь с детства. Сколько раз воспользовался синхронизацией папок за время написания не представляется конечным числом... Купил.
  • Администрации old-games.ru за возможность быстро и бесплатно скачать 20 игр скопом только ради того, чтобы заценить структуру файлов и однажды запустить. Простите за трафик ;)

...TBC...


Сравнение графики в играх на разных видеочипах.

Использованная литература

Автор: Goblinit
Дата: 28.08.2015

Обсудить статью на форуме

Перейти к списку статей