모바일 환경에서 3D 가상현실 응용 프로그램을 개발하는 방법 중 하나로 유니티 3D 가 많이 이용되고 있다. 유니티 3D 엔진을 이용하여 3D 가상현실 서비스가 가능하나 3D 가상현실 장면의 저장, 교환, 전송을 다양한 장치에서 사용하기 위해서는 표준화된 데이터 형식이 필요하다. 이를 위해서 유니티 3D 엔진에서 국제표준 ISO/IEC 19775-1 X3D (Extensible 3D)를 사용할 수 있다면 모바일 환경에서 가상현실 응용 서비스를 위한 3차원 장면 생성과 교환이 가능하게 된다. 본 논문에서는 유니티 3D 엔진을 이용하여 X3D 가상현실을 생성, 변경 및 시뮬레이션 할 수 있도록 3D 장면 접근 인터페이스 구현 방법에 대해 기술한다. 이를 위해서 유니티 3D 엔진에서 X3D 파일의 오브젝트를 처리할 수 있도록 C# 프로그래밍 언어를 이용하여 오브젝트 저장을 위한 데이터 구조를 정의하고 이 데이터에 접근하여 값을 입출력하는 언어 바인딩 함수를 정의한다. 그리고, 유니티 3D 엔진과 C# 바인딩 함수를 사용하여 X3D 데이터를 파싱하고 건물 모델링 생성, 멀티 텍스처 매핑 등 여러 오브젝트들을 생성하고 제어하는 모습을 보여준다.
Unity 3D is a popular cross-platform game engine used when developing 3D virtual reality games for mobile environments. Although the Unity 3D engine can provide 3D virtual reality services, a standardized 3D data format is necessary to store, transfer, and exchange 3D virtual reality scenes between various devices. This can be achieved if ISO/IEC 19775-1 Extensible 3D (X3D) can be used in Unity engines, allowing the generation and exchange of 3D scenes for virtual reality application services in mobile environments. X3D has all the necessary 3D processing data for implementing a graphics pipeline process, which is a basic necessity when representing 3D graphics in a display. In order to implement X3D in the Unity engine, X3D objects should be imported, parsed, and rendered in the Unity environment. When creating an X3D scene in Unity, X3D objects and functions should be defined and accessed based on the Unity engine. This paper describes the development of a 3D scene access interface for accessing an X3D scene using Unity. A data structure and language binding methods that import and export values for X3D scenes have been defined using the C# programming language along with the Unity engine. In addition, examples of displaying X3D scenes including nulti-objects and multi-textures based on Unity and the X3D scene interface are demonstrated.
1. Introduction
2. Virtual Reality Scene Access Interface Concepts
3. Definition of a 3D Scene Access Interface
4. An Implementation Case of the X3D Scene Access Interface in Unity
5. Conclusion