JavaRush /Blog Java /Random-VI /Java trong thực tế ảo. Có đúng là VR/AR là tương lai và c...

Java trong thực tế ảo. Có đúng là VR/AR là tương lai và có chỗ cho Java trong đó không?

Xuất bản trong nhóm
Trong các bài viết trước của loạt bài này, chúng tôi đã xem xét hầu hết tất cả các công nghệ ít nhiều hợp thời trang của thị trường CNTT hiện đại, chẳng hạn như trí tuệ nhân tạo , blockchain , dịch vụ đám mây , dữ liệu lớn , v.v., tìm hiểu cách sử dụng ngôn ngữ lập trình Java trong những ngóc ngách này và anh ấy đóng vai trò quan trọng ở mức độ nào. Java trong thực tế ảo.  Có đúng là VR/AR là tương lai và có chỗ cho Java trong đó không?  - 1Hôm nay chúng ta sẽ nói về một phân khúc công nghệ thời thượng và rất thú vị khác - cụ thể là VR và AR, tức là thực tế ảo và tăng cường. “Tôi nghĩ rằng một bộ phận đáng kể dân số của các nước phát triển sẽ sớm tương tác với các giải pháp AR một cách liên tục hàng ngày. AR sẽ sớm trở thành một phần trong cuộc sống hàng ngày của chúng ta.” Tim Cook, CEO của Apple

VR và AR là gì?

Đầu tiên, chúng ta hãy tìm hiểu những công nghệ này là gì, chúng được sử dụng như thế nào và chúng khác nhau như thế nào. Hãy bắt đầu với VR, tức là thực tế ảo. Các ứng dụng thực tế ảo chạy trên các thiết bị đặc biệt thu hút hoàn toàn tầm nhìn của người dùng nhằm tạo ấn tượng rằng họ đang ở một nơi khác. Tất cả các tai nghe VR phổ biến như HTC Vive hay Oculus Rift đều chặn hoàn toàn tầm nhìn của người dùng khi đeo. Khi một thiết bị như vậy được bật, các tấm nền LCD hoặc OLED bên trong nó sẽ được khúc xạ bởi các thấu kính đặc biệt để lấp đầy hoàn toàn tầm nhìn của người dùng bằng nội dung được truyền đi, có thể là trò chơi, video 360 độ hay đơn giản là giao diện của một chương trình. . Hầu hết các tai nghe VR, bao gồm Oculus Rift đã nói ở trên, cũng như Vive, PlayStation VR, Windows Mixed Reality và các loại khác, đều sử dụng công nghệ theo dõi chuyển động sáu bậc tự do (6DOF), đạt được thông qua cảm biến hoặc camera bên ngoài. Điều này cho phép các thiết bị không chỉ phát hiện hướng bạn đang nhìn mà còn phát hiện chuyển động của người dùng theo hướng đó. Điều này, cùng với máy dò chuyển động 6DOF, cho phép người dùng di chuyển trong không gian ảo, khiến các ứng dụng như vậy trở nên hấp dẫn hơn nhiều. Đối với AR, tức là thực tế tăng cường, điểm khác biệt của nó so với VR là AR không cố gắng hấp thụ hoàn toàn tầm nhìn của bạn mà bổ sung thêm một số yếu tố nhất định vào đó. Các thiết bị AR như Microsoft HoloLens và nhiều loại kính thông minh khác nhau cho phép người dùng nhìn thấy mọi thứ xung quanh bằng cách chiếu hình ảnh vào nơi họ đang nhìn. Khái niệm này cũng bao gồm nhiều ứng dụng và trò chơi trên điện thoại thông minh như Pokemon Go, Temple Treasure Hunt, ARrrrrgh, Ingress và nhiều trò chơi khác. Họ sử dụng camera của thiết bị di động để theo dõi môi trường và bổ sung nhiều loại thông tin khác nhau được đặt trên màn hình. Màn hình AR có thể phủ một số dữ liệu rất đơn giản lên trên thực tế, chẳng hạn như mặt số đồng hồ, nhưng chúng cũng có thể triển khai các vật thể phức tạp như hình ba chiều của quái vật ở giữa phòng. Ví dụ: trò chơi Pokemon Go chiếu các nhân vật Pokemon lên màn hình thiết bị của bạn, nơi ống kính máy ảnh hướng vào. Trong khi nhiều loại kính thực tế tăng cường khác nhau cho phép người dùng đặt các thành phần giao diện và biểu tượng ứng dụng lên trên hình ảnh thực tế mà họ quan sát được. “Tôi tin rằng thực tế tăng cường sẽ là cuộc cách mạng công nghệ lớn nhất trong thời đại chúng ta.” Tim Sweeney, lập trình viên và nhà phát triển trò chơi điện tử người Mỹ, người sáng lập Epic Games Java trong thực tế ảo.  Có đúng là VR/AR là tương lai và có chỗ cho Java trong đó không?  - 2

