Joe's CG

Журнал

16 июня 2009

Разработки в области картографии. Google Maps отдыхает

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Правда есть сомнения, что всё генерится автоматически - слишком уж качественные модели получаются, например, океанских лайнеров.
Особенно понравился скачок из Швеции в Лас-Вегас - Земля старушка становится всё меньше и меньше :)

Ссылка | Комментарии [6]

8 июня 2009

2 июня 2009

Привет всем!

Завёл себе наконец-то блог на Блоггере, так что новое инфо будет зеркалиться и туда.
Если кому интересно, welcome: Joe's CG

Ссылка

17 дек 2008

Цифровой дождь
TheMatrix | Цифровой дождь

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

Почему недоступен оригинальный кодогенератор из фильма? Все что я нашёл, из freeware и даже платных вариантов - это жалкие попытки повторить киношный вариант. Весьма вероятно, что в заставках к различным частям использовался каким-то образом смикшированный пререндер бегущих кодов "Матрицы", и увидеть сие великолепие в виде скринсейвера под несчастную XPюшку не представляется возможным в принципе. Но есть в фильме кадры, где, вероятно, бегущие коды формируются на экране реальной программой (разговор Нео с Сайфером на главной палубе "Навуходоносора"). Впрочем, не исключено, что и это - всё-такие пререндер. Как бы то ни было, официального скринсейвера "из фильма" никогда не существовало, а всё что есть - это жалкие доморощенные попытки имитации того, что показали WB.

Мне интересны люди, которые занимались созданием этого "цифровой дождя" для фильма. Насколько же сложно было реализовать такой красочный и необычный эффект "с нуля", в то время как имитации, когда уже есть визуальный доступ к оригиналу, на порядок хуже его? Перед воображением и графическим мастерством этих людей приходится преклоняться - сам я никогда даже в уме не смог бы представить такой эффект с текущими и мигающими символами некой "Матрицы". По-видимому это закрытая "кухня" отдельных "спецов" в компьютерной графике, и о предоставлении широкой публике таких работ для просмотра "на Винде" речь не идёт.

PS. Здесь стоит быть честным и упомянуть, что оригинальная идея "текущих символов" была взята Вачовски из аниме "Ghost in the Shell", только там они бегут горизонтально. Братья Вачовски сами признаются, что были вдохновлены этим аниме, выполненным в стиле киберпанк.

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

Ссылка

5 дек 2008

Консоль reincarnation

Когда-то у меня была консоль, но она исчезла в водовороте кодов, т. к. я на своём пути много раз всё начинал сызнова.
Консоль та была довольно приличная по функциональности - форматирование, вывод строк разными цветами, хистори и т. д.
Теперь я решил что пора ввести в проект консоль опять - какая же демка без консоли - некошерно! Да и полезная вещь - при отладке,
когда нет полноценного UI, когда в ран-тайме менеджить надо. Вот что получилось:

Console | Консоль reincarnation

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

При спуске задний фон заблюривается шейдером, как окошки в Vista (довольно прилично жрёт ресурсы, нужно заменить на ping-pong блюр).
Ещё хочу добавить одну-две анимированные текстуры в фон консоли, как в Quake 3 или что-то подобное, чтобы круче выглядело.

Ссылка

1 ноя 2008

WALL*E Direct3D 10 Demo

Кто бывал здесь ранее и помнит краткое описание модификаций к алгоритму Penumbra Wedges?
Так вот, мне удалось их реализовать на практике (a заодно разобраться в Direct3D 10 API). Задачка была не из лёгких, но я справился.

Встречайте скромное демо, реализующее модифицированный алгоритм, названный мною Deferred Shaded Penumbra Wedges.
Требуется OS Windows Vista и видеокарта, поддерживающая Direct3D 10. Тестировалось и работало, как ни странно, на Radeon-ах :)

Адрес загрузки:
http://sites.google.com/site/gcseoj/Archives/WALLE.zip
Пейпр по теме:
http://joescg.googlecode.com/files/DSPW.zip
Сорсы построения wedges (немного устарели в свете нового подхода):
http://joescg.googlecode.com/files/Wedges.zip

Скриншоты:
01 | WALL*E Direct3D 10 Demo
02 | WALL*E Direct3D 10 Demo

Спасибо NULL_PTR за тесты на своём железе.

Ссылка

24 сен 2008

Оказывается, переехал на новый хост, а я было испугался что накрылся.
Новый адрес: http://www.humus.name/

Ссылка

2 сен 2008

WALL-E из бумаги своими руками

Прочитал про то, как люди делают Walle из бумаги, и тоже решил сделать для себя, пускай стоит на столе.
Оригинальный papercraft (по-видимому тот что предназначался для кинотеатров) от Disney недоступен, поэтому пришлось довольствоваться пейпрами энтузистов.
Короче вот что получилось:

01 | WALL-E из бумаги своими руками02 | WALL-E из бумаги своими руками03 | WALL-E из бумаги своими руками

В вот здесь http://craftsponge.ru/2008/07/19/walle/#more-292 вообще улётно сделано, хоть и не из картона, респект!

У меня появились некоторые идеи насчёт Walle, и возможно, он появится в качестве персонажа в моих будущих демках :)

Ссылка

18 авг 2008

Пока я [censored] с изучением Direct3D 10, на подходе уже следующая версия API от Microsoft - 11. Напомню, что DirectX 10 получил путёвку в жизнь в конце 2006 года, когда стали доступны G80 от NVIDIA. 11 версия планируется в конце года, значит, период между двумя версиями составляет всего два года, что намного меньше периода разработки различных версий Direct3D 9 (около 5, кажется).

Впрочем, не нужно пугаться. Просто Microsoft похоже единственная, кто может держать различных вендоров в одной упряжке и двигать графику в правильном направлении. И делает это. Новый API будет неким гибридом, который будет способен работать с различным железом, начиная по крайней мере с SM 3.0 и заканчивая SM 5.0. Он будет чем-то вроде надмножества Direct3D 10, т. е. не будет кардинально отличаться в интерфейсах, что облегчит его изучение и возможно переход на него (в отличие от перехода с Direct3D 9 на 10).

Немного подробнее можно прочитать здесь: Preliminary view of DirectX 11

ATI, у которой уже есть в каком-то виде тесселятор, похоже, готовится успеть первой выпустить Direct3D 11 совместимый чип:

ATI разрабатывает видеоадаптер для DirectX 11
ATI работает над картой с поддержкой DirectX 11

Ссылка

22 июля 2008

Пытаясь в целях изучения перенести некоторые OpenGL-программы на Direct3D 10, я обнаружил, что одна из них работает неправильно. Долго описывать все злоключения, которые я испытал за последние три дня, отлаживая и выверяя код между GL- и D3D-версией, поэтому не буду. Как человек отчаявшийся, я предположил последний вариант - неправильно работает геометрический шейдер (расcчитавающий penumbra wedges). Код шейдера был скопипастен из Cg-шейдера, за исключением простых правок для HLSL10. Компилировался он без ошибок, что подсказывало мне, что всё должно быть правильно. Шейдер работал, но выдывал, к моему большому сожалению, неправильный результат.

В конце-концов, не найдя больше очевидных причин для неправильной работы, я полез в справку по D3DX10CreateEffectFromFile() и стал изучать флаги, с которыми шейдер можно комплировать (типично - D3D10_SHADER_DEBUG для отладки). В моём коде было много if-oв, и я решил попробовать флаг D3D10_SHADER_PREFER_FLOW_CONTROL. И мои надежды оправдались - шейдер заработал правильно! Правда, в описании флага написано "Tell compiler to use flow-control (when possible)". Почему компилятор сам не догадался использовать везде где нужно динамические переходы - для меня загадка.

И уже после этого нашёл ещё один подводный камень. Вот такой код работает неправильно:

for (int i = 0; i < 10; ++i)
{
   float Array[10] = {0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
   // Тут читаем элемент Array[i];
}

А такой - правильно:

float Array[10] = {0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
for (int i = 0; i < 10; ++i)
{   
   // Тут читаем элемент Array[i];
}

В чём разница, я так и не понял. Компилятор должен расположить такой массив в константных регистрах, независимо от того, где я собственно его объявил, и разницы в работе быть не должно. И даже если бы asm-код от этого поменялся и стал бы менее оптимальным, он всё равно обязан был работать правильно. Можно было бы посмотреть asm-листинг, но я в нём пока не разбираюсь. По крайней мере для ARB-кода, что генерирует Cg, разницы нет никакой.

Ссылка

19 июля 2008

Хотите узнать, как можно с помощью троих человек и современных компьютерных технологий устроить небольшую кровавую бойню?
Тогда смотрите:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Ссылка

17 июля 2008

Чем дальше в изучении DirectX 10 я продвигаюсь, тем больше удивляюсь, насколько Direct3D 10 плохо документирован.

После чтения спеков расширений OpenGL, где всё разжёвано по самое не могу, есть issues и история изменений в документации, чтение DX SDK оставляет какой-то неприятный осадок очень сжатого изложения материала. Информации явно не хватает, и приходится лазить по коду и шейдерам демок из SDK, чтобы понять, как реализовать тот или иной функционал. В спеках расширений OpenGL всё наоборот - обычно всё разжёвано, а для сложных расширений в конце приводится краткий пример их использования.

Кроме того, чем дальше в лес, тем больше я нахожу неточностей в документации.
Вот например раздел Configuring Depth-Stencil Functionality (Direct3D 10), Bind Depth-Stencil Data to the OM Stage:

Bind the depth-stencil resource using a view.

D3D10_DEPTH_STENCIL_VIEW_DESC descDSV;
descDSV.Format = DXGI_FORMAT_D32_FLOAT;
descDSV.ResourceType = D3D10_RESOURCE_TEXTURE2D;
descDSV.Texture2D.FirstArraySlice = 0;
descDSV.Texture2D.ArraySize = 1;
descDSV.Texture2D.MipSlice = 0;

Если попытаться вставить этот код в проект, то он не скомпилируется, т. к. структура D3D10_DEPTH_STENCIL_VIEW_DESC вместо поля ResourceType теперь содержит ViewDimension, а структура D3D10_TEX2D_DSV больше не содержит полей FirstArraySlice и ArraySize. Похоже, документация писалась параллельно с рефакторингом API, а не после того, как он был утверждён окончательно.

Есть и другие неточности, но все их сейчас вспоминать и приводить не хочется.

Ссылка

27 июня 2008

Мультфильмы с двойным дном

Привет! Я нашёл ещё один фан-сайт анимационной студии Pixar:

Захабренные

Хотя много материала почерпнуто из уже найденного мною http://ipixar.ru/, есть и отдельные интересные вещи.
Например, Пасхальные яйца в мультиках Pixar.
Хотя я самостоятельно уже давно заметил, что мультфильмы Pixar так или иначе пересекаются между собой, всех "яиц" я конечно не знал.
Больше всего мне понравились камео с фургончиком Pizza Planet (который появляется практически во всех полнометражках, снятых после "Истории игрушек"), и комиксом "Суперсемейка", который маленький мальчик читает в приёмной стоматолога в мультфильме «В поисках Немо».

Также интересно прочитать, как создавались персонажи для мультфильма "Рататуй":

История одного дизайнера, или как они нарисовали Рататуй...
Продолжаем создавать персонажей мультфильма Рататуй вместе с Джейсоном Димером

Удивительно, насколько талантливые, изобретательные, увлечённые и трудолюбивые люди работают в Pixar - недаром их мультфильмы отличаются от продукции других анимационных студий. К слову - некоторые персонажи рисовались в карандашных набросках несколько тысяч раз, прежде чем были переведены в цифровую форму!

untitled | Мультфильмы с двойным дном

Конечно я неспроста сделал эту запись в блоге. Дело в том, что завтра состоится выход на экраны мультфильма "WALLE" студии Pixar! К сожалению, только в США, Колумбии и Бразилии. В России и Украине премьера состоится 3 июля, так что придётся немножечко подождать. А пока можно пересмотреть любимые DVD с "Суперсемейкой" и "Рататуем" :)

Ссылка

7 июня 2008

Нашёл в Сети страницу Дмитрия 'AND' Андреева - программиста, композитора музыки, дизайнера и демомейкера.

http://and.intercon.ru/

Между прочим, автор 3D-рендера движка X-Tend, который использовался в проектах Burut CT, таких как Kreed и Ubersoldier.
На сайте можно скачать демки Zoom3 (нечто вроде пародии на Doom3) и Squish.

Ссылка

24 янв 2008

Насмотревшись мультфильмов от Disney/Pixar я заинтересовался историей этой компании.

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

http://www.3dnews.ru/editorial/cinema-3/
http://www.atlant.ru/comar/stati_19175.htm

Фан сайт Анимационной Студии Pixar

Забавно провести параллель с миром разработки компьютерных игр. Меня впечатляет качество и артистичность последних творений Pixar - Суперсемейка, и особенно Рататуй (а также ждём Wall E и Игрушечную историю 3), я испытаваю наслаждение при их просмотре (отчасти потому что осознаю, сколько труда и технологий вложено в их производство, и что не понимают многие другие обыватели, любящие ходить в кинотеатр). В то же время как-то не очень впечатляют современные игры, тот же Unreal Tournament 3 и другие - как в плане графики, так и игрового процесса, нет того наслаждения.

Отчасти, конечно, потому, что в игровой индустрии меньше денег. Одна игра не в состоянии собрать ту кассу, которую может собрать полнометражный мультфильм (Рататуй - около 500 млн $). Поэтому и сил на разработку и шлифовку привлекается меньше. Во-вторых, игры должны выполнятся в реальном времени на достаточно ограниченном в скорости железе пользователя - отсюда и качество графики. В третьих, многие игры - именно игры, а не визуализаторы (скажем, всякие футболы и теннисы). И не смотря на все факторы, на рынке PC много откровенного трэша, который не может доставить игроку удовольствия ни графикой, ни геймплеем, ни звуком. Такие игры разрабатываются "одним программистом, одним художником, одним сценаристом и двумя моделлерами". В результате получается г., в которое нам предлагают играть. Жаль только, что "пипл хавает", а издатели издают, раз есть спрос.

Ссылка

Архив