VRML (Virtual Reality Modeling Language) 멀티미디어 10 분 세미나 이성제
목 차 VR 의 소개 VRML 이란 무엇인가 ? VRML 의 역사 VRML Browser 와 저작도구 VRML 의 파일 구성 VRML 의 사용 예 VRML 의 발전 방향 참고 사이트
VR(Virtual Reality) 의 소개 가상현실의 개념 가상현실 (Virtual Reality) 가상현실 (Virtual Reality) : 컴퓨터 시스템을 이용하여 생성한 3 차원적인 인공의 세계에 인간이 몰입하여 실 시간으로 보고 듣고 만지는 현실감을 체험하는 것 가상의 세계에서 눈과 귀를 통해서 보고 들을 수 있으 며, 심지어 냄새와 맛 그리고 촉각까지도 현실에서처 럼 느낄 수 있음 시뮬레이션 (Simulation) 과는 달리 직접 그 안에 들어가 직접적인 체험을 할 수 있도록 하며, 그 안의 물체들과 상호작용 (Interaction) 이 가능
Virtual Reality System 일반적인 가상현실 시스템의 구성
VRML 이란 무엇인가 ? VRML(Virtual Reality Modeling Language): 인 터넷에서 3 차원 가상환경 (Virtual Environment) 을 표현하기 위한 언어이며 시스템이다. HTML 에 대한 3D 언어이다. 즉, 3D 웹 페이지 를 저작하기 위한 multiplatform 언어이다. 3D, 2D, 텍스트, 멀티미디어를 통합하는 문서 모델이다.
VRML 의 특성 구, 육면체, 원뿔 등의 기본적인 입체 도형을 이용하거 나 복잡한 3 차원 오브젝트 모델링 가능 애니메이션과 사운드 삽입 가능 사용자와의 상호작용 (Interlactive) 지원 : 가상현실의 구현을 가능케 함 웹을 기반으로 하고, 다중 사용자 환경 지원 : 사용자가 자신을 대변하는 객체 (Avatar; 化身 ) 를 조종하여 네비 게이션 할 수도 있고, 다른 사람들과 상호작용이 가능 빠른 전송을 위해서 아스키 파일 형태로 되어있음.
다른 미디어와의 비교 구 분 VRMLAnimationVideoGraphic 네비게이션가능불가능 장면의 구성 실시간에 만들어냄 미리 녹화된 장면 그려진 그림 상호작용가능불가능 가상성 사물을 모델링 인공적으로 그림 실제 장면의 녹화 그림 혹은 사진 파일크기작음큼큼
VRML 의 역사 Web3D Consortium 에서 발표 1994 년 05 월 - 제 1 차 웹 컨퍼런스 - VRML 이라는 용어 사용 1994 년 06 월 - VRML Mailing List 시작 – Mark Pesce, Brian Behlendorf 1994 년 10 월 - 제 2 차 웹 컨퍼런스 - VRML Draft 발표 1994 년 11 월 - VRML1.0 Draft 발표 1995 년 04 월 - VRML 브라우저 WebSpace 발표 - SGI, TGS 1995 년 05 월 - VRML1.0 규약 발표 1995 년 12 월 - VRML1.1 규약 발표 1996 년 04 월 - Moving World - VRML2.0 규약 제안 1996 년 08 월 - VRML2.0 규약 발표 1997 년 12 월 - VRML2.0 규약이 VRML97 로 대체 1999 년 02 월 - VRML 차기 버전을 X3D 로 명명 ⊙ 그 외에도 Web3D 에서는 X3D, VRML-MPEG4, VRML-JAVA3D 에 대한 표준을 만들고 있다.
X3D 의 소개 X3D : Extensible 3D –VRML97 의 기능을 확장한 차세대의, 확장가능한 3D 그래픽 규약 –X3D 란 이름은 XML 과의 통합을 의미하기위해 선 택됨. VRML97 과 XML 의 코드 비교 –VRML97 DEF MyView viewpoint { position } –XML
VRML Browser
VRML Browser Cosmo Player –VRML 저작도구 Cosmo Worlds 의 미리보기 용 브라우저 – 개발회사인 Cosmo Software 의 분해로 더 이상 새로운 제품이 나오지는 않지만, 아직 까지 그 기능을 따라오는 브라우저가 없을 정도의 훌륭한 VRML 브라우저임. – 웹 브라우저에 Plug-in 형태로 지원.
VRML Browser blaxxun Contact 3D –Windows95/98/NT/2000 –MS-IE, Netscape 에 Plug-in 형태로 지원 –2D 채팅환경 지원 – 한글 메뉴 지원 – 다국어 지원 –EAI 지원 –DownloadDownload
Contact 3D blaxxun Contact 3D 를 이용한 Cyber townCyber town
VRML Browser World View – 개인용 컴퓨터 시장을 위해 설계된 빠르고 사용하기 쉬운 VRML 브라우저 – 가장 빠른 3D 플러그 - 인 –Intervista 사에서 개발
World View
VRML 저작 도구 저작 도구 – 노드에 대한 복잡한 지식 없이도 쉽게 VRML 월드를 구현할 수 있음. –WYSIWYG(What You See Is What You Get) 기능 제공 저작 도구의 종류 – 기존의 그래픽툴 모델링한 데이터를 VRML 로 저장. VRML 의 모든 기능을 사용할 수 없음. – 네이티브 (Native) 저작도구 처음부터 VRML 저작을 목표로 만들어짐. 아이콘과 노드를 통한 노드의 삽입과 편집
3D Studio Max 4
VRML 저작 도구 Cosmo Worlds –Cosmo Software 에서 만든 VRML 저작도구 –VRML 을 기반으로 하는 저작 도구로 스크립트 편집 기능과 자체 모델링 기능 및 애니메이션 기능을 제 공 – 실리콘 그래픽스 사가 해산되어 현재 개발이 중단 된 상태임.
Cosmo World
VRML 저작 도구 3D Webmaster TM – 지난 10 년간 가상현실 저작툴을 설계해온 경험이 있는 수퍼 스케이프사에서 내놓은 제품이다. – 이 제품은 인터랙티브한 3 차원 웹사이트를 빠르고 손쉽게 만들 수 있는 툴이다.
3D Webmaster
VRML 사용 예 a picture exhibition – fashion show – Shopping Mall – 바다 속을 걸어 보세요 – 양 3 마리 경주 – Platinum 사 소개 –
VRML 사용 예 Dada Worlds
VRML 파일 구조 VRML 파일은 텍스타 파일이며 VRML 브라우 저 또는 플러그인 프로그램에 의해 해독되어 화면에 출력되며 또는 애니메이션 된다. 하나의 VRML 파일은 다음과 같은 구성요소로 구성된다. – 헤더 (header) – 장면 그래프 (scene graph) – 원형 (prototype) – 이벤트 라우트 (event route)
VRML 파일 구조 간단한 VRML 파일 (1/2) #VRML V2.0 utf8 This is a demo document PROTO AnimatedMaterial [ exposedField SFColor initColor field SFTime seconds 1] { DEF DemoM Material {diffuseColor IS initColor} DEF DemoSensor TimeSensor { cycleInterval IS seconds stopTime -1 loop TRUE } DEF DemoCI ColorInterpolator { key [ ] keyValue [1 0 0, 0 1 0, 0 0 1] } 헤더 (header) 원형 (Prototype)
VRML 파일 구조 간단한 VRML 파일 (2/2) ROUTE DemoSensor.fraction_changed TO DemoCI.set_fraction ROUTE DemoCI.value_changed TO DemoM.diffuseColor } Shape { geometry Sphere {} appearance Appearance { material AnimatedMaterial { seconds 5 initColor } 이벤트 라우트 (Event Route) 장면 그래프 (scene graph)
VRML 파일 구조 (header) 헤더 (header) – 모든 VRML 파일은 첫 라인의 첫 칸에 다음 한 줄을 반드시 포함해야 한다. #VRML V 2.0 utf8 [optional comment] #VRML V2.0 : VRML 2.0 파일임을 의미 utf8 : 파일 내부에 사용된 문자들은 UTF-8 인코 딩을 이용한다. [optional comment] : 임의의 주석문을 의미함.
VRML 파일 구조 (node) 노드 : VRML 세계의 객체를 구성하는 기본 요소 노드의 필드 –field : 노드의 사적 멤버 –exposedField : 노드의 내부와 외부에서 값의 액세스가 가능 한 공용 멤버 –eventIn : 외부로부터 노드로 들어오는 이벤트 –eventOut : 노드에서 외부로 출력되는 이벤트
VRML 파일 구조 (node) VRML 의 데이터 타입 노드의 필드에는 값이 지정되는 것을 의미함. 노드의 필드가 가지는 값은 두 종류이다 : 단일값, 다수값 단일 값을 의미하는 데이터 타입은 SF 로 시작된다. 다수 값을 의미하는 데이터 타입은 MF 로 시작된다. 다수 값을 가지는 필드에 다수 값을 지정하기 위해 "[]" 으로 다수 값을 묶는다.
VRML 파일 구조 (node) SFBool : TRUE 나 FALSE 의 불린 값 SFFloat : 32 비트 실수 값 SFInt32 : 32 비트 부호있는 정수 SFTime : 절대 또는 상대 시간 값 SFVec2f : 3 차원위치를 표현하기 위해 자주 사용되는 (u,v) 로 나타내어지는 실수 값의쌍. SFVec3f : 3 차원 좌표계를 나타내주는 3 개의 값 SFColor : 빨간색, 녹색, 파란색의 구성요소를 표현하는 0 과 1 사의의 3 개의 실수 값 SFRotation :4 개의 실수 값. 처음 3 개의 숫자는 축을 나타내고, 네 번째 숫자는 그 축을 중 심으로 한 라디안 회전각을 표현 SFImage : 하나에서 4 개까지의 색 구성요소를 가지는 2 차원 이미지. 명암을 가진 완전한 색 이미지에 대한 흑백 화면의 표현 SFString : UTF8( 국제 문자 ) 문자열 SFNode : VRML 노드에 대한 컨테이너 MFFloat : SFFloat 값의 배열 MFInt32 : SFInt32 값의 배열 MFVec2f : SFVec2f 값의 배열 MFVec3f : SFVec3f 값의 배열 MFColor : SFColor 값의 배열 MFRotation : SFRotation 값의 배열 MFString : SFString 값의 배열 MFNode : SFNode 값의 배열
VRML 파일 구조 (node) 노드의 구성 예 IndexedFaceSet { eventInMFInt32set_colorIndex eventInMFInt32set_normalIndex eventInMFInt32set_texCoordIndex exposedFieldSFNode colorNULL exposedFieldSFNode coord NULL exposedFieldSFNode normalNULL exposedFieldSFNode texCoordNULL fieldSFBool ccwTRUE fieldMFInt32colorIndex[]# [-1, ∞) fieldSFBool colorPerVertex TRUE fieldSFBool convex TRUE fieldMFInt32coordIndex[]# [-1, ∞) fieldSFFloatcreaseAngle0# [0, ∞) fieldMFInt32normalIndex[]# [1, ∞) fieldSFBool normalPerVertexTRUE fieldSFBool solideTRUE fieldMFInt32texCoordIndex []# [-1, ∞) }
VRML 파일 구조 (node) VRML 2.0 노드의 종류 : 총 54 종류 –shape 노드와 geometry 노드 Box, Corn, Cylinder 등 –geometry property 노드 Coordinate, Color 등 –appearance 노드 Appearance, Material 등 –grouping 노드 Anchor, Transform 등
VRML 파일 구조 ( 장면 그래프 ) 장면 그래프의 정의 – 장면 그래프는 VRML 세계의 저작자가 구성하고자 하는 세계를 의미한다. 즉, VRML 의 세계를 구성하 는 노드 혹 객체들 사이의 계층 구조를 장면 그래프 라고 한다. – 노드 문장이나 USE 문장에 의해 정의된 노드로서 다른 노드나 PROTO 문장에 소속되지 않은 노드를 루트 노드라고 부른다. VRML 파일은 보통 1 개 이 상의 루트 노드를 가진다.
VRML 파일 구조 ( 장면 그래프 ) 세계 좌표계 (world coordinate system) – 루트 노드들이 출력되는 좌표 시스템 국지 좌표계 (local coordinate system) –Transform 이나 Billboard 등과 같은 노드의 사용에 의해 조상 노드의 좌표계로부터 좌표변환이 일어난 상황에서 보는 좌표 계 좌표계 – 각 노드나 객체들은 각각 (0,0,0) 을 좌표계의 중심으로 생각하 는 국지 좌표계를 기준으로 한다. 다음 그림의 오른쪽에 있는 구 1 은 자신의 국지 좌표계의 중심 을 (0,0,0) 으로 알고 있지만 Transform 노드에 의해 국지 좌표 계 (0,0,0) 은 세계 좌표계 (4,5,0) 으로 이동되었다.
VRML 파일 구조 ( 장면 그래프 ) Shape { geometry Sphere } transform { translation children Shape { geometry Sphere # 구 1 } } Shape { geometry Sphere # 구 2 } 세계 좌표계 국지 좌표계
VRML 파일 구조 ( 장면 그래프 ) 3 차원 원뿔 만들기 1: #VRML V2.0 utf8 2: Shape { 3: geometry Cone {} 4: appearance Appearance { 5: material Material { 6: diffuseColor : } 8: } 9: }
VRML 파일 구조 ( 장면 그래프 ) VRML 오브젝트 변환 (Transform 노드 ) – 여러 자식노드를 한데 묶어 조상노드의 좌표계에 대한 새로운 좌표계를 정의하는 그룹핑 노드 #VRML V2.0 utf8 Transform { translation children Shape { appearance Appearance { material Material { diffuseColor } } geometry Cylinder {} } }
VRML 의 발전 방향 건축 : 건축가들은 VRML 을 사용하여 건물을 짓기 시작하기도 전에 건축 디자인과 요구사항에 대한 명확한 그림을 미리 얻어 볼 수 있다. 겨울과 여름의 햇빛에 따른 건물의 외관을 볼 수도 있을 것이고 벽지의 선택을 여러가지로 해 볼수도 있을 것이다. 온라인 회의 : 현재 많은 통신회사들이 VRML 을 이용한 “ virtual phone booth ” 를 계획하고 있다. 이 가상환경을 이용하여 여러명의 사용자가 자 신의 위치가 어디이건 관계없이 화상회의를 할 수 있을 것이다. 가상 쇼핑 : 가장 흥미 진진한 VRML 의 적용장소가 될 것이다. 브라우져 기술과 완전히 통합된 VRML 표준의 도움을 얻어 우리는 200 층짜리 백 화점을 인터넷에서 사용할 수 있을 것이다. 과학, 의학 기술 연구 : 버지니아 테크대학교와 옥스포드 대학, NCSA 등 은 이미 VRML 화일 형식을 이용한 과학, 의학, 천문학 등의 프로젝트를 수행 중에 있다. 연예 : 상호작용 영화나 가상현실 미스테리 게임등을 생각할 수 있다.
VRML 의 발전 방향 VRML 의 문제점 –HTML 에 비해 문법의 이해가 어렵다. – 일반 사용자가 저작하기 어렵다. –VRML 화일의 로드속도가 느리다. – 화면의 질과 수행 속도가 불만족스럽다. – 다양하고 일관성있는 정보제공을 하는 사이트가 드물 다. –VRML 화일의 중요성에 대한 인식이 부족하다. 이런 문제들을 해소하고 다양한 내용의 사이트들 이 VRML 로 개발 된다면 충분히 VRML 을 활용할 수 있으리라 생각된다.
참고 사이트 VRML Consortium – 한국인을 위한 Web3D 포탈 사이트 – VRML + X3D 에 관한 정보 사이트 – VRML 2000 Specification – 2000july/index.htmlhttp:// 2000july/index.html X3D Document – X3D FAQ( 한글 ) –
참고 사이트 VRML Programming – OneStop Web 3D VRML – Web3D 한글 사이트 – EAI Working Group –