Семен (sim0nsays) wrote,
Семен
sim0nsays

Не коротко о GDC 2008

Так вот, родная компания отправила на GDC, потому что меня любит. Почти полная неделя в Сан-Франциско - это не может не радовать
Не считая того факта, что все дожди и облака переехали на эту неделю из Сиэтла вместе со мной (извини, солнечная Калифорния, радуйся, волшебный Northwest), все было более чем хорошо.

На удивление сложно найти людей, которые кодают на DX10, один Крайтек только и нашел. С мужиками из Крайтека хорошо и весело, привет Тимуру. Такое ощущение, что из Крайтека приехало больше народу, чем из MS...
Рассейского геймдева видел совсем уж мало, видимо отрываюсь от. Или это 1С не приехал. Надо в любом случае что-то делать.

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

Не успел пробиться на тек в Uncharted, не выдержал километровой очереди на Final Fantasy.
Давайте буду рассказывать про то, что понравилось и запомнилось.


Lighting and Material of HALO 3, выложено тут.
Это было весело. Мужик сразу сказал: ну, в принципе освещение - это достаточно просто, это вот такой интеграл по всей сфере приходящего света, зависящий от позиции точки и направления взгляда, давайте его раскладывать.
Если серьезно, то у них большая часть освещения статическая, и для диффузного освещения они по-большому счету делают directional lightmaps на SH. То есть, в лайтмапе хранится разложение spherical harmonics для всех направлений, из которого сэмплится по normal map. Разумеется, лайтмап сильно менее детальный, чем normal map - получается мягкое GI-like освещение с детальностью normal map.
Накурившись травы товарища Питера и Пайка, хранят вместо 9 коэффициентов квадратного SH какой-то dominant light и только линейные коэффициенты, получается всего 4. Их ферма на 180 серверов считает это все добро, оптимизяет и пакует в DXT (детали - в отдельном докладе, я туда не ходил).
Dynamic lights, как я понимаю, рисуют обычными способами.

На персонаже для диффуза у них PRT, для спекулара сложное разложение освещения на разные частоты.
Нижние плавные частоты спекулара - разложение на много Spherical Harmonics в зависимости от направления взгляда, три страницы слайдов с формулами, убейте меня. Получаются такие красивые большие пятна.
Средние частоты - env cubemap c рефлекшеном.
Высокие частоты - аналитический спекулар с направлением источника.
Все они смешиваются на персонаже, получается типа естественная картинка. Хрен его знает, если хороший шейдинг - это который не бросается в глаза, то не бросаться в глаза у них точно получилось.

Для HDR на xbox пользуют две 8-bit текстуры, основной HDR эффект - блум с исправлением нелинейности. Подробностей не запомнил.

Art and Technology behind BIOSHOCK's Special Effects, вроде еще не выложили
Мужики сначала рассказывали как это здорово и правильно - жить программисту по эффектам и дизайнеру по эффектам рядом и друг с другом болтать о всяком и пиво пить. Кто бы сомневался, блин.
Из эффектов они сначала рассказывали про lit particles, я прокнулся не особо, ну там per pixel light от комбинированного из нескольких источников, чуть твикнутый шейдинг.
Единственная правильная задумка - дополнительный источник на камере для спекулара, это очень правильно и здорово, он гарантирует, что некий заметный вклад будет всегда. Видимо можно и нужно делать так далеко не только для патиклов.

Интересное же рассказывали про эффекты с водичкой. У них есть водопады с потолка, это тупо прямоугольник со скроллящейся текстурой детальностью воды и маской конкретных разводов. Для красивых эффектов персонажа, стоящего под водопадом, они рендеряют 1D-shadowmap для каждого водопада, и потом модулируют этим воду, офигеть можно :)
Эффект между тем красивый.

Каустика - на воду проецируется картинка с ней, какой-то трик с двумя сэмплированиями одной и той же текстуры, чтобы картинка анимировалась без повторений.

Самое красивое - ripples под ногами персонажей и предметов. Сначала пробовали тесселировать водную поверхность разными методами, получалось плохо. В результате сделали "deferred shading" для волн - специальный screen space буфер, куда каждый кадр рендеряют normal map от всех кругов под ногами в сцене, и потом воду освещают с нормалями из этого буфера. Важный момент - для освещения воды источники ставятся на другие позиции, чтобы лучше были видны цветные спекулярные блики от них.
Выглядит очень здорово.

Так, последнее из хорошего мне запомнилось про анимации в Uncharted - Creating a Character in Uncharted: Drake's Fortune, выложено тут (как кстати и тот доклад про тек, который я пропустил).
Самый цимес - additive animations. Типа, правильно нарисовав анимацию "бега" и "усталого бега" получается вытащить добавки к костям, которые означают "усталось движения", которые потом можно применить к "ходьбе" и "медленному бегу". Одновременно можно таких применять много.
Ну вот например aiming - это такой additive animation из интерполяции шести нарисованных поз с разными углами.
Я подозреваю, там есть кучи тонкостей с тем, как блендить эти анимации, впрочем.

Похожие штуки показывали и в Assassin's Creed, и в Crysis, и в Far Cry 2.

Вторая круть, какую показывали - variations. Можно нарисовать всего одну новую позу в которой персонаж стоит и целится, и разница между ней и дефолтной может автоматически смешиваться со всеми нарисованными анимациями, и утверждается что смотрится сносно. То есть, нарисовал 20 поз (не анимаций, только поз) из которых NPC в тебя стреляет, и получил все анимации забесплатно. Опять же, рисовать позы и анимации надо с некоторыми ограничениями, чтобы срасталось.
Но такое удешевление рисования анимаций вполне возможно стоит того.
А, ну разумеется по всем этим поводам пацаны считают анимацию на SPU.

Остальное мне запомнилось меньше. Выходил дядя и фантазировал, как можно имплементировать мегатекстуро, показывал исполненные смыслом строчки из писем Кармака. Выглядит это все ugly, надо что-то делать не так. На наркоманскую лекцию про "style and structure" пришел неподготовленный - не накурившись, думал хватит того, что у докладчика. Не хватило.
Про толпы в Assassin's Creed было мало технических деталей, про процедурный стафф в Far Cry 2 я тоже не воткнул, хотя симпатично выглядит.
Лекции IHV как обычно скучные.
"Вот как-то так" (с)

Crossposted to blog.gamedeff.com
Tags: graphics, tech
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 28 comments