EasyAR sistem koordinat
Dalam program 3D, definisi sistem koordinat sangat penting. Jika tidak ditentukan secara khusus, konvensi berikut digunakan.
Vektor adalah vektor kolom.
Matriks menggunakan row-major. (OpenGL menggunakan column-major)
Semua sistem koordinat menggunakan sistem koordinat tangan kanan. (Sama dengan OpenGL)
Jika sistem koordinat memiliki skala fisik, satuan yang digunakan adalah meter.
Sumbu Y negatif dari sistem koordinat dunia adalah arah gravitasi.
Sistem koordinat perangkat memiliki sumbu X ke kanan, sumbu Y ke atas, sumbu Z keluar dari layar; untuk perangkat dengan layar yang dapat diputar, definisi kanan dan atas didasarkan pada orientasi default-nya. Secara khusus, orientasi default Android mengikuti definisi sistem. (Kaca mata dan beberapa tablet dengan orientasi lanskap sebagai default, ponsel dan beberapa tablet dengan orientasi potret sebagai default), orientasi default iOS adalah potret. (Konsisten dengan definisi dalam deskripsi IMU Android dan iOS)
Pose objek yang dilacak
Pose objek untuk pelacakan gambar planar (ImageTracker) dan pelacakan objek 3D (ObjectTracker) disimpan di pose, yang menunjukkan pose target yang sedang dilacak relatif terhadap kamera. Sistem koordinat kamera dan sistem koordinat target keduanya adalah sistem koordinat tangan kanan. Titik asal sistem koordinat kamera adalah pusat optik kamera, sumbu x positif ke kanan, sumbu y positif ke atas, sumbu z positif ke arah cahaya masuk ke kamera (keluar dari layar). (Kan dan atas mengacu pada kanan dan atas dalam gambar kamera, yang mungkin berbeda dengan orientasi alami perangkat.) Data diatur dalam row-major, berlawanan dengan column-major OpenGL.
pose dapat ditulis sebagai:
Jika mesin 3D menggunakan definisi sumbu yang berbeda, saat mengatur matriks transformasi di mesin 3D perlu dipertimbangkan. Misalnya, jika sistem koordinat kamera dan sistem koordinat target memiliki arah z yang berlawanan, maka nilai matriks transformasi node target di mesin 3D harus diatur ke:
Transformasi dari pelacakan gerak
transform dari pelacakan permukaan (SurfaceTracker) dan cameraTransform dari pelacakan gerak (MotionTrackerCameraDevice), ARKit (ARKitCameraDevice), ARCore (ARCoreCameraDevice), menunjukkan transformasi kamera relatif terhadap sistem koordinat dunia. Sistem koordinat kamera dan sistem koordinat dunia keduanya adalah sistem koordinat tangan kanan. Titik asal sistem koordinat kamera adalah pusat optik kamera, sumbu x positif ke kanan, sumbu y positif ke atas, sumbu z positif ke arah cahaya masuk ke kamera (keluar dari layar). (Kan dan atas, pada perangkat seluler, mengacu pada kanan dan atas orientasi alami perangkat.) Sumbu y sistem koordinat dunia ke atas (berlawanan dengan arah gravitasi), titik asal ditentukan oleh sistem pelacakan gerak. Data diatur dalam row-major, berlawanan dengan column-major OpenGL.
Pose dalam peta spasial jarang dan Mega
getMapPose dari peta spasial jarang (SparseSpatialMap) dan pose dalam Mega, menunjukkan posisi dan orientasi blok peta dalam sistem koordinat kamera. Sistem koordinat kamera dan sistem koordinat blok peta keduanya adalah sistem koordinat tangan kanan. Titik asal sistem koordinat kamera adalah pusat optik kamera, sumbu x positif ke kanan, sumbu y positif ke atas, sumbu z positif ke arah cahaya masuk ke kamera (keluar dari layar). (Kan dan atas, pada perangkat seluler, mengacu pada kanan dan atas orientasi alami perangkat.) Sumbu y sistem koordinat blok peta ke atas (berlawanan dengan arah gravitasi), titik asal ditentukan oleh data blok peta. Data diatur dalam row-major, berlawanan dengan column-major OpenGL.