Xtreme3D3D-движок для Game Maker: SDK, документация, утилиты, игры
Главная / Быстрый старт с Xtreme3D

Быстрый старт с Xtreme3D

Первая сцена в Xtreme3D занимает около двадцати строк кода: подключить библиотеку, создать окно просмотра, свет, плоскость и камеру, а затем в каждом шаге игры рисовать кадр.

Пример рассчитан на классический Game Maker с подключением DLL и версией 3.x; в 4.x для GameMaker Studio 2 библиотека подключается как расширение, но имена функций остаются теми же.

Шаг 1. Подключите движок

В событии создания (Create) загрузите библиотеку и инициализируйте движок:

Dll_init('xtreme3d.dll');
EngineCreate();

Шаг 2. Создайте окно просмотра

Viewer — это область окна, куда движок выводит изображение. Включите освещение:

view = ViewerCreate(window_handle(), 0, 0, 640, 480);
ViewerSetLighting(view, 1);

Шаг 3. Добавьте источник света

light = LightCreate(lsOmni, 0);
ObjectSetPosition(light, 0, 18, 0);

Всенаправленный источник (lsOmni) освещает сцену во все стороны. Последний параметр функции — родительский объект; ноль означает, что родителя нет.

Шаг 4. Постройте иерархию сцены

Обычно в корне создают несколько «пустых» объектов-контейнеров (DummyCube), к которым затем привязывают всё остальное:

global.back  = DummycubeCreate(0);
global.scene = DummycubeCreate(0);
global.front = DummycubeCreate(0);

Порядок контейнеров влияет на порядок отрисовки: «задний» план, основная сцена и «передний» план.

Шаг 5. Создайте плоскость

plane = PlaneCreate(0, 64, 64, 8, 8, global.scene);
ObjectPitch(plane, 90);

Плоскость размером 64 на 64 разбита на сетку 8 на 8. Поворот на 90 градусов по тангажу кладёт её горизонтально — получается пол.

Шаг 6. Настройте камеру

camPos = DummycubeCreate(global.scene);
ObjectSetPosition(camPos, 0, 10, 0);
camera = CameraCreate(camPos);
ViewerSetCamera(view, camera);
Set_automatic_draw(0);

Камеру удобно привязывать к отдельному контейнеру: двигая и поворачивая его, вы управляете «взглядом» в сцене. Отключение автоматической отрисовки Game Maker передаёт вывод кадра движку.

Шаг 7. Рисуйте кадр

В событии шага (Step) обновите состояние движка и отрисуйте сцену:

Update(1.0/room_speed);
ViewerRender(view);

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

Что изучать дальше

Справочник функций входит в состав SDK, а подготовить инструменты помогут утилиты для 3D-разработки. Если что-то не получается, загляните в FAQ.