TODO.md 18.9 KB
Newer Older
1
## New API - aframe
J
Jerome Etienne 已提交
2 3 4 5
- to fix build file...
  - make one build for external tracking
  - one build for pure ar.js
  - would that work ?
J
Jerome Etienne 已提交
6
  - it worked beofre... with aframe. why it doesnt work anymore ?
J
Jerome Etienne 已提交
7 8 9

- do a button - display-hittester-plane
  - in three.js and in aframe.js
J
Jerome Etienne 已提交
10
- remove the area from the trackingMethod
J
Jerome Etienne 已提交
11 12 13 14

- maybe a class arjs-session-debugui.js
  - create the UI
  - let user attach it to the dom
J
Jerome Etienne 已提交
15

J
Jerome Etienne 已提交
16 17 18 19
- buttons aframe doesnt work 
  - in arjs system, debugUIEnabled = true/false
  - how to create the scene dynamically in aframe
  - handle that with a reload
J
Jerome Etienne 已提交
20 21 22 23 24

- FIXME in aframe, i define .initialised but aframe defined .initialized..!?!?! super error prone
  - rename as in isReady ? better than nothing. good for now

- aframe - make hit-testing a arjs-anchor property
J
Jerome Etienne 已提交
25
  - not a full component. easier for the user
J
Jerome Etienne 已提交
26 27 28 29 30 31

- implement working build
  - apparently some issue if artoolkit is included in the build
  - it worked in aframe before... what is happening
  - what if i change the order of the scripts

J
Jerome Etienne 已提交
32
- better handling of the area stuff in trackingMethod
J
Jerome Etienne 已提交
33

J
Jerome Etienne 已提交
34

J
Jerome Etienne 已提交
35
- honor marker preset
J
Jerome Etienne 已提交
36 37 38 39 40 41 42 43
  - hiro + kanji and area
  - old issue with the same markers ?? deep in jsartoolkit
  
- aframe api ? there is marker everywhere... change that ?
  - <ar-camera> ?
  - <ar-anchor>

- REFACTOR trackingMethod - should i put changeMatrixMode into trackingMethod ?
J
Jerome Etienne 已提交
44
  - should just drop it ? ??? why insit. it seems trouble
J
Jerome Etienne 已提交
45 46
  - it is needed for all the test and all
  - what is trackingMethod ? it is unclear and messy
J
Jerome Etienne 已提交
47 48 49 50
  - trackingMethod = trackingBackend + defaultAnchorDefinition
  - why single string ? when it is actually 2 things
  - {trackingBackend}/{defaultAnchorType}-{changeMatrixMode}-{smoothed}
  - smoothed controls need to be a parameter
J
Jerome Etienne 已提交
51 52 53 54
  - it need to be sorted out
  - currently it is only in arProfile... could it be like a profile-string - a preset
  - not something real... it seems too magic/hackish
  - markers-area and changeMatrixMode are about arAnchor
J
Jerome Etienne 已提交
55
    - (artoolkit|aruco|tango)-(area|hiro|kanji)(modelViewMatrix|cameraTransformMatrix)(-Smoothed)+
J
Jerome Etienne 已提交
56 57 58 59 60
    - hiro-cameraTransformMatrix
    - area-artoolkit-modelViewMatrix
    - area-aruco-cameraTransformMatrix
    - what is it on tango ? some fictuous barcode ?
  - trackingBackend is about the session
61 62

- artoolkit modelViewMatrix/cameraTransformMatrix works
J
Jerome Etienne 已提交
63

J
Jerome Etienne 已提交
64 65 66 67 68 69
- put multi-markers in /src/markers-area
  - /examples/markers-area/ - here all the examples
  - put marker page in this directory too
  - three.js/examples/multi-markers/\*.js in /src/markers-area
- refactor threex-screenasportal as a demo in /examples/markers-area/demo-screen-as-portal
  - this is not a threex
J
Jerome Etienne 已提交
70

J
Jerome Etienne 已提交
71
- DONE <a-anchor hit-testing-enabled='true'></a-anchor>
J
Jerome Etienne 已提交
72 73 74 75
- DONE implement picking in aframe
  - first make it works, then find a good API
  - <ar-hittester enabled='true' renderDebug='false'> inside the controlled object
- DONE in arjs.session.js - TODO change that to a usual this.parameters
J
Jerome Etienne 已提交
76
  - do emulation layer with display
J
Jerome Etienne 已提交
77 78
- DONE rename arjsmarker aframe component into arjs-anchor
- DONE rename HitTester into HitTesting
J
Jerome Etienne 已提交
79 80 81
- LATER aruco got perspective issue - likely camera init
- DONE markerhelper fails IF changeMatrixMode===cameraTransformMatrix
- DONE tango video fails
J
Jerome Etienne 已提交
82 83 84
  - some post processing in aframe.js - https://github.com/wizgrav/aframe-effects/blob/master/systems/effects.js
  - it seems to override renderer.render by its own function... not super clean but if it works ok
  - it can be changed later
J
Jerome Etienne 已提交
85
- DONE tango tracking is working ? i think so
J
Jerome Etienne 已提交
86
  - test in both mode
87
  - tracking only tho, clearly no video
J
Jerome Etienne 已提交
88

89

J
Jerome Etienne 已提交
90 91
## New API

J
Jerome Etienne 已提交
92 93 94 95 96 97 98 99 100
- clickability works IIF changeMatrixMode === modelViewMatrix
  - change that
  - not a bug, it is just not implemented
  - arjs-hittester and threex-arclickability are messy
  - clean those 2. no need for 2 class ?
  - which API will remain
  - hittester-plane
  - hittester-tango
  - replace ARClickability with something better and port arjs-hittester on top
J
Jerome Etienne 已提交
101

J
Jerome Etienne 已提交
102
- Check it works on all cases
J
Jerome Etienne 已提交
103
  - no special cases incompatibilities
J
Jerome Etienne 已提交
104 105 106
  - changeMatrixMode
  - tango point cloud fails in cameraTransformMatrix

J
Jerome Etienne 已提交
107 108 109 110 111 112
- later rename file/class
  - move all THREEx for ar.js as ARjs.
  - remove artoolkit in the name when it is multi backend
  - require to check/change all code 
  - can i do a compatibility layer for all the classes
  - thus it is only about changing the files
J
Jerome Etienne 已提交
113 114

- how to handle trackingMethod
J
Jerome Etienne 已提交
115 116 117 118 119 120 121 122
  - area-aruco
  - area-artoolkit
  - aruco
  - artoolkit
  - tango
  - arkit
  - best

J
Jerome Etienne 已提交
123 124 125 126 127 128 129 130 131 132 133
- DONE area-artoolkit fails in cameraTransformMatrix
  - wtf ??? so issue upstream ? how to reproduce in three.js
  - is the error in three.js level, or aframe level
  - apparently setting cameraTransformMatrix or modelViewMatrix in changeMatrixMode doesnt change a thing in area-artoolkit
  - area-artoolkit seems to react as if it was always modelViewMatrix
- DONE remove arSession.onResize2() - thus the API is cleaner
  - do a onResize with a test on argument.length - if not good number call old stuff
- DONE put the UI in the plugin
  - do a special function for it, and call this function from javascript
  - or more like a data in the system
- DONE move three.js/arjs-.js in three.js/src/newApi/
J
Jerome Etienne 已提交
134 135 136 137 138 139 140 141 142
- DONE pick real world with all trackingMethod
  - hit tester with plane
- DONE button tangoonly pointcloudtoggle
- DONE full markers area
  - THREEx.ArMultiMarkerUtils
  - button - reset-markers-area
  - button - toggle-marker-helper
  - button - goto-learner
- DONE tango point cloud visible
J
Jerome Etienne 已提交
143

J
Jerome Etienne 已提交
144 145 146 147 148 149
## New build with multiple tracking
- support all tracking but split the build
- ar.js itself
- ar-tracking-artoolkit.js
- ar-tracking-aruco.js
- ar-tracking-tango.js
J
Jerome Etienne 已提交
150

J
Jerome Etienne 已提交
151
## Remove three.js dependancy
J
Jerome Etienne 已提交
152
- first remove it externally
J
Jerome Etienne 已提交
153 154
  - find all dependancy to three.js in the ar-session API
  - 
J
Jerome Etienne 已提交
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
- then remove it internally
- get ride of three.js dependancy 
  - first arjs session API not to use any three.js specific
  - vector3 as array, same for quaternion
  - some matrix as array too - projection matrix, localMatrix
- as im rewriting the highlevel API, im thinking about removing the three.js 
  dependancy. aka to make AR.js easily usable by other than three.js
  this could be osg.js (sketchfab stuff), this could be babylon.js
  this would clean things up and this isnt too hard to do on my side.
  Just using another math library and to do some THREE.Object3d emulation
- use gl-matrix.js - it is good code - it is from somebody rigurous - it is well maintained
- ARjs.Camera inherit from ARjs.Object3D - projectionMatrix
- ARjs.Object3D : position, quaternion, scale


--- 
J
Jerome Etienne 已提交
171 172 173 174
- remove the arcode generator + marker generator, now that they are in webxr.io
- move docs/ into its own repository
  - thus no conflict with main repo
  - and it is considered secondery
J
Jerome Etienne 已提交
175 176 177 178 179 180
- have seen stuff about projection matrix in jsartoolkit
  - would need to recompiled
  - would fix the near/far
  - maybe i can understand the camera calibration number
  - a pure-js to read camera calibration file would be good
  - ```ARdouble farPlane = 1000.0;``` in emscripten/ARToolKitJS.cpp
J
Jerome Etienne 已提交
181 182
  - what about replacing it directly in artoolkit.min.js ? it should contain it somewhere
    - ```this.setProjectionFarPlane(1000)```
J
Jerome Etienne 已提交
183 184 185 186 187
  - what if i set farPlane in js before everything
    - check if the value in the projection matrix change
  - this update the project matrix
  - ```arglCameraFrustum(&((arc->paramLT)->param), arc->nearPlane, arc->farPlane, arc->cameraLens);```
  - this should be called in setNearPlane
J
Jerome Etienne 已提交
188
  - TRY TO MODIFY THE JS DIRECTLY ?
J
Jerome Etienne 已提交
189

J
Jerome Etienne 已提交
190 191 192
- do test with a special webrtc emulation layer
  - so i can download video and/or image - better for testing
- handle pwa stuff - useful for phone
J
Jerome Etienne 已提交
193
  - some work done in webar-playground
J
Jerome Etienne 已提交
194 195
  - https://twitter.com/jerome_etienne/status/888008537984708608

J
Jerome Etienne 已提交
196
# aframe-ar.js new
J
Jerome Etienne 已提交
197 198
- there is a resize every 1/60 seconds ??
- test on mobile
J
Jerome Etienne 已提交
199 200 201
- aframe-ar.js new version
  - support smoother 
  - support multi marker - so augmented-website
202
  - fixed resize
J
Jerome Etienne 已提交
203
- resize doesnt support portraiting a landscape ? still true?
J
Jerome Etienne 已提交
204 205
- how to handle the parameters
  - i need to have the profile
J
Jerome Etienne 已提交
206
  - still it should be possible to change parameteres to offer flexibility
J
Jerome Etienne 已提交
207
- support multi trackingBackend
J
Jerome Etienne 已提交
208
  - do a aruco example
J
Jerome Etienne 已提交
209 210

---
J
Jerome Etienne 已提交
211
- port webvr-arbackend
J
Jerome Etienne 已提交
212 213 214
  - one example to read webvr data and display them in html
  - then a full example of 3d webvr tracking
  - in desktop and in tango 
215

J
Jerome Etienne 已提交
216
- rename THREEx.ArToolkitContext.getProjectionMatrix into .getArtoolkitProjectMatrix
J
Jerome Etienne 已提交
217
- make multi-marker without page reload
218

J
Jerome Etienne 已提交
219 220
---
  
J
Jerome Etienne 已提交
221
- DONE make multi-markers to support aruco too
J
Jerome Etienne 已提交
222 223
  - add arBackend in learner.html input
  - handle arBackend definition in player.html
J
Jerome Etienne 已提交
224
- DONE add modelViewMatrix and a smoother in AR.js example ?
225 226 227
  - what would be a good example for aruco feature in ar.js
  - yep add that because this is like the default now
- DONE ArMarkerControls.markerId is artoolkit specific
J
Jerome Etienne 已提交
228
  - to rename artoolkitMarkerId for now
229
- DONE ArToolkitContext.projectionAxisTransformMatrix is only to correct artoolkit axis
J
Jerome Etienne 已提交
230
  - it is a kludge to start with
J
Jerome Etienne 已提交
231
  - make it as contained as possible
J
Jerome Etienne 已提交
232 233 234
  - maybe cached in a ARtoolkit specific function
  - projectionAxisTransformMatrix renamed as artoolkitprojectionAxisTransformMatrix
  - simple, no risk and make it clear it is artoolkit - 
J
Jerome Etienne 已提交
235
- DONE in trackingbackend-switch put the backend in hash. and offer to switch
J
Jerome Etienne 已提交
236 237
  - good for testing
- DONE all this testing about aruco or jsartoolkit it crappy
J
Jerome Etienne 已提交
238
  - in artoolkitContext.backend === 'aruco' || 'artoolkit'
J
Jerome Etienne 已提交
239
  - not very clear + timer to init jsartoolkit
J
Jerome Etienne 已提交
240 241
  - so you keep the pointer to context for each. But you test all about the .backend = 'artoolkit'
- DONE arucocontext has the canvas at the moment - but dont respect the original canvasWidth
J
Jerome Etienne 已提交
242
- DONE all the posit stuff MUST be out of aruco context and in controls
J
Jerome Etienne 已提交
243
- DONE replace THREEx.ArMarkerControls.notifyFoundModelViewMatrix() by .updateWithModelViewMatrix()
J
Jerome Etienne 已提交
244 245 246
- LATER: remove all the artoolkit mention in the front as is now multiple backends
  - you got classname with 'artoolkit' in it
  - even exposed in a-frame parameters
J
Jerome Etienne 已提交
247
- NOT NOW: threex-aruco layer is really really thin - YET ANOTHER INDIRECTION
J
Jerome Etienne 已提交
248 249 250 251
  - seems useless indirection for AR.js
  - why not aruco directly
  - you are using jsartoolkit directly
  - YES use aruco directly
J
Jerome Etienne 已提交
252 253 254 255
  - threex-aruco is at the same level of jsartoolkit
    - keeping them at the same level will help make ar.js more consistent
  - threex-aruco provide standalone testing which is good
  - UNCLEAR at best - 
J
Jerome Etienne 已提交
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276

- can you make it easy to try all your demo with aruco
  - this means supporting aruco in webar-playground
  - so multi markers
  - may even be an option in the json localstorage learned area
  - thus it is easy to switch from one to another
  - the best way to put aruco as first player

- aruco seems the future
  - there is pure js implementation - readable code
  - there is a cpp implementation too
  - much smaller code
  - well documented code + algo
  - simple algo - easy to understand
  - not too big - i can maintain it myself
  - i got MUCH better controls over the code
  - this lead to ability to tune and experiments with the detection
  - the detection is the core of the business. it MUCH be under controls
  - still issue with homography
  - but can be easily fixed, compared to the huge advantage
  
J
Jerome Etienne 已提交
277 278 279

---
# TODO
280 281
- if artoolkit arbackend and marker facing camera, then change the tweening
  - specific fix to artoolkit
282 283
- TODO super unclear how to get the backward facing camera...

J
Jerome Etienne 已提交
284 285 286 287
- currently webvr is able to do location already
  - why wouldnt i code it all in webvr location, without the stereo rendering
  - well it is too early. it is better to make it easier to reuse.
  - webvr tango isnt mature enougth
J
Jerome Etienne 已提交
288

J
Jerome Etienne 已提交
289

J
Jerome Etienne 已提交
290
- release soon and start doing dev/master
J
Jerome Etienne 已提交
291 292 293 294
  - create a dev branch
  - release AR.js as 1.2
  - what about the communication ?
  - make a post on what is new in AR.js
J
Jerome Etienne 已提交
295
  - ISSUE: i need to deploy dev on gh-pages it helps with https during dev
J
Jerome Etienne 已提交
296

J
Jerome Etienne 已提交
297 298 299 300
- redo parameters-tuning.html
  - all parameters exposed as button - stored as json in url
  - to replace the demo.html in a-frame - which is super broken anyway
  - 3 groups of parameters : source, context, controls. make it 3 group on screen too
J
Jerome Etienne 已提交
301

J
Jerome Etienne 已提交
302 303
---

J
Jerome Etienne 已提交
304 305 306 307 308 309
- do the initial tunning of camera resolution to have the same aspect as the screen resolution
  - better precision for my cpu
  - currently it is doing 640x480 by default
  - as it is supposed to be fullscreen, get the screen resolution, instead of the window resolution
    - thus no resize being late issue

J
Jerome Etienne 已提交
310 311
---

J
Jerome Etienne 已提交
312 313 314 315 316
- DONE do a pass on THREEx.ArToolkitSource
  - IOS support - https://github.com/jeromeetienne/AR.js/issues/90
  - support for torch - https://www.oberhofer.co/mediastreamtrack-and-its-capabilities/
  - use the new getUserMedia API with envfacing api - see IOS bugs
- DONE update link in README.md
317 318 319 320 321 322 323
- DONE THREEx.ArToolkitSource.prototype.onResize
  split it in 
  THREEx.ArToolkitSource.prototype.mirrorSizeTo(blabla)
- DONE Race conditions in resize
  - arToolkitSource.onResize([renderer.domElement, arToolkitContext.arController.canvas])
  - fails if arToolkitContext.arController not ready
  - change this code, and port is EVERYWHERE :)
324 325 326 327 328 329 330 331 332
- DONE rename marker generator as marker-training - just because it is what artoolkit said before
  - maybe creator ? 
  - training is the same word as before, and seems to do something smart
- DONE do something to upload marker from image directly instead of .patt
  - this avoid the pain of handling .patt files
  - so get the image encoding it, and then do a dataurl
  - as the data is image
- DONE THREEx.ArSmoothedControls.minVisibleDelay to 0 ?
  - why would it be worst to show the marker, than to hide it ? 
J
Jerome Etienne 已提交
333
- DONE bug in resize + debug in context
J
Jerome Etienne 已提交
334
  - API is still crap tho
J
Jerome Etienne 已提交
335 336 337 338
- DONE do the tweening + disapearance with timeout in threex-armarkersmoother.js
  - this is a controls which read a armarkercontrols and output a new smoothed root
  - make a possible delay in the appearance and disapearance
- DONE put armarkerhelper else where
J
Jerome Etienne 已提交
339
- DONE do a threex.armarkershelper.js something which display info on the marker
J
Jerome Etienne 已提交
340 341 342 343 344
  - which pattern, etc...
  - an axis too
  - like you did in threex.arealearning.js
  - if controls.parameters.helperEnabled: true, then the controls will add the helper automatically

J
Jerome Etienne 已提交
345

J
Jerome Etienne 已提交
346 347 348 349
- about.me in ar - augmented.club - augmented.whoswho - augmented.cat - augmented.fans - ar.codes
  - multiple link
  - twitter, avatar, linkedin, facebook
  - all stored in the url. so all the states is in the network
J
Jerome Etienne 已提交
350 351 352 353 354 355
  - avatar at the center, each link graviting around, with exploding entrance like in https://vimeo.com/6264709
  - minimal: twitter avatar, username, twitter logo
  - twitter logo model - https://sketchfab.com/models/60aedf8d974d481995e196225fb0bd2e
  - logo in voxel ? https://sketchfab.com/models/8da01234347a4193b06f0b2f07113d40
  - sketchfab logo - https://sketchfab.com/models/585ace7e32b44d93bb1cecb456488934
  - gravatar from the email - http://en.gravatar.com/site/implement/hash/
J
Jerome Etienne 已提交
356

J
Jerome Etienne 已提交
357 358 359
- release ar.js
  - start working in dev branch
  - more frequent release.
J
Jerome Etienne 已提交
360

J
Jerome Etienne 已提交
361 362 363 364
- moving three.js/ at the root ?
  - it seems more natural. But there is no emergency
  - webvr and aframe in their own repository now that it is more stable ?

J
Jerome Etienne 已提交
365
- for refraction, do some deforming mirror effect
J
Jerome Etienne 已提交
366
  - put dat.gui in it
J
Jerome Etienne 已提交
367
  - various shape which will act as mirrors
J
Jerome Etienne 已提交
368 369
  - cylinder with shrinked middle, dilated middle
  - animated geometry ?
J
Jerome Etienne 已提交
370

J
Jerome Etienne 已提交
371
- see about an example of videoinwebgl + vreffect
J
Jerome Etienne 已提交
372 373 374
- work on the stereo thing - make the webvr stuff
  - suddently your demo would work on any webvr device
  - does this work if i port video-in-webvr into aframe ? what if we go in webvr mode ?
J
update  
Jerome Etienne 已提交
375

J
Jerome Etienne 已提交
376 377 378 379 380
- what to do with profile
  - should it be the default ?
  - at least on a-frame it should be the default because it is targeted at easy
  - by default, the setting should be the most common one. 
  - aka the one of a phone
J
Jerome Etienne 已提交
381

J
Jerome Etienne 已提交
382 383 384
- "Augmented Reality in WebVR" as WebVR experiments... It has a nice twist that 
  i like :)  http://www.blog.google/products/google-vr/come-play-webvr-experiments/

J
Jerome Etienne 已提交
385
- DONE fix the multimarker and the symlink - it prevents updating ar.js gh-pages
J
Jerome Etienne 已提交
386 387
- DONE add show/hide into arcode.html url
  - thus the apps workflow is finished
J
Jerome Etienne 已提交
388 389 390
- DONE do a build file
  threejs/build/ar.js
  threejs/build/ar.min.js
J
Jerome Etienne 已提交
391

J
Jerome Etienne 已提交
392 393
- DONE re-integrate dead reckoning
  - rename motion prediction into deadreckoningcontrols - more precise
J
Jerome Etienne 已提交
394 395 396
- DONE put THREEx.ArToolkitContext.baseURL = '../' in all demo
- DONE add fish in pool hole-in-the-wall
  - https://blog.int3ractive.com/2012/05/fish-boids-threejs-demo.html
J
Jerome Etienne 已提交
397
- DONE put liquid marker as a single html
J
Jerome Etienne 已提交
398
  - or a directory, no need to be dirty
J
Jerome Etienne 已提交
399
- DONE liquid-table.html
J
Jerome Etienne 已提交
400 401 402 403 404 405
  - video texture + animation of sin 
  - center of finger click is the center of the wave
  - it can be water wave
  - it can be fluild real 
  - integrate physics from real finger
  - it can be like the finger in matrix - https://www.youtube.com/watch?v=b2MSF35IxVE&feature=youtu.be&t=98
J
Jerome Etienne 已提交
406
  - http://mrdoob.com/lab/javascript/webgl/voxels_liquid/index.html
J
Jerome Etienne 已提交
407

J
Jerome Etienne 已提交
408
  
J
Jerome Etienne 已提交
409

J
Jerome Etienne 已提交
410

J
Jerome Etienne 已提交
411 412 413 414 415 416 417
# webvr-polyfill
- GOAL: works well using only the positional tracking, not the stereo display
  - thus it works well with all three.js examples
- handle resize - currently the canvas isnt using the css it should
  - canvas is sent to the webvr with .requestPresent(layer)
- webvr polyfill to present in single screen - like smus/webvr-polyfill
  - look at his tuning and do the same
J
Jerome Etienne 已提交
418
  - just do the call on the webvr-polyfill and see his framedata and all
J
Jerome Etienne 已提交
419 420
- issue with the projection matrix being inverse in y and z
- LATER: make it work with a-frame
J
Jerome Etienne 已提交
421

422
# Profile
J
Jerome Etienne 已提交
423 424
- do a threex-artoolkitprofile.js with various performance profile
  - var arToolKitProfile = new THREEx.ARToolKitProfile(type)
425
  - may be dynamic - for resolution - 'dynamic'
J
Jerome Etienne 已提交
426
  - type = 'phoneInHand' || 'desktop'
427 428
  - thus the user can go a in profiler.html and try various profiles until he find the one he needs
  - then we store that in a cookie, and other applications all use this profile
429
  - cookie/localstorage makes it stored on the browser, need one profiler per domain tho
430
  - but no database and no authentication needed
431 432 433 434 435 436
- DONE artoolkit-profile.html to store the profile in localstorage
  - it allows you to select which profile you like
  - it has a <select> and store it in the storage - desktop-normal - phone-normal - phone-slow - dynamic
  - in ctor, if there is a local storage use this

# TODO
J
Jerome Etienne 已提交
437
- DONE fix projection camera which inversing y axis, and looking toward positive z
438 439 440 441
  - this affect webvr polyfill in three.js demo
- currently the source image ratio is always in 640x480 :(
  - the aspect of the webcam should depends on the screens
  - it will improve the accuracy of the marker detection. trackable from further away
J
Jerome Etienne 已提交
442 443

# Idea about performance - js profiling
J
Jerome Etienne 已提交
444 445
- do it on canary. this is the most advanced tool for that
  - POST: optimising AR.js with chromedevtools
J
Jerome Etienne 已提交
446 447 448 449 450 451 452 453
- more than 70% of the time is used to copy the image in the HEAP
  - .drawImage, .getImageData
  - this.dataHeap.set( data ) is 43% of the total
  - if i can send just a pointer on the data... i gain 43% in one shot
- performance remove copy to heap
  - http://kapadia.github.io/emscripten/2013/09/13/emscripten-pointers-and-pointers.html
  - this explains how to pass a pointer from a typearray to c++ 
  - this would avoid the dataHeap.set() - 43%