提交 bb22784e 编写于 作者: J Jerome Etienne

more refactor

上级 e979011f
## New API - aframe
- honor marker preset
- hiro + kanji and area
- old issue with the same markers ?? deep in jsartoolkit
......
......@@ -5,7 +5,7 @@ watch: build
build:
(cd ../three.js/ && make build)
cat ../three.js/build/ar.js \
aframe-ar.js \
src/aframe-ar.js \
> build/aframe-ar.js
minify: build
......
此差异已折叠。
<!DOCTYPE html>
<!-- include a-frame -->
<!-- <script src="vendor/aframe.js"></script> -->
<script src="vendor/aframe-v0.6.1-three-r86.js"></script>
<!-- include for artoolkit trackingBackend -->
<script src='../../three.js/vendor/jsartoolkit5/build/artoolkit.min.js'></script>
<script src='../../three.js/vendor/jsartoolkit5/js/artoolkit.api.js'></script>
<!-- include for aruco trackingBackend -->
<script src='../../three.js/vendor/js-aruco/src/svd.js'></script>
<script src='../../three.js/vendor/js-aruco/src/posit1.js'></script>
<script src='../../three.js/vendor/js-aruco/src/cv.js'></script>
<script src='../../three.js/vendor/js-aruco/src/aruco.js'></script>
<script src='../../three.js/threex/threex-aruco/threex-arucocontext.js'></script>
<script src='../../three.js/threex/threex-aruco/threex-arucodebug.js'></script>
<!-- include for tango trackingBackend -->
<script src='../../three.js/vendor/chromium-tango/THREE.WebAR.js'></script>
<!-- include ar.js -->
<script src='../../three.js/threex-artoolkitsource.js'></script>
<script src='../../three.js/threex-artoolkitcontext.js'></script>
<script src='../../three.js/threex-artoolkitprofile.js'></script>
<script src='../../three.js/threex-arbasecontrols.js'></script>
<script src='../../three.js/threex-armarkercontrols.js'></script>
<script src='../../three.js/threex-armarkerhelper.js'></script>
<script src='../../three.js/threex-arsmoothedcontrols.js'></script>
<script src='../../three.js/threex-hittester-plane.js'></script>
<script src='../../three.js/threex-hittester-tango.js'></script>
<script src='../../three.js/arjs-utils.js'></script>
<script src='../../three.js/src/new-api/arjs-session.js'></script>
<script src='../../three.js/src/new-api/arjs-anchor.js'></script>
<script src='../../three.js/src/new-api/arjs-hittester.js'></script>
<script src='../../three.js/src/new-api/arjs-tangovideomesh.js'></script>
<script src='../../three.js/src/new-api/arjs-tangopointcloud.js'></script>
<script src='../../three.js/src/markers-area/threex-armultimarkerutils.js'></script>
<script src='../../three.js/src/markers-area/threex-armultimarkercontrols.js'></script>
<script src='../../three.js/src/markers-area/threex-armultimarkerlearning.js'></script>
<!-- include aframe-ar.js -->
<script src="../src/aframe-ar-session.js"></script>
<script>ARjs.Context.baseURL = '../../three.js/'</script>
<body style='margin : 0px; overflow: hidden; font-family: Monospace; background-color: black;'>
<a-scene embedded arjs>
<a-box position='0 0.5 0' material='opacity: 0.5; side:double; color:red;'></a-box>
<a-marker-camera></a-marker-camera>
</a-scene>
</body>
</html>
<!DOCTYPE html>
<!-- include a-frame -->
<script src="vendor/aframe.js"></script>
<!-- <script src="vendor/aframe.js"></script> -->
<script src="vendor/aframe-v0.6.1-three-r86.js"></script>
<!-- include for artoolkit trackingBackend -->
<script src='../../three.js/vendor/jsartoolkit5/build/artoolkit.min.js'></script>
<script src='../../three.js/vendor/jsartoolkit5/js/artoolkit.api.js'></script>
......@@ -33,7 +34,7 @@
<script src='../../three.js/src/markers-area/threex-armultimarkercontrols.js'></script>
<script src='../../three.js/src/markers-area/threex-armultimarkerlearning.js'></script>
<!-- include aframe-ar.js -->
<script src="../aframe-ar-session.js"></script>
<script src="../src/aframe-ar-session.js"></script>
<script>ARjs.Context.baseURL = '../../three.js/'</script>
......
<!DOCTYPE html>
<!-- include a-frame -->
<script src="vendor/aframe.js"></script>
<!-- <script src="vendor/aframe.js"></script> -->
<script src="vendor/aframe-v0.6.1-three-r86.js"></script>
<!-- include for artoolkit trackingBackend -->
<script src='../../three.js/vendor/jsartoolkit5/build/artoolkit.min.js'></script>
<script src='../../three.js/vendor/jsartoolkit5/js/artoolkit.api.js'></script>
......@@ -33,7 +34,7 @@
<script src='../../three.js/src/markers-area/threex-armultimarkercontrols.js'></script>
<script src='../../three.js/src/markers-area/threex-armultimarkerlearning.js'></script>
<!-- include aframe-ar.js -->
<script src="../aframe-ar-session.js"></script>
<script src="../src/aframe-ar-session.js"></script>
<script>ARjs.Context.baseURL = '../../three.js/'</script>
......
......@@ -17,7 +17,7 @@
<script src='../../three.js/examples/multi-markers/threex-armultimarkercontrols.js'></script>
<script src='../../three.js/examples/multi-markers/threex-armultimarkerlearning.js'></script>
<!-- aframe-artoolkit -->
<script src="../aframe-ar.js"></script>
<script src="../src/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden; font-family: Monospace;'><div style='position: fixed; top: 10px; width:inherit; text-align: center; z-index: 1;'>
......
......@@ -2,7 +2,7 @@
<!-- include a-frame -->
<script src="vendor/aframe.min.js"></script>
<!-- include aframe-ar.js -->
<script src="../aframe-ar-new.js"></script>
<script src="../src/aframe-ar-new.js"></script>
<!-- include for artookit tracking -->
<script src="../../three.js/vendor/jsartoolkit5/build/artoolkit.min.js"></script>
<script src="../../three.js/vendor/jsartoolkit5/js/artoolkit.api.js"></script>
......
此差异已折叠。
......@@ -35,6 +35,11 @@ AFRAME.registerSystem('arjs', {
type: 'string',
default: 'default',
},
tangoPointCloudEnabled : {
type: 'boolean',
default: false,
},
// old parameters
debug : {
......@@ -160,39 +165,47 @@ AFRAME.registerSystem('arjs', {
})
//////////////////////////////////////////////////////////////////////////////
// tango specifics
// tango specifics - _tangoPointCloud
//////////////////////////////////////////////////////////////////////////////
_this._tangoVideoMesh = null
_this._tangoPointCloud = null
if( arProfile.contextParameters.trackingBackend === 'tango' ){
// init tangoVideoMesh
var tangoVideoMesh = _this._tangoVideoMesh = new ARjs.TangoVideoMesh(arSession)
if( arProfile.contextParameters.trackingBackend === 'tango' && _this.data.tangoPointCloudEnabled ){
// init tangoPointCloud
var tangoPointCloud = _this._tangoPointCloud = new ARjs.TangoPointCloud(arSession)
scene.add(tangoPointCloud.object3d)
}
// override renderer.render
//////////////////////////////////////////////////////////////////////////////
// tango specifics - _tangoVideoMesh
//////////////////////////////////////////////////////////////////////////////
_this._tangoVideoMesh = null
if( arProfile.contextParameters.trackingBackend === 'tango' ){
// init tangoVideoMesh
var tangoVideoMesh = _this._tangoVideoMesh = new ARjs.TangoVideoMesh(arSession)
// override renderer.render to render tangoVideoMesh
var rendererRenderFct = renderer.render;
renderer.render = function customRender(scene, camera, renderTarget, forceClear) {
renderer.autoClear = false;
// clear it all
renderer.clear()
// // render tangoVideoMesh
// if( arProfile.contextParameters.trackingBackend === 'tango' ){
// // FIXME fails somewhere
// // render sceneOrtho
// rendererRenderFct.call(renderer, tangoVideoMesh._sceneOrtho, tangoVideoMesh._cameraOrtho, renderTarget, forceClear)
// // Render the perspective scene
// renderer.clearDepth()
// }
// render tangoVideoMesh
if( arProfile.contextParameters.trackingBackend === 'tango' ){
// FIXME fails on three.js r84
// render sceneOrtho
rendererRenderFct.call(renderer, tangoVideoMesh._sceneOrtho, tangoVideoMesh._cameraOrtho, renderTarget, forceClear)
// Render the perspective scene
renderer.clearDepth()
}
// render 3d scene
rendererRenderFct.call(renderer, scene, camera, renderTarget, forceClear);
}
}
//////////////////////////////////////////////////////////////////////////////
// Code Separator
//////////////////////////////////////////////////////////////////////////////
_this.initialised = true
......@@ -203,8 +216,11 @@ AFRAME.registerSystem('arjs', {
window.addEventListener('resize', onResize)
function onResize(){
var arSource = _this._arSession.arSource
// ugly kludge to get resize on aframe... not even sure it works
arSource.copyElementSizeTo(document.body)
// ugly kludge to get resize on aframe... not even sure it works
if( arProfile.contextParameters.trackingBackend !== 'tango' ){
arSource.copyElementSizeTo(document.body)
}
var buttonElement = document.querySelector('.a-enter-vr')
if( buttonElement ){
......@@ -218,7 +234,7 @@ AFRAME.registerSystem('arjs', {
//////////////////////////////////////////////////////////////////////////////
if( _this.data.debugUIEnabled ){
document.querySelector('#trackingMethod').innerHTML = _this.data.trackingMethod
if( arProfile.contextParameters.trackingBackend === 'tango' ){
if( arProfile.contextParameters.trackingBackend === 'tango' && _this.data.tangoPointCloudEnabled ){
document.querySelector('#buttonTangoTogglePointCloud').addEventListener('click', function(){
if( tangoPointCloud.object3d.parent ){
scene.remove(tangoPointCloud.object3d)
......@@ -246,8 +262,6 @@ AFRAME.registerSystem('arjs', {
// onResize()
window.dispatchEvent(new Event('resize'));
}, 1000/30)
},
tick : function(now, delta){
......
......@@ -3,9 +3,11 @@ watch: build
.PHONY: build
build:
(cd threex/threex-aruco && make build)
cat vendor/jsartoolkit5/build/artoolkit.min.js \
vendor/jsartoolkit5/js/artoolkit.api.js \
vendor/jsartoolkit5/js/artoolkit.api.js \
threex/threex-aruco/build/threex-aruco.js \
vendor/chromium-tango/THREE.WebAR.js \
threex-*.js \
src/new-api/*.js \
src/markers-area/*.js \
......
此差异已折叠。
......@@ -230,14 +230,14 @@
document.querySelector('#buttonMarkersAreaReset').addEventListener('click', function(){
var trackingBackend = arProfile.contextParameters.trackingBackend
THREEx.ArMultiMarkerUtils.storeDefaultMultiMarkerFile(trackingBackend)
ARjs.MarkersAreaUtils.storeDefaultMultiMarkerFile(trackingBackend)
location.reload()
})
document.querySelector('#buttonMarkersAreaLearner').addEventListener('click', function(){
var learnerBaseURL = THREEx.ArToolkitContext.baseURL + 'examples/multi-markers/examples/learner.html'
var trackingBackend = arProfile.contextParameters.trackingBackend
THREEx.ArMultiMarkerUtils.navigateToLearnerPage(learnerBaseURL, trackingBackend)
ARjs.MarkersAreaUtils.navigateToLearnerPage(learnerBaseURL, trackingBackend)
})
}else{
document.querySelector('#buttonToggleMarkerHelpers').style.display = 'none'
......
......@@ -49,10 +49,16 @@ ARjs.MarkersAreaUtils.storeDefaultMultiMarkerFile = function(trackingBackend){
ARjs.MarkersAreaUtils.createDefaultMultiMarkerFile = function(trackingBackend){
console.assert(trackingBackend)
if( trackingBackend === undefined ) debugger
// create absoluteBaseURL
var link = document.createElement('a')
link.href = ARjs.Context.baseURL
var absoluteBaseURL = link.href
// create the base file
var file = {
meta : {
createdBy : "AR.js Default Marker "+THREEx.ArToolkitContext.REVISION,
createdBy : "AR.js Default Marker "+ARjs.Context.REVISION,
createdAt : new Date().toJSON(),
},
trackingBackend : trackingBackend,
......@@ -67,7 +73,7 @@ ARjs.MarkersAreaUtils.createDefaultMultiMarkerFile = function(trackingBackend){
}
if( trackingBackend === 'artoolkit' ){
file.subMarkersControls[0].parameters.type = 'pattern'
file.subMarkersControls[0].parameters.patternUrl = THREEx.ArToolkitContext.baseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt'
file.subMarkersControls[0].parameters.patternUrl = absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt'
}else if( trackingBackend === 'aruco' ){
file.subMarkersControls[0].parameters.type = 'barcode'
file.subMarkersControls[0].parameters.barcodeValue = 1001
......@@ -88,9 +94,12 @@ ARjs.MarkersAreaUtils.createDefaultMultiMarkerFile = function(trackingBackend){
* @return {Object} - json object containing the controls parameters
*/
ARjs.MarkersAreaUtils.createDefaultMarkersControlsParameters = function(trackingBackend){
// create absoluteBaseURL
var link = document.createElement('a')
link.href = THREEx.ArToolkitContext.baseURL
link.href = ARjs.Context.baseURL
var absoluteBaseURL = link.href
if( trackingBackend === 'artoolkit' ){
// pattern hiro/kanji/a/b/c/f
var markersControlsParameters = [
......
......@@ -3,10 +3,10 @@ watch: build
.PHONY: build
build:
cat vendor/js-aruco/src/aruco.js \
vendor/js-aruco/src/cv.js \
vendor/js-aruco/src/posit1.js \
vendor/js-aruco/src/svd.js \
cat ../../vendor/js-aruco/src/aruco.js \
../../vendor/js-aruco/src/cv.js \
../../vendor/js-aruco/src/posit1.js \
../../vendor/js-aruco/src/svd.js \
threex-*.js > build/threex-aruco.js
minify: build
......
此差异已折叠。
......@@ -385,8 +385,11 @@ THREE.WebAR.resizeVRSeeThroughCamera = function(vrDisplay, camera) {
var bottom = yscale * -height / 2.0 - yoffset;
var top = yscale * height / 2.0 - yoffset;
camera.projectionMatrix.makeFrustum(
left, right, bottom, top, camera.near, camera.far);
// camera.projectionMatrix.makeFrustum(
// left, right, bottom, top, camera.near, camera.far);
camera.projectionMatrix.makePerspective(
left, right, top, bottom, camera.near, camera.far);
// Recalculate the fov as threejs is not doing it.
camera.fov = THREE.Math.radToDeg(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册