Поддержка игровых процессоров (движков) и базовых средств разработки
Базовые средства разработки (фреймворк) Processing* (настройка окружения, простейший пример)
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.
openFramework* (настройка окружения, простейший пример)
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
Контрольные вопросы:
- Чем различаются понятия: игровой процессор (движок) и базовые средства разработки (фреймворк)?
- В чем основные особенности и возможности игрового процессора Unity?
- В чем особенности создания Unity приложений с использованием Intel Perceptual Computing SDK?
- В чем основные особенности и возможности базовых средств разработки Processing framework?
- В чем особенности создания Processing приложений с использованием Intel Perceptual Computing SDK?
- В чем основные особенности и возможности базовых средств разработки openFramework?
- В чем особенности создания openFramework приложений с использованием Intel Perceptual Computing SDK?