JavaRush /Java Blog /Random-KO /가상현실 속의 자바. VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을...

가상현실 속의 자바. VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을까요?

Random-KO 그룹에 게시되었습니다
이 시리즈의 이전 기사에서 우리는 이미 인공 지능 , 블록체인 , 클라우드 서비스 , 빅 데이터 등과 같은 현대 IT 시장의 거의 모든 최신 기술을 조사하여 Java 프로그래밍 언어가 어떻게 사용되는지 알아냈습니다. 이러한 틈새시장에서 그가 어느 정도까지 중요한 역할을 하는지. 가상현실 속의 자바.  VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을까요?  - 1오늘 우리는 또 다른 트렌디하고 매우 흥미로운 기술 부문, 즉 VR과 AR, 즉 가상 현실과 증강 현실에 대해 이야기하겠습니다. “선진국 인구의 상당 부분이 머지않아 매일 지속적으로 AR 솔루션과 상호작용하게 될 것이라고 생각합니다. 머지않아 AR은 우리 일상생활의 일부가 될 것입니다.” 팀 쿡 애플 CEO

VR과 AR이란 무엇입니까?

먼저 이러한 기술이 무엇인지, 어떻게 사용되는지, 서로 어떻게 다른지 알아 보겠습니다. VR, 즉 가상현실부터 시작해 보겠습니다. 가상 현실 애플리케이션은 사용자의 시각을 완벽하게 포착하여 다른 곳에 있는 것 같은 느낌을 주는 특수 장치에서 실행됩니다. HTC Vive나 Oculus Rift와 같은 인기 있는 모든 VR 헤드셋은 착용 시 사용자의 시야를 완전히 차단합니다. 이러한 장치를 켜면 내부의 LCD 또는 OLED 패널이 특수 렌즈로 굴절되어 게임, 360도 비디오 또는 단순히 프로그램의 인터페이스 등 전송된 콘텐츠가 사용자의 시야를 완전히 채웁니다. . 앞서 언급한 Oculus Rift를 비롯해 Vive, PlayStation VR, Windows Mixed Reality 등을 포함한 대부분의 VR 헤드셋은 외부 센서나 카메라를 통해 구현되는 6DOF(6자유도) 모션 추적 기술을 사용합니다. 이를 통해 장치는 사용자가 보고 있는 방향뿐만 아니라 사용자가 해당 방향을 향해 움직이는 움직임도 감지할 수 있습니다. 이는 6DOF 모션 감지기와 함께 사용자가 가상 ​​공간에서 이동할 수 있게 하여 이러한 애플리케이션의 몰입도를 더욱 높여줍니다. AR, 즉 증강현실의 경우 VR과의 차이점은 AR이 사용자의 비전을 완전히 흡수하려고 노력하는 것이 아니라 여기에 특정 요소를 추가한다는 것입니다. 마이크로소프트 홀로렌즈(Microsoft HoloLens) 등 AR 기기와 다양한 스마트 안경을 통해 사용자는 자신이 바라보는 곳에 이미지를 투사해 주변의 모든 것을 볼 수 있다. 이 개념에는 Pokemon Go, Temple Treasure Hunt, ARrrrrgh, Ingress 등과 같은 수많은 스마트폰 앱과 게임도 포함됩니다. 모바일 기기의 카메라를 이용해 주변 환경을 모니터링하고, 화면에 다양한 정보를 담아 보완한다. AR 디스플레이는 예를 들어 시계 다이얼과 같이 현실 위에 매우 간단한 데이터를 오버레이할 수 있지만 방 한가운데에 괴물의 홀로그램과 같은 복잡한 개체를 구현할 수도 있습니다. 예를 들어, 포켓몬 고(Pokemon Go) 게임은 카메라 렌즈가 향하는 장치 화면에 포켓몬 캐릭터를 투사합니다. 다양한 유형의 증강 현실 안경을 통해 사용자는 자신이 관찰하는 현실 이미지 위에 인터페이스 요소와 애플리케이션 아이콘을 배치할 수 있습니다. “저는 증강현실이 우리 시대의 가장 큰 기술 혁명이 될 것이라고 믿습니다.” Tim Sweeney: 미국의 프로그래머이자 비디오 게임 개발자, Epic Games의 창립자 가상현실 속의 자바.  VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을까요?  - 2

VR과 AR은 같은 것이 아니다

실제로 이것은 가상 현실에 비해 증강 현실의 주요 단점입니다. VR이 보기의 이미지를 완전히 대체한다면 AR은 이를 보완할 뿐이며 종종 사용자 시야의 아주 작은 영역만 차지합니다. 그러나 이는 증강 현실의 주요 장점이기도 합니다. 왜냐하면 이 방법은 개발자에게 거의 무한한 가능성을 제공하기 때문입니다. 예를 들어, 카메라 영상 속 사물을 인식하고 그에 대한 정보를 사용자에게 전달할 수 있는 모바일 AR 애플리케이션은 수년 전부터 존재해왔다. HoloLens와 같은 특수 AR 안경을 사용하면 사용자는 장치 디스플레이에서 볼 수 있는 부동 창을 자신 주위에 배치할 수 있습니다. 증강 현실을 핵심 게임 플레이 요소(Pokemon Go, RoboRaid, Fragments) 또는 추가 기능으로 사용하는 많은 게임은 말할 것도 없습니다. 따라서 AR과 VR은 일반적으로 동일한 접근 방식의 두 가지 유형으로 지칭되지만 가상 현실과 증강 현실은 서로 다른 목적으로 사용되는 매우 다른 두 가지 기술입니다. VR 장치와 애플리케이션의 목적이 현실을 대체하고 사용자를 가상으로 다른 장소로 이동시키는 것이라면 AR은 현실과 함께 작동하여 이미 눈앞에 있는 것을 새로운 정보로 보완합니다. 이 두 기술은 아직 초기 단계이지만 매우 유망한 것으로 간주되며 가까운 미래에 사람들이 컴퓨터를 사용하는 방식에 혁명을 일으킬 가능성이 있습니다. “가까운 미래에는 가상 공간 안에서 많은 이야기가 전해지리라 생각해요.” 미국의 영화감독 조 루소 가상현실 속의 자바.  VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을까요?  - 삼

AR/VR 및 자바

AR/VR 틈새 시장에서는 C#, C/C++, JavaScript, Swift, 심지어 Python을 포함한 다양한 프로그래밍 언어를 사용하지만 Java는 가장 수요가 많은 언어 중 하나입니다. 사실 그 이유는 다른 기술의 경우와 동일합니다. Java 코드를 사용하면 애플리케이션을 빠르게 실행할 수 있고, 객체 지향을 통해 개별 애플리케이션 구성 요소를 더 쉽게 만들 수 있으며, 플랫폼 독립성은 Java의 AR/VR 제품을 더욱 보편적으로 만들 수 있습니다. AR, 즉 증강현실의 경우, AR 애플리케이션의 대다수가 모바일 기기용으로 제작되기 때문에 자바가 주요 프로그래밍 언어 중 하나가 될 것입니다. 이에 따라 안드로이드 모바일 운영체제 기반 기기용으로 제작된 AR 애플리케이션의 주요 옵션은 자바(Java)인 반면, 애플 제품의 경우 오브젝티브-C(Objective-C), 스위프트(Swift) 언어를 사용한다. 오늘날 AR 애플리케이션은 헬멧, 안경, 휴대용 장치, 심지어 콘택트 렌즈를 포함한 다양한 장치를 지원합니다. 여러 면에서 서로 다른, 종종 매우 다른 플랫폼에서 작동하는 AR 솔루션을 만들 수 있는 것은 Java입니다. 현재 Java 기반 AR 애플리케이션은 병원, 은행, 레스토랑, 박물관 등에서 활발히 구현되고 있습니다. “AR은 이미 우리가 상거래와 쇼핑에 접근하는 방식에 혁명을 일으키고 있으며 디지털 세계와 실제 세계를 연결하는 다리를 만들고 있습니다.” FashNerd.com의 창립자 Muchaneta Kapfunde

AR 애플리케이션 유형

이제 AR 애플리케이션 개발에 사용하기에 적합한 기본 도구 세트(SDK)와 프레임워크를 간략하게 살펴보겠습니다. 하지만 먼저 AR 애플리케이션의 두 가지 주요 유형인 마커와 위치정보 애플리케이션을 살펴보겠습니다.
  • 마커 AR 애플리케이션.

    마커 AR 애플리케이션은 이미지 인식 기술을 기반으로 합니다. AR 콘텐츠가 사용자에게 표시되도록 활성화하는 트리거로 흑백 마커를 사용합니다. 따라서, 눈앞에 있는 증강 현실의 요소를 보려면, 그러한 애플리케이션의 사용자는 자신의 환경에 있는 해당 마커에 카메라를 맞춰야 합니다. 장치가 마커를 인식하면 애플리케이션은 마커에 디지털 데이터를 오버레이하고 사용자에게 증강 현실의 요소를 보여줍니다. 특히 이러한 종류의 애플리케이션은 이 기능이 적합한 상점, 레스토랑 및 기타 비즈니스에서 광고 목적으로 널리 사용됩니다.

  • 위치정보 애플리케이션.

    두 번째 주요 유형의 위치 기반 AR 앱은 마커 없이 작동하며 대신 GPS, 가속도계 또는 디지털 나침반에서 제공하는 사용자 위치 정보에 의존하고 실제 물리적 위치 위에 AR 개체를 오버레이합니다. 그리고 다시 한 번 예로 Pokemon Go를 사용합니다. 이것은 아마도 가장 유명한 위치 정보 AR 애플리케이션일 것입니다.

    “AR과 VR 기술 개발의 핵심 과제는 개발자가 자신의 모든 아이디어를 구현할 수 있는 단일 개방형 플랫폼을 만드는 것입니다.”

    소셜 네트워크 페이스북의 창시자인 마크 주커버그(Mark Zuckerberg)

    가상현실 속의 자바.  VR/AR이 미래라는 것이 사실인가요? 그리고 거기에 Java를 위한 자리가 있을까요?  - 4

