From 0e2a99a5a164e11a901d902449be200b6c6b35a7 Mon Sep 17 00:00:00 2001 From: EnoxSoftware Date: Mon, 13 Feb 2017 14:01:23 +0900 Subject: [PATCH] update 1.0.2 --- .../MarkerLessARExample.meta | 0 .../MarkerLessARExample}/MarkerLessAR.meta | 0 .../MarkerLessAR/DebugHelpers.cs | 0 .../MarkerLessAR/DebugHelpers.cs.meta | 0 .../MarkerLessAR/Pattern.cs | 0 .../MarkerLessAR/Pattern.cs.meta | 0 .../MarkerLessAR/PatternDetector.cs | 0 .../MarkerLessAR/PatternDetector.cs.meta | 0 .../MarkerLessAR/PatternTrackingInfo.cs | 0 .../MarkerLessAR/PatternTrackingInfo.cs.meta | 0 .../MarkerLessARExample}/Materials.meta | 0 .../Materials/axes_x_material.mat | 0 .../Materials/axes_x_material.mat.meta | 0 .../Materials/axes_y_material.mat | 0 .../Materials/axes_y_material.mat.meta | 0 .../Materials/axes_z_material.mat | 0 .../Materials/axes_z_material.mat.meta | 0 .../Materials/cube_material.mat | 0 .../Materials/cube_material.mat.meta | 0 .../Materials/quad_material.mat | 0 .../Materials/quad_material.mat.meta | 0 .../Materials/sphere_material.mat | 0 .../Materials/sphere_material.mat.meta | 0 .../MarkerLessARExample}/Prefabs.meta | 0 .../Prefabs/ARCamera.prefab | 0 .../Prefabs/ARCamera.prefab.meta | 0 .../Prefabs/Axes_X.prefab | 0 .../Prefabs/Axes_X.prefab.meta | 0 .../Prefabs/Axes_Y.prefab | 0 .../Prefabs/Axes_Y.prefab.meta | 0 .../Prefabs/Axes_Z.prefab | 0 .../Prefabs/Axes_Z.prefab.meta | 0 .../MarkerLessARExample}/Prefabs/Cube.prefab | 0 .../Prefabs/Cube.prefab.meta | 0 .../Prefabs/Sphere.prefab | 0 .../Prefabs/Sphere.prefab.meta | 0 .../MarkerLessARExample}/Prefabs/Video.prefab | 0 .../Prefabs/Video.prefab.meta | 0 Assets/MarkerLessARExample/ReadMe.pdf | Bin 0 -> 206524 bytes .../MarkerLessARExample}/ReadMe.pdf.meta | 0 .../MarkerLessARExample}/Resources.meta | 0 .../Resources/LoadingIcon.png | Bin .../Resources/LoadingIcon.png.meta | 0 .../Resources/PatternImage.jpg | Bin .../Resources/PatternImage.jpg.meta | 0 .../Resources/PatternImage2.jpg | Bin .../Resources/PatternImage2.jpg.meta | 0 .../Resources/TestImage.jpg | Bin .../Resources/TestImage.jpg.meta | 0 .../Resources/TestImage1.jpg | Bin .../Resources/TestImage1.jpg.meta | 0 .../Resources/TestImage2.jpg | Bin .../Resources/TestImage2.jpg.meta | 0 .../MarkerLessARExample}/Scenes.meta | 0 .../Scenes/CapturePattern.unity | 2 +- .../Scenes/CapturePattern.unity.meta | 0 .../Scenes/MarkerLessARExample.unity | 12 +- .../Scenes/MarkerLessARExample.unity.meta | 0 .../Scenes/ShowLicense.unity | 2 +- .../Scenes/ShowLicense.unity.meta | 0 .../Scenes/Texture2DMarkerLessARExample.unity | 425 -------- .../Texture2DMarkerLessARExample.unity.meta | 0 .../WebCamTextureMarkerLessARExample.unity | 4 +- ...ebCamTextureMarkerLessARExample.unity.meta | 0 .../MarkerLessARExample}/Scripts.meta | 0 .../Scripts/CapturePattern.cs | 566 +++++----- .../Scripts/CapturePattern.cs.meta | 0 .../Scripts/MarkerLessARExample.cs | 102 +- .../Scripts/MarkerLessARExample.cs.meta | 0 .../Scripts/ShowLicense.cs | 68 +- .../Scripts/ShowLicense.cs.meta | 0 .../Scripts/Texture2DMarkerLessARExample.cs | 426 ++++---- .../Texture2DMarkerLessARExample.cs.meta | 0 Assets/MarkerLessARExample/Scripts/Utils.meta | 9 + .../Scripts/Utils}/ARUtils.cs | 2 +- .../Scripts/Utils}/ARUtils.cs.meta | 0 .../Scripts/Utils}/DelayableSetActive.cs | 142 +-- .../Scripts/Utils}/DelayableSetActive.cs.meta | 0 .../Scripts/Utils}/DisplayVideo.cs | 4 +- .../Scripts/Utils}/DisplayVideo.cs.meta | 0 .../Utils}/WebCamTextureToMatHelper.cs | 2 +- .../Utils}/WebCamTextureToMatHelper.cs.meta | 0 .../WebCamTextureMarkerLessARExample.cs | 978 +++++++++--------- .../WebCamTextureMarkerLessARExample.cs.meta | 0 .../StreamingAssets.meta | 0 .../StreamingAssets}/dance.avi | Bin .../StreamingAssets}/dance.avi.meta | 0 MarkerLessARSample/ReadMe.pdf | Bin 63415 -> 0 bytes README.md | 8 +- 89 files changed, 1169 insertions(+), 1583 deletions(-) rename MarkerLessARSample.meta => Assets/MarkerLessARExample.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/DebugHelpers.cs (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/DebugHelpers.cs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/Pattern.cs (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/Pattern.cs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/PatternDetector.cs (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/PatternDetector.cs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/PatternTrackingInfo.cs (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/MarkerLessAR/PatternTrackingInfo.cs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_x_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_x_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_y_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_y_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_z_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/axes_z_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/cube_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/cube_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/quad_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/quad_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/sphere_material.mat (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Materials/sphere_material.mat.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/ARCamera.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/ARCamera.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_X.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_X.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_Y.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_Y.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_Z.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Axes_Z.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Cube.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Cube.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Sphere.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Sphere.prefab.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Video.prefab (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Prefabs/Video.prefab.meta (100%) create mode 100644 Assets/MarkerLessARExample/ReadMe.pdf rename {MarkerLessARSample => Assets/MarkerLessARExample}/ReadMe.pdf.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/LoadingIcon.png (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/LoadingIcon.png.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/PatternImage.jpg (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/PatternImage.jpg.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/PatternImage2.jpg (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/PatternImage2.jpg.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage.jpg (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage.jpg.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage1.jpg (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage1.jpg.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage2.jpg (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Resources/TestImage2.jpg.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scenes.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scenes/CapturePattern.unity (99%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scenes/CapturePattern.unity.meta (100%) rename MarkerLessARSample/Scenes/MarkerLessARSample.unity => Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity (99%) rename MarkerLessARSample/Scenes/MarkerLessARSample.unity.meta => Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scenes/ShowLicense.unity (99%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scenes/ShowLicense.unity.meta (100%) rename MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity => Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity (76%) rename MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity.meta => Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity.meta (100%) rename MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity => Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity (99%) rename MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity.meta => Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scripts.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scripts/CapturePattern.cs (84%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scripts/CapturePattern.cs.meta (100%) rename MarkerLessARSample/Scripts/MarkerLessARSample.cs => Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs (62%) rename MarkerLessARSample/Scripts/MarkerLessARSample.cs.meta => Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs.meta (100%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scripts/ShowLicense.cs (79%) rename {MarkerLessARSample => Assets/MarkerLessARExample}/Scripts/ShowLicense.cs.meta (100%) rename MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs => Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs (94%) rename MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs.meta => Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs.meta (100%) create mode 100644 Assets/MarkerLessARExample/Scripts/Utils.meta rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/ARUtils.cs (96%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/ARUtils.cs.meta (100%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/DelayableSetActive.cs (95%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/DelayableSetActive.cs.meta (100%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/DisplayVideo.cs (95%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/DisplayVideo.cs.meta (100%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/WebCamTextureToMatHelper.cs (96%) rename {MarkerLessARSample/Scripts => Assets/MarkerLessARExample/Scripts/Utils}/WebCamTextureToMatHelper.cs.meta (100%) rename MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs => Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs (95%) rename MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs.meta => Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs.meta (100%) rename StreamingAssets.meta => Assets/StreamingAssets.meta (100%) rename {StreamingAssets => Assets/StreamingAssets}/dance.avi (100%) rename {StreamingAssets => Assets/StreamingAssets}/dance.avi.meta (100%) delete mode 100644 MarkerLessARSample/ReadMe.pdf diff --git a/MarkerLessARSample.meta b/Assets/MarkerLessARExample.meta similarity index 100% rename from MarkerLessARSample.meta rename to Assets/MarkerLessARExample.meta diff --git a/MarkerLessARSample/MarkerLessAR.meta b/Assets/MarkerLessARExample/MarkerLessAR.meta similarity index 100% rename from MarkerLessARSample/MarkerLessAR.meta rename to Assets/MarkerLessARExample/MarkerLessAR.meta diff --git a/MarkerLessARSample/MarkerLessAR/DebugHelpers.cs b/Assets/MarkerLessARExample/MarkerLessAR/DebugHelpers.cs similarity index 100% rename from MarkerLessARSample/MarkerLessAR/DebugHelpers.cs rename to Assets/MarkerLessARExample/MarkerLessAR/DebugHelpers.cs diff --git a/MarkerLessARSample/MarkerLessAR/DebugHelpers.cs.meta b/Assets/MarkerLessARExample/MarkerLessAR/DebugHelpers.cs.meta similarity index 100% rename from MarkerLessARSample/MarkerLessAR/DebugHelpers.cs.meta rename to Assets/MarkerLessARExample/MarkerLessAR/DebugHelpers.cs.meta diff --git a/MarkerLessARSample/MarkerLessAR/Pattern.cs b/Assets/MarkerLessARExample/MarkerLessAR/Pattern.cs similarity index 100% rename from MarkerLessARSample/MarkerLessAR/Pattern.cs rename to Assets/MarkerLessARExample/MarkerLessAR/Pattern.cs diff --git a/MarkerLessARSample/MarkerLessAR/Pattern.cs.meta b/Assets/MarkerLessARExample/MarkerLessAR/Pattern.cs.meta similarity index 100% rename from MarkerLessARSample/MarkerLessAR/Pattern.cs.meta rename to Assets/MarkerLessARExample/MarkerLessAR/Pattern.cs.meta diff --git a/MarkerLessARSample/MarkerLessAR/PatternDetector.cs b/Assets/MarkerLessARExample/MarkerLessAR/PatternDetector.cs similarity index 100% rename from MarkerLessARSample/MarkerLessAR/PatternDetector.cs rename to Assets/MarkerLessARExample/MarkerLessAR/PatternDetector.cs diff --git a/MarkerLessARSample/MarkerLessAR/PatternDetector.cs.meta b/Assets/MarkerLessARExample/MarkerLessAR/PatternDetector.cs.meta similarity index 100% rename from MarkerLessARSample/MarkerLessAR/PatternDetector.cs.meta rename to Assets/MarkerLessARExample/MarkerLessAR/PatternDetector.cs.meta diff --git a/MarkerLessARSample/MarkerLessAR/PatternTrackingInfo.cs b/Assets/MarkerLessARExample/MarkerLessAR/PatternTrackingInfo.cs similarity index 100% rename from MarkerLessARSample/MarkerLessAR/PatternTrackingInfo.cs rename to Assets/MarkerLessARExample/MarkerLessAR/PatternTrackingInfo.cs diff --git a/MarkerLessARSample/MarkerLessAR/PatternTrackingInfo.cs.meta b/Assets/MarkerLessARExample/MarkerLessAR/PatternTrackingInfo.cs.meta similarity index 100% rename from MarkerLessARSample/MarkerLessAR/PatternTrackingInfo.cs.meta rename to Assets/MarkerLessARExample/MarkerLessAR/PatternTrackingInfo.cs.meta diff --git a/MarkerLessARSample/Materials.meta b/Assets/MarkerLessARExample/Materials.meta similarity index 100% rename from MarkerLessARSample/Materials.meta rename to Assets/MarkerLessARExample/Materials.meta diff --git a/MarkerLessARSample/Materials/axes_x_material.mat b/Assets/MarkerLessARExample/Materials/axes_x_material.mat similarity index 100% rename from MarkerLessARSample/Materials/axes_x_material.mat rename to Assets/MarkerLessARExample/Materials/axes_x_material.mat diff --git a/MarkerLessARSample/Materials/axes_x_material.mat.meta b/Assets/MarkerLessARExample/Materials/axes_x_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/axes_x_material.mat.meta rename to Assets/MarkerLessARExample/Materials/axes_x_material.mat.meta diff --git a/MarkerLessARSample/Materials/axes_y_material.mat b/Assets/MarkerLessARExample/Materials/axes_y_material.mat similarity index 100% rename from MarkerLessARSample/Materials/axes_y_material.mat rename to Assets/MarkerLessARExample/Materials/axes_y_material.mat diff --git a/MarkerLessARSample/Materials/axes_y_material.mat.meta b/Assets/MarkerLessARExample/Materials/axes_y_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/axes_y_material.mat.meta rename to Assets/MarkerLessARExample/Materials/axes_y_material.mat.meta diff --git a/MarkerLessARSample/Materials/axes_z_material.mat b/Assets/MarkerLessARExample/Materials/axes_z_material.mat similarity index 100% rename from MarkerLessARSample/Materials/axes_z_material.mat rename to Assets/MarkerLessARExample/Materials/axes_z_material.mat diff --git a/MarkerLessARSample/Materials/axes_z_material.mat.meta b/Assets/MarkerLessARExample/Materials/axes_z_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/axes_z_material.mat.meta rename to Assets/MarkerLessARExample/Materials/axes_z_material.mat.meta diff --git a/MarkerLessARSample/Materials/cube_material.mat b/Assets/MarkerLessARExample/Materials/cube_material.mat similarity index 100% rename from MarkerLessARSample/Materials/cube_material.mat rename to Assets/MarkerLessARExample/Materials/cube_material.mat diff --git a/MarkerLessARSample/Materials/cube_material.mat.meta b/Assets/MarkerLessARExample/Materials/cube_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/cube_material.mat.meta rename to Assets/MarkerLessARExample/Materials/cube_material.mat.meta diff --git a/MarkerLessARSample/Materials/quad_material.mat b/Assets/MarkerLessARExample/Materials/quad_material.mat similarity index 100% rename from MarkerLessARSample/Materials/quad_material.mat rename to Assets/MarkerLessARExample/Materials/quad_material.mat diff --git a/MarkerLessARSample/Materials/quad_material.mat.meta b/Assets/MarkerLessARExample/Materials/quad_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/quad_material.mat.meta rename to Assets/MarkerLessARExample/Materials/quad_material.mat.meta diff --git a/MarkerLessARSample/Materials/sphere_material.mat b/Assets/MarkerLessARExample/Materials/sphere_material.mat similarity index 100% rename from MarkerLessARSample/Materials/sphere_material.mat rename to Assets/MarkerLessARExample/Materials/sphere_material.mat diff --git a/MarkerLessARSample/Materials/sphere_material.mat.meta b/Assets/MarkerLessARExample/Materials/sphere_material.mat.meta similarity index 100% rename from MarkerLessARSample/Materials/sphere_material.mat.meta rename to Assets/MarkerLessARExample/Materials/sphere_material.mat.meta diff --git a/MarkerLessARSample/Prefabs.meta b/Assets/MarkerLessARExample/Prefabs.meta similarity index 100% rename from MarkerLessARSample/Prefabs.meta rename to Assets/MarkerLessARExample/Prefabs.meta diff --git a/MarkerLessARSample/Prefabs/ARCamera.prefab b/Assets/MarkerLessARExample/Prefabs/ARCamera.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/ARCamera.prefab rename to Assets/MarkerLessARExample/Prefabs/ARCamera.prefab diff --git a/MarkerLessARSample/Prefabs/ARCamera.prefab.meta b/Assets/MarkerLessARExample/Prefabs/ARCamera.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/ARCamera.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/ARCamera.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Axes_X.prefab b/Assets/MarkerLessARExample/Prefabs/Axes_X.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_X.prefab rename to Assets/MarkerLessARExample/Prefabs/Axes_X.prefab diff --git a/MarkerLessARSample/Prefabs/Axes_X.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Axes_X.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_X.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Axes_X.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Axes_Y.prefab b/Assets/MarkerLessARExample/Prefabs/Axes_Y.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_Y.prefab rename to Assets/MarkerLessARExample/Prefabs/Axes_Y.prefab diff --git a/MarkerLessARSample/Prefabs/Axes_Y.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Axes_Y.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_Y.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Axes_Y.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Axes_Z.prefab b/Assets/MarkerLessARExample/Prefabs/Axes_Z.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_Z.prefab rename to Assets/MarkerLessARExample/Prefabs/Axes_Z.prefab diff --git a/MarkerLessARSample/Prefabs/Axes_Z.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Axes_Z.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Axes_Z.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Axes_Z.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Cube.prefab b/Assets/MarkerLessARExample/Prefabs/Cube.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Cube.prefab rename to Assets/MarkerLessARExample/Prefabs/Cube.prefab diff --git a/MarkerLessARSample/Prefabs/Cube.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Cube.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Cube.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Cube.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Sphere.prefab b/Assets/MarkerLessARExample/Prefabs/Sphere.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Sphere.prefab rename to Assets/MarkerLessARExample/Prefabs/Sphere.prefab diff --git a/MarkerLessARSample/Prefabs/Sphere.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Sphere.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Sphere.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Sphere.prefab.meta diff --git a/MarkerLessARSample/Prefabs/Video.prefab b/Assets/MarkerLessARExample/Prefabs/Video.prefab similarity index 100% rename from MarkerLessARSample/Prefabs/Video.prefab rename to Assets/MarkerLessARExample/Prefabs/Video.prefab diff --git a/MarkerLessARSample/Prefabs/Video.prefab.meta b/Assets/MarkerLessARExample/Prefabs/Video.prefab.meta similarity index 100% rename from MarkerLessARSample/Prefabs/Video.prefab.meta rename to Assets/MarkerLessARExample/Prefabs/Video.prefab.meta diff --git a/Assets/MarkerLessARExample/ReadMe.pdf b/Assets/MarkerLessARExample/ReadMe.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d17065b9b28218104c710c770a6ae77d975741e2 GIT binary patch literal 206524 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

V(6-Pn)o1#l%=n-%t#x4HqM4V7l-?%+E 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

-dBU9avgNNdPIqcz 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 WU?u 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 literal 0 HcmV?d00001 diff --git a/MarkerLessARSample/ReadMe.pdf.meta b/Assets/MarkerLessARExample/ReadMe.pdf.meta similarity index 100% rename from MarkerLessARSample/ReadMe.pdf.meta rename to Assets/MarkerLessARExample/ReadMe.pdf.meta diff --git a/MarkerLessARSample/Resources.meta b/Assets/MarkerLessARExample/Resources.meta similarity index 100% rename from MarkerLessARSample/Resources.meta rename to Assets/MarkerLessARExample/Resources.meta diff --git a/MarkerLessARSample/Resources/LoadingIcon.png b/Assets/MarkerLessARExample/Resources/LoadingIcon.png similarity index 100% rename from MarkerLessARSample/Resources/LoadingIcon.png rename to Assets/MarkerLessARExample/Resources/LoadingIcon.png diff --git a/MarkerLessARSample/Resources/LoadingIcon.png.meta b/Assets/MarkerLessARExample/Resources/LoadingIcon.png.meta similarity index 100% rename from MarkerLessARSample/Resources/LoadingIcon.png.meta rename to Assets/MarkerLessARExample/Resources/LoadingIcon.png.meta diff --git a/MarkerLessARSample/Resources/PatternImage.jpg b/Assets/MarkerLessARExample/Resources/PatternImage.jpg similarity index 100% rename from MarkerLessARSample/Resources/PatternImage.jpg rename to Assets/MarkerLessARExample/Resources/PatternImage.jpg diff --git a/MarkerLessARSample/Resources/PatternImage.jpg.meta b/Assets/MarkerLessARExample/Resources/PatternImage.jpg.meta similarity index 100% rename from MarkerLessARSample/Resources/PatternImage.jpg.meta rename to Assets/MarkerLessARExample/Resources/PatternImage.jpg.meta diff --git a/MarkerLessARSample/Resources/PatternImage2.jpg b/Assets/MarkerLessARExample/Resources/PatternImage2.jpg similarity index 100% rename from MarkerLessARSample/Resources/PatternImage2.jpg rename to Assets/MarkerLessARExample/Resources/PatternImage2.jpg diff --git a/MarkerLessARSample/Resources/PatternImage2.jpg.meta b/Assets/MarkerLessARExample/Resources/PatternImage2.jpg.meta similarity index 100% rename from MarkerLessARSample/Resources/PatternImage2.jpg.meta rename to Assets/MarkerLessARExample/Resources/PatternImage2.jpg.meta diff --git a/MarkerLessARSample/Resources/TestImage.jpg b/Assets/MarkerLessARExample/Resources/TestImage.jpg similarity index 100% rename from MarkerLessARSample/Resources/TestImage.jpg rename to Assets/MarkerLessARExample/Resources/TestImage.jpg diff --git a/MarkerLessARSample/Resources/TestImage.jpg.meta b/Assets/MarkerLessARExample/Resources/TestImage.jpg.meta similarity index 100% rename from MarkerLessARSample/Resources/TestImage.jpg.meta rename to Assets/MarkerLessARExample/Resources/TestImage.jpg.meta diff --git a/MarkerLessARSample/Resources/TestImage1.jpg b/Assets/MarkerLessARExample/Resources/TestImage1.jpg similarity index 100% rename from MarkerLessARSample/Resources/TestImage1.jpg rename to Assets/MarkerLessARExample/Resources/TestImage1.jpg diff --git a/MarkerLessARSample/Resources/TestImage1.jpg.meta b/Assets/MarkerLessARExample/Resources/TestImage1.jpg.meta similarity index 100% rename from MarkerLessARSample/Resources/TestImage1.jpg.meta rename to Assets/MarkerLessARExample/Resources/TestImage1.jpg.meta diff --git a/MarkerLessARSample/Resources/TestImage2.jpg b/Assets/MarkerLessARExample/Resources/TestImage2.jpg similarity index 100% rename from MarkerLessARSample/Resources/TestImage2.jpg rename to Assets/MarkerLessARExample/Resources/TestImage2.jpg diff --git a/MarkerLessARSample/Resources/TestImage2.jpg.meta b/Assets/MarkerLessARExample/Resources/TestImage2.jpg.meta similarity index 100% rename from MarkerLessARSample/Resources/TestImage2.jpg.meta rename to Assets/MarkerLessARExample/Resources/TestImage2.jpg.meta diff --git a/MarkerLessARSample/Scenes.meta b/Assets/MarkerLessARExample/Scenes.meta similarity index 100% rename from MarkerLessARSample/Scenes.meta rename to Assets/MarkerLessARExample/Scenes.meta diff --git a/MarkerLessARSample/Scenes/CapturePattern.unity b/Assets/MarkerLessARExample/Scenes/CapturePattern.unity similarity index 99% rename from MarkerLessARSample/Scenes/CapturePattern.unity rename to Assets/MarkerLessARExample/Scenes/CapturePattern.unity index dadf445..1af5d69 100644 --- a/MarkerLessARSample/Scenes/CapturePattern.unity +++ b/Assets/MarkerLessARExample/Scenes/CapturePattern.unity @@ -1839,7 +1839,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: MarkerLessARSample.WebCamTextureToMatHelper+ErrorUnityEvent, Assembly-CSharp, + m_TypeName: MarkerLessARExample.WebCamTextureToMatHelper+ErrorUnityEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null --- !u!1 &1592116327 GameObject: diff --git a/MarkerLessARSample/Scenes/CapturePattern.unity.meta b/Assets/MarkerLessARExample/Scenes/CapturePattern.unity.meta similarity index 100% rename from MarkerLessARSample/Scenes/CapturePattern.unity.meta rename to Assets/MarkerLessARExample/Scenes/CapturePattern.unity.meta diff --git a/MarkerLessARSample/Scenes/MarkerLessARSample.unity b/Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity similarity index 99% rename from MarkerLessARSample/Scenes/MarkerLessARSample.unity rename to Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity index f15beea..3987d20 100644 --- a/MarkerLessARSample/Scenes/MarkerLessARSample.unity +++ b/Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity @@ -260,7 +260,7 @@ GameObject: - 114: {fileID: 130009891} - 114: {fileID: 130009890} m_Layer: 5 - m_Name: WebCamTextureMarkerLessARSample + m_Name: WebCamTextureMarkerLessARExample m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -345,7 +345,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 29440833} - m_MethodName: WebCamTextureMarkerLessARSample + m_MethodName: WebCamTextureMarkerLessARExample m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -762,7 +762,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: WebCamTextureMarkerLessARSample + m_Text: WebCamTextureMarkerLessARExample --- !u!222 &1084706039 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1027,7 +1027,7 @@ GameObject: - 114: {fileID: 1867454789} - 114: {fileID: 1867454788} m_Layer: 5 - m_Name: Texture2DMarkerLessARSample + m_Name: Texture2DMarkerLessARExample m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1112,7 +1112,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 29440833} - m_MethodName: Texture2DMarkerLessARSample + m_MethodName: Texture2DMarkerLessARExample m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -1215,7 +1215,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: Texture2DMarkerLessARSample + m_Text: Texture2DMarkerLessARExample --- !u!222 &1869573385 CanvasRenderer: m_ObjectHideFlags: 0 diff --git a/MarkerLessARSample/Scenes/MarkerLessARSample.unity.meta b/Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity.meta similarity index 100% rename from MarkerLessARSample/Scenes/MarkerLessARSample.unity.meta rename to Assets/MarkerLessARExample/Scenes/MarkerLessARExample.unity.meta diff --git a/MarkerLessARSample/Scenes/ShowLicense.unity b/Assets/MarkerLessARExample/Scenes/ShowLicense.unity similarity index 99% rename from MarkerLessARSample/Scenes/ShowLicense.unity rename to Assets/MarkerLessARExample/Scenes/ShowLicense.unity index f4e600d..e61b58a 100644 --- a/MarkerLessARSample/Scenes/ShowLicense.unity +++ b/Assets/MarkerLessARExample/Scenes/ShowLicense.unity @@ -765,7 +765,7 @@ MonoBehaviour: m_HandleRect: {fileID: 2061365887} m_Direction: 2 m_Value: 1 - m_Size: .579440713 + m_Size: .662424088 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: diff --git a/MarkerLessARSample/Scenes/ShowLicense.unity.meta b/Assets/MarkerLessARExample/Scenes/ShowLicense.unity.meta similarity index 100% rename from MarkerLessARSample/Scenes/ShowLicense.unity.meta rename to Assets/MarkerLessARExample/Scenes/ShowLicense.unity.meta diff --git a/MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity b/Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity similarity index 76% rename from MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity rename to Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity index b4c20ee..afa7716 100644 --- a/MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity +++ b/Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity @@ -360,7 +360,6 @@ Prefab: objectReference: {fileID: 2100000, guid: 97400fd758b63ad4fb3e3ce693bde79c, type: 2} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: d607aa1e2987cf5448fca2348df9adb8, type: 2} - m_RootGameObject: {fileID: 670952741} m_IsPrefabParent: 0 --- !u!1 &218001137 GameObject: @@ -467,20 +466,11 @@ Prefab: objectReference: {fileID: 2100000, guid: 1b8b43d91d788ff40a57841b78265554, type: 2} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 8233df8b16be6b541950a0cab104a705, type: 2} - m_RootGameObject: {fileID: 1980521274} m_IsPrefabParent: 0 --- !u!4 &366590740 Transform: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 400000, guid: 8233df8b16be6b541950a0cab104a705, type: 2} m_PrefabInternal: {fileID: 274035050} - m_GameObject: {fileID: 1980521274} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 0} - m_LocalScale: {x: .100000001, y: 1, z: .100000001} - m_Children: [] - m_Father: {fileID: 1955163577} - m_RootOrder: 3 --- !u!1001 &367435927 Prefab: m_ObjectHideFlags: 0 @@ -530,7 +520,6 @@ Prefab: objectReference: {fileID: 2100000, guid: 1160f0307b000334b8c1fe8fba48c8c0, type: 2} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, type: 2} - m_RootGameObject: {fileID: 1854143201} m_IsPrefabParent: 0 --- !u!1 &538633486 GameObject: @@ -696,70 +685,6 @@ Canvas: m_OverridePixelPerfect: 0 m_SortingLayerID: 0 m_SortingOrder: 0 ---- !u!1 &670952741 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: d607aa1e2987cf5448fca2348df9adb8, type: 2} - m_PrefabInternal: {fileID: 69047525} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1282818104} - - 33: {fileID: 670952744} - - 65: {fileID: 670952743} - - 23: {fileID: 670952742} - m_Layer: 5 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &670952742 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: d607aa1e2987cf5448fca2348df9adb8, - type: 2} - m_PrefabInternal: {fileID: 69047525} - m_GameObject: {fileID: 670952741} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 2100000, guid: 97400fd758b63ad4fb3e3ce693bde79c, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!65 &670952743 -BoxCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 6500000, guid: d607aa1e2987cf5448fca2348df9adb8, - type: 2} - m_PrefabInternal: {fileID: 69047525} - m_GameObject: {fileID: 670952741} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &670952744 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: d607aa1e2987cf5448fca2348df9adb8, - type: 2} - m_PrefabInternal: {fileID: 69047525} - m_GameObject: {fileID: 670952741} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &673136259 GameObject: m_ObjectHideFlags: 0 @@ -844,70 +769,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 ---- !u!1 &716009041 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 7369a346695228f41ab4f289dd5ba16d, type: 2} - m_PrefabInternal: {fileID: 1014827335} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1298675159} - - 33: {fileID: 716009044} - - 135: {fileID: 716009043} - - 23: {fileID: 716009042} - m_Layer: 5 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!23 &716009042 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 7369a346695228f41ab4f289dd5ba16d, - type: 2} - m_PrefabInternal: {fileID: 1014827335} - m_GameObject: {fileID: 716009041} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 2100000, guid: d2e658dbdc1e3854bba57ba9d67076b4, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!135 &716009043 -SphereCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 13500000, guid: 7369a346695228f41ab4f289dd5ba16d, - type: 2} - m_PrefabInternal: {fileID: 1014827335} - m_GameObject: {fileID: 716009041} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: .5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &716009044 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 7369a346695228f41ab4f289dd5ba16d, - type: 2} - m_PrefabInternal: {fileID: 1014827335} - m_GameObject: {fileID: 716009041} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &826264227 GameObject: m_ObjectHideFlags: 0 @@ -1013,7 +874,6 @@ Prefab: objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 88bd7da02dc70d2409c6d485c3020dab, type: 2} - m_RootGameObject: {fileID: 1535692055} m_IsPrefabParent: 0 --- !u!1001 &870740068 Prefab: @@ -1056,20 +916,11 @@ Prefab: objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 83de61287d78dcf43a5e6e1522cdc711, type: 2} - m_RootGameObject: {fileID: 1519318248} m_IsPrefabParent: 0 --- !u!4 &1000071879 Transform: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 400000, guid: 83de61287d78dcf43a5e6e1522cdc711, type: 2} m_PrefabInternal: {fileID: 870740068} - m_GameObject: {fileID: 1519318248} - m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106829} - m_LocalPosition: {x: 0, y: 0, z: 1} - m_LocalScale: {x: .100000001, y: 1, z: .100000001} - m_Children: [] - m_Father: {fileID: 1955163577} - m_RootOrder: 4 --- !u!1001 &1014827335 Prefab: m_ObjectHideFlags: 0 @@ -1123,32 +974,15 @@ Prefab: objectReference: {fileID: 2100000, guid: d2e658dbdc1e3854bba57ba9d67076b4, type: 2} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 7369a346695228f41ab4f289dd5ba16d, type: 2} - m_RootGameObject: {fileID: 716009041} m_IsPrefabParent: 0 --- !u!4 &1282818104 Transform: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 400000, guid: d607aa1e2987cf5448fca2348df9adb8, type: 2} m_PrefabInternal: {fileID: 69047525} - m_GameObject: {fileID: 670952741} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: .0500000007} - m_LocalScale: {x: 1, y: 1, z: .100000001} - m_Children: [] - m_Father: {fileID: 1955163577} - m_RootOrder: 0 --- !u!4 &1298675159 Transform: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 400000, guid: 7369a346695228f41ab4f289dd5ba16d, type: 2} m_PrefabInternal: {fileID: 1014827335} - m_GameObject: {fileID: 716009041} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: .5} - m_LocalScale: {x: .800000012, y: .800000012, z: .800000012} - m_Children: [] - m_Father: {fileID: 1955163577} - m_RootOrder: 2 --- !u!1 &1393514933 GameObject: m_ObjectHideFlags: 0 @@ -1300,164 +1134,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 ---- !u!1 &1519318248 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 83de61287d78dcf43a5e6e1522cdc711, type: 2} - m_PrefabInternal: {fileID: 870740068} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1000071879} - - 33: {fileID: 1519318251} - - 136: {fileID: 1519318250} - - 23: {fileID: 1519318249} - m_Layer: 5 - m_Name: Axes_Z - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1519318249 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 83de61287d78dcf43a5e6e1522cdc711, - type: 2} - m_PrefabInternal: {fileID: 870740068} - m_GameObject: {fileID: 1519318248} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 2100000, guid: 743d24b6733e04e4ba34ac85ac3f15f2, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!136 &1519318250 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 13600000, guid: 83de61287d78dcf43a5e6e1522cdc711, - type: 2} - m_PrefabInternal: {fileID: 870740068} - m_GameObject: {fileID: 1519318248} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: .5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1519318251 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 83de61287d78dcf43a5e6e1522cdc711, - type: 2} - m_PrefabInternal: {fileID: 870740068} - m_GameObject: {fileID: 1519318248} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1535692055 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 88bd7da02dc70d2409c6d485c3020dab, type: 2} - m_PrefabInternal: {fileID: 829811795} - serializedVersion: 4 - m_Component: - - 4: {fileID: 1535692056} - - 20: {fileID: 1892028844} - m_Layer: 5 - m_Name: ARCamera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1535692056 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 400000, guid: 88bd7da02dc70d2409c6d485c3020dab, type: 2} - m_PrefabInternal: {fileID: 829811795} - m_GameObject: {fileID: 1535692055} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 ---- !u!1 &1854143201 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, type: 2} - m_PrefabInternal: {fileID: 367435927} - serializedVersion: 4 - m_Component: - - 4: {fileID: 2004008789} - - 33: {fileID: 1854143204} - - 136: {fileID: 1854143203} - - 23: {fileID: 1854143202} - m_Layer: 5 - m_Name: Axes_X - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1854143202 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, - type: 2} - m_PrefabInternal: {fileID: 367435927} - m_GameObject: {fileID: 1854143201} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 2100000, guid: 1160f0307b000334b8c1fe8fba48c8c0, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!136 &1854143203 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 13600000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, - type: 2} - m_PrefabInternal: {fileID: 367435927} - m_GameObject: {fileID: 1854143201} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: .5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1854143204 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, - type: 2} - m_PrefabInternal: {fileID: 367435927} - m_GameObject: {fileID: 1854143201} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1884164571 GameObject: m_ObjectHideFlags: 0 @@ -1545,37 +1221,9 @@ Transform: m_RootOrder: 3 --- !u!20 &1892028844 Camera: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 2000000, guid: 88bd7da02dc70d2409c6d485c3020dab, type: 2} m_PrefabInternal: {fileID: 829811795} - m_GameObject: {fileID: 1535692055} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 3 - m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: .300000012 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 32 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_HDR: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: .0219999999 --- !u!1 &1955163576 GameObject: m_ObjectHideFlags: 0 @@ -1608,80 +1256,7 @@ Transform: - {fileID: 1000071879} m_Father: {fileID: 0} m_RootOrder: 4 ---- !u!1 &1980521274 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 100000, guid: 8233df8b16be6b541950a0cab104a705, type: 2} - m_PrefabInternal: {fileID: 274035050} - serializedVersion: 4 - m_Component: - - 4: {fileID: 366590740} - - 33: {fileID: 1980521277} - - 136: {fileID: 1980521276} - - 23: {fileID: 1980521275} - m_Layer: 5 - m_Name: Axes_Y - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1980521275 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 2300000, guid: 8233df8b16be6b541950a0cab104a705, - type: 2} - m_PrefabInternal: {fileID: 274035050} - m_GameObject: {fileID: 1980521274} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 2100000, guid: 1b8b43d91d788ff40a57841b78265554, type: 2} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 0 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!136 &1980521276 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 13600000, guid: 8233df8b16be6b541950a0cab104a705, - type: 2} - m_PrefabInternal: {fileID: 274035050} - m_GameObject: {fileID: 1980521274} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: .5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1980521277 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 3300000, guid: 8233df8b16be6b541950a0cab104a705, - type: 2} - m_PrefabInternal: {fileID: 274035050} - m_GameObject: {fileID: 1980521274} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &2004008789 Transform: - m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 400000, guid: 9b9e77d1089cb5247aa00e2cb86a0960, type: 2} m_PrefabInternal: {fileID: 367435927} - m_GameObject: {fileID: 1854143201} - m_LocalRotation: {x: 0, y: 0, z: .707106829, w: .707106829} - m_LocalPosition: {x: 1, y: 0, z: 0} - m_LocalScale: {x: .100000001, y: 1, z: .100000001} - m_Children: [] - m_Father: {fileID: 1955163577} - m_RootOrder: 1 diff --git a/MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity.meta b/Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity.meta similarity index 100% rename from MarkerLessARSample/Scenes/Texture2DMarkerLessARSample.unity.meta rename to Assets/MarkerLessARExample/Scenes/Texture2DMarkerLessARExample.unity.meta diff --git a/MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity b/Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity similarity index 99% rename from MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity rename to Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity index 79121f3..f3ea29c 100644 --- a/MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity +++ b/Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity @@ -2436,7 +2436,7 @@ MonoBehaviour: requestIsFrontFacing: 0 flipVertical: 0 flipHorizontal: 0 - timeout: 100 + timeoutFrameCount: 300 OnInitedEvent: m_PersistentCalls: m_Calls: @@ -2486,7 +2486,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: MarkerLessARSample.WebCamTextureToMatHelper+ErrorUnityEvent, Assembly-CSharp, + m_TypeName: MarkerLessARExample.WebCamTextureToMatHelper+ErrorUnityEvent, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null --- !u!1 &1508174468 GameObject: diff --git a/MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity.meta b/Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity.meta similarity index 100% rename from MarkerLessARSample/Scenes/WebCamTextureMarkerLessARSample.unity.meta rename to Assets/MarkerLessARExample/Scenes/WebCamTextureMarkerLessARExample.unity.meta diff --git a/MarkerLessARSample/Scripts.meta b/Assets/MarkerLessARExample/Scripts.meta similarity index 100% rename from MarkerLessARSample/Scripts.meta rename to Assets/MarkerLessARExample/Scripts.meta diff --git a/MarkerLessARSample/Scripts/CapturePattern.cs b/Assets/MarkerLessARExample/Scripts/CapturePattern.cs similarity index 84% rename from MarkerLessARSample/Scripts/CapturePattern.cs rename to Assets/MarkerLessARExample/Scripts/CapturePattern.cs index 0f3e76f..db79f7b 100644 --- a/MarkerLessARSample/Scripts/CapturePattern.cs +++ b/Assets/MarkerLessARExample/Scripts/CapturePattern.cs @@ -1,282 +1,284 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.UI; - -#if UNITY_5_3 || UNITY_5_3_OR_NEWER -using UnityEngine.SceneManagement; -#endif -using OpenCVForUnity; - -namespace MarkerLessARSample -{ - ///

