Transcript 가상현실과 VRML
가상현실과 VRML 1.1 가상현실 이란? 1.2 VRML (Virtual Reality Modeling 1.3 VRML의 특징 Language) 1.1 가상현실 이란? • 인간의 오감이 바탕이 되어 상상 속에서 현실감을 느끼는 가상공간으로 3D이 기본 • 가상공간의 구현 – 컴퓨터를 비롯한 H/W와 3차원 물체를 생성, 편집, 제어, 관리하는 다양한 S/W • H/W – HMD ,Data Glove ,Space Ball etc, • S/W 1.입출력장치, 데이터베이스를 통합, 제어하는 가상현실 개발 소프트웨어 <- 고가의 S/W 2. 3차원 물체를 생성, 편집하는 3차원 모델링 소프트웨어 <- 비교적 저가의 S/W 1.2 VRML (Virtual Reality Modeling Language) • VRML은 Virtual Reality Modeling Language의 약자로 인터넷 환경에서 상호 작용하는 3차원 환경을 개발하기 위해 제안된 스크립트 언어 • VRML 시초 -1994년 5월 스위스 제네바에서 열린 WWW conference에서 Tim Berners-Lee와 Dave Raggett가 제안 - Silicon Graphics 사의 Open Inventor 파일 형식을 기반으로 VRML V1.0 규약 제정 - V1.0의 기능에 다양한 기능을 추가하여 1996년 VRML V2.0 제정 - 1997년에 VRML 2.0은 VRML97로 수정하면서 국제 표준으로 인정 받았다. - 현재 web3d 표준안으로 X3d(eXtensible 3 Dimension)란 명칭으로 가상현실을 모델링 • VRML 1.0 - 실리콘 그래픽스(SGI)의 오픈 인벤터(Open Inventor)의 파일 포맷을 기초 로 하여 VRML 1.0 규약이 제정 하였지만 사운드, 애니메이션 등이 결여되 었고 가장 중요한 요소인 상호작용이 지원되지 않음 • VRML 2.0 - VRML 2.0에 대표적으로 추가된 기능은 상호작용(interactive), 키프레임 애니메이션, 3차원 사운드, 다양한 배경, 3차원 물체를 제어할 수 있는 여러 스크립트가 제공 • VRML 97 - VRML 2.0을 국제 그래픽 표준으로 인정받기 위하여 V2.0의 스펙 (Specification)과 관련한 문서와 기능의 수정을 통해 그래픽 언어의 표준으로 VRML97이 제안 • X3D -X3D는 “Extensible 3D"의 약자로 인터넷 가상현실 구현 표준 언어 인 VRML97을 대체할 차세대 표준안의 명칭 1.3 VRML의 특징 • 상호작용과 탐색 기능(Interaction and Navigation) - 3D 객체에 사용자의 이벤트를 발생 시킴 으로서 더욱 현실감 있는 가상공 간 체험 • 인터넷상의 3D 그래픽 국제 표준 - 표준 스펙 공개 - ASCII 형태의 파일로 메모장에서 쉽게 구현 • 다양한 스크립트 지원 -HTML 문서와 연결 가능할 뿐만 아니라, JAVA나 JavaScript와 결합 가능하여 다양한 기술을 효과적으로 표현 • 다른 응용프로그램과 호환성 X3D와VRML 2.1 X3D(extensible 3 Dimension) 란? 2.2 X3D의 특징 2.1 X3D(extensible 3 Dimension) 란? • X3D란 Extensible 3D(확장 가능한 3D)를 의미 하며 VRML2.0의 기능을 상속, 확장, 보완한 차 세대 web3D 표준 규약 • VRML은 HTML을 기본으로 하지만 X3D는 XML 상에서 구현되는 W3D • X3D 등장 배경 - 실리콘 그래픽스의 Cosmo Player 개발 포기 - VRML의 명세서가 최초의 Web3D 이지만 포괄적인 명 세서로 인한 Viewer의 용량이 커짐 - Web3D 컨소시엄은 기존의 VRML의 장점을 유지하고 단점을 보완한 새로운 표준안으로서 X3D를 공개 • X3D 장점 1. X3D는 VRML이 갖는 기술적 요소를 모두 포함한다. 2. XML로서 가상공간을 쉽게 구현 가능하다. XML은 가 상공간의 데이터베이스를 효율적으로 관리하므로 정보 를 관리하고 제어가 용이하다. 3. X3D는 명세서를 시장성에 맞게 프로파일(profile)로서 분해(component) 가능하다. 4. SAI(Scene Authoring Interface)를 통하여 programming과 scripting 언어를 쉽고 간결하게 사용할 수 있다. 5. X3D의 오픈 소스(open source)는 개발 자원으로 매 우 유용하다. 6. 이진 형태의 파일은 보안과 압축이 가능하다. • X3D 특징 1. XML - XML은 웹 서비스를 기본으로 하고 있으며 분산 네트워크 로서 내부 응용 프로그램과 전송이 가능하다. 2. Componentize - VRML의 각 명세서를 기능별로 분해하여 실시 간 3D 엔진을 사용할 수 있다. 3. 확장성(extensible) - Component를 통하여 응용 서비스에 대한 기능들을 추가로 확장할 수 있는 유연성을 갖고 있다. 4. 프로파일(profile) - 명세서가 갖는 여러 응용의 필요성에 대해 적 합한 표준 확장성을 갖는다. 5. 쉬운 Update(evolutionary) - X3D로서 VRML을 포함하여 쉽게 업데이트가 가능하다. 6. 실시간 처리(realtime) - 고화질의 그래픽으로서 상호대화 형식의 3D 오디오, 비디오를 실시간으로 처리할 수 있다. • X3D 의 지원가능 분야 1. 2,3차원의 그래픽 - 2 차원 벡터의 그래픽과 텍스트 문자를 처리 가능하며, 3차원의 다각형, 텍스쳐 맵핑 등을 처리할 수 있다. 2. CAD 데이터 - CAD 데이터를 개방된 형태의 파일 형태로 변환하 여 제작할 수 잇다. 3. 애니메이션 - 각 종 센서를 통하여 인간 모형이나 모핑(morphing) 등 객체의 애니메이션을 구현할 수 있다. 4. 오디오와 비디오 - MPEG 형태의 오디오와 비디오를 링크하여 표현할 수 있다. 5. 사용자와 상호작용 - 마우스 뿐만 아니라 키보드를 통하여 입력 이 가능하다. 6. 물리적 시뮬레이션 - 분산 상호 시뮬레이션(DIS : Distributed Interaction Simulation) 프로토콜로서 휴먼노이드(Humanoid)나 지 형의 시뮬레이션이 가능하다. • X3D의 계층별 프로파일 VRML 사용법 3.1 전용 뷰어(Viewer) 설치 3.2 Cortona Player 사용법 3.3 노드와 필드 3.1 전용 뷰어(Viewer) 설치 • VRML 3D – 플러그 인 형태의 전용 뷰어 필요 - 실리콘 그래픽스사의 Cosmo Player 패러렐 그래픽스사의 Cortona Player Sony 사의 Community Place 블락선사의 Contact ㈜ 사이맥스의 깨비 뷰어 • 가장 널리 사용된 Cosmo Player는 실리콘 그래 픽사의 개발 포기로 사용 불가능해졌으므로 현 재 Cortona Player가 일반적으로 사용됨 • Parallel Graphics사의 Cortona Player 설치방법 1. http://www.parallelgraphics.com/products/cortona/download/iexplore/ 접속 후 cortvrml.exe를 다운로드 혹은 CD의 cortvrml.exe 를 참조 2. cortvrml.exe 를 실행 후 다음 화면에서 next 선택 후 라이센스 동 의에 Yes 클릭 3. Setup 상태 창 - 소프트웨어가 자동으로 적절히 나타 냄. 브라우져는 Explorer를 선택하고 인스톨 형태는 Typical를 선택한 후 다음 화면으로 이동한다. 4. Setup 옵션 창 – Cortona Player에서 사용할 랜더링 툴 선택 일반적으로 DirectX renderer 선택 5. 설치 완료 화면 설치가 완료되면 다음 그림이 실행된다. 3.2 Cortona Player 사용법 • VRML 파일을 생성하기 위해선 메모장이나 VRMLPad를 사용한다. • VRML 편집기를 사용해서 파일 확장자 .wrl로 저 장한다. 아이콘 형태 • 예제 3-1을 메모장에서 작성한 후 실행 프로그 램은 인터넷 익스플로러 선택 • Cortona Player 화면 • Cortona Player 뷰어 - 3D 물체를 표시하기 위한 작업 표시과 물체를 조종하기 위한 콘트롤 바(Control Bar)로 분류 - 콘트롤 바는 수평과 수직 툴 바로 분류 - 수직 툴 바는 가상공간속에서 사용자의 탐색 형태를 나타내는 버튼 - 수평 툴바는 사용자가 미리 정의해둔 위 치로 이동할 수 있는 버튼들을 포함하고 있다. • 수직 툴바 - 중력 모드 : 가상공간의 탐험 - 중력해제 모드 : 비행모드로 탐험 - 관찰 모드 : 가상공간내의 물체를 관찰하기 위한 모드 • 수평 툴바 : 가상세계의 물체에 바로 접근 : 초기상태로 되돌리기 : 윈도우 창의 크기에 맞게 표현 :객체의 수직과 수평축을 직각으로 맞춤 3.3 노드와 필드 • VRML 구조 - #VRML V2.0 utf8 #은 VRML의 헤더로서 반드시 첫 줄 첫 칸에서 시작 V2,0 VRML의 버전 utf8 VRML 문서의 인코딩(Encoding) 방식 두 번째 줄 이상의 #은 주석문으로 해석 • 대문자, 소문자로 구성 - 대문자는 노드 - 소문자는 필드 • 노드 - 반드시 대문자로 시작하며 가상공간내의 객체를 나타냄 - 54개의 노드로 구성 - 기하노드 Box Cone Cylinder Sphere ElevationGrid Extrusion PointSet IndexedLinneSet IndexedFaceSet Text - 기하속성 노드 Color Coordinate Normal TextureCoordinate - 외형 노드 Appearance FontStyle ImageTexture Material MovieTexture PixelTexture TextureTransform - 그룹 노드 Anchor Billboard Collision Group Transform Inline LOD Switch - 센서 노드 TouchSensor PlaneSensor CylinderSensor SphereSensor ProximitySensor TimeSensor VisibilitySensor - 인터폴레이터 노드 ColorInterpolator CoordinateInterpolator NormalInterpolator PositionInterpolator ScalarInterpolator - 바인딩 노드 Background Fog NavigationInfo Viewpoint - 라이트 노드 DirectionalLight PointLight SpotLight - 사운드와 일반 노드 AudioClip Script Shape Sound WorldInfo • 필드 - 반드시 소문자로 시작하며 가상공간내의 객체의 속성 을 나타냄 - 속성 자료형 이름 변수 값 Field SFvec3f size 222 • 속성의 종류와 의미 Field : 상수와 같은 의미 exposedField : 변수와 같은 의미로 프로그램의 실행 중 항시 값의 변경이 가능하며 이벤트에서 값을 받을 수도 있고 다른 노드에게 이벤트 값을 전송할 수도 있다 EventIn : 이벤트를 발생하기만 하는 속성이다.EventOut : 이벤트를 받기만 하는 속성이다. • 자료형 - 필드가 가질 수 있는 변수의 데이터 형태 • 이름 - 노드의 속성을 나타내는 필드 이름 • 변수 값 - 노드의 필드가 실질적으로 갖는 값 4장 이후의 내용은 CD 실습 참조