/KylesAR

Mixed Reality engine for Windows

Primary LanguageC

kibblesAR

Old YouTube videos: https://youtube.com/playlist?list=PLKdRBHTpsOSBgkMJFtvumOGwBd91xSBhG

This program started life as an optical tracking algorithm that now lives in Tracking/Fiducial.cpp

Now it can do a few things: - interact with a few user controls like buttons and a handheld remote

- supports generic cameras, special Intel R200 support

- fuse multiple tracking algorithms

- manage augmented objects with bindings

- utilize RGBD data for occlusion and occlusion feedback

- launch and interact with Windows programs

- dewarp and render to actual see-through AR glasses

- track the user's eyes for intense immersion

reality

augmented

|	objects

|	|	contnet

|	|	regions

|	|	surfaces

|	|	poses

|		|	landmark

|		|	input

|		|	user

real

|	mesh

|	weather, time, global location etc

|	computer

|	|	glasses

|		|	display

|		|	input device

reality/augmented/objects/content must be bound in one of these ways

HUD	-	- content is put on a flat, fullscreen overlay using no tracking of any kind

PARENT	-	- content is attached to a parent object in the real world

WORLD	-	- content exists in the world independant of other objects

PERSONAL	- content floats within reach using a fusion of Compass/IMU/Optical

PURGATORY	- content is not drawn or updated (usually used with WAIT)

Main classes: Context - - - Rendering context with built in shaders and passes

Fiducial	-	- Fiducial marker tracking service

HandheldInput	-	- Simple input device

LightTracker	-	- Template for a light tracking service

PerceptionTracker	- A wrapper class around the R200 scene perception

PositionTracker	-	- Template for a position tracking service

R200	-	-	- Specific Intel Realsense R200 implementation

Scene	-	-	- Holds objects and poses

SceneObject	-	- Template for augmented objects in scene

Shader	-	-	- A set of .vert .geo .frag shader source files

TouchInput	-	- Uses occlusion feedback to implement multitouch

TrackingService	-	- Puts all trackers together and does fusion

WindowsIntegration	- Supports sending messages and grabbing screenbuffer