Примеры


Дополнительные примеры Xtreme3D, не входящие в состав SDK и разработанные сообществом. Здесь вы найдете реализации многих популярных спецэффектов, игровых механик и техник рендеринга.

Fighting

Автор: FireRun

Пример файтинга с анимацией персонажей. Используется Xtreme3D 3.7.

Скачать (2,4 Мб)


Planet Gravity

Автор: Gecko

Пример механики перемещения по поверхности несферической планеты, как в Mario Galaxy. Используется Xtreme3D 3.8 + ODE.

Скачать (2 Мб)


GUI

Автор: FireRun

Пример создания пользовательского интерфейса при помощи HUD-объектов. Используется Xtreme3D 3.7.

Скачать (1,4 Мб)


Third Person Camera

Автор: FireRun

Пример камеры от третьего лица с управлением клавиатурой и мышью, как во многих RPG. Используется Xtreme3D 3.7.

Скачать (0,9 Мб)


Interactive UI

Автор: Gecko

Пример интерактивного внутриигрового интерфейса, как в Doom 3 - т.е., экран, курсором которого можно управлять, просто поворачивая камеру. Реализовано путем рейкаста из камеры в экран и перевода координат пересечения с лучом в локальное нормализованное пространство экрана. Пример пока не учитывает поворот экрана. Рендеринг самого интерфейса сделан через FBO и стандартные HUD-объекты, так что рисовать на экране можно все, что угодно - хоть 3D-модели. Пример использует Xtreme3D 3.6.

Скачать (1,8 Мб)


ODE Terrain

Автор: Gecko

Пример использования ландшафта (Terrain) с физическим движком ODE. Начиная с версии Xtreme3D 3.0, для ландшафтов в ODE предусмотрен специальный тип тел. Поддерживаются столкновения ландшафта со всеми типами геометрий ODE, за исключением динамических тримешей (TriMesh). Обратите внимание, что ODE не поддерживает ландшафт с бесконечно повторяющейся картой высот (BmpHDSSetInfiniteWarp). Пример использует Xtreme3D 3.6.

Скачать (4,8 Мб)


Комплексное демо 2

Автор: Gecko

Данный пример демонстрирует множество техник рендеринга и эффектов постобработки: тени на основе CSM, PBR, однопроходный SSAO, FXAA, motion blur, lens distortion, film grain, bloom. Картинка, которую он выдает - максимум, что на сегодняшний день можно выжать из Xtreme3D. Используется Xtreme3D 3.6.

Скачать (24,5 Мб)


Круги на воде

Автор: Gecko

В Xtreme3D есть встроенный объект воды (Water), имитирующий волны путем смещения геометрии плоскости, однако он применим далеко не в любых ситуациях - например, им сложно сделать большие водоемы типа моря. Благодаря поддержке шейдеров, в Xtreme3D 3.x можно реализовать альтернативные методы рендеринга воды. Например, можно сымитировать волны и рябь при помощи сдвига двух карт нормалей - это показано в примере sea-water в SDK. Но такой способ позволяет воссоздать лишь равномерную рябь, но не круги от дождевых капель, которые получаются во встроенной воде. Поэтому мы подготовили еще один шейдер воды, основанный на методе Себастьяна Лагарда. Он генерирует анимированные круги от капель на основе специальной текстуры, путем совмещения нескольких ее слоев с разным масштабом и сдвигом по времени. В отличие от встроенной воды, вручную создавать отдельные капли тут нельзя, но есть возможность регулировать интенсивность дождя. Результат получается очень качественный и быстрый - самое то, если нужно покрыть лужами обширную территорию. Используется Xtreme3D 3.4.

Скачать (3,7 Мб)


Ландшафт с динамическим освещением и сплаттингом + вода

Автор: Gecko

Стандартной техникой текстурирования ландшафта в Xtreme3D 2.0 было наложение основной цветовой текстуры + повторяющейся текстуры детализации (detail map). Но такой способ не позволяет сделать разную детализацию в разных частях ландшафта - например, где-то должен быть песок, а где-то трава. В Xtreme3D 3.x эта проблема решается при помощи GLSL-шейдера, реализующего так называемый сплаттинг - мультитекстурирование по маске: то есть, используется интерполяция цвета по черно-белому изображению с плавными переходами. Сами текстуры могут быть абсолютно любые, и их можно тайлить путем умножения текстурных координат.

