mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 20:13:40 +02:00
Starting on Visage integration.
This commit is contained in:
parent
9851d01411
commit
25066f8b4f
6 changed files with 131 additions and 3 deletions
|
@ -0,0 +1,44 @@
|
||||||
|
# Try to find the Visage controller library
|
||||||
|
#
|
||||||
|
# You must provide a VISAGE_ROOT_DIR which contains lib and include directories
|
||||||
|
#
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# VISAGE_FOUND - system found Visage
|
||||||
|
# VISAGE_INCLUDE_DIRS - the Visage include directory
|
||||||
|
# VISAGE_LIBRARIES - Link this to use Visage
|
||||||
|
#
|
||||||
|
# Created on 2/11/2014 by Andrzej Kapolka
|
||||||
|
# Copyright (c) 2014 High Fidelity
|
||||||
|
#
|
||||||
|
|
||||||
|
if (VISAGE_LIBRARIES AND VISAGE_INCLUDE_DIRS)
|
||||||
|
# in cache already
|
||||||
|
set(VISAGE_FOUND TRUE)
|
||||||
|
else (VISAGE_LIBRARIES AND VISAGE_INCLUDE_DIRS)
|
||||||
|
find_path(VISAGE_INCLUDE_DIRS VisageTracker2.h ${VISAGE_ROOT_DIR}/include)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
find_library(VISAGE_LIBRARIES libvscore.a ${VISAGE_ROOT_DIR}/lib)
|
||||||
|
elseif (WIN32)
|
||||||
|
find_library(VISAGE_LIBRARIES vscore.dll ${VISAGE_ROOT_DIR}/lib)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (VISAGE_INCLUDE_DIRS AND VISAGE_LIBRARIES)
|
||||||
|
set(VISAGE_FOUND TRUE)
|
||||||
|
endif (VISAGE_INCLUDE_DIRS AND VISAGE_LIBRARIES)
|
||||||
|
|
||||||
|
if (VISAGE_FOUND)
|
||||||
|
if (NOT VISAGE_FIND_QUIETLY)
|
||||||
|
message(STATUS "Found Visage: ${VISAGE_LIBRARIES}")
|
||||||
|
endif (NOT VISAGE_FIND_QUIETLY)
|
||||||
|
else (VISAGE_FOUND)
|
||||||
|
if (VISAGE_FIND_REQUIRED)
|
||||||
|
message(FATAL_ERROR "Could not find Visage")
|
||||||
|
endif (VISAGE_FIND_REQUIRED)
|
||||||
|
endif (VISAGE_FOUND)
|
||||||
|
|
||||||
|
# show the VISAGE_INCLUDE_DIRS and VISAGE_LIBRARIES variables only in the advanced view
|
||||||
|
mark_as_advanced(VISAGE_INCLUDE_DIRS VISAGE_LIBRARIES)
|
||||||
|
|
||||||
|
endif (VISAGE_LIBRARIES AND VISAGE_INCLUDE_DIRS)
|
|
@ -11,6 +11,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake
|
||||||
set(FACESHIFT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/faceshift)
|
set(FACESHIFT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/faceshift)
|
||||||
set(LIBOVR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LibOVR)
|
set(LIBOVR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LibOVR)
|
||||||
set(SIXENSE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/Sixense)
|
set(SIXENSE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/Sixense)
|
||||||
|
set(VISAGE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/visage)
|
||||||
|
|
||||||
if (DEFINED ENV{JOB_ID})
|
if (DEFINED ENV{JOB_ID})
|
||||||
set(BUILD_SEQ $ENV{JOB_ID})
|
set(BUILD_SEQ $ENV{JOB_ID})
|
||||||
|
@ -132,9 +133,10 @@ find_package(Faceshift)
|
||||||
find_package(GLM REQUIRED)
|
find_package(GLM REQUIRED)
|
||||||
find_package(LibOVR)
|
find_package(LibOVR)
|
||||||
find_package(Sixense)
|
find_package(Sixense)
|
||||||
|
find_package(Visage)
|
||||||
find_package(ZLIB)
|
find_package(ZLIB)
|
||||||
|
|
||||||
# likewise with Sixense library for Razer Hydra
|
# include the Sixense library for Razer Hydra if available
|
||||||
if (SIXENSE_FOUND AND NOT DISABLE_SIXENSE)
|
if (SIXENSE_FOUND AND NOT DISABLE_SIXENSE)
|
||||||
add_definitions(-DHAVE_SIXENSE)
|
add_definitions(-DHAVE_SIXENSE)
|
||||||
include_directories(SYSTEM ${SIXENSE_INCLUDE_DIRS})
|
include_directories(SYSTEM ${SIXENSE_INCLUDE_DIRS})
|
||||||
|
@ -144,6 +146,16 @@ if (SIXENSE_FOUND AND NOT DISABLE_SIXENSE)
|
||||||
target_link_libraries(${TARGET_NAME} ${SIXENSE_LIBRARIES})
|
target_link_libraries(${TARGET_NAME} ${SIXENSE_LIBRARIES})
|
||||||
endif (SIXENSE_FOUND AND NOT DISABLE_SIXENSE)
|
endif (SIXENSE_FOUND AND NOT DISABLE_SIXENSE)
|
||||||
|
|
||||||
|
# likewise with Visage library for webcam feature tracking
|
||||||
|
if (VISAGE_FOUND AND NOT DISABLE_VISAGE)
|
||||||
|
add_definitions(-DHAVE_VISAGE)
|
||||||
|
include_directories(SYSTEM ${VISAGE_INCLUDE_DIRS})
|
||||||
|
if (APPLE OR UNIX)
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${VISAGE_INCLUDE_DIRS}")
|
||||||
|
endif (APPLE OR UNIX)
|
||||||
|
target_link_libraries(${TARGET_NAME} ${VISAGE_LIBRARIES})
|
||||||
|
endif (VISAGE_FOUND AND NOT DISABLE_VISAGE)
|
||||||
|
|
||||||
# and with LibOVR for Oculus Rift
|
# and with LibOVR for Oculus Rift
|
||||||
if (LIBOVR_FOUND AND NOT DISABLE_LIBOVR)
|
if (LIBOVR_FOUND AND NOT DISABLE_LIBOVR)
|
||||||
add_definitions(-DHAVE_LIBOVR)
|
add_definitions(-DHAVE_LIBOVR)
|
||||||
|
|
10
interface/external/visage/readme.txt
vendored
10
interface/external/visage/readme.txt
vendored
|
@ -2,7 +2,13 @@
|
||||||
Instructions for adding the Visage driver to Interface
|
Instructions for adding the Visage driver to Interface
|
||||||
Andrzej Kapolka, February 11, 2014
|
Andrzej Kapolka, February 11, 2014
|
||||||
|
|
||||||
1. Copy the Visage sdk folders (lib, include) into the interface/external/visage folder. This readme.txt should be there as well.
|
1. Copy the Visage sdk folders (lib, include) into the interface/external/visage folder.
|
||||||
|
This readme.txt should be there as well.
|
||||||
|
|
||||||
2. Delete your build directory, run cmake and build, and you should be all set.
|
2. Copy the Visage configuration data folder (visageSDK-MacOS/Samples/MacOSX/data/) to interface/resources/visage
|
||||||
|
(i.e., so that interface/resources/visage/candide3.wfm is accessible)
|
||||||
|
|
||||||
|
3. Copy the Visage license file to interface/resources/visage/license.vlc.
|
||||||
|
|
||||||
|
4. Delete your build directory, run cmake and build, and you should be all set.
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#include "avatar/Profile.h"
|
#include "avatar/Profile.h"
|
||||||
#include "devices/Faceshift.h"
|
#include "devices/Faceshift.h"
|
||||||
#include "devices/SixenseManager.h"
|
#include "devices/SixenseManager.h"
|
||||||
|
#include "devices/Visage.h"
|
||||||
#include "renderer/AmbientOcclusionEffect.h"
|
#include "renderer/AmbientOcclusionEffect.h"
|
||||||
#include "renderer/GeometryCache.h"
|
#include "renderer/GeometryCache.h"
|
||||||
#include "renderer/GlowEffect.h"
|
#include "renderer/GlowEffect.h"
|
||||||
|
@ -378,6 +379,7 @@ private:
|
||||||
Profile _profile; // The data-server linked profile for this user
|
Profile _profile; // The data-server linked profile for this user
|
||||||
|
|
||||||
Faceshift _faceshift;
|
Faceshift _faceshift;
|
||||||
|
Visage _visage;
|
||||||
|
|
||||||
SixenseManager _sixenseManager;
|
SixenseManager _sixenseManager;
|
||||||
QStringList _activeScripts;
|
QStringList _activeScripts;
|
||||||
|
|
36
interface/src/devices/Visage.cpp
Normal file
36
interface/src/devices/Visage.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
//
|
||||||
|
// Visage.cpp
|
||||||
|
// interface
|
||||||
|
//
|
||||||
|
// Created by Andrzej Kapolka on 2/11/14.
|
||||||
|
// Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef HAVE_VISAGE
|
||||||
|
#include <VisageTracker2.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <SharedUtil.h>
|
||||||
|
|
||||||
|
#include "Visage.h"
|
||||||
|
|
||||||
|
namespace VisageSDK {
|
||||||
|
void initializeLicenseManager(char* licenseKeyFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace VisageSDK;
|
||||||
|
|
||||||
|
Visage::Visage() {
|
||||||
|
#ifdef HAVE_VISAGE
|
||||||
|
switchToResourcesParentIfRequired();
|
||||||
|
initializeLicenseManager("resources/visage/license.vlc");
|
||||||
|
_tracker = new VisageTracker2("resources/visage/Facial Features Tracker - Asymmetric.cfg");
|
||||||
|
_tracker->trackFromCam();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Visage::~Visage() {
|
||||||
|
#ifdef HAVE_VISAGE
|
||||||
|
delete _tracker;
|
||||||
|
#endif
|
||||||
|
}
|
28
interface/src/devices/Visage.h
Normal file
28
interface/src/devices/Visage.h
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
//
|
||||||
|
// Visage.h
|
||||||
|
// interface
|
||||||
|
//
|
||||||
|
// Created by Andrzej Kapolka on 2/11/14.
|
||||||
|
// Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef __interface__Visage__
|
||||||
|
#define __interface__Visage__
|
||||||
|
|
||||||
|
namespace VisageSDK {
|
||||||
|
class VisageTracker2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Handles input from the Visage webcam feature tracking software.
|
||||||
|
class Visage {
|
||||||
|
public:
|
||||||
|
|
||||||
|
Visage();
|
||||||
|
~Visage();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
VisageSDK::VisageTracker2* _tracker;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* defined(__interface__Visage__) */
|
Loading…
Reference in a new issue