Trong thời đại công nghệ 4.0, thế giới thực và thế giới ảo đang dần hòa quyện vào nhau, mở ra những trải nghiệm thú vị như Metaverse của Meta. Tuy nhiên, Metaverse vẫn chủ yếu là thế giới ảo.
Hôm nay mình sẽ giới thiệu và hướng dẫn các bạn việc kết nối giữa thế giới thật và thế giới ảo thông qua thư viện AR là Arjs cụ thể là chức năng Location Based và một framework của Threejs chúng ta có thể viết các trang VR/AR một cách nhanh chóng thông qua HTML và Javascript mình sẽ trình bày giải thích và có mã hình ảnh để dễ dàng truyền đạt lại cho các bạn.
ARJS là gì?
ARJS là một thư viện mã nguồn mở giúp phát triển môi trường AR trên browser mà không cần thông qua bất kỳ app hay phần mềm nào. Phiên bản hiện tại của ARJS là 3.0, hỗ trợ nhiều tính năng nổi bật như:
- Image Checking: Hiển thị model 3D trong môi trường AR thông qua hình ảnh.
- Marker Based Tracking: Theo dõi hình ảnh, mã vạch hoặc pattern.
- Location Based: Theo dõi vị trí GPS để thực hiện các thao tác với 3D trong môi trường thực tế.
Version hiện tại của Arjs là version 3 có và hiện tại đang có thể làm một số điều nổi bật: Image Checking (scan hình ảnh chức năng này giúp ta có thể hiển thị model 3d trong môi trường AR thông qua hình ảnh), Marker Based tracking image với nhiều các loại marker khác nhau như Hiro (này mặc định của Arjs) hoặc là Barcode và Pattern. Và chức năng Location Based dựa trên vị trí GPS để có thể thực hiện các thao tác với 3D trong môi trường thực tế và đây cũng là chức năng mình sẽ demo hôm nay.
Aframejs là gì?
Aframejs là một framework của Threejs giúp viết các trang VR/AR một cách nhanh chóng thông qua HTML và Javascript.
Giới thiệu về chức năng Location Based
Chức năng Location Based của ARJS giúp hiển thị model 3D tại một vị trí cụ thể trong thế giới thực. Trong bài viết này, tôi sẽ demo chức năng này bằng cách hiển thị một mô hình 3D của tháp Eiffel tại vị trí của bạn.

Aframejs: Là một thư viện mã nguồn mở để xây dựng các các trải nghiệm về AR và VR một cách đơn giản và nhanh chóng trên web thông qua các đoạn mã HTML và Javascript. Aframejs thực chất là một Threejs framework kết hợp các Api WebXR để phát triển 3d trên nền tảng web. Nếu bạn hiểu về Threejs và HTML thì sẽ có tốc độ tiếp cận với Aframejs một cách nhanh chóng và dễ dàng.
Demo Arjs Location Based + Aframejs
Tạo ra một dự án đơn giản demo về Arjs Location Based + Aframejs. Hiển thị model theo vị trí GPS đo khoảng cách từ vị trí device đến với vật thể 3D trong không gian.
Cùng thực hành
Ở đây mình sẽ cùng nhau thực hiện từng bước Step by Step và mình sẽ giải thích từng đoạn mã và ý nghĩa của chúng. Đầu tiên chúng ta sẽ tạo một Project mới gồm có chỉ cần có duy nhất một file index.html vì là dự án nhỏ nên chúng ta sẽ Embedded đoạn Code Javascript vào trong file index.html luôn. Let's go
file HTML cơ bản:

Như ở file này mình chỉ tạo đoạn HTML đơn giản cơ bản nhất để có thể chạy trên Browser. Ở đây mình chạy thẳng trên Webstorm các bạn nếu dùng vscode có thể chạy bằng Liveserver Extension.
Tiếp theo ta thêm các cdn của Arjs và Aframejs về để có thể sử dụng 2 thư viện trên. Các bạn thêm đoạn script này vào trong source:
