Я знаю vertex-shaders, x-box и много других страшных слов

17.12.00 | Goblin | 16 комментариев

Железки

Я всегда замечал, что неравнодушно отношусь к прототипам последних видеокарт. Во-первых, они работают не совсем правильно, или, проще говоря, просто-напросто подглюкивают. Во-вторых, обычно уже после релиза финальной версии, они не совсем хорошо живут с родными драйверами, а бывает даже, что и виснут намертво. Случается, что они работают на заниженной частоте (хотя с Voodoo-5 все было совсем наоборот). Но также твёрдо известно другое — удовольствие от использования новых возможностей в старом коде нельзя сравнить ни с чем.

В этот раз меня порадовали так называемые "hardware vertex shaders". Совсем "немножко" :) забавных фокусов с конвейером, и весь ужасный цикл расчета скелетной анимации вкупе с освещением ушел в железяку. Обычно это выглядит так (программисты меня поймут сразу): трансформируем вершину для 4 "косточек", вычисляем усредненную позицию с учетом "веса" косточек, вычисляем усредненную нормаль, считаем свет для 8 источников. Дальнейшие приправы добавляются исключительно "по вкусу".

В конченом итоге — пара недель работы, а не экране изменилось только несколько пикселов :). А именно циферка FPS — с 60 на 80. Мало? Разумеется. Платим лишние 300 баксов за 20 FPS. А стоит ли овчинка _такой_ выделки?

Осень 1999 игровую индустрию помаленьку трясло. Ну, например, у GT были большие проблемы, в итоге закрыли несколько ну очень интересных проектов. Над одним из таких проектов пришлось поработать и мне (впрочем, это тема для отдельного разговора). Так вот, минимальные требования для PC тогда были P2-300, 64 метра плюс TNT1 или Voodoo2. Если бы GT не трясло, то игра появилась бы на полках приблизительно сейчас — всего лишь с небольшим опозданием. Собственно тогда почти все конторы работали под такие минимальные требования.

Кончено, если тебя зовут John Carmack или Tim Sweeney, ты можешь в некоторой, тоже весьма ограниченной, степени варьировать измышления паблишера. Doom-2000 или UT2, все равно купят все. Но обычно ты — Vasya Pupkin, и в темном углу конторы, заплёванный, всеми проклятый, вечно виснущий, ютится тест-компьютер, тот самый пресловутый — P2-300-64-TNT1. А паблишер, чаще всего, соглашается смотреть игру исключительно на нём и только на нём.

Нет, его, как паблишера, разумеется, радуют крутые спец. эффекты на твоём настольном P3-800-512-GeForce2. Он даже не против написать на коробке про поддержку SSE или hardware transformation. Но он не настаивает. Его гораздо больше интересует версия под PSX, а в последнее время под PSX-2 или Dreamcast (что несколько облегчает жизнь).

В итоге на моделях оказывается меньше 1000 полигонов, а "Собор Парижской Богоматери" превращается в капище староверов под Рио-де-Бабякино. И не спрашивайте у меня, почему у Лары Кроффт треугольные сиськи, или почему эта зеленая гадость называется гордым словом "вода". За то играть смогут ВСЕ.

Практически весь октябрь 2000 года я провел в борьбе за совместимость Star Track Deep Space 9 The Fallen с древними видеокартами. AQ протестирует любую игру на совместимость с чем угодно — собственно это одно из требований паблишера. Радуйтесь счастливые обладатели G-100 или Savage 3D — игра не зависнет. Она запустится. Или, на худой конец, перейдет в software, предварительно уведомив. Можно будет со счастливым лицом наблюдать диафильм — эдакий синдром 13 фпс (!).

По большому счету игры под GeForce только начали появляться. Целиком потенциал этой карточки не использует никто. И не надо мне рассказывать про могучий Quake-3 engine. Transfromation — верю сразу, lighting — прошу прощения. Про bump-mapping, cube-mapping или полноценную поддержку DXTC я вообще не говорю. Цикл разработки игры приблизительно 2 года. Это приводит к тому, что игра хорошо работает на high end оборудовании двух годичной давности — иначе ее просто не удастся продать.

Собственно возвращаясь к пресловутым vertex shaders. Какой такой прирост производительности на модели в 3000 полигонов можно ожидать. Разве что, если их на экране две дюжины :). Советовался с дизайнерами — качественный скачок наступает при переходе от 1000 полигонов, к как минимум 10000, а лучше 30000. "Если много кирпичей, штук примерно пять" Очень хочется играть в игры с реалистичными персонажами, которые по-человечески движутся (см. скелетная анимация) и участвуют в массовках (см. LOD) и бегают маленькими толпами, ну даже и по 3-4 штуки сразу :). Еще 10 минут возни с редактором на создание тестового уровня; затем опять наблюдать верхний угол экрана — сичитать FPS'ы (это такой программистско-квакерский ритуал). Было 13 (опять пресловутые 13 fps), стало 60. Таки рулят vertex shaders.

Спрашивается, а когда все это будет в играх для PC. Спрашиваю менеджеров, а они радуют — наша следующая игра выйдет под X-Box, или "PC with X-Box specification". Как оптимист авторитетно заявляю — году эдак к 2002. Причем, скорее всего, сначала под X-Box — ибо маркетинг. Теперь так везде — старые проекты будут "с треугольными сиськами", а новые сначала появятся под "коробок". Некоторая эволюция разумеется проистекать будет, но кардинальных (качественных) изменений ждать не приходится. Так сказать Enjoy.

Комментарии
Goblin рекомендует создать сайт в megagroup.ru


cтраницы: 1 всего: 16

KranK
отправлено 17.12.00 23:13 | ответить | цитировать # 1


>Практически весь октябрь 2000 года я провел в борьбе >за совместимость Star Track Deep Space 9 The Fallen >с древними видеокартами.


Непонятно. Ведь DS9 вроде на анриловском движке... Разве совместимость с железом не забота эпиков? За что тогда деньги уплочены??!

А вообще интересно. Keep writing! :)

PS Кстати, в Лагуне Бич вроде еще Shiny сидит? В гости ходите друг к другу :))?


Борис Баткин
отправлено 17.12.00 23:33 | ответить | цитировать # 2


эпик никакой особой заботы о совместимости не проявлял. типичный пример - запускаем UT, выбираем D3D, читаем что накалякано в углу мелким шрифтом. А там: "если у вас intel740, G100 или подобная лабуда - не надо пускать d3d". наш паблишер на это согласен не был. в итоге кроме собственно наших дополнительных функций, драйвера пришлось трясти на совместимость. и корректно детектить несовместимость. нудь редкая ;)))

Shiny в лагуне действительно сидит. даже обнаружилось, что та забегаловка, куда мы (я и мои друзья) ходим обедать по вторникам - посещается ими по четвергам. но вот наносить визит вежливости пока не сподобились ;)

а еще тут в 10 минутах, в Ирвайне, Близзард. и еще целая куча других контор, в радиусе 20 минут - всех не упомнишь. эдакая game-developer-ская мекка ;)))


KranK
отправлено 18.12.00 00:51 | ответить | цитировать # 3


>эпик никакой особой заботы о совместимости не >проявлял

Фига себе... Это новость, однако! Я почему-то думал что должно быть по другому. А почем кстати нонче анриловские движки в розницу отдают кстати ;)?

>а еще тут в 10 минутах, в Ирвайне, Близзард. и еще >целая куча других контор, в радиусе 20 минут - всех >не упомнишь. эдакая game-developer-ская мекка ;)))

Ну Близзард как я слышал довольно затворническая бригада. В Ирвайне еще и Интерплей окопался из жирных. Но разве от Лагуны 10 мин дотуда? Мы вроде дОльше ездили... Костамесы там всякие еще. Климат клевый. Но и налоги немалые :))). Ты уже американский гражданин или только готовишься?


Борис Баткин
отправлено 18.12.00 01:29 | ответить | цитировать # 4


В розницу - убей бог не знаю. Вроде как у них там в Эпике индивидуальный подход к каждому жадущему их тела, в смысле движка. Какая такая особенная поддержка драйверов, ежли у них в собственных проектах не все "поддерживается". Имхо драйвера - самая слабая часть этого самого движка, ну кроме Glide разумеется.

Вообще мои впечатления от Unreal-овского движка - тема отдельного разговора. Меня он смущал еще когда я над Unreal\PSX работал. Очень он "неровный". Местами, просто изумительно, почти гениально, на грани понимания - а местами написан просто левой ногой. Имхо СЛИШКОМ много разнопланового народу над ним работало.

А что до Близзарда, таки и им программеры нужны. Так что затворяйся, не затворяйся - а приобщают иной раз, манят. Вот Интерплей - гадкое место, смурное; по крайней мере так говорит народ, который в нем раньше работал. Впрочем, мнение сугубо субъективное.

А что до гражданства - дело это немерянно долгое. Не по мои юнные лета ;))))


Shaytan
отправлено 18.12.00 09:07 | ответить | цитировать # 5


Интересные дела-то с карточками. А вот какое мнение по поводу того, что 3dfx белые тапки примерял, а nVidia по сути монополизировала рынок и поглотила 3dfx-технологии? Как это может на разработку и разработчиков повлиять?


ALIEN
отправлено 18.12.00 13:12 | ответить | цитировать # 6


2 Shaytan:
это тема для следующей статьи, так что ждите скорых обновлений :)


SomeBody Else
отправлено 20.12.00 13:06 | ответить | цитировать # 7


2 Shaytan:
Как-как. В общем проще должно быть. Остаются 2 основных API - OpenGL и D3D. Будущее HW T&L немного расчистилось - у главных конкурентов NVIDIA и ATi есть такие чипы. И будут новые, еще лучше. Через годик будет еще проще - надеюсь, тогда уже не будут ориентироваться на древние i740 и G200. Останутся минимумом Radeon и GeForce2.


Bandures
отправлено 21.12.00 16:12 | ответить | цитировать # 8


2Борис Баткин: Глядел я на public Unreal source ( тот что wraper к API ) , и если весь анрил писан также , то мои соболезнования.

Насчёт vertexShaders - весч приятная , но к примеру зачем ту же скелетную анимацию через шейдеры делать ? Тут веть потеря FPS - тоже самое через D3D VertexBlend с возможной хардварной акселирацией , против вертексных шейдеров , которые заведомо ещё некто не поддерживает.

Короче , это всё тонкости настройки engine на стадии инициализации - что выбрать , vertex shaders или некую их комбинацию с стандартными возможностями DX.


Борис Баткин
отправлено 21.12.00 20:52 | ответить | цитировать # 9


куда там так-же. public Unreal source мал-мала причесали и погладили. А есть, например, реализация софтверного рендера. Или освещение (очень, правда, выборочно).

А что до vertexblend - то никакую нормальную скелетную анимацию на них имхо не сделаешь. в средней модели на вертекс действует хотябы 3-4 "косточки", с учетом "веса". Т.е.
Vr = W0*M0*V + W1*M1*V + W2*M2*V + W3*M3*W.


Bandures
отправлено 21.12.00 22:35 | ответить | цитировать # 10


=))) А софварь выкинуть надо!

Про vertexblend - это уж кто как делает. Эдак по вашему , так на GeForce-е скелетную анимацию не сделаешь! А ведь работает! =)))


Борис Баткин
отправлено 22.12.00 08:56 | ответить | цитировать # 11


по нашему, это когда есть ОДИН вертекс-буфер и ОДИН индекс-буфер на модель, а при отрисовке меняются только матрицы для "косточек". все остальное - имхо онанизм.


Bandures
отправлено 22.12.00 17:34 | ответить | цитировать # 12


Что странно по нашему также =)
И что , только с 3-4 матрицами работает ?


Борис Баткин
отправлено 22.12.00 20:36 | ответить | цитировать # 13


от 1 до 8 косточек влияет на каждый вертекс. в серднем 3-4. а на модели косточек до 30 встречается.


Bandures
отправлено 23.12.00 12:09 | ответить | цитировать # 14


Ладно , забиваем.
Просто у меня на 2 матрицах всё отлично работает.


Virtual Warrior
отправлено 26.12.00 10:55 | ответить | цитировать # 15


Как я понимаю Борис Баткин! Полность с ним согласен!
За исключением одной детали - наши художники утверждают, что модель в 3000 треугольников СУЩЕСТВЕННО отличается от модели в 1000 треугольников и даже подтвердили это соответствующими моделями. А утверждение про модели в 10000 треугольников - это у наших художников тоже поначалу было, но после 2х лет разработок малополигональных моделей они научились тому, куда надо вложить лишние фейсы, а откуда убрать, т.ч. модель в 10000 треугольников сейчас для них просто избыточна.


==KALKIN==
отправлено 03.04.01 03:19 | ответить | цитировать # 16


Нисяво не понимай беседа, вай...! Шибко умный однако.
Моя тайга ушел



cтраницы: 1 всего: 16

Правила | Регистрация | Поиск | Мне пишут | Поделиться ссылкой

Комментарий появится на сайте только после проверки модератором!
имя:

пароль:

забыл пароль?
я с форума!


комментарий:
Перед цитированием выделяй нужный фрагмент текста. Оверквотинг - зло.

выделение     транслит



Goblin EnterTorMent © | заслать письмо | цурюк