Презентацию к лекции можно скачать здесь.
Современный мир невозможно представить без игровой индустрии. После того как компьютеры стали доступны в каждом доме, дети с самого малого возраста приучаются к мышке и клавиатуре. 30% времени, проведенного за компьютером, современный человек проводит в играх.
Игровой процессор включает в себя инструменты, созданные для упрощения и ускорения процесса разработки игр, процессор определяет логику игры.
Базовые средства разработки или фреймворк в информационных системах структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек.
Intel Perceptual Computing SDK поддерживает следующие игровые процессоры и базовые средства разработки:
Процессор openFrameworks поддерживает SDK функции или утилиты в исходном формате, остальные в работе с SDK основываются на библиотеке libpxcupipeline, обеспечивающей приспособление класса UtilPipeline, который предоставляет простой доступ к следующим возможностям:
Работа любого приложения проходит через несколько этапов:
Приложение использует функцию Init для инициализации конвейера, который объединяет в себе обработку цветных изображений, определение и отслеживание положения лица и основных маркеров, а также отслеживание рук и пальцев, распознавание поз и жестов.
На этом этапе поочередно вызываются две функции. Функция AcquireFrame ожидает завершения обработки текущего фрейма и блокирует результаты обработки, а функция ReleaseFrame снимает блок и подготавливает следующий фрейм для обработки.
Между функциями AcquireFrame и ReleaseFrame приложение может вызвать серию запросов функций для получения результатов обработки.
Приложение использует функцию Close для закрытия конвейера и освобождения всех ресурсов.
Unity (или Unity3D) – кроссплатформенный игровой процессор имеет встроенную интегрированную среду разработки, создан Unity Technologies. Свыше миллиона разработчиков используют Unity при создании видео игр для различных платформ.
Рендеринг в Unity
Графический процессор использует Direct3D (Windows, XBOX 360), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS) и собственные API (Wii).
Поддерживаемые возможности:
Unity поддерживает форматы файлов и 3D модели, созданные в 3Ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Chetah 3D, Adobe Photoshop, Adobe Fireworks и Allegorithmic Substance. Созданные с помощью любого из перечисленных приложений 3D объекты могут быть добавлены в игровой проект и управляться из графического пользовательского интерфейса Unity.
Перед началом использования среда Unity должна быть подготовлена следующим образом:
framework\Unity\hellounity\Assets\Plugins файлы:
libpxcupipeline.dllpxcm-structures.cspxcupipeline.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();
}
}
Результат работы данного приложения выглядит следующим образом:
(рис 12.1) Вид окна простого Unity приложения
Processing объединяет в себе язык программирования с открытым исходным кодом и интегрированную среду разработки, полученные средства разработки преследуют цель обучения программированию в графической среде и служит основой для электронного альбома для рисунков. Основная цель среды Processing состоит в том, чтобы служить инструментом, позволяющим людям далеким от программирования начать программировать и незамедлительно видеть результаты своей работы. Язык построен на основе языка программирования Java, но использует упрощенный синтаксис и графическую модель программирования.
Для использования Processing framework скопируйте директорию framework\Processing\libraries вместе со всеми поддиректориями в рабочую папку.
Представленный ниже код демонстрирует простое Processing приложение, которое отображает захваченное изображение на канву. Пример вызывает функцию Init в функции setup(), обработка данных ведется в функции draw(). Пример использует функцию QueryLabelMapAsImage для получения изображения и рисования на холсте. Функция Close в этом примере не используется.
import intel.pcsdk.*;
private PImage display;
private PXCUPipeline pp;
void setup() {
pp=new PXCUPipeline(this);
pp.Init(PXCUPipeline.GESTURE);
int[] size=new int[2];
pp.QueryLabelMapSize(size);
display=createImage(size[0],size[1],RGB);
}
void draw() {
if (!pp.AcquireFrame(false)) return;
if (pp.QueryLabelMapAsImage(display)) image(display,0,0);
pp.ReleaseFrame();
}
Результаты работы данного приложения можно увидеть на рис 12.2.
(рис 12.2) Скриншот простого Processing* приложения
openFramework – набор инструментальных средств с открытым кодом, разработанный для "творческого кодирования", написан на С++ и может работать под Windows, MacOS X, Linux, iOS и Android.
OpenFramework концентрируется на "творчестве" и использует изображения, в этом он похож на фреймворк Processing, оба эти проекта предоставляют простой интерфейс к мощным библиотекам. Главное отличие openFramework от Processing состоит в используемом языке, первый написан на С++ тогда как второй на Java. Многие пользователи отмечают сходство этих двух библиотек.
При создании openFrameworks приложения необходимо импортировать список свойств props/VS2010-12.Integration.MD.props.
или выполнить следующие установки:
| Include Path | $(PCSDK_DIR)/include; $(PCSDK_DIR)/sample/common/include; $(PCSDK_DIR)/sample/common/res |
| Additional library file | src/libpxc/libpxc.cpp |
| Additional utility files | util_capture.cpp, util_capture_file.cpp, util_captureimpl.cpp, util_pipeline_face.cpp, util_pipeline_gesture.cpp, util_pipeline_raw.cpp, util_pipeline_voice.cpp |
Представленный ниже код демонстрирует пример простого openFrameworks приложения, которое отображает захваченное изображение на текстуру. Приложение использует класс UtilPipeline для создания конвейера отслеживания пальцев и получает изображение.
#include "ofAppGlutWindow.h"
#include "ofMain.h"
#include "util_pipeline.h"
class testApp:public ofBaseApp {
public:
void setup();
void draw();
protected:
ofEasyCam camera;
ofTexture texture;
UtilPipeline pp;
};
void testApp::setup() {
ofSetVerticalSync(true);
ofDisableNormalizedTexCoords();
glEnable(GL_DEPTH_TEST);
camera.setDistance(640);
pp.EnableGesture();
pp.Init();
pxcU32 ww, hh;
pp.QueryImageSize(PXCImage::IMAGE_TYPE_DEPTH,ww,hh);
texture.allocate(ww,hh,GL_LUMINANCE);
ofDisableDataPath();
}
void testApp::draw() {
if (pp.AcquireFrame(false)) {
PXCImage *im;
if (pp.QueryGesture()-> QueryBlobImage(PXCGesture::Blob::LABEL_SCENE,0,im)>= PXC_STATUS_NO_ERROR) {
PXCImage::ImageData data;
if (im-> AcquireAccess(PXCImage::ACCESS_READ,data)>=PXC_STATUS_NO_ERROR) {
texture.loadData(data.planes[0],texture.getWidth(),texture.getHeight(),GL_LUMINANCE);
im->ReleaseAccess(data);
}
}
pp.ReleaseFrame();
}
ofBackground(0,0,128);
ofSetColor(255);
camera.begin();
ofRotateX(ofRadToDeg(.5));
ofRotateY(ofRadToDeg(-.5));
texture.draw(0,0);
camera.end();
}
int main() {
ofAppGlutWindow window; // create a window
ofSetupOpenGL(window, 1024, 768, OF_WINDOW);
ofRunApp(new testApp()); // start the app
}
Результат работы приложения можно посмотреть на рис 12.3
(рис 12.3) Скриншот простого openFrameworks приложения
Контрольные вопросы:
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.