AR 애플리케이션 개발을 위한 최고의 SDK

  • 구글 ARCore

    ARCore는 AR 앱 개발을 위한 Google의 핵심 플랫폼으로, Android 모바일 OS 기반 장치를 지원하고 Java/OpenGL, Unity 및 Unreal 라이브러리와 함께 작동합니다.

    ARCore의 주요 기능 중에는 모션 추적(ARCore는 내장 카메라를 사용하여 장치의 위치와 방향 지점을 결정할 수 있음), 환경 모델링(플랫폼이 수평 표면을 결정할 수 있음)이 있습니다. 테이블이나 바닥 위의 가상 물체), 조명 추정(필요한 경우 조명 수준을 결정하고 가상 물체가 환경에서 자연스럽게 보이도록 강조 표시) 등이 있습니다.

  • ARToolKit

    ARToolKit은 AR 애플리케이션 개발을 위한 오픈 소스 도구 세트입니다.

    개방형 무료 키트임에도 불구하고 ARToolKit에는 Unity3D 및 OpenSceneGraph 지원, 실시간 AR 애플리케이션 생성 기능, 스마트 안경과의 통합, 다양한 유형의 카메라 지원, 자동 카메라 보정 등

    ARToolKit은 Android, iOS, Linux, Windows 및 Mac OS를 포함한 다양한 플랫폼을 지원합니다.

  • 뷰포리아

    Vuforia는 아마도 증강 현실 애플리케이션 개발을 위한 가장 인기 있고 잘 알려진 플랫폼일 것입니다.

    Vuforia의 주요 기능 중: 다양한 종류의 물체와 이미지 인식; 기본 텍스트 인식 지원, 맞춤형 마커 생성, 다양한 위치의 3D 지도 생성, 클라우드 서비스 및 로컬 데이터 저장 지원 등

    Vuforia는 Android, Universal Windows Platform, Unity 및 iOS와 같은 플랫폼을 지원합니다.

  • 애플 ARKit

    Apple에는 iOS11과 함께 도입되었으며 ARKit이라고 불리는 AR 애플리케이션 개발을 위한 자체 도구 세트도 있습니다. 당연히 iOS 장치만 지원하며 증강 현실 애플리케이션을 만드는 데 필요한 모든 기본 기능이 포함되어 있습니다.

    “우리의 현재 목표는 VR 경험을 더욱 재미있고 몰입감 있게 만들어 사람들이 이러한 경험을 함께 경험할 수 있도록 하는 것입니다.”

    Niantic의 CEO인 존 행크(John Hanke)

  • VR 애플리케이션 개발을 위한 최고의 플랫폼 및 프레임워크

    마지막으로 가상 현실 애플리케이션 개발을 위해 가장 널리 사용되는 여러 개방형 플랫폼과 프레임워크를 살펴보겠습니다.
    • 구리VR

      GuriVR은 3D 장면의 텍스트 설명을 VR 애플리케이션용 실제 3D 모델로 변환할 수 있는 오픈 소스 VR 편집기입니다. 텍스트, 3D 모델, 이미지, 오디오 녹음, 음성 해설, 3D 차트 및 기타 다양한 기능을 지원합니다.

    • 오픈스페이스3D

      OpenSpace3D는 VR 기술을 기반으로 VR 애플리케이션 및 게임을 개발하기 위한 무료 개방형 플랫폼입니다. Leap Motion, HTC Vive/Oculus, Google Cardboard 등을 포함한 다양한 플랫폼과 장치를 지원합니다. AR 애플리케이션을 생성하는 기능도 포함되어 있습니다.

    • OSVR: 오픈 소스 가상 현실 플랫폼

      OSVR은 VR 및 AR 솔루션을 위한 또 다른 범용 플랫폼입니다. 이를 통해 수백 개의 VR/AR 장치와 다양한 종류의 주변 장치를 감지, 구성 및 관리할 수 있습니다. OSVR은 여러 게임 엔진과 운영 체제를 지원하며 비동기 시간 왜곡 및 직접 모드와 같은 서비스를 제공하여 지연 시간이 짧은 렌더링을 지원합니다.

    • 프림로즈 VR

      Primrose VR은 가상 제품 시연, 가상 회의 또는 가상 활동과 같은 간단한 VR 경험을 만들기 위한 개방형 브라우저 프레임워크입니다. Primrose VR은 모든 최신 브라우저와 호환되며 WebGL에서 실행됩니다.

    • 아이디어스페이스 VR(CMS)

      IdeaSpaceVR은 프레임워크나 플랫폼이 아니라 VR 콘텐츠를 위한 개방형 콘텐츠 관리 시스템(CMS)입니다. PHP/MySQL로 구동되는 IdeaSpaceVR은 가상 현실 애플리케이션용 콘텐츠 플레이어가 내장된 로컬에 설치된 모듈형 시스템입니다.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION