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 실습 참조