VR và AR không giống nhau

Trên thực tế, đây là nhược điểm chính của thực tế tăng cường so với thực tế ảo. Nếu VR thay thế hoàn toàn hình ảnh trong tầm nhìn của bạn thì AR chỉ bổ sung cho nó, thường chỉ chiếm một vùng rất nhỏ trong tầm nhìn của người dùng. Nhưng đây cũng là ưu điểm chính của thực tế tăng cường, vì phương pháp này mang lại cho các nhà phát triển những khả năng gần như không giới hạn. Ví dụ: các ứng dụng AR di động có thể nhận dạng các vật thể trong hình ảnh camera và truyền thông tin về chúng đến người dùng đã xuất hiện được vài năm. Kính AR đặc biệt, chẳng hạn như HoloLens, cho phép người dùng đặt các cửa sổ nổi xung quanh mình để có thể xem trên màn hình của thiết bị. Chưa kể nhiều trò chơi sử dụng thực tế tăng cường làm yếu tố trò chơi cốt lõi (Pokemon Go, RoboRaid, Fragments) hoặc như một tính năng bổ sung. Do đó, thực tế ảo và thực tế tăng cường là hai công nghệ rất khác nhau được sử dụng cho các mục đích khác nhau, mặc dù AR và VR thường được coi là hai loại có cùng cách tiếp cận. Nếu mục đích của các thiết bị và ứng dụng VR là thay thế thực tế và hầu như đưa người dùng đến một nơi khác, thì AR sẽ hoạt động với thực tế, bổ sung những thông tin mới đã có trước mắt chúng ta. Cả hai công nghệ này vẫn còn ở giai đoạn đầu nhưng được coi là cực kỳ hứa hẹn và có tiềm năng cách mạng hóa cách mọi người sử dụng máy tính trong tương lai gần. “Tôi nghĩ rằng trong tương lai gần, nhiều câu chuyện sẽ được kể trong không gian ảo.” Joe Russo, đạo diễn phim người Mỹ Java trong thực tế ảo.  Có đúng là VR/AR là tương lai và có chỗ cho Java trong đó không?  - 3

AR/VR và Java

Mặc dù phân khúc AR/VR sử dụng một số ngôn ngữ lập trình, bao gồm C#, C/C++, JavaScript, Swift và thậm chí cả Python, Java vẫn là một trong những ngôn ngữ được yêu cầu nhiều nhất. Trên thực tế, lý do cũng giống như trường hợp của các công nghệ khác: Mã Java cho phép ứng dụng chạy nhanh, hướng đối tượng giúp tạo các thành phần ứng dụng riêng lẻ dễ dàng hơn và tính độc lập với nền tảng giúp các sản phẩm AR/VR trong Java trở nên phổ biến hơn. Trong trường hợp AR, tức là thực tế tăng cường, Java sẽ là một trong những ngôn ngữ lập trình chính, vì phần lớn các ứng dụng AR được tạo ra cho thiết bị di động. Theo đó, Java là lựa chọn chính cho các ứng dụng AR được tạo cho các thiết bị dựa trên hệ điều hành di động Android, trong khi ở trường hợp các sản phẩm của Apple, ngôn ngữ Objective-C và Swift được sử dụng. Ngày nay, các ứng dụng AR hỗ trợ nhiều thiết bị khác nhau, bao gồm mũ bảo hiểm, kính, thiết bị cầm tay và thậm chí cả kính áp tròng. Theo nhiều cách, chính Java cho phép bạn tạo các giải pháp AR sẽ hoạt động trên các nền tảng khác nhau, thường rất khác nhau. Ngày nay, các ứng dụng AR dựa trên Java đang được triển khai tích cực tại các phòng khám, ngân hàng, nhà hàng, bảo tàng, v.v. “AR đã cách mạng hóa cách chúng ta tiếp cận thương mại và mua sắm, tạo ra cầu nối giữa thế giới kỹ thuật số và thế giới vật lý.” Manyaneta Kapfunde, người sáng lập FashNerd.com