- /// Pattern capture. - /// - [RequireComponent(typeof(WebCamTextureToMatHelper))] - public class CapturePattern : MonoBehaviour - { - - - /// - /// The texture. - /// - Texture2D texture; - - /// - /// The web cam texture to mat helper. - /// - WebCamTextureToMatHelper webCamTextureToMatHelper; - - /// - /// The pattern rect. - /// - OpenCVForUnity.Rect patternRect; - - /// - /// The rgb mat. - /// - Mat rgbMat; - - /// - /// The pattern raw image. - /// - public RawImage patternRawImage; - - /// - /// The detector. - /// - ORB detector; - - /// - /// The keypoints. - /// - MatOfKeyPoint keypoints; - - // Use this for initialization - void Start () - { -// Utils.setDebugMode(true); - - using (Mat patternMat = Imgcodecs.imread (Application.persistentDataPath + "/patternImg.jpg")) { - if (patternMat.empty ()) { - - patternRawImage.gameObject.SetActive (false); - - } else { - - Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_BGR2RGB); - - Texture2D patternTexture = new Texture2D (patternMat.width(), patternMat.height(), TextureFormat.RGBA32, false); - - Utils.matToTexture2D (patternMat, patternTexture); - - patternRawImage.texture = patternTexture; - patternRawImage.rectTransform.localScale = new Vector3( 1.0f, (float)patternMat.height()/(float)patternMat.width(), 1.0f); - - patternRawImage.gameObject.SetActive (true); - } - } - - webCamTextureToMatHelper = gameObject.GetComponent (); - webCamTextureToMatHelper.Init (); - - - detector = ORB.create (); - detector.setMaxFeatures (1000); - keypoints = new MatOfKeyPoint (); - } - - /// - /// Raises the web cam texture to mat helper inited event. - /// - public void OnWebCamTextureToMatHelperInited () - { - Debug.Log ("OnWebCamTextureToMatHelperInited"); - - - Mat webCamTextureMat = webCamTextureToMatHelper.GetMat (); - - texture = new Texture2D (webCamTextureMat.width(), webCamTextureMat.height(), TextureFormat.RGBA32, false); - - rgbMat = new Mat (webCamTextureMat.rows (), webCamTextureMat.cols (), CvType.CV_8UC3); - - - - gameObject.transform.localScale = new Vector3 (webCamTextureMat.width(), webCamTextureMat.height(), 1); - - Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); - - - float width = webCamTextureMat.width (); - float height = webCamTextureMat.height (); - - float widthScale = (float)Screen.width / width; - float heightScale = (float)Screen.height / height; - if (widthScale < heightScale) { - Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; - } else { - Camera.main.orthographicSize = height / 2; - } - - gameObject.GetComponent ().material.mainTexture = texture; - - - - - //if WebCamera is frontFaceing,flip Mat. - if (webCamTextureToMatHelper.GetWebCamDevice ().isFrontFacing) { - webCamTextureToMatHelper.flipHorizontal = true; - } - - - int patternWidth = (int)(Mathf.Min (webCamTextureMat.width(), webCamTextureMat.height()) * 0.8f); - - patternRect = new OpenCVForUnity.Rect (webCamTextureMat.width() / 2 - patternWidth / 2, webCamTextureMat.height() / 2 - patternWidth / 2, patternWidth, patternWidth); - - } - - /// - /// Raises the web cam texture to mat helper disposed event. - /// - public void OnWebCamTextureToMatHelperDisposed () - { - Debug.Log ("OnWebCamTextureToMatHelperDisposed"); - - if (rgbMat != null) { - rgbMat.Dispose (); - } - - } - - /// - /// Raises the web cam texture to mat helper error occurred event. - /// - /// Error code. - public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){ - Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode); - } - - // Update is called once per frame - void Update () - { - if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) { - - Mat rgbaMat = webCamTextureToMatHelper.GetMat (); - - Imgproc.cvtColor (rgbaMat, rgbMat, Imgproc.COLOR_RGBA2RGB); - - - detector.detect (rgbaMat, keypoints); -// Debug.Log ("keypoints.ToString() " + keypoints.ToString()); - Features2d.drawKeypoints(rgbMat, keypoints, rgbaMat, Scalar.all(-1), Features2d.NOT_DRAW_SINGLE_POINTS); - - - - Imgproc.rectangle (rgbaMat, patternRect.tl (), patternRect.br (), new Scalar (255, 0, 0, 255), 5); - - - Utils.matToTexture2D (rgbaMat, texture, webCamTextureToMatHelper.GetBufferColors()); - - } - - } - - void OnDisable () - { - webCamTextureToMatHelper.Dispose (); - - detector.Dispose(); - if(keypoints != null)keypoints.Dispose(); - -// Utils.setDebugMode(false); - } - - - /// - /// Raises the back button event. - /// - public void OnBackButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("MarkerLessARSample"); - #else - Application.LoadLevel ("MarkerLessARSample"); - #endif - } - - /// - /// Raises the play button event. - /// - public void OnPlayButton () - { - webCamTextureToMatHelper.Play (); - } - - /// - /// Raises the pause button event. - /// - public void OnPauseButton () - { - webCamTextureToMatHelper.Pause (); - } - - /// - /// Raises the stop button event. - /// - public void OnStopButton () - { - webCamTextureToMatHelper.Stop (); - } - - /// - /// Raises the change camera button event. - /// - public void OnChangeCameraButton () - { - webCamTextureToMatHelper.Init (null, webCamTextureToMatHelper.requestWidth, webCamTextureToMatHelper.requestHeight, !webCamTextureToMatHelper.requestIsFrontFacing); - } - - /// - /// Raises the capture button event. - /// - public void OnCaptureButton () - { - - Mat patternMat = new Mat (rgbMat, patternRect); - - Texture2D patternTexture = new Texture2D (patternMat.width(), patternMat.height(), TextureFormat.RGBA32, false); - - Utils.matToTexture2D (patternMat, patternTexture); - - patternRawImage.texture = patternTexture; - - patternRawImage.gameObject.SetActive (true); - - } - - /// - /// Raises the save button event. - /// - public void OnSaveButton () - { - if (patternRawImage.texture != null) { - Texture2D patternTexture = (Texture2D)patternRawImage.texture; - Mat patternMat = new Mat (patternRect.size (), CvType.CV_8UC3); - Utils.texture2DToMat (patternTexture, patternMat); - Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_RGB2BGR); - - string savePath = Application.persistentDataPath; - Debug.Log ("savePath " + savePath); - - Imgcodecs.imwrite (savePath + "/patternImg.jpg", patternMat); - - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("WebCamTextureMarkerLessARSample"); - #else - Application.LoadLevel ("WebCamTextureMarkerLessARSample"); - #endif - } - } - } - -} +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +#if UNITY_5_3 || UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif +using OpenCVForUnity; + +namespace MarkerLessARExample +{ + /// + /// Pattern capture. + /// + [RequireComponent(typeof(WebCamTextureToMatHelper))] + public class CapturePattern : MonoBehaviour + { + + + /// + /// The texture. + /// + Texture2D texture; + + /// + /// The web cam texture to mat helper. + /// + WebCamTextureToMatHelper webCamTextureToMatHelper; + + /// + /// The pattern rect. + /// + OpenCVForUnity.Rect patternRect; + + /// + /// The rgb mat. + /// + Mat rgbMat; + + /// + /// The pattern raw image. + /// + public RawImage patternRawImage; + + /// + /// The detector. + /// + ORB detector; + + /// + /// The keypoints. + /// + MatOfKeyPoint keypoints; + + // Use this for initialization + void Start () + { +// Utils.setDebugMode(true); + + using (Mat patternMat = Imgcodecs.imread (Application.persistentDataPath + "/patternImg.jpg")) { + if (patternMat.empty ()) { + + patternRawImage.gameObject.SetActive (false); + + } else { + + Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_BGR2RGB); + + Texture2D patternTexture = new Texture2D (patternMat.width (), patternMat.height (), TextureFormat.RGBA32, false); + + Utils.matToTexture2D (patternMat, patternTexture); + + patternRawImage.texture = patternTexture; + patternRawImage.rectTransform.localScale = new Vector3 (1.0f, (float)patternMat.height () / (float)patternMat.width (), 1.0f); + + patternRawImage.gameObject.SetActive (true); + } + } + + webCamTextureToMatHelper = gameObject.GetComponent (); + webCamTextureToMatHelper.Init (); + + + detector = ORB.create (); + detector.setMaxFeatures (1000); + keypoints = new MatOfKeyPoint (); + } + + /// + /// Raises the web cam texture to mat helper inited event. + /// + public void OnWebCamTextureToMatHelperInited () + { + Debug.Log ("OnWebCamTextureToMatHelperInited"); + + + Mat webCamTextureMat = webCamTextureToMatHelper.GetMat (); + + texture = new Texture2D (webCamTextureMat.width (), webCamTextureMat.height (), TextureFormat.RGBA32, false); + + rgbMat = new Mat (webCamTextureMat.rows (), webCamTextureMat.cols (), CvType.CV_8UC3); + + + + gameObject.transform.localScale = new Vector3 (webCamTextureMat.width (), webCamTextureMat.height (), 1); + + Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); + + + float width = webCamTextureMat.width (); + float height = webCamTextureMat.height (); + + float widthScale = (float)Screen.width / width; + float heightScale = (float)Screen.height / height; + if (widthScale < heightScale) { + Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; + } else { + Camera.main.orthographicSize = height / 2; + } + + gameObject.GetComponent ().material.mainTexture = texture; + + + + + //if WebCamera is frontFaceing,flip Mat. + if (webCamTextureToMatHelper.GetWebCamDevice ().isFrontFacing) { + webCamTextureToMatHelper.flipHorizontal = true; + } + + + int patternWidth = (int)(Mathf.Min (webCamTextureMat.width (), webCamTextureMat.height ()) * 0.8f); + + patternRect = new OpenCVForUnity.Rect (webCamTextureMat.width () / 2 - patternWidth / 2, webCamTextureMat.height () / 2 - patternWidth / 2, patternWidth, patternWidth); + + } + + /// + /// Raises the web cam texture to mat helper disposed event. + /// + public void OnWebCamTextureToMatHelperDisposed () + { + Debug.Log ("OnWebCamTextureToMatHelperDisposed"); + + if (rgbMat != null) { + rgbMat.Dispose (); + } + + } + + /// + /// Raises the web cam texture to mat helper error occurred event. + /// + /// Error code. + public void OnWebCamTextureToMatHelperErrorOccurred (WebCamTextureToMatHelper.ErrorCode errorCode) + { + Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode); + } + + // Update is called once per frame + void Update () + { + if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) { + + Mat rgbaMat = webCamTextureToMatHelper.GetMat (); + + Imgproc.cvtColor (rgbaMat, rgbMat, Imgproc.COLOR_RGBA2RGB); + + + detector.detect (rgbaMat, keypoints); +// Debug.Log ("keypoints.ToString() " + keypoints.ToString()); + Features2d.drawKeypoints (rgbMat, keypoints, rgbaMat, Scalar.all (-1), Features2d.NOT_DRAW_SINGLE_POINTS); + + + + Imgproc.rectangle (rgbaMat, patternRect.tl (), patternRect.br (), new Scalar (255, 0, 0, 255), 5); + + + Utils.matToTexture2D (rgbaMat, texture, webCamTextureToMatHelper.GetBufferColors ()); + + } + + } + + void OnDisable () + { + webCamTextureToMatHelper.Dispose (); + + detector.Dispose (); + if (keypoints != null) + keypoints.Dispose (); + +// Utils.setDebugMode(false); + } + + + /// + /// Raises the back button event. + /// + public void OnBackButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("MarkerLessARExample"); + #else + Application.LoadLevel ("MarkerLessARExample"); + #endif + } + + /// + /// Raises the play button event. + /// + public void OnPlayButton () + { + webCamTextureToMatHelper.Play (); + } + + /// + /// Raises the pause button event. + /// + public void OnPauseButton () + { + webCamTextureToMatHelper.Pause (); + } + + /// + /// Raises the stop button event. + /// + public void OnStopButton () + { + webCamTextureToMatHelper.Stop (); + } + + /// + /// Raises the change camera button event. + /// + public void OnChangeCameraButton () + { + webCamTextureToMatHelper.Init (null, webCamTextureToMatHelper.requestWidth, webCamTextureToMatHelper.requestHeight, !webCamTextureToMatHelper.requestIsFrontFacing); + } + + /// + /// Raises the capture button event. + /// + public void OnCaptureButton () + { + + Mat patternMat = new Mat (rgbMat, patternRect); + + Texture2D patternTexture = new Texture2D (patternMat.width (), patternMat.height (), TextureFormat.RGBA32, false); + + Utils.matToTexture2D (patternMat, patternTexture); + + patternRawImage.texture = patternTexture; + + patternRawImage.gameObject.SetActive (true); + + } + + /// + /// Raises the save button event. + /// + public void OnSaveButton () + { + if (patternRawImage.texture != null) { + Texture2D patternTexture = (Texture2D)patternRawImage.texture; + Mat patternMat = new Mat (patternRect.size (), CvType.CV_8UC3); + Utils.texture2DToMat (patternTexture, patternMat); + Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_RGB2BGR); + + string savePath = Application.persistentDataPath; + Debug.Log ("savePath " + savePath); + + Imgcodecs.imwrite (savePath + "/patternImg.jpg", patternMat); + + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("WebCamTextureMarkerLessARExample"); + #else + Application.LoadLevel ("WebCamTextureMarkerLessARExample"); + #endif + } + } + } + +} diff --git a/MarkerLessARSample/Scripts/CapturePattern.cs.meta b/Assets/MarkerLessARExample/Scripts/CapturePattern.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/CapturePattern.cs.meta rename to Assets/MarkerLessARExample/Scripts/CapturePattern.cs.meta diff --git a/MarkerLessARSample/Scripts/MarkerLessARSample.cs b/Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs similarity index 62% rename from MarkerLessARSample/Scripts/MarkerLessARSample.cs rename to Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs index dc30b25..2faa1f4 100644 --- a/MarkerLessARSample/Scripts/MarkerLessARSample.cs +++ b/Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs @@ -1,52 +1,52 @@ -using UnityEngine; -using System.Collections; - -#if UNITY_5_3 || UNITY_5_3_OR_NEWER -using UnityEngine.SceneManagement; -#endif - -namespace MarkerLessARSample -{ - public class MarkerLessARSample : MonoBehaviour - { - - // Use this for initialization - void Start () - { - - } - - // Update is called once per frame - void Update () - { - - } - - public void OnShowLicenseButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("ShowLicense"); - #else - Application.LoadLevel ("ShowLicense"); - #endif - } - - public void Texture2DMarkerLessARSample () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("Texture2DMarkerLessARSample"); - #else - Application.LoadLevel ("Texture2DMarkerLessARSample"); - #endif - } - - public void WebCamTextureMarkerLessARSample () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("WebCamTextureMarkerLessARSample"); - #else - Application.LoadLevel ("WebCamTextureMarkerLessARSample"); - #endif - } - } +using UnityEngine; +using System.Collections; + +#if UNITY_5_3 || UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif + +namespace MarkerLessARExample +{ + public class MarkerLessARExample : MonoBehaviour + { + + // Use this for initialization + void Start () + { + + } + + // Update is called once per frame + void Update () + { + + } + + public void OnShowLicenseButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("ShowLicense"); + #else + Application.LoadLevel ("ShowLicense"); + #endif + } + + public void Texture2DMarkerLessARExample () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("Texture2DMarkerLessARExample"); + #else + Application.LoadLevel ("Texture2DMarkerLessARExample"); + #endif + } + + public void WebCamTextureMarkerLessARExample () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("WebCamTextureMarkerLessARExample"); + #else + Application.LoadLevel ("WebCamTextureMarkerLessARExample"); + #endif + } + } } \ No newline at end of file diff --git a/MarkerLessARSample/Scripts/MarkerLessARSample.cs.meta b/Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/MarkerLessARSample.cs.meta rename to Assets/MarkerLessARExample/Scripts/MarkerLessARExample.cs.meta diff --git a/MarkerLessARSample/Scripts/ShowLicense.cs b/Assets/MarkerLessARExample/Scripts/ShowLicense.cs similarity index 79% rename from MarkerLessARSample/Scripts/ShowLicense.cs rename to Assets/MarkerLessARExample/Scripts/ShowLicense.cs index 0f60a73..b47b46b 100644 --- a/MarkerLessARSample/Scripts/ShowLicense.cs +++ b/Assets/MarkerLessARExample/Scripts/ShowLicense.cs @@ -1,34 +1,34 @@ -using UnityEngine; -using System.Collections; - -#if UNITY_5_3 || UNITY_5_3_OR_NEWER -using UnityEngine.SceneManagement; -#endif - -namespace MarkerLessARSample -{ - public class ShowLicense : MonoBehaviour - { - - // Use this for initialization - void Start () - { - - } - - // Update is called once per frame - void Update () - { - - } - - public void OnBackButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("MarkerLessARSample"); - #else - Application.LoadLevel ("MarkerLessARSample"); - #endif - } - } -} +using UnityEngine; +using System.Collections; + +#if UNITY_5_3 || UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif + +namespace MarkerLessARSample +{ + public class ShowLicense : MonoBehaviour + { + + // Use this for initialization + void Start () + { + + } + + // Update is called once per frame + void Update () + { + + } + + public void OnBackButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("MarkerLessARExample"); + #else + Application.LoadLevel ("MarkerLessARExample"); + #endif + } + } +} diff --git a/MarkerLessARSample/Scripts/ShowLicense.cs.meta b/Assets/MarkerLessARExample/Scripts/ShowLicense.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/ShowLicense.cs.meta rename to Assets/MarkerLessARExample/Scripts/ShowLicense.cs.meta diff --git a/MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs b/Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs similarity index 94% rename from MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs rename to Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs index f16f802..ebe9934 100644 --- a/MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs +++ b/Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs @@ -1,213 +1,213 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.UI; - -#if UNITY_5_3 || UNITY_5_3_OR_NEWER -using UnityEngine.SceneManagement; -#endif -using OpenCVForUnity; - -namespace MarkerLessARSample -{ - /// - /// Marker Less AR sample from Texture2D. - /// https://github.com/MasteringOpenCV/code/tree/master/Chapter3_MarkerlessAR by using "OpenCV for Unity" - /// - public class Texture2DMarkerLessARSample : MonoBehaviour - { - - /// - /// The pattern texture. - /// - public Texture2D patternTexture; - - /// - /// The pattern raw image. - /// - public RawImage patternRawImage; - - /// - /// The image texture. - /// - public Texture2D imgTexture; - - /// - /// The AR camera. - /// - public Camera ARCamera; - - /// - /// The should move AR camera. - /// - public bool - shouldMoveARCamera; - - /// - /// The AR game object. - /// - public GameObject ARGameObject; - - - // Use this for initialization - void Start () - { - - Mat patternMat = new Mat (patternTexture.height, patternTexture.width, CvType.CV_8UC4); - - Utils.texture2DToMat (patternTexture, patternMat); - Debug.Log ("patternMat dst ToString " + patternMat.ToString ()); - - patternRawImage.texture = patternTexture; - patternRawImage.rectTransform.localScale = new Vector3 (1.0f, (float)patternMat.height () / (float)patternMat.width (), 1.0f); - - - Mat imgMat = new Mat (imgTexture.height, imgTexture.width, CvType.CV_8UC4); - - Utils.texture2DToMat (imgTexture, imgMat); - Debug.Log ("imgMat dst ToString " + imgMat.ToString ()); - - gameObject.transform.localScale = new Vector3 (imgTexture.width, imgTexture.height, 1); - Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); - - - float width = imgMat.width (); - float height = imgMat.height (); - - float imageSizeScale = 1.0f; - float widthScale = (float)Screen.width / width; - float heightScale = (float)Screen.height / height; - if (widthScale < heightScale) { - Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; - imageSizeScale = (float)Screen.height / (float)Screen.width; - } else { - Camera.main.orthographicSize = height / 2; - } - - - //set cameraparam - int max_d = (int)Mathf.Max (width, height); - double fx = max_d; - double fy = max_d; - double cx = width / 2.0f; - double cy = height / 2.0f; - Mat camMatrix = new Mat (3, 3, CvType.CV_64FC1); - camMatrix.put (0, 0, fx); - camMatrix.put (0, 1, 0); - camMatrix.put (0, 2, cx); - camMatrix.put (1, 0, 0); - camMatrix.put (1, 1, fy); - camMatrix.put (1, 2, cy); - camMatrix.put (2, 0, 0); - camMatrix.put (2, 1, 0); - camMatrix.put (2, 2, 1.0f); - Debug.Log ("camMatrix " + camMatrix.dump ()); - - - MatOfDouble distCoeffs = new MatOfDouble (0, 0, 0, 0); - Debug.Log ("distCoeffs " + distCoeffs.dump ()); - - - //calibration camera - Size imageSize = new Size (width * imageSizeScale, height * imageSizeScale); - double apertureWidth = 0; - double apertureHeight = 0; - double[] fovx = new double[1]; - double[] fovy = new double[1]; - double[] focalLength = new double[1]; - Point principalPoint = new Point (0, 0); - double[] aspectratio = new double[1]; - - Calib3d.calibrationMatrixValues (camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio); - - Debug.Log ("imageSize " + imageSize.ToString ()); - Debug.Log ("apertureWidth " + apertureWidth); - Debug.Log ("apertureHeight " + apertureHeight); - Debug.Log ("fovx " + fovx [0]); - Debug.Log ("fovy " + fovy [0]); - Debug.Log ("focalLength " + focalLength [0]); - Debug.Log ("principalPoint " + principalPoint.ToString ()); - Debug.Log ("aspectratio " + aspectratio [0]); - - - //To convert the difference of the FOV value of the OpenCV and Unity. - double fovXScale = (2.0 * Mathf.Atan ((float)(imageSize.width / (2.0 * fx)))) / (Mathf.Atan2 ((float)cx, (float)fx) + Mathf.Atan2 ((float)(imageSize.width - cx), (float)fx)); - double fovYScale = (2.0 * Mathf.Atan ((float)(imageSize.height / (2.0 * fy)))) / (Mathf.Atan2 ((float)cy, (float)fy) + Mathf.Atan2 ((float)(imageSize.height - cy), (float)fy)); - - Debug.Log ("fovXScale " + fovXScale); - Debug.Log ("fovYScale " + fovYScale); - - - //Adjust Unity Camera FOV https://github.com/opencv/opencv/commit/8ed1945ccd52501f5ab22bdec6aa1f91f1e2cfd4 - if (widthScale < heightScale) { - ARCamera.fieldOfView = (float)(fovx [0] * fovXScale); - } else { - ARCamera.fieldOfView = (float)(fovy [0] * fovYScale); - } - - - - //Learning the feature points of the pattern image. - Pattern pattern = new Pattern (); - PatternTrackingInfo patternTrackingInfo = new PatternTrackingInfo (); - - PatternDetector patternDetector = new PatternDetector (null, null, null, true); - - patternDetector.buildPatternFromImage (patternMat, pattern); - patternDetector.train (pattern); - - - - bool patternFound = patternDetector.findPattern (imgMat, patternTrackingInfo); - - Debug.Log ("patternFound " + patternFound); - - if (patternFound) { - patternTrackingInfo.computePose (pattern, camMatrix, distCoeffs); - - Matrix4x4 transformationM = patternTrackingInfo.pose3d; - Debug.Log ("transformationM " + transformationM.ToString ()); - - Matrix4x4 invertZM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, 1, -1)); - Debug.Log ("invertZM " + invertZM.ToString ()); - - Matrix4x4 invertYM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, -1, 1)); - Debug.Log ("invertYM " + invertYM.ToString ()); - - - if (shouldMoveARCamera) { - Matrix4x4 ARM = ARGameObject.transform.localToWorldMatrix * invertZM * transformationM.inverse * invertYM; - Debug.Log ("ARM " + ARM.ToString ()); - - ARUtils.SetTransformFromMatrix (ARCamera.transform, ref ARM); - } else { - - Matrix4x4 ARM = ARCamera.transform.localToWorldMatrix * invertYM * transformationM * invertZM; - Debug.Log ("ARM " + ARM.ToString ()); - - ARUtils.SetTransformFromMatrix (ARGameObject.transform, ref ARM); - } - } - - Texture2D texture = new Texture2D (imgMat.cols (), imgMat.rows (), TextureFormat.RGBA32, false); - - Utils.matToTexture2D (imgMat, texture); - - gameObject.GetComponent ().material.mainTexture = texture; - } - - // Update is called once per frame - void Update () - { - - } - - public void OnBackButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("MarkerLessARSample"); - #else - Application.LoadLevel ("MarkerLessARSample"); - #endif - } - } -} +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +#if UNITY_5_3 || UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif +using OpenCVForUnity; + +namespace MarkerLessARExample +{ + /// + /// Marker Less AR example from Texture2D. + /// https://github.com/MasteringOpenCV/code/tree/master/Chapter3_MarkerlessAR by using "OpenCV for Unity" + /// + public class Texture2DMarkerLessARExample : MonoBehaviour + { + + /// + /// The pattern texture. + /// + public Texture2D patternTexture; + + /// + /// The pattern raw image. + /// + public RawImage patternRawImage; + + /// + /// The image texture. + /// + public Texture2D imgTexture; + + /// + /// The AR camera. + /// + public Camera ARCamera; + + /// + /// The should move AR camera. + /// + public bool + shouldMoveARCamera; + + /// + /// The AR game object. + /// + public GameObject ARGameObject; + + + // Use this for initialization + void Start () + { + + Mat patternMat = new Mat (patternTexture.height, patternTexture.width, CvType.CV_8UC4); + + Utils.texture2DToMat (patternTexture, patternMat); + Debug.Log ("patternMat dst ToString " + patternMat.ToString ()); + + patternRawImage.texture = patternTexture; + patternRawImage.rectTransform.localScale = new Vector3 (1.0f, (float)patternMat.height () / (float)patternMat.width (), 1.0f); + + + Mat imgMat = new Mat (imgTexture.height, imgTexture.width, CvType.CV_8UC4); + + Utils.texture2DToMat (imgTexture, imgMat); + Debug.Log ("imgMat dst ToString " + imgMat.ToString ()); + + gameObject.transform.localScale = new Vector3 (imgTexture.width, imgTexture.height, 1); + Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); + + + float width = imgMat.width (); + float height = imgMat.height (); + + float imageSizeScale = 1.0f; + float widthScale = (float)Screen.width / width; + float heightScale = (float)Screen.height / height; + if (widthScale < heightScale) { + Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; + imageSizeScale = (float)Screen.height / (float)Screen.width; + } else { + Camera.main.orthographicSize = height / 2; + } + + + //set cameraparam + int max_d = (int)Mathf.Max (width, height); + double fx = max_d; + double fy = max_d; + double cx = width / 2.0f; + double cy = height / 2.0f; + Mat camMatrix = new Mat (3, 3, CvType.CV_64FC1); + camMatrix.put (0, 0, fx); + camMatrix.put (0, 1, 0); + camMatrix.put (0, 2, cx); + camMatrix.put (1, 0, 0); + camMatrix.put (1, 1, fy); + camMatrix.put (1, 2, cy); + camMatrix.put (2, 0, 0); + camMatrix.put (2, 1, 0); + camMatrix.put (2, 2, 1.0f); + Debug.Log ("camMatrix " + camMatrix.dump ()); + + + MatOfDouble distCoeffs = new MatOfDouble (0, 0, 0, 0); + Debug.Log ("distCoeffs " + distCoeffs.dump ()); + + + //calibration camera + Size imageSize = new Size (width * imageSizeScale, height * imageSizeScale); + double apertureWidth = 0; + double apertureHeight = 0; + double[] fovx = new double[1]; + double[] fovy = new double[1]; + double[] focalLength = new double[1]; + Point principalPoint = new Point (0, 0); + double[] aspectratio = new double[1]; + + Calib3d.calibrationMatrixValues (camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio); + + Debug.Log ("imageSize " + imageSize.ToString ()); + Debug.Log ("apertureWidth " + apertureWidth); + Debug.Log ("apertureHeight " + apertureHeight); + Debug.Log ("fovx " + fovx [0]); + Debug.Log ("fovy " + fovy [0]); + Debug.Log ("focalLength " + focalLength [0]); + Debug.Log ("principalPoint " + principalPoint.ToString ()); + Debug.Log ("aspectratio " + aspectratio [0]); + + + //To convert the difference of the FOV value of the OpenCV and Unity. + double fovXScale = (2.0 * Mathf.Atan ((float)(imageSize.width / (2.0 * fx)))) / (Mathf.Atan2 ((float)cx, (float)fx) + Mathf.Atan2 ((float)(imageSize.width - cx), (float)fx)); + double fovYScale = (2.0 * Mathf.Atan ((float)(imageSize.height / (2.0 * fy)))) / (Mathf.Atan2 ((float)cy, (float)fy) + Mathf.Atan2 ((float)(imageSize.height - cy), (float)fy)); + + Debug.Log ("fovXScale " + fovXScale); + Debug.Log ("fovYScale " + fovYScale); + + + //Adjust Unity Camera FOV https://github.com/opencv/opencv/commit/8ed1945ccd52501f5ab22bdec6aa1f91f1e2cfd4 + if (widthScale < heightScale) { + ARCamera.fieldOfView = (float)(fovx [0] * fovXScale); + } else { + ARCamera.fieldOfView = (float)(fovy [0] * fovYScale); + } + + + + //Learning the feature points of the pattern image. + Pattern pattern = new Pattern (); + PatternTrackingInfo patternTrackingInfo = new PatternTrackingInfo (); + + PatternDetector patternDetector = new PatternDetector (null, null, null, true); + + patternDetector.buildPatternFromImage (patternMat, pattern); + patternDetector.train (pattern); + + + + bool patternFound = patternDetector.findPattern (imgMat, patternTrackingInfo); + + Debug.Log ("patternFound " + patternFound); + + if (patternFound) { + patternTrackingInfo.computePose (pattern, camMatrix, distCoeffs); + + Matrix4x4 transformationM = patternTrackingInfo.pose3d; + Debug.Log ("transformationM " + transformationM.ToString ()); + + Matrix4x4 invertZM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, 1, -1)); + Debug.Log ("invertZM " + invertZM.ToString ()); + + Matrix4x4 invertYM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, -1, 1)); + Debug.Log ("invertYM " + invertYM.ToString ()); + + + if (shouldMoveARCamera) { + Matrix4x4 ARM = ARGameObject.transform.localToWorldMatrix * invertZM * transformationM.inverse * invertYM; + Debug.Log ("ARM " + ARM.ToString ()); + + ARUtils.SetTransformFromMatrix (ARCamera.transform, ref ARM); + } else { + + Matrix4x4 ARM = ARCamera.transform.localToWorldMatrix * invertYM * transformationM * invertZM; + Debug.Log ("ARM " + ARM.ToString ()); + + ARUtils.SetTransformFromMatrix (ARGameObject.transform, ref ARM); + } + } + + Texture2D texture = new Texture2D (imgMat.cols (), imgMat.rows (), TextureFormat.RGBA32, false); + + Utils.matToTexture2D (imgMat, texture); + + gameObject.GetComponent ().material.mainTexture = texture; + } + + // Update is called once per frame + void Update () + { + + } + + public void OnBackButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("MarkerLessARExample"); + #else + Application.LoadLevel ("MarkerLessARExample"); + #endif + } + } +} diff --git a/MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs.meta b/Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/Texture2DMarkerLessARSample.cs.meta rename to Assets/MarkerLessARExample/Scripts/Texture2DMarkerLessARExample.cs.meta diff --git a/Assets/MarkerLessARExample/Scripts/Utils.meta b/Assets/MarkerLessARExample/Scripts/Utils.meta new file mode 100644 index 0000000..d4bcbcc --- /dev/null +++ b/Assets/MarkerLessARExample/Scripts/Utils.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 58676de949dc2e645a1f61fe2785773d +folderAsset: yes +timeCreated: 1486749544 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/MarkerLessARSample/Scripts/ARUtils.cs b/Assets/MarkerLessARExample/Scripts/Utils/ARUtils.cs similarity index 96% rename from MarkerLessARSample/Scripts/ARUtils.cs rename to Assets/MarkerLessARExample/Scripts/Utils/ARUtils.cs index 28da1d8..ab0b577 100644 --- a/MarkerLessARSample/Scripts/ARUtils.cs +++ b/Assets/MarkerLessARExample/Scripts/Utils/ARUtils.cs @@ -1,7 +1,7 @@ using UnityEngine; using System.Collections; -namespace MarkerLessARSample +namespace MarkerLessARExample { /// /// AR utils. diff --git a/MarkerLessARSample/Scripts/ARUtils.cs.meta b/Assets/MarkerLessARExample/Scripts/Utils/ARUtils.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/ARUtils.cs.meta rename to Assets/MarkerLessARExample/Scripts/Utils/ARUtils.cs.meta diff --git a/MarkerLessARSample/Scripts/DelayableSetActive.cs b/Assets/MarkerLessARExample/Scripts/Utils/DelayableSetActive.cs similarity index 95% rename from MarkerLessARSample/Scripts/DelayableSetActive.cs rename to Assets/MarkerLessARExample/Scripts/Utils/DelayableSetActive.cs index 78c76cd..b7a917d 100644 --- a/MarkerLessARSample/Scripts/DelayableSetActive.cs +++ b/Assets/MarkerLessARExample/Scripts/Utils/DelayableSetActive.cs @@ -1,71 +1,71 @@ -using UnityEngine; -using System.Collections; - -namespace MarkerLessARSample -{ - public class DelayableSetActive : MonoBehaviour - { - -// private Coroutine activateCoroutine; - private Coroutine deactivateCoroutine; - - /// - /// Sets the active. - /// - /// If set to true value. - /// Delay time. - public void SetActive (bool value, float delayTime = 0.0f) - { - - if (value) { - if (deactivateCoroutine != null) { - StopCoroutine (deactivateCoroutine); - deactivateCoroutine = null; - } - - - gameObject.SetActive (value); - - -// if (!gameObject.activeSelf && activateCoroutine == null) -// activateCoroutine = StartCoroutine (ActivateGameObject (delayTime)); - - } else { -// if (activateCoroutine != null) { -// StopCoroutine (activateCoroutine); -// activateCoroutine = null; -// } - - if (delayTime == 0.0f) { - gameObject.SetActive (value); - return; - } - - if (gameObject.activeSelf && deactivateCoroutine == null) - deactivateCoroutine = StartCoroutine (DeactivateGameObject (delayTime)); - } - } - -// private IEnumerator ActivateGameObject (float delayTime) -// { -// Debug.Log ("ActivateGameObject start"); -// -// yield return new WaitForSeconds (delayTime); -// -// gameObject.SetActive (true); -// activateCoroutine = null; -// -// Debug.Log ("ActivateGameObject end"); -// } - - private IEnumerator DeactivateGameObject (float delayTime) - { - - yield return new WaitForSeconds (delayTime); - - gameObject.SetActive (false); - deactivateCoroutine = null; - - } - } -} +using UnityEngine; +using System.Collections; + +namespace MarkerLessARExample +{ + public class DelayableSetActive : MonoBehaviour + { + +// private Coroutine activateCoroutine; + private Coroutine deactivateCoroutine; + + /// + /// Sets the active. + /// + /// If set to true value. + /// Delay time. + public void SetActive (bool value, float delayTime = 0.0f) + { + + if (value) { + if (deactivateCoroutine != null) { + StopCoroutine (deactivateCoroutine); + deactivateCoroutine = null; + } + + + gameObject.SetActive (value); + + +// if (!gameObject.activeSelf && activateCoroutine == null) +// activateCoroutine = StartCoroutine (ActivateGameObject (delayTime)); + + } else { +// if (activateCoroutine != null) { +// StopCoroutine (activateCoroutine); +// activateCoroutine = null; +// } + + if (delayTime == 0.0f) { + gameObject.SetActive (value); + return; + } + + if (gameObject.activeSelf && deactivateCoroutine == null) + deactivateCoroutine = StartCoroutine (DeactivateGameObject (delayTime)); + } + } + +// private IEnumerator ActivateGameObject (float delayTime) +// { +// Debug.Log ("ActivateGameObject start"); +// +// yield return new WaitForSeconds (delayTime); +// +// gameObject.SetActive (true); +// activateCoroutine = null; +// +// Debug.Log ("ActivateGameObject end"); +// } + + private IEnumerator DeactivateGameObject (float delayTime) + { + + yield return new WaitForSeconds (delayTime); + + gameObject.SetActive (false); + deactivateCoroutine = null; + + } + } +} diff --git a/MarkerLessARSample/Scripts/DelayableSetActive.cs.meta b/Assets/MarkerLessARExample/Scripts/Utils/DelayableSetActive.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/DelayableSetActive.cs.meta rename to Assets/MarkerLessARExample/Scripts/Utils/DelayableSetActive.cs.meta diff --git a/MarkerLessARSample/Scripts/DisplayVideo.cs b/Assets/MarkerLessARExample/Scripts/Utils/DisplayVideo.cs similarity index 95% rename from MarkerLessARSample/Scripts/DisplayVideo.cs rename to Assets/MarkerLessARExample/Scripts/Utils/DisplayVideo.cs index 656479a..fa53505 100644 --- a/MarkerLessARSample/Scripts/DisplayVideo.cs +++ b/Assets/MarkerLessARExample/Scripts/Utils/DisplayVideo.cs @@ -3,10 +3,10 @@ using System.Collections; using OpenCVForUnity; -namespace MarkerLessARSample +namespace MarkerLessARExample { /// - /// VideoCapture sample. + /// VideoCapture example. /// public class DisplayVideo : MonoBehaviour { diff --git a/MarkerLessARSample/Scripts/DisplayVideo.cs.meta b/Assets/MarkerLessARExample/Scripts/Utils/DisplayVideo.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/DisplayVideo.cs.meta rename to Assets/MarkerLessARExample/Scripts/Utils/DisplayVideo.cs.meta diff --git a/MarkerLessARSample/Scripts/WebCamTextureToMatHelper.cs b/Assets/MarkerLessARExample/Scripts/Utils/WebCamTextureToMatHelper.cs similarity index 96% rename from MarkerLessARSample/Scripts/WebCamTextureToMatHelper.cs rename to Assets/MarkerLessARExample/Scripts/Utils/WebCamTextureToMatHelper.cs index 8289c6b..6a2024e 100644 --- a/MarkerLessARSample/Scripts/WebCamTextureToMatHelper.cs +++ b/Assets/MarkerLessARExample/Scripts/Utils/WebCamTextureToMatHelper.cs @@ -4,7 +4,7 @@ using System.Collections; using UnityEngine; using UnityEngine.Events; -namespace MarkerLessARSample +namespace MarkerLessARExample { /// /// Web cam texture to mat helper. diff --git a/MarkerLessARSample/Scripts/WebCamTextureToMatHelper.cs.meta b/Assets/MarkerLessARExample/Scripts/Utils/WebCamTextureToMatHelper.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/WebCamTextureToMatHelper.cs.meta rename to Assets/MarkerLessARExample/Scripts/Utils/WebCamTextureToMatHelper.cs.meta diff --git a/MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs b/Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs similarity index 95% rename from MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs rename to Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs index e9da0ad..0f6de80 100644 --- a/MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs +++ b/Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs @@ -1,489 +1,489 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.UI; - -#if UNITY_5_3 || UNITY_5_3_OR_NEWER -using UnityEngine.SceneManagement; -#endif -using OpenCVForUnity; - -namespace MarkerLessARSample -{ - /// - /// Marker Less AR sample from WebCamTexture. - /// https://github.com/MasteringOpenCV/code/tree/master/Chapter3_MarkerlessAR by using "OpenCV for Unity" - /// - [RequireComponent(typeof(WebCamTextureToMatHelper))] - public class WebCamTextureMarkerLessARSample : MonoBehaviour - { - /// - /// The pattern mat. - /// - Mat patternMat; - - /// - /// The pattern raw image. - /// - public RawImage patternRawImage; - - /// - /// The texture. - /// - Texture2D texture; - - /// - /// The web cam texture to mat helper. - /// - WebCamTextureToMatHelper webCamTextureToMatHelper; - - /// - /// The gray mat. - /// - Mat grayMat; - - /// - /// The AR game object. - /// - public GameObject ARGameObject; - - /// - /// The AR camera. - /// - public Camera ARCamera; - - /// - /// The cam matrix. - /// - Mat camMatrix; - - /// - /// The dist coeffs. - /// - MatOfDouble distCoeffs; - - /// - /// The invert Y. - /// - Matrix4x4 invertYM; - - /// - /// The transformation m. - /// - Matrix4x4 transformationM; - - /// - /// The invert Z. - /// - Matrix4x4 invertZM; - - /// - /// The ar m. - /// - Matrix4x4 ARM; - - /// - /// The should move AR camera. - /// - public bool shouldMoveARCamera; - - /// - /// The pattern. - /// - Pattern pattern; - - /// - /// The pattern tracking info. - /// - PatternTrackingInfo patternTrackingInfo; - - /// - /// The pattern detector. - /// - PatternDetector patternDetector; - - /// - /// The is showing axes. - /// - public bool isShowingAxes = false; - - /// - /// The is showing axes toggle. - /// - public Toggle isShowingAxesToggle; - - /// - /// The axes. - /// - public GameObject axes; - - /// - /// The is showing cube. - /// - public bool isShowingCube = false; - - /// - /// The is showing cube toggle. - /// - public Toggle isShowingCubeToggle; - - /// - /// The cube. - /// - public GameObject cube; - - /// - /// The is showing video. - /// - public bool isShowingVideo = false; - - /// - /// The is showing video toggle. - /// - public Toggle isShowingVideoToggle; - - /// - /// The video. - /// - public GameObject video; - - - // Use this for initialization - void Start () - { - - isShowingAxesToggle.isOn = isShowingAxes; - axes.SetActive (isShowingAxes); - isShowingCubeToggle.isOn = isShowingCube; - cube.SetActive (isShowingCube); - isShowingVideoToggle.isOn = isShowingVideo; - video.SetActive (isShowingVideo); - - ARGameObject.gameObject.SetActive (false); - - - - webCamTextureToMatHelper = gameObject.GetComponent (); - - patternMat = Imgcodecs.imread (Application.persistentDataPath + "/patternImg.jpg"); - - if (patternMat.empty ()) { - - OnPatternCaptureButton (); - } else { - - Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_BGR2RGB); - - Texture2D patternTexture = new Texture2D (patternMat.width (), patternMat.height (), TextureFormat.RGBA32, false); - Utils.matToTexture2D (patternMat, patternTexture); - Debug.Log ("patternMat dst ToString " + patternMat.ToString ()); - - patternRawImage.texture = patternTexture; - patternRawImage.rectTransform.localScale = new Vector3 (1.0f, (float)patternMat.height () / (float)patternMat.width (), 1.0f); - - pattern = new Pattern (); - patternTrackingInfo = new PatternTrackingInfo (); - - patternDetector = new PatternDetector (null, null, null, true); - - patternDetector.buildPatternFromImage (patternMat, pattern); - patternDetector.train (pattern); - - - webCamTextureToMatHelper.Init (); - } - - } - - /// - /// Raises the web cam texture to mat helper inited event. - /// - public void OnWebCamTextureToMatHelperInited () - { - Debug.Log ("OnWebCamTextureToMatHelperInited"); - - - Mat webCamTextureMat = webCamTextureToMatHelper.GetMat (); - - texture = new Texture2D (webCamTextureMat.width(), webCamTextureMat.height(), TextureFormat.RGBA32, false); - gameObject.GetComponent ().material.mainTexture = texture; - - - grayMat = new Mat (webCamTextureMat.rows (), webCamTextureMat.cols (), CvType.CV_8UC1); - - - gameObject.transform.localScale = new Vector3 (webCamTextureMat.width(), webCamTextureMat.height(), 1); - - Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); - - - - float width = webCamTextureMat.width (); - float height = webCamTextureMat.height (); - - float imageSizeScale = 1.0f; - float widthScale = (float)Screen.width / width; - float heightScale = (float)Screen.height / height; - if (widthScale < heightScale) { - Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; - imageSizeScale = (float)Screen.height / (float)Screen.width; - } else { - Camera.main.orthographicSize = height / 2; - } - - - //set cameraparam - int max_d = (int)Mathf.Max (width, height); - double fx = max_d; - double fy = max_d; - double cx = width / 2.0f; - double cy = height / 2.0f; - camMatrix = new Mat (3, 3, CvType.CV_64FC1); - camMatrix.put (0, 0, fx); - camMatrix.put (0, 1, 0); - camMatrix.put (0, 2, cx); - camMatrix.put (1, 0, 0); - camMatrix.put (1, 1, fy); - camMatrix.put (1, 2, cy); - camMatrix.put (2, 0, 0); - camMatrix.put (2, 1, 0); - camMatrix.put (2, 2, 1.0f); - Debug.Log ("camMatrix " + camMatrix.dump ()); - - - distCoeffs = new MatOfDouble (0, 0, 0, 0); - Debug.Log ("distCoeffs " + distCoeffs.dump ()); - - - //calibration camera - Size imageSize = new Size (width * imageSizeScale, height * imageSizeScale); - double apertureWidth = 0; - double apertureHeight = 0; - double[] fovx = new double[1]; - double[] fovy = new double[1]; - double[] focalLength = new double[1]; - Point principalPoint = new Point (0, 0); - double[] aspectratio = new double[1]; - - Calib3d.calibrationMatrixValues (camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio); - - Debug.Log ("imageSize " + imageSize.ToString ()); - Debug.Log ("apertureWidth " + apertureWidth); - Debug.Log ("apertureHeight " + apertureHeight); - Debug.Log ("fovx " + fovx [0]); - Debug.Log ("fovy " + fovy [0]); - Debug.Log ("focalLength " + focalLength [0]); - Debug.Log ("principalPoint " + principalPoint.ToString ()); - Debug.Log ("aspectratio " + aspectratio [0]); - - - //To convert the difference of the FOV value of the OpenCV and Unity. - double fovXScale = (2.0 * Mathf.Atan ((float)(imageSize.width / (2.0 * fx)))) / (Mathf.Atan2 ((float)cx, (float)fx) + Mathf.Atan2 ((float)(imageSize.width - cx), (float)fx)); - double fovYScale = (2.0 * Mathf.Atan ((float)(imageSize.height / (2.0 * fy)))) / (Mathf.Atan2 ((float)cy, (float)fy) + Mathf.Atan2 ((float)(imageSize.height - cy), (float)fy)); - - Debug.Log ("fovXScale " + fovXScale); - Debug.Log ("fovYScale " + fovYScale); - - - //Adjust Unity Camera FOV https://github.com/opencv/opencv/commit/8ed1945ccd52501f5ab22bdec6aa1f91f1e2cfd4 - if (widthScale < heightScale) { - ARCamera.fieldOfView = (float)(fovx [0] * fovXScale); - } else { - ARCamera.fieldOfView = (float)(fovy [0] * fovYScale); - } - - - - - transformationM = new Matrix4x4 (); - - invertYM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, -1, 1)); - Debug.Log ("invertYM " + invertYM.ToString ()); - - invertZM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, 1, -1)); - Debug.Log ("invertZM " + invertZM.ToString ()); - - - - - - //if WebCamera is frontFaceing,flip Mat. - if (webCamTextureToMatHelper.GetWebCamDevice ().isFrontFacing) { - webCamTextureToMatHelper.flipHorizontal = true; - } - - } - - /// - /// Raises the web cam texture to mat helper disposed event. - /// - public void OnWebCamTextureToMatHelperDisposed () - { - Debug.Log ("OnWebCamTextureToMatHelperDisposed"); - - if (grayMat != null) - grayMat.Dispose (); - } - - /// - /// Raises the web cam texture to mat helper error occurred event. - /// - /// Error code. - public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){ - Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode); - } - - // Update is called once per frame - void Update () - { - if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) { - - Mat rgbaMat = webCamTextureToMatHelper.GetMat (); - - Imgproc.cvtColor (rgbaMat, grayMat, Imgproc.COLOR_RGBA2GRAY); - - - bool patternFound = patternDetector.findPattern (grayMat, patternTrackingInfo); - -// Debug.Log ("patternFound " + patternFound); - if (patternFound) { - patternTrackingInfo.computePose (pattern, camMatrix, distCoeffs); - - //Marker to Camera Coordinate System Convert Matrix - transformationM = patternTrackingInfo.pose3d; - //Debug.Log ("transformationM " + transformationM.ToString ()); - - if (shouldMoveARCamera) { - ARM = ARGameObject.transform.localToWorldMatrix * invertZM * transformationM.inverse * invertYM; - //Debug.Log ("ARM " + ARM.ToString ()); - - ARUtils.SetTransformFromMatrix (ARCamera.transform, ref ARM); - } else { - - ARM = ARCamera.transform.localToWorldMatrix * invertYM * transformationM * invertZM; - //Debug.Log ("ARM " + ARM.ToString ()); - - ARUtils.SetTransformFromMatrix (ARGameObject.transform, ref ARM); - } - - ARGameObject.GetComponent ().SetActive (true); - } else { - - ARGameObject.GetComponent ().SetActive (false, 0.5f); - } - - - Utils.matToTexture2D (rgbaMat, texture, webCamTextureToMatHelper.GetBufferColors ()); - - } - - } - - /// - /// Raises the disable event. - /// - void OnDisable () - { - webCamTextureToMatHelper.Dispose (); - - if (patternMat != null) - patternMat.Dispose (); - } - - - /// - /// Raises the back button event. - /// - public void OnBackButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("MarkerLessARSample"); - #else - Application.LoadLevel ("MarkerLessARSample"); - #endif - } - - /// - /// Raises the play button event. - /// - public void OnPlayButton () - { - webCamTextureToMatHelper.Play (); - } - - /// - /// Raises the pause button event. - /// - public void OnPauseButton () - { - webCamTextureToMatHelper.Pause (); - } - - /// - /// Raises the stop button event. - /// - public void OnStopButton () - { - webCamTextureToMatHelper.Stop (); - } - - /// - /// Raises the change camera button event. - /// - public void OnChangeCameraButton () - { - webCamTextureToMatHelper.Init (null, webCamTextureToMatHelper.requestWidth, webCamTextureToMatHelper.requestHeight, !webCamTextureToMatHelper.requestIsFrontFacing); - } - - /// - /// Raises the is showing axes toggle event. - /// - public void OnIsShowingAxesToggle () - { - if (isShowingAxesToggle.isOn) { - isShowingAxes = true; - } else { - isShowingAxes = false; - } - axes.SetActive (isShowingAxes); - } - - /// - /// Raises the is showing cube toggle event. - /// - public void OnIsShowingCubeToggle () - { - if (isShowingCubeToggle.isOn) { - isShowingCube = true; - } else { - isShowingCube = false; - } - cube.SetActive (isShowingCube); - } - - /// - /// Raises the is showing video toggle event. - /// - public void OnIsShowingVideoToggle () - { - if (isShowingVideoToggle.isOn) { - isShowingVideo = true; - } else { - isShowingVideo = false; - } - video.SetActive (isShowingVideo); - } - - /// - /// Raises the pattern capture button event. - /// - public void OnPatternCaptureButton () - { - #if UNITY_5_3 || UNITY_5_3_OR_NEWER - SceneManager.LoadScene ("CapturePattern"); - #else - Application.LoadLevel ("CapturePattern"); - #endif - } - } - -} +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +#if UNITY_5_3 || UNITY_5_3_OR_NEWER +using UnityEngine.SceneManagement; +#endif +using OpenCVForUnity; + +namespace MarkerLessARExample +{ + /// + /// Marker Less AR example from WebCamTexture. + /// https://github.com/MasteringOpenCV/code/tree/master/Chapter3_MarkerlessAR by using "OpenCV for Unity" + /// + [RequireComponent(typeof(WebCamTextureToMatHelper))] + public class WebCamTextureMarkerLessARExample : MonoBehaviour + { + /// + /// The pattern mat. + /// + Mat patternMat; + + /// + /// The pattern raw image. + /// + public RawImage patternRawImage; + + /// + /// The texture. + /// + Texture2D texture; + + /// + /// The web cam texture to mat helper. + /// + WebCamTextureToMatHelper webCamTextureToMatHelper; + + /// + /// The gray mat. + /// + Mat grayMat; + + /// + /// The AR game object. + /// + public GameObject ARGameObject; + + /// + /// The AR camera. + /// + public Camera ARCamera; + + /// + /// The cam matrix. + /// + Mat camMatrix; + + /// + /// The dist coeffs. + /// + MatOfDouble distCoeffs; + + /// + /// The invert Y. + /// + Matrix4x4 invertYM; + + /// + /// The transformation m. + /// + Matrix4x4 transformationM; + + /// + /// The invert Z. + /// + Matrix4x4 invertZM; + + /// + /// The ar m. + /// + Matrix4x4 ARM; + + /// + /// The should move AR camera. + /// + public bool shouldMoveARCamera; + + /// + /// The pattern. + /// + Pattern pattern; + + /// + /// The pattern tracking info. + /// + PatternTrackingInfo patternTrackingInfo; + + /// + /// The pattern detector. + /// + PatternDetector patternDetector; + + /// + /// The is showing axes. + /// + public bool isShowingAxes = false; + + /// + /// The is showing axes toggle. + /// + public Toggle isShowingAxesToggle; + + /// + /// The axes. + /// + public GameObject axes; + + /// + /// The is showing cube. + /// + public bool isShowingCube = false; + + /// + /// The is showing cube toggle. + /// + public Toggle isShowingCubeToggle; + + /// + /// The cube. + /// + public GameObject cube; + + /// + /// The is showing video. + /// + public bool isShowingVideo = false; + + /// + /// The is showing video toggle. + /// + public Toggle isShowingVideoToggle; + + /// + /// The video. + /// + public GameObject video; + + + // Use this for initialization + void Start () + { + + isShowingAxesToggle.isOn = isShowingAxes; + axes.SetActive (isShowingAxes); + isShowingCubeToggle.isOn = isShowingCube; + cube.SetActive (isShowingCube); + isShowingVideoToggle.isOn = isShowingVideo; + video.SetActive (isShowingVideo); + + ARGameObject.gameObject.SetActive (false); + + + + webCamTextureToMatHelper = gameObject.GetComponent (); + + patternMat = Imgcodecs.imread (Application.persistentDataPath + "/patternImg.jpg"); + + if (patternMat.empty ()) { + + OnPatternCaptureButton (); + } else { + + Imgproc.cvtColor (patternMat, patternMat, Imgproc.COLOR_BGR2RGB); + + Texture2D patternTexture = new Texture2D (patternMat.width (), patternMat.height (), TextureFormat.RGBA32, false); + Utils.matToTexture2D (patternMat, patternTexture); + Debug.Log ("patternMat dst ToString " + patternMat.ToString ()); + + patternRawImage.texture = patternTexture; + patternRawImage.rectTransform.localScale = new Vector3 (1.0f, (float)patternMat.height () / (float)patternMat.width (), 1.0f); + + pattern = new Pattern (); + patternTrackingInfo = new PatternTrackingInfo (); + + patternDetector = new PatternDetector (null, null, null, true); + + patternDetector.buildPatternFromImage (patternMat, pattern); + patternDetector.train (pattern); + + + webCamTextureToMatHelper.Init (); + } + + } + + /// + /// Raises the web cam texture to mat helper inited event. + /// + public void OnWebCamTextureToMatHelperInited () + { + Debug.Log ("OnWebCamTextureToMatHelperInited"); + + + Mat webCamTextureMat = webCamTextureToMatHelper.GetMat (); + + texture = new Texture2D (webCamTextureMat.width(), webCamTextureMat.height(), TextureFormat.RGBA32, false); + gameObject.GetComponent ().material.mainTexture = texture; + + + grayMat = new Mat (webCamTextureMat.rows (), webCamTextureMat.cols (), CvType.CV_8UC1); + + + gameObject.transform.localScale = new Vector3 (webCamTextureMat.width(), webCamTextureMat.height(), 1); + + Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); + + + + float width = webCamTextureMat.width (); + float height = webCamTextureMat.height (); + + float imageSizeScale = 1.0f; + float widthScale = (float)Screen.width / width; + float heightScale = (float)Screen.height / height; + if (widthScale < heightScale) { + Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; + imageSizeScale = (float)Screen.height / (float)Screen.width; + } else { + Camera.main.orthographicSize = height / 2; + } + + + //set cameraparam + int max_d = (int)Mathf.Max (width, height); + double fx = max_d; + double fy = max_d; + double cx = width / 2.0f; + double cy = height / 2.0f; + camMatrix = new Mat (3, 3, CvType.CV_64FC1); + camMatrix.put (0, 0, fx); + camMatrix.put (0, 1, 0); + camMatrix.put (0, 2, cx); + camMatrix.put (1, 0, 0); + camMatrix.put (1, 1, fy); + camMatrix.put (1, 2, cy); + camMatrix.put (2, 0, 0); + camMatrix.put (2, 1, 0); + camMatrix.put (2, 2, 1.0f); + Debug.Log ("camMatrix " + camMatrix.dump ()); + + + distCoeffs = new MatOfDouble (0, 0, 0, 0); + Debug.Log ("distCoeffs " + distCoeffs.dump ()); + + + //calibration camera + Size imageSize = new Size (width * imageSizeScale, height * imageSizeScale); + double apertureWidth = 0; + double apertureHeight = 0; + double[] fovx = new double[1]; + double[] fovy = new double[1]; + double[] focalLength = new double[1]; + Point principalPoint = new Point (0, 0); + double[] aspectratio = new double[1]; + + Calib3d.calibrationMatrixValues (camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio); + + Debug.Log ("imageSize " + imageSize.ToString ()); + Debug.Log ("apertureWidth " + apertureWidth); + Debug.Log ("apertureHeight " + apertureHeight); + Debug.Log ("fovx " + fovx [0]); + Debug.Log ("fovy " + fovy [0]); + Debug.Log ("focalLength " + focalLength [0]); + Debug.Log ("principalPoint " + principalPoint.ToString ()); + Debug.Log ("aspectratio " + aspectratio [0]); + + + //To convert the difference of the FOV value of the OpenCV and Unity. + double fovXScale = (2.0 * Mathf.Atan ((float)(imageSize.width / (2.0 * fx)))) / (Mathf.Atan2 ((float)cx, (float)fx) + Mathf.Atan2 ((float)(imageSize.width - cx), (float)fx)); + double fovYScale = (2.0 * Mathf.Atan ((float)(imageSize.height / (2.0 * fy)))) / (Mathf.Atan2 ((float)cy, (float)fy) + Mathf.Atan2 ((float)(imageSize.height - cy), (float)fy)); + + Debug.Log ("fovXScale " + fovXScale); + Debug.Log ("fovYScale " + fovYScale); + + + //Adjust Unity Camera FOV https://github.com/opencv/opencv/commit/8ed1945ccd52501f5ab22bdec6aa1f91f1e2cfd4 + if (widthScale < heightScale) { + ARCamera.fieldOfView = (float)(fovx [0] * fovXScale); + } else { + ARCamera.fieldOfView = (float)(fovy [0] * fovYScale); + } + + + + + transformationM = new Matrix4x4 (); + + invertYM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, -1, 1)); + Debug.Log ("invertYM " + invertYM.ToString ()); + + invertZM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, 1, -1)); + Debug.Log ("invertZM " + invertZM.ToString ()); + + + + + + //if WebCamera is frontFaceing,flip Mat. + if (webCamTextureToMatHelper.GetWebCamDevice ().isFrontFacing) { + webCamTextureToMatHelper.flipHorizontal = true; + } + + } + + /// + /// Raises the web cam texture to mat helper disposed event. + /// + public void OnWebCamTextureToMatHelperDisposed () + { + Debug.Log ("OnWebCamTextureToMatHelperDisposed"); + + if (grayMat != null) + grayMat.Dispose (); + } + + /// + /// Raises the web cam texture to mat helper error occurred event. + /// + /// Error code. + public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){ + Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode); + } + + // Update is called once per frame + void Update () + { + if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) { + + Mat rgbaMat = webCamTextureToMatHelper.GetMat (); + + Imgproc.cvtColor (rgbaMat, grayMat, Imgproc.COLOR_RGBA2GRAY); + + + bool patternFound = patternDetector.findPattern (grayMat, patternTrackingInfo); + +// Debug.Log ("patternFound " + patternFound); + if (patternFound) { + patternTrackingInfo.computePose (pattern, camMatrix, distCoeffs); + + //Marker to Camera Coordinate System Convert Matrix + transformationM = patternTrackingInfo.pose3d; + //Debug.Log ("transformationM " + transformationM.ToString ()); + + if (shouldMoveARCamera) { + ARM = ARGameObject.transform.localToWorldMatrix * invertZM * transformationM.inverse * invertYM; + //Debug.Log ("ARM " + ARM.ToString ()); + + ARUtils.SetTransformFromMatrix (ARCamera.transform, ref ARM); + } else { + + ARM = ARCamera.transform.localToWorldMatrix * invertYM * transformationM * invertZM; + //Debug.Log ("ARM " + ARM.ToString ()); + + ARUtils.SetTransformFromMatrix (ARGameObject.transform, ref ARM); + } + + ARGameObject.GetComponent ().SetActive (true); + } else { + + ARGameObject.GetComponent ().SetActive (false, 0.5f); + } + + + Utils.matToTexture2D (rgbaMat, texture, webCamTextureToMatHelper.GetBufferColors ()); + + } + + } + + /// + /// Raises the disable event. + /// + void OnDisable () + { + webCamTextureToMatHelper.Dispose (); + + if (patternMat != null) + patternMat.Dispose (); + } + + + /// + /// Raises the back button event. + /// + public void OnBackButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("MarkerLessARExample"); + #else + Application.LoadLevel ("MarkerLessARExample"); + #endif + } + + /// + /// Raises the play button event. + /// + public void OnPlayButton () + { + webCamTextureToMatHelper.Play (); + } + + /// + /// Raises the pause button event. + /// + public void OnPauseButton () + { + webCamTextureToMatHelper.Pause (); + } + + /// + /// Raises the stop button event. + /// + public void OnStopButton () + { + webCamTextureToMatHelper.Stop (); + } + + /// + /// Raises the change camera button event. + /// + public void OnChangeCameraButton () + { + webCamTextureToMatHelper.Init (null, webCamTextureToMatHelper.requestWidth, webCamTextureToMatHelper.requestHeight, !webCamTextureToMatHelper.requestIsFrontFacing); + } + + /// + /// Raises the is showing axes toggle event. + /// + public void OnIsShowingAxesToggle () + { + if (isShowingAxesToggle.isOn) { + isShowingAxes = true; + } else { + isShowingAxes = false; + } + axes.SetActive (isShowingAxes); + } + + /// + /// Raises the is showing cube toggle event. + /// + public void OnIsShowingCubeToggle () + { + if (isShowingCubeToggle.isOn) { + isShowingCube = true; + } else { + isShowingCube = false; + } + cube.SetActive (isShowingCube); + } + + /// + /// Raises the is showing video toggle event. + /// + public void OnIsShowingVideoToggle () + { + if (isShowingVideoToggle.isOn) { + isShowingVideo = true; + } else { + isShowingVideo = false; + } + video.SetActive (isShowingVideo); + } + + /// + /// Raises the pattern capture button event. + /// + public void OnPatternCaptureButton () + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + SceneManager.LoadScene ("CapturePattern"); + #else + Application.LoadLevel ("CapturePattern"); + #endif + } + } + +} diff --git a/MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs.meta b/Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs.meta similarity index 100% rename from MarkerLessARSample/Scripts/WebCamTextureMarkerLessARSample.cs.meta rename to Assets/MarkerLessARExample/Scripts/WebCamTextureMarkerLessARExample.cs.meta diff --git a/StreamingAssets.meta b/Assets/StreamingAssets.meta similarity index 100% rename from StreamingAssets.meta rename to Assets/StreamingAssets.meta diff --git a/StreamingAssets/dance.avi b/Assets/StreamingAssets/dance.avi similarity index 100% rename from StreamingAssets/dance.avi rename to Assets/StreamingAssets/dance.avi diff --git a/StreamingAssets/dance.avi.meta b/Assets/StreamingAssets/dance.avi.meta similarity index 100% rename from StreamingAssets/dance.avi.meta rename to Assets/StreamingAssets/dance.avi.meta diff --git a/MarkerLessARSample/ReadMe.pdf b/MarkerLessARSample/ReadMe.pdf deleted file mode 100644 index fe76e0eec80c987c614dfa4fd5428f27e6a5b236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63415 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 diff --git a/README.md b/README.md index 71709a3..8a65607 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -MarkerLess AR Sample +MarkerLess AR Example ==================== Overview @@ -12,13 +12,13 @@ Setup Tutorial & Demo Video Demo ----- - WebGL - + - Android - + Manual ----- -[ReadMe.pdf](/MarkerLessARSample/ReadMe.pdf) +[ReadMe.pdf](/Assets/MarkerLessARExample/ReadMe.pdf)