Данный пример для простоты использует только две текстуры и карту высот в качестве маски - но шейдер можно легко расширить, добавив новые текстуры. Поскольку для маски используется только один канал изображения, можно передать через одну RGBA-текстуру 4 разные маски - это позволяет сделать очень красивый ландшафт без перерасхода текстурных блоков.

Также данный пример демонстрирует динамическое освещение ландшафта, ставшее возможным в новых версиях Xtreme3D. Поскольку объект Terrain не генерирует нормали, в старом Xtreme3D приходилось довольствоваться лишь статической картой освещения. Данный пример показывает, как сгенерировать из карты высот карту нормалей и использовать ее для расчета освещенности от направленного источника света (солнца).

Дополнительно в этом примере рендерится анимированная вода с отражениями, а также небесный купол с солнцем и звездами (объект Skydome) - можно использовать этот пример как основу для игры с открытым миром. Используется Xtreme3D 3.4.

Скачать (5,8 Мб)


Огонь

Автор: Gecko

Шейдер анимированного огня по методу Clockwork Chilli. Аналогичный шейдер есть для Ultimate3D в демке "Fire and Water", но этот значительно лучше. Для создания огня используется биллборд и всего одна статичная RGBA-текстура (в канале B хранится маска пламени, а в остальных - три разных вида шума, для цвета и прозрачности). В архиве два варианта шейдера: с эффектом heat haze и без. Используется Xtreme3D 3.4.

Скачать (1,9 Мб)


Постобработка

Автор: Gecko

Старые версии Xtreme3D располагали довольно ограниченными возможностями постобработки, чего не скажешь о Xtreme3D 3.x. Данный набор примеров включает целых девять эффектов постобработки:
1. Свечение (bloom или glow). Это эффект светового ореола вокруг ярких светящихся объектов.
2. Хроматическая аберрация с оптическим искажением (chromatic aberration / lens distortion). Это артефакт, возникающий в системе линз камеры - он довольно часто используется в современных играх для придания картинке кинематографичности.
3. Размытие при движении при быстром повороте камеры (camera motion blur) - тоже кинематографический эффект, который повышает эффект присутствия. Если быстро повернуться, картинка смажется, причем эффект тем сильнее, чем ниже частота кадров - как и в реальной камере.
4. Круговое размытие (radial blur). Этот эффект чем-то похож на встроенный Blur в Xtreme3D - можно использовать его для передачи ощущения быстрого движения.
5. SSAO (screen space ambient occlusion). Это упрощенный вариант ambient occlusion, эффекта затенения на объектах. SSAO работает полностью в экранном пространстве, на основе анализа буфера глубины. Результат получается достаточно упрощенный по сравнению с "честным" AO, но для графики реального времени вполне сносный.
6. Глубина резкости (depth of field, DOF). Это еще один оптический артефакт, который часто используется в фотографии: объекты заднего плана выглядят размытыми, а объекты переднего - четкими (либо наоборот, в зависимости от фокуса). Эффект довольно "тяжелый" для использования в реальном времени, но очень красивый. В данном примере используется автофокус - резкость "наводится" на объект, который находится в центре экрана.
7. FXAA. Популярный метод антиалиасинга (сглаживания) - часто используется вместо стандартного MSAA, встроенного в видеодрайвер. FXAA позволяет получить очень качественное сглаживание при минимальных затратах производительности.
8. "Лучи бога" или крепускулярные лучи (God rays). Это эффект рассеивающегося в атмосфере света от яркого источника, лучи которого красиво пробиваются сквозь объекты-препятствия.
9. Искажение (distortion). Эффект, похожий на рельефное стекло.
Все эффекты реализованы при помощи шейдеров GLSL и рендеринга в MemoryViewer или FBO. Используется Xtreme3D 3.4.

Скачать (4,5 Мб)


3D Mouse

Автор: Gecko

Конвертация экранных координат в трехмерные при помощи новой функции ViewerScreenToVector. Это адаптация аналогичного примера для Xtreme3D 2.0, в котором показано, как использовать курсор мыши для управления движением объекта в плоскости XZ. Пример можно использовать для реализации различных пользовательских интерфейсов. Используется Xtreme3D 3.4.

Скачать (1 Мб)


Футуристические гонки (Xtreme3D 2.0)

Автор: Gecko

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

Скачать (4,8 Мб)


3D-платформер (Xtreme3D 2.0)

Автор: Gecko

Движок трехмерного платформера от третьего лица, наподобие таких игр, как Spyro the Dragon, Crash Bandicoot, Gex и т.д. Имеет собственную не требовательную к ресурсам систему столкновений, основанную на коллайдерах. Поддерживается анимация движений (бег, прыжок, стрельба) с соответствующими звуковыми эффектами, сохранение и загрузка настроек из ini-файла, загрузка модели уровня с картой освещения и многое другое.

Скачать (3,5 Мб)


Демо "Star Cross" (Xtreme3D 2.0)

Автор: Gecko

Движок космического шутера. Игрок управляет истребителем при помощи клавиатуры или джойстика, причем программа сама определит, подключено ли игровое устройство, и переориентирует управление на него. Есть несколько симпатичных эффектов - размытие (motionblur) и частицы в качестве пролетающей мимо "космической пыли". Прилагается интеллектуальная система подбора саундтрека - вы не услышите одну и ту же мелодию два раза подряд (что обычно очень надоедает). В качестве аудиопроигрывателя прилагается система BGM.

Скачать (2,2 Мб)


Berich Engine (Xtreme3D 2.0)

Автор: Анатолий Бербека

Интересная разработка с использованием Xtreme3D - движок шутера в стиле Counter Strike с поддержкой вида от первого/третьего лица, смены оружия, анимации атаки и перезарядки, анимации персонажа, карты уровня с полной проверкой столкновений.

Скачать (11,4 Мб)


Quake Engine (Xtreme3D 2.0)

Автор: DJB Master

Движок FPS наподобие Quake. Демонстрирует некоторые базовые возможности Xtreme3D: загрузку моделей и спрайтов, управление камерой при помощи мыши, менеджер FPS для проверки столкновений, небесный купол (Skydome) и, наконец, анимированную воду.

Скачать (1,8 Мб)


Архив примеров Xtreme3D 2.0

Автор: Gecko

Коллекция старых примеров с сайта http://xtreme3d.narod.ru. Архив включает 26 примеров Xtreme3D 2.0.2.0, созданных администратором сайта Gecko в 2008-2009 годах. Многие из них могут быть с минимальными изменениями портированы на Xtreme3D 3.x.

Включены следующие примеры: Автомобиль, 3D Mouse, 3D-звук, Анимированная текстура, SMD Skeleton, Bump Mapping, Get Clicked Object, CSM, Демо "Стрекоза", FPS Tech Demo, Glow, Anti-Aliasing, Lightsaber, Polygon Terrain, Octree, Offscreen Rendering, Parallax Mapping, Частицы, Pencils Primitive Demo, Raycasting, Ландшафт 2, Volumetric Spotlight, Water.

Скачать (3,6 Мб)


Примеры ODE для Xtreme3D 2.0

Автор: Gecko

Демонстрируют создание твердых тел, висящей цепи и ragdoll. Прилагается руководство по ODE на русском языке.

Скачать (1,2 Мб)


Пример игры от первого лица для Xtreme3D 2.0

Автор: Gecko

Демонстрация камеры от первого лица, привязки оружия к камере, проверки столкновений с картой с использованием DCE.

Скачать (1 Мб)


Пример игры от третьего лица для Xtreme3D 2.0

Автор: Gecko

Демонстрация камеры от третьего лица, анимации персонажа, проверки столкновений с использованием DCE.

Скачать (1,3 Мб)


Примеры к урокам по созданию игры от третьего лица для Xtreme3D 2.0

Автор: Gecko

Демонстрации к урокам из журнала "FPS" (№№ 2 и 3). Показывают, как сделать камеру от третьего лица и анимацию персонажа.

Скачать (1,5 Мб)


Примеры игр от первого лица для Xtreme3D 2.0 от сторонних авторов

Найдены нами когда-то на просторах Интернета.

Скачать (2,8 Мб)

Скачать (3,4 Мб)


Примеры для Xtreme3D старых версий

Автор: Bami

Примеры использования Xtreme3D 1.9 от Bami. В числе прочего, есть аналоговые 3D-часы.

Скачать (500 кб)