Северный (Арктический) федеральный университет им. М.В. Ломоносова
Опубликован: 23.10.2013 | Доступ: свободный | Студентов: 1822 / 663 | Длительность: 09:26:00
Специальности: Программист
Лекция 7:

Поддержка игровых процессоров (движков) и базовых средств разработки

Аннотация: Взаимодействие с openFrameworks. OpenFrameworks: понятия, возможности, функционал. Взаимодействие Intel Perceptual Computing SDK c openFrameworks.

Введение

Презентацию к лекции можно скачать здесь.

Современный мир невозможно представить без игровой индустрии. После того как компьютеры стали доступны в каждом доме, дети с самого малого возраста приучаются к мышке и клавиатуре. 30% времени, проведенного за компьютером, современный человек проводит в играх.

Игровой процессор и базовые средства разработки: понятия, возможности, функционал

Игровой процессор включает в себя инструменты, созданные для упрощения и ускорения процесса разработки игр, процессор определяет логику игры.

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

Игровые процессоры и базовые средства разработки и Intel® Perceptual Computing SDK

Intel Perceptual Computing SDK поддерживает следующие игровые процессоры и базовые средства разработки:

  • Unity PRO 3.5.1f2 (или более поздний);
  • Processing 1.5.1 (или более поздний);
  • openFrameworks v0071 (или более поздний).

Процессор openFrameworks поддерживает SDK функции или утилиты в исходном формате, остальные в работе с SDK основываются на библиотеке libpxcupipeline, обеспечивающей приспособление класса UtilPipeline, который предоставляет простой доступ к следующим возможностям:

  • Захват цветного изображения
  • Определение положения лица, а также определение и отслеживание основных маркеров
  • Отслеживание рук и пальцев, распознавание поз и жестов

Работа любого приложения проходит через несколько этапов:

  • Инициализация

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

  • Обработка данных

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

Между функциями AcquireFrame и ReleaseFrame приложение может вызвать серию запросов функций для получения результатов обработки.

  • Завершение работы

Приложение использует функцию Close для закрытия конвейера и освобождения всех ресурсов.

Игровой процессор Unity* (настройка окружения, простейший пример)

Unity (или Unity3D) – кроссплатформенный игровой процессор имеет встроенную интегрированную среду разработки, создан Unity Technologies. Свыше миллиона разработчиков используют Unity при создании видео игр для различных платформ.

Рендеринг в Unity

Графический процессор использует Direct3D (Windows, XBOX 360), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS) и собственные API (Wii).

Поддерживаемые возможности:

  • рельефные преобразования;
  • зеркальные отражения;
  • преобразования смещения;
  • алгоритм SSAO, работающий в режиме реального времени и имитирующий рассеянное непрямое освещение и соответствующее затенение в трёхмерном виртуальном пространстве;
  • динамические тени, используются растровые изображения теней.

Unity поддерживает форматы файлов и 3D модели, созданные в 3Ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Chetah 3D, Adobe Photoshop, Adobe Fireworks и Allegorithmic Substance. Созданные с помощью любого из перечисленных приложений 3D объекты могут быть добавлены в игровой проект и управляться из графического пользовательского интерфейса Unity.

Перед началом использования среда Unity должна быть подготовлена следующим образом:

  1. Необходимо в рабочем каталоге создать папки Assets/Plugins
  2. Необходимо скопировать в созданную папку из папки framework\Unity\hellounity\Assets\Plugins файлы:
    • libpxcupipeline.dll
    • pxcm-structures.cs
    • pxcupipeline.cs

Код представленный ниже определяет простое Unity приложение, которое отображает изображение жеста на элемент mainTexture. Пример вызывает функцию Init в функции Start(), вызывает функцию Close в OnDisable(), обработка данных ведется в функции Update(). Пример использует функцию QueryLabelMapAsImage для получения изображения жеста.

using UnityEngine;
using System;
using System.Runtime.InteropServices;
public class TexturePlayback : MonoBehaviour {
   private Color[] px;
   private Texture2D tt;
   private PXCUPipeline pp;
   void Start () {
       pp=new PXCUPipeline();
       pp.Init(PXCUPipeline.Mode.GESTURE);
       int[] size=new int[2];
       pp.QueryLabelMapSize(size);
       tt=new Texture2D(size[0],size[1],TextureFormat.ARGB32,false);
       renderer.material.mainTexture=tt;
   } 
   void OnDisable() {
       pp.Close();
   }
   void Update () {
       if (!pp.AcquireFrame(false)) return;
       if (pp.QueryLabelMapAsImage(tt)) tt.Apply();
       pp.ReleaseFrame();
   }
}

Результат работы данного приложения выглядит следующим образом:

Вид окна простого Unity приложения

увеличить изображение
Рис. 12.1. Вид окна простого Unity приложения
Гульзия Калымова
Гульзия Калымова
Александр Радченко
Александр Радченко