Các loại ứng dụng AR

Bây giờ, chúng ta hãy xem nhanh các bộ công cụ (SDK) và khung chính có thể sử dụng để phát triển các ứng dụng AR. Nhưng trước tiên, hãy xem hai loại ứng dụng AR chính: ứng dụng đánh dấu và định vị địa lý.
  • Ứng dụng AR đánh dấu.

    Ứng dụng Marker AR dựa trên công nghệ nhận dạng hình ảnh. Họ sử dụng điểm đánh dấu màu đen và trắng làm trình kích hoạt kích hoạt hiển thị nội dung AR cho người dùng. Vì vậy, để nhìn thấy một phần tử của thực tế tăng cường trước mặt, người dùng ứng dụng đó phải hướng camera vào điểm đánh dấu tương ứng trong môi trường của mình. Sau khi thiết bị nhận dạng được điểm đánh dấu, ứng dụng sẽ phủ dữ liệu kỹ thuật số lên đó và hiển thị cho người dùng một phần tử của thực tế tăng cường. Đặc biệt, những loại ứng dụng này được các cửa hàng, nhà hàng và các doanh nghiệp khác sử dụng rộng rãi cho mục đích quảng cáo khi chức năng này phù hợp.

  • Ứng dụng định vị địa lý.

    Loại ứng dụng AR chính thứ hai, dựa trên vị trí, hoạt động không có điểm đánh dấu, thay vào đó dựa vào thông tin vị trí của người dùng được cung cấp bởi GPS, gia tốc kế hoặc la bàn kỹ thuật số và phủ các đối tượng AR lên trên các vị trí thực tế. Và một lần nữa chúng tôi lấy Pokemon Go làm ví dụ - đây có lẽ là ứng dụng AR định vị địa lý nổi tiếng nhất.

    “Nhiệm vụ chính để phát triển công nghệ AR và VR là tạo ra một nền tảng mở duy nhất nơi các nhà phát triển có thể triển khai tất cả ý tưởng của họ”.

    Mark Zuckerberg, người tạo ra mạng xã hội Facebook

    Java trong thực tế ảo.  Có đúng là VR/AR là tương lai và có chỗ cho Java trong đó không?  - 4

SDK tốt nhất để phát triển ứng dụng AR

  • Google ARCore

    ARCore là nền tảng chính của Google để phát triển ứng dụng AR, hỗ trợ các thiết bị dựa trên hệ điều hành di động Android và hoạt động với các thư viện Java/OpenGL, Unity và Unreal.

    Trong số các khả năng chính của ARCore: theo dõi chuyển động (ARCore có thể xác định vị trí và điểm hướng của thiết bị bằng camera tích hợp), mô hình hóa môi trường (nền tảng có thể xác định các bề mặt nằm ngang, chẳng hạn như cho phép đặt vật thể ảo trên bàn hoặc trên sàn), ước tính ánh sáng (xác định mức độ chiếu sáng, nếu cần, làm nổi bật vật thể ảo để chúng trông tự nhiên trong môi trường) và các vật thể khác.

  • ARToolKit

    ARToolKit là bộ công cụ mã nguồn mở để phát triển các ứng dụng AR.

    Mặc dù là một bộ công cụ mở và miễn phí, ARToolKit bao gồm một bộ chức năng rất phong phú, bao gồm hỗ trợ Unity3D và OpenSceneGraph, khả năng tạo các ứng dụng AR thời gian thực, tích hợp với kính thông minh, hỗ trợ các loại máy ảnh khác nhau, hiệu chỉnh máy ảnh tự động và vv

    ARToolKit hỗ trợ nhiều nền tảng, bao gồm Android, iOS, Linux, Windows và Mac OS.

  • vuforia

    Vuforia có lẽ là nền tảng phổ biến và nổi tiếng nhất để phát triển các ứng dụng thực tế tăng cường.

    Trong số các chức năng chính của Vuforia: nhận dạng nhiều loại đối tượng và hình ảnh; hỗ trợ nhận dạng văn bản cơ bản, tạo điểm đánh dấu tùy chỉnh, tạo bản đồ 3D của nhiều vị trí khác nhau, hỗ trợ dịch vụ đám mây và lưu trữ dữ liệu cục bộ, v.v.

    Vuforia hỗ trợ các nền tảng như Android, Universal Windows Platform, Unity và iOS.

  • Apple ARKit

    Chà, Apple cũng có bộ công cụ riêng để phát triển ứng dụng AR, được giới thiệu cùng với iOS11 và được gọi là ARKit. Đương nhiên, nó chỉ hỗ trợ các thiết bị iOS và bao gồm tất cả các chức năng cơ bản để tạo các ứng dụng thực tế tăng cường.

    “Mục tiêu hiện tại của chúng tôi là làm cho trải nghiệm VR trở nên thú vị và hấp dẫn hơn, đồng thời cho phép mọi người cùng nhau trải nghiệm những trải nghiệm này.”

    John Hanke, Giám đốc điều hành của Niantic

  • Các nền tảng và framework tốt nhất để phát triển ứng dụng VR

    Và cuối cùng, chúng ta hãy điểm qua một số nền tảng và framework mở phổ biến nhất để phát triển các ứng dụng thực tế ảo.
    • GuriVR

      GuriVR là trình chỉnh sửa VR mã nguồn mở cho phép bạn chuyển đổi mô tả văn bản của cảnh 3D thành mô hình 3D thực cho các ứng dụng VR. Hỗ trợ văn bản, mô hình 3D, hình ảnh, bản ghi âm, giọng nói, biểu đồ 3D và nhiều chức năng khác.

    • OpenSpace3D

      OpenSpace3D là một nền tảng mở và miễn phí để phát triển các ứng dụng và trò chơi VR dựa trên công nghệ VR. Hỗ trợ một số lượng lớn các nền tảng và thiết bị khác nhau, bao gồm Leap Motion, HTC Vive/Oculus, Google Cardboard và các nền tảng khác. Nó cũng bao gồm chức năng tạo các ứng dụng AR.

    • OSVR: Nền tảng thực tế ảo mã nguồn mở

      OSVR là một nền tảng phổ quát khác dành cho các giải pháp VR và AR. Nó cho phép bạn phát hiện, định cấu hình và quản lý hàng trăm thiết bị VR/AR cũng như nhiều loại thiết bị ngoại vi khác nhau. OSVR hỗ trợ nhiều công cụ trò chơi và hệ điều hành, đồng thời cung cấp các dịch vụ như chế độ cong vênh thời gian không đồng bộ và chế độ trực tiếp để hỗ trợ hiển thị có độ trễ thấp.

    • Hoa anh thảo VR

      Primrose VR là một khung trình duyệt mở để tạo trải nghiệm VR đơn giản, chẳng hạn như trình diễn sản phẩm ảo, cuộc họp ảo hoặc hoạt động ảo. Primrose VR tương thích với tất cả các trình duyệt hiện đại và chạy trên WebGL.

    • IdeaSpace VR (CMS)

      IdeaSpaceVR không phải là một khuôn khổ hay nền tảng mà là một hệ thống quản lý nội dung mở (CMS) cho nội dung VR. Được hỗ trợ bởi PHP/MySQL, IdeaSpaceVR là một hệ thống mô-đun được cài đặt cục bộ với trình phát nội dung tích hợp cho các ứng dụng thực tế ảo.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION