Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

demo.js 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * @file MARTINS.js WebAR: Simple Webcam demo
  3. * @version 1.0.2
  4. * @author Alexandre Martins (https://github.com/alemart)
  5. * @license AGPL-3.0
  6. */
  7. window.addEventListener('load', async function() {
  8. try {
  9. const session = await startARSession();
  10. function animate(time, frame)
  11. {
  12. session.requestAnimationFrame(animate);
  13. }
  14. session.requestAnimationFrame(animate);
  15. }
  16. catch(error) {
  17. alert(error.message);
  18. }
  19. async function startARSession()
  20. {
  21. if(!Martins.isSupported()) {
  22. throw new Error(
  23. 'Use a browser/device compatible with WebGL2 and WebAssembly. ' +
  24. 'Your user agent is ' + navigator.userAgent
  25. );
  26. }
  27. //Martins.Settings.powerPreference = 'low-power';
  28. const tracker = Martins.Tracker.ImageTracker();
  29. await tracker.database.add([{
  30. name: 'my-reference-image',
  31. image: document.getElementById('my-reference-image')
  32. }]);
  33. const viewport = Martins.Viewport({
  34. container: document.getElementById('ar-viewport'),
  35. hudContainer: document.getElementById('ar-hud')
  36. });
  37. const source = Martins.Source.Camera({
  38. resolution: 'md'
  39. });
  40. const session = await Martins.startSession({
  41. mode: 'immersive',
  42. viewport: viewport,
  43. trackers: [ tracker ],
  44. sources: [ source ],
  45. stats: true,
  46. gizmos: true,
  47. });
  48. const scan = document.getElementById('scan');
  49. tracker.addEventListener('targetfound', event => {
  50. if(scan)
  51. scan.hidden = true;
  52. });
  53. tracker.addEventListener('targetlost', event => {
  54. if(scan)
  55. scan.hidden = false;
  56. });
  57. return session;
  58. }
  59. });