Download presentation
Presentation is loading. Please wait.
1
X3D Graphics for Web Authors
1장 기술 개요
2
내용 1장 개요 X3D 중요성 • VRML 역사적 배경 • Web3D 컨소시엄, X3D 명세서, 표준 기술 개요 • 브라우저와 장면 그래프 • 프로파일 + 컴포넌트, 필드, 노드 데이터 타입 • XML 인코딩, ClassicVRML, 압축바이너리 추가 자원 및 1장 요약 참고문헌 및 서적
3
1장 개요
4
개요: 기술 소개 이 장은 X3D그래픽스를 어떻게 설계하고 구현했느냐에 관한 전체 개요를 소개한다.
목표는 많은 특성을 전체적으로 빠르게 습득하도록 하는 것 X3D 를 처음 접해본 사람은 이 장 내용은 빠르게 지나가도 됨 2장과 3장의 모델 만들기부터 시작하는 것이 더 중요 나중에 개념들을 다시 보도록 함 상세한 내용은 X3D for Web Authors 책의 1장 참고
5
X3D 중요성
6
확장성 X3D 란 무엇인가? X3D 는 저작료 없는 공개 표준의 파일 포맷이다
• XML을 이용하여 애니메이션 되는 3D 장면을 통신 • 일관된 사용자 상호작용을 위한 런타임 구조 • 실시간 그래픽스 콘텐츠의 저장, 검색, 재생을 위한 ISO 인준의 표준 • 응용들간 3D 데이터의 실시간 통신을 가능하게 함: 웹을 위한 출판 포맷 • 공학 및 과학 가시화, CAD 와 건축, 의료 가시화, 훈련 및 시뮬레이션, 멀티미디어, 엔터테인먼트, 교육 등을 위해서 부품화된 특성으로 풍부한 기능 제공
7
역사적 배경: VRML Virtual Reality Modeling Language (VRML) 은
위한 것이다. • 관련 실무진의 공개 커뮤니티인 다양한 지원자 • SGI의 OpenInventor 에 의해 첫 번째로 활용됨 • VRML 1.0 가 그 다음 해에 개발됨 • VRML 2.0 에서 노드들과 특성들이 추가됨 VRML 은 1997년에 ISO 국제표준으로 진행 • 개인과 회사들이 공개적으로 서로 협력하여 얻은 결과
8
Web3D Consortium 웹3D 컨소시엄은 VRML 명세서를 보호, 지원, 개선 시키기 위해 1998년에 설립됨
• 여러 작업반(working groups)에 의해 새로운 기술에 대한 노력으로 후속으로 X3D를 개발함 • 많은 이해당사자들에 의한 비영리 기관으로서 X3D 를 저작권 무료로 유지시키고 있다. • 산업체, 에이전시, 교육 및 전문가 멤버쉽으로 공동 운영됨
25
X3D 명세서 (specifications)
자원자들에 의해 개발된다. • 기업, 비영리, 학교, 전문가 회원에 의해 비영리 기관 • • 명세서 편집, 구현, 평가에 대한 노력을 진행하고 있다. 명세서 결과는 국제표준화기관인 ISO ( 의해 검토되고 인준된다.
26
3D 표준이 왜 중요한가? 1 이용가능한 3D그래픽스 엔진과 플러그인은 다양한 타입이 있다.
• 컴퓨터 그래픽스 엔진 • 애니메이션 영화 잘알려진 비밀: 이들은 상호호환성이 없다. • 예: 두 전문가가 각자 다른 사람의 데모를 실행할 수 없다. 어리석은 질문은: 두 게임을 혼합하자! • 왜 두 모델을 합치는 것이 어려울까? • 지적재산권 소프트웨어는 합치는 것을 방해한다. • 웹을 통한 상호호환성은 모든 것을 변화시킬 수 있다.
27
3D 표준이 왜 중요한가? 2 웹 표준은 다른 회사들이 개별적으로 잘 하도록 하고 상호호환성을 갖도록 한다.
• 오늘은 많은 작은 기능들이 있다면 • 내일은 3D 그래픽스를 위한 훨씬 큰 분야에서 활용될 것이다. 공유된 웹은 모든 사람에게 좋다. A shared Web is good for everyone • 기업, 공기업, 정보, 대학 • 가장 좋은 실험들이 나오고 있고 • 보다 많은 정보, 연결성, 진보성을 갖는다. • 일어나는 조류가 모든 배들을 들어올리듯이..
28
상호운용성 – 다른 점은? 표준: 내용 상호운용성, 확장성, 호환성, 라이선스, 성장, 성공을 위한 공인 과정
여러 길이 있으나 같은 것으로 자주 혼동된다 표준: 내용 상호운용성, 확장성, 호환성, 라이선스, 성장, 성공을 위한 공인 과정 명세서: 알고리즘 서술, 상세 내용 • 그러나 1990년대 GIF 이미지 낭패에서 보듯이 저작권 문제를 포함할 수도 있다. 오픈소스 소프트웨어: 반복 가능의 코드 • 그러나 라이선스 사용은 소스 코드 라이선스와는 다르다. 마켓 점유 우세: 가장 큰 경쟁자가 이긴다? • 회사들(혹은 적어도 투자자들)은 자신만의 3D 를 바란다. • 그러나 많은 말소 회사들의 막다른 기술 • 많은 사람들이 웹보다는 훨씬 작은 마켓이 된다.
29
Equivalent X3D encodings, APIs
X3D has multiple file-format encodings • .x3d is XML based • .x3dv is ClassicVRML syntax • .x3db is Compressed Binary Encoding with both geometric and information compression X3D has multiple application program interfaces (APIs) with similar structure • Javascript (formally known as EcmaScript) • Java (optionally supported) All these forms have equivalent functionality
31
X3D 명세서 읽기 X3D 명세서는 매우 상세하고 3D 그래픽스 전문가를 위해서 쓰여졌다.
사항이 엄격하고 정확하게 기술되어야 한다. 이러한 정밀성에 의해 X3D 내용이 정확하게 렌더링과 애니메이션 되도록 한다. 그럼에도 X3D 명세서는 추가적인 그래픽스 상세 내용을 위한 훌륭한 교육 자원이다. 또한 질문을 위한 권위있는 참고문헌이다.
32
명세서 이용 X3D 명세서는 아래 온라인상에 있다. X3D 명세서는 웹3D 컨소시엄과 ISO 국제표준화기구 에 의해 출판된다.
• • 또한 X3D-Edit 도움말 시스템에도 삽입되어 있다. X3D 명세서는 웹3D 컨소시엄과 ISO 국제표준화기구 에 의해 출판된다. • 웹3D 버전은 무료 온라인으로 HTML 문서로 출판된다. • ISO 는 pdf 버전으로 출판하며 구매해야 한다. X3D 명세서에 대한 피드백은 언제나 환영한다. •
33
커뮤니티 규칙 웹3D 회원에 의한 오픈 프로세스, IPR 금지 규칙, 점진적 혁신에 감사하며, 새로운 X3D 기능들은
계속하여 전개될 것이며 커다란 능력으로 성장할 것이다. • 많은 워킹 그룹들이 생성, 작업, 소실, 재그룹되며 계속하여 진행되고 있다. • 웹3D 회원들과 공개 메일 리스트들이 해를 거듭할수록 이러한 성공을 유지시키고 있다.
34
ISO 와 X3D 구현, 평가, ISO 국제 표준화기구에 의한 공식 검토 에 의해 X3D 는 웹과 웹 바깥의 실세계에서
이용되는 인준된 표준으로 만들어졌다. 12-15 국가들의 전문가 이 명세서를 검토한다. Experts from nations review our specs. • 다른 국가 기관에 의한 즉각적 채택은 확산을 증가시킨다. • 그럼에도 모든 변경과 추가는 웹3D 워킹그룹 내에서 이루어진다.
35
W3C 월드와이드컨소시엄(W3C)와 공동협력은 다른 XML 표준과 뛰어난 상호운용성을 제공하며 웹에서의
1등급 시민으로 만들었다. 추가적인 작업(특히 자원자들)이 요구되며, 우수한 개별 기회를 여기에서 얻을 수 있다.
37
지적재산권 (IPR) Web3D 와 W3C 는 같은 정책을 가진다 • 어떠한 특허 기술도 워킹그룹의 안전한
곳으로 생각하기에 앞서 회원들에 의해 공표 되어야 한다. • 어떠한 특허 기술이라도 웹 표준으로 공개적 으로 사용되도록 사용료 무료(royalty-free)로 허가되어야 한다. 경고: 어떠한 법적 문제도 해결될 수 있으나 반드시 사전에 공지되었을 경우만이다.
38
오픈소스 두 개 독립적 구현 중 하나여야 함 어떤 사용에서도 오픈되어야 하고 사용권 자유 공동으로 사용할 수 있는 예제 구현
• 웹3D 승인과 표준화가 요구됨 어떤 사용에서도 오픈되어야 하고 사용권 자유 • 자유: 현신의 자유, 수리의 자유 • 반드시 무료인 것은 아님 공동으로 사용할 수 있는 예제 구현 • 지속적인 활동, 개선을 위한 지속적인 비즈니스 모델 제공 • 소유권 코드로 인해 상호운용성 이슈를 해결하지 못할 때 막힌 문제를 해결할 수 있어야 한다.
39
디지털 권리 관리 X3D 의 XML과 압축 바이너리 인코딩은 W3C 권고안 사용을 허용한다. • XML 암호화
• 공용 키 구조 (Public key infrastructure) 보다 유연한 DRM 이 가능함 • 헐리웃의 상업용보다 더 많이 사용됨 Sun 의 DReaM 프로젝트, Open Media Commons
40
IPR 요약 IPR = 지적 소유권 (Intellectual Property Rights)
오픈 표준 & 오픈 소스: 성공의 부분 안전성을 제공하는 전통적인 계층적 난로파이프인 상속적 방법을 보완 정부와 산업체를 위한 win-win 방식 • 프로그램 성공을 위해선 둘 다에게 승리 필요 표준 기구들의 IPR 협정은 오랜 기간 안정된 활동장 제공
41
X3D 기술적 개요
42
웹브라우저, X3D 플러그인 1 X3D 브라우저는 X3D 장면 모델을 읽고 렌더링한다.
• 또한 애니메이션과 사용자 상호작용을 위한 시뮬레이션 능력을 제공한다. • 때로 웹브라우저의 플러그인으로 구현된다. • Internet Explorer • Mozilla Firefox • Opera • Safari
43
웹브라우저, X3D 플러그인 2 웹브라우저를 위한 많은 X3D 플러그인이 있다. 대부분 독립적 응용에서도 작동된다.
• Contact ➢ FreeWRL/FreeX3D • InstantReality • Octaga ➢ Xj3D • Others available 대부분 독립적 응용에서도 작동된다. • 상업적 소스 코드나 오픈 소스 • 같은 X3D 그래픽스 콘텐츠는 어느 것에나 작동된다. online
44
3D 그래픽스 알고리즘과 구현 기술적이고 성능에 민감하다. X3D 브라우저는 선택한 방식대로 구현된다.
이런 점이 책임을 잘 분담하도록 한다. • 각 브라우저가 자신들만의 우수한 점이 있다. 품질 설계와 공유되는 얻은 수업 내용은 계속해서 세워나갈 수 있게 된다. • 다음 다이어그램은 예제 구조를 보여준다.
46
장면 그래프 개념 장면 그래프는 기하 모양, 외관, 위치와 방향 등을 계층적으로 정의하는 3D 의 모델 중심적 방법 이다.
• 방향성 비순환 그래프 (Directed acyclic graph, DAG) 로서 루트 노드와 루프가 없는 트리를 의미한다. • 관심있는 파라미터들의 선언적 리스트 • 3D 기하와 외형을 정의하는 컴퓨터 지원 디자인인 CAD 모델과 비슷하며 대부분의 명령적 프로그래밍 과는 다르다
47
장면 그래프 용어 장면 그래프 데이터 파일 장면 그래프 뷰어 장면 그래프 에디터 실행 가능한 어플리케이션
• 모델 기술을 포함하며 데이터 파일을 의미 장면 그래프 뷰어 • 장면 그래프 모델을 읽고 렌더링 한다. • 어플리케이션 혹은 웹브라우저 플러그인으로 구현된다. 장면 그래프 에디터 • 장면 그래프 개발을 위한 특수한 텍스트 에디터 실행 가능한 어플리케이션 • 특정 운영체제에서 작동될 수 있는 3D 모델
48
장면 그래프 렌더링 렌더링은 이러한 드로잉 과정으로 정의된다 오프라인 렌더링은 디스플레이보다는 이미지나
브라우저는 장면그래프를 훑어서 노드 안의 값들을 업데이트하고 이미지를 만든다 • 더블 버퍼링이라고 알려진 프로세스로 새 이미지가 이전 스크린 이미디를 교체한다. • 신속한 반복이 매우 중요하다 • 프레임 속도는 7-10 Hz (초당 사이클)보다 빠르며 부드러운 모션을 제공한다. 렌더링은 이러한 드로잉 과정으로 정의된다 오프라인 렌더링은 디스플레이보다는 이미지나 영상 파일에 대한 오퍼레이션을 수행하는 것
49
성능 최적화 장면 그래프는 성능 최적화 기능을 가진다. 이것은 다른 어플리케이션 프로그래밍 인터페이스
(API)에서는 이용할 수 없는 기능이다. • 장면 그래프 구조는 그래픽스 하드웨어 가속화를 이용하도록 설계되었다. • 서브그래프를 참조할 수 있다 (X3D DEF, USE) • dirty bit 에 의해 장면 그래프가 수정되었는지 알 수 있으며 이로 인해 불필요한 재계산을 피한다. • 브라우저는 기하를 재정리하거나 단순화할 수 있다. • 조명에 범위를 주어 계산적 영향을 줄일 수 있다. • 광범위하게 반복될 수 있는 교환 패턴이 있다.
50
장면 그래프는 OpenGL, DirectX 의 렌더링에 비해 아래 장점이 있다
OpenGL과 DirectX API 는 실시간 렌더링을 위한 하부 3D 그래픽스 가속기 하드웨어로 인해 층이 얇은 소프트웨어임 각각은 상태 기계로서 삼각형과 텍스처를 그리기 위해 최적화되어 있으며 고급 시뮬레이션 오브젝트나 유저 행위를 기억하기 위해 메모리를 갖도록 설계 되지는 않았다 장면 그래프는 모델을 시뮬레이션하는데 잘 맞고 모델을 제작하거나 수정하기가 쉽다
51
장면 그래프와 광선 추적 광선 추적은 물체 표면 재질과 빛을 상호작용하는 물리적 성질을 나타낸다 다양한 방법과 프로그램
• 광선 벡터들은 전파되어 계산되고 추가된다 • 계산 시간은 실시간 보다는 고성능 렌더링에 집중된다. 다양한 방법과 프로그램 • 비전 광선 추적기 ( • 영화, 렌더맨 (renderman.pixar.com) 장면 그래프는 실시간 렌더링을 위해 설계됨 • 그러나 X3D 명세서는 렌더링 제한은 없다 • Okino Polytrans 는 둘다 지원 (
52
다른 장면 그래프 구조 OpenInventor (OI), predecessor of VRML
• Virtual Reality Modeling Language (VRML), direct predecessor of X3D • Java3D (X3D 장면 그래프와 유사) • OpenSceneGraph (OSG) • OpenSG •
53
행동 행동(Behavior) 는 장면 그래프의 한 모드에 이벤트(Event) 는 ROUTE 에 의해 한 필드에서
포함된 필드 값의 변화로 정의됨 애니메이션 노드, 사용자 상호작용 노드, 네트워 크 업데이트에 의해 업데이트 값들을 생성 ROUTE 문장이 한 노드의 출력값을 다른 노드의 입력값으로 연결한다 이벤트(Event) 는 ROUTE 에 의해 한 필드에서 다른 필드로 전달된 시간이 붙여진 값으로 정의된다 따라서 장면그래프의 노드들에 의한 값들은 시간 이 진행되면서 변화될 수 있다
54
장면 그래프의 행동 순회 이벤트 모델 은 다음으로 구성된다 일단 프레임이 스크린 이미지를 업데이트하기
위해 스왑되면 장면의 값들을 변화시키게 된다 이벤트 모델 은 다음으로 구성된다 • 시계에 의한 것인지 사용자에 의해 시작되는 이벤트 인지 조사 • 장면 그래프 값들을 업데이트 • 적절한 새 이벤트를 발생시키거나 업데이트 • 모든 이벤트들이 처리될 때까지 계속되나 순환은 허용되지 않음 이벤트 업데이트는 장면 그래프를 수정한다 • 렌더링 속성을 변화시키거나 • 다른 이벤트 출력을 생성한다
55
예제 행동 이벤트 체인 • 사용자가 버튼을 클릭하여 타이머 시계를 시작시킨다
• 시계가 각 프레임 시작에서 새로운 이벤트를 출력한다 • 선형 보간 함수를 자극하여 다른 출력 값들을 생성한다 • 장면 그래프의 다른 목적 값들을 업데이트한다 • 각 프레임이 다시 그려진 후에 이벤트 순회를 반복한다
56
X3D 파일 구조 X3D 장면 파일은 공통의 파일 구조를 가진다
• 파일 헤더 (XML, ClassicVRML, Compressed Binary) • X3D 헤더 문장 • Profile 문장 • Component 문장 (선택) • Meta 문장 (선택) • X3D 루트 노드 • X3D 장면 그래프 자식 노드
57
세부 분할과 세부 집합의 필요성 3D 그래픽스는 크고 복잡한 주제이다 비슷한 요구가 브라우저 소트트웨어 개발자에게도 있다
• 초보자에게는 간단한 장면이 필요 • 경험자에겐 모든 것을 이용하기를 원한다 비슷한 요구가 브라우저 소트트웨어 개발자에게도 있다 • 간단한 웹 그래픽스를 위해서는 작고 신속한 다운로드 필요 • 모든 가능한 기술을 위해서는 전체 능력의 소프트웨어 필요 도전: 어떻게 일관성 있게 둘 다 지원할 것인가 • 일관성을 위해서는 오브젝트 지향 분할 필요 • 상향적 X3D 확장성을 위한 디자인 범위 필요 • X3D 디자인 해답: 프로파일 + 컴포넌트
58
프로파일과 컴포넌트 Profiles are predefined collections of components
• Can augmented each by adding other components Components are predefined collections of nodes • Further defined by level of complexity • Components match chapters in X3D specification Authors define the expected complexity of scene by defining profile level in the X3D header • Can also add optional components, if desired • This tells the X3D browser what level of support is needed for run-time operation
59
프로파일은 공통의 유스케이스를 다룰 수 있다 프로파일은 공통의 복잡성 수준에 매치되는 컴포 넌트의 집합이다
프로파일은 X3D 세부 집합이다 • 저자 팔레트를 위한 X3D 노드 들의 집합 • Interchange 는 간단한 기하 변환에 적당 • Interactive 간단한 사용자 상호작용 포함 (클릭 등) • Immersive VRML97 에 매치된다 • Full 프로파일은 모든 노드들 포함
60
메타 (meta) 문장 메타 문장은 X3D 장면에 관한 정보를 제공한다 이름-값의 쌍으로 정보가 제공된다
• 문서의 메타데이타로서 장면의 메타데이타가 아님 이름-값의 쌍으로 정보가 제공된다 • 예: <meta name='created' value='1 January 2008'/> 그래서 이 방법의 매우 일반적임 • 다양한 메타데이터를 표현할 수 있다 • 정규 하이퍼텍스트 웹페이지인 HTML 에서 이용되 는 것과 같은 방식
61
profile, component and meta statements, XML (.x3d) encoding syntax
<?xml version=''1.0'' encoding=''UTF-8''?> <!DOCTYPE X3D PUBLIC ''ISO//Web3D//DTD X3D 3.2//EN'' '' <X3D version=''3.2'' profile=''Immersive'' xmlns:xsd='' xsd:noNamespaceSchemaLocation='' <head> <component name='DIS' level='1'/> <component name='Geospatial' level='1'/> <component name='H-Anim' level='1'/> <component name='NURBS' level='4'/> <meta name='title' content='HeaderProfileComponentMetaExample.x3d'/> </head> <Scene> <!——Scene graph nodes are added here——> </Scene> </X3D>
62
profile, component and meta statements, ClassicVRML (
profile, component and meta statements, ClassicVRML (.x3dv) encoding syntax #X3D V3.2 utf8 PROFILE Immersive # No HEAD statement is provided in ClassicVRML Encoding COMPONENT DIS:1 COMPONENT Geospatial:1 COMPONENT H-Anim:1 COMPONENT NURBS:4 META ''filename'' ''HeaderProfileComponentMetaExample.x3d'' # Scene graph nodes are added here
63
newScene.x3d metadata prompts
<meta content='*enter FileNameWithNoAbbreviations.x3d here*' name='title'/> <meta content='*enter description here, short-sentence summaries preferred*' name='description'/> <meta content='*enter name of original author here*' name='creator'/> <meta content='*if manually translating VRML-to-X3D, enter name of person translating here*' name='translator'/> <meta content='*enter date of initial version here*' name='created'/> <meta content='*enter date of translation here*' name='translated'/> <meta content='*enter date of latest revision here*' name='modified'/> <meta content='*enter version here, if any*' name='version'/> <meta content='*enter reference citation or relative/online url here*' name='reference'/> <meta content='*enter additional url/bibliographic reference information here*' name='reference'/> <meta content='*enter reference resource here if required to support function, delivery, or coherence of content*' name='requires'/> <meta content='*enter copyright information here* Example: Copyright (c) Web3D Consortium Inc. 2008' name='rights'/> <meta content='*enter drawing filename/url here*' name='drawing'/> <meta content='*enter image filename/url here*' name='image'/> <meta content='*enter movie filename/url here*' name='MovingImage'/> <meta content='*enter photo filename/url here*' name='photo'/> <meta content='*enter subject keywords here*' name='subject'/> <meta content='*enter permission statements or url here*' name='accessRights'/> <meta content='*insert any known warnings, bugs or errors here*' name='warning'/> <meta content='*enter online Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) address for this file here*' name='identifier'/> <meta content='X3D-Edit, name='generator'/> <meta content='../../license.html' name='license'/>
65
필드 데이터 타입 X3D 는 타입을 엄격하게 지키는 언어이다 타입은 단일값이 복수 값으로 됨 모든 타입들은 배열을 가진다
• 각 노드의 각 필드는 (즉, 각 XML 애트리뷰트) 엄격한 데이터 타입으로 정의된다 • 데이터 타입으로는 boolean, integer, floating point, string 등이 있다 타입은 단일값이 복수 값으로 됨 • 예: SFFloat, SFVec2f, SFVec3f, SFOrientation 모든 타입들은 배열을 가진다 SF = Single Field, MF = Multiple Field (배열) 데이터 파입이 정확하게 일치하지 않으면 에러가 된다 • 장면 검증, 로딩, 런타임 중에 에러 발생
66
필드 데이터 타입, 파트 1
67
필드 데이터 타입, 파트 2
68
필드 데이터 타입, 파트 3 ClassicVRML (.x3dv) 인코딩은 XML 인코딩(.x3d)과 다른 구문을 가진다
• TRUE 와 FALSE (XML 에선 true 와 false) • MF 복수 필드 배열 값들은 대괄호로 둘러싸인다, 예 [ , ] • & 과 같은 와 같은 XML 특수 문자가 없다
69
accessType: input, output, initialize
inputOnly: 이벤트를 받기만 한다 outputOnly: 이벤트를 보내기만 한다 initializeOnly: 보내거나 받을 수 없고 초기화만 가능 inputOutput: 보내고, 받고, 초기화 가능 accessType 이 정확하게 매치하지 않으면 에러 발생! • 저작도구가 검사할 때와 런타임 중에 탐지됨
70
accessType 이름 규약 accessType 이름은 VRML97 이 X3D 로 업데이트되면 변화되었다
• 기능적으로 그대로라서 본질적으로는 변하지 않음 각 노드의 X3D 명세 항목들은 다른 약어를 쓴다 Use the X3D nomenclature in .x3d scenes
71
추상 노드 타입 X3D 노드는 타입이 엄격하다 장점으로는 다음을 포함
• 유사 노드들을 위해서 일관성 있는 필드 인터페이스를 제공 • 내부적 비일관성이 있었던 VRML97 에 비해서는 오브젝트 지향 으로 개선됨 • 언어 디자인이 더 낫다 장점으로는 다음을 포함 • 자식 노드 콘텐츠가 일관성 있다 • 단순 타입 필드 값들은 동일한 디폴트 값을 가진다 • 어플리케이션 프로그래밍 인터페이스가 일관성이 있다 • 정의가 이해하기 쉽고 적용하기 쉽다
72
XML 파일 인코딩 확장성 마크업 언어(XML) 은 많은 웹 언어에 의해 이용되는 일반 텍스트 포맷이다
• 하이퍼텍스트 마크업 언어 (HTML) 을 포함 XML 은 다른 데이터 지향 언어를 정의하는데 이용된다 • 그래서 XML 은 자체가 언어는 아니고 언어에 대한 언어인 메타 언어이다 XML 은 많은 장점을 가지며 X3D 에 잘 맞는다
73
XML 의 10 가지 주요점 XML 은 새로우나 그렇게 새로운 것은 아니다 XML 은 데이터 구조화를 위한 것
XML 은 HTML 과 조금 비슷하다lXML 은 텍스트이지만 읽는 것은 아니다 XML 은 설계가 장황하다 XML 은 기술 집단이다 XML 은 새로우나 그렇게 새로운 것은 아니다 XML 은 HTML 을 XHTML 로 발전시킴 XML 은 모듈형이다. XML 은 RDF 와 시멘틱웹의 기본이다XML 은 저작료 무료이며 플랫폼 독립적이고 잘 지원된다 XML 의 10가지 주요점은 기본적인 디자인 원칙과 다양성을 이해하는데 필요한 주요한 참고자료가 된다. 단지 4페이지이니 반드시 읽어야 한다
74
XML 와 X3D 대응 관계 엘리먼트는 X3D 노드에 대응한다 애트리뷰트는 X3D 단순 타입 필드에 대응한다
부모-자식 관계는 컨테이너 필드를 정의한다 X3D DTD, 스키마를 이용한 검증할 수 있는 XML 이다
75
XML 검증 XML 검증은 XML 문서에 XML 규칙을 적용하여 정확한지를 확인한다
• 잘 형성된 XML: 규정에 맞는 헤더, open/close 태그의 매치, 적절한 속성-값 쌍 • DTD (DOCTYPE) 검증: 규칙에 맞는 엘리먼트와 속성의 이름, 적당한 부모-자식 관계, 속성 값들의 간단한 체크 • XML 스키마 검증: 속성 값들의 데이터 타입에 더 철저한 체크를 포함한다 XML 검증에 의해 일반 사용자 전에 문제를 먼저 발견한다
76
ClassicVRML 파일 인코딩 ClassicVRML 파일 구문은 VRML97을 직접적이고 구버전에 호환되도록 확장한다
• VRML 버전 2.0은 X3D 버전 3.0, 3.1 등이 되었다 • 구문 규칙에는 변화가 없다 • 추가적인 새로운 노드가 약간의 이름 차이는 명세서의 개선과 매치된다 • VRML97 콘텐츠는 여전히 작동되고 쉽게 지원된다 XML, ClassicVRML, 압축 바이너리 인코딩은 기능적으로 동일하다 • 동일한 X3D 추상 명세에 의해 관리된다
77
압축 바이너리 인코딩 .x3db 인코딩을 위한 두 종류 압축 Java3D 알고리즘은 디폴트로 기하 압축이다
• XML 중심의 ISO Fast Infoset • 동일 평면 폴리곤, 점, 컬러, 법선의 양자화에 대한 기하 중심적 압축 Java3D 알고리즘은 디폴트로 기하 압축이다 • X3D 사용으로 사용료 무료 • 기타 사용에 대해선 Sun Microsystems 에 문의하라 다른 기하 압축도 허용되며 구현으로 Xj3D, Instant Reality, EDF 등이 있다
78
X3D 압축 바이너리 알고리즘과 XML 보안 X3D 압축 바이너리는 정규 X3D 형식을 사용한다
• 동일 포맷의 파일들이 매치되도록 엄격한 포맷 규칙 정규 형식이 XML 보안의 사용을 가능하게 한다 • XML 암호 • XML 전자 서명 (저자 인증을 위한)
79
Additional Resources
81
Web3D liaison organizations
World Wide Web Consortium (W3C) • Leading the Web to its Full Potential International Organization of Standards (ISO) • Review and ratification of X3D Graphics Standard Open Geospatial Consortium (OGC) • Leading the development of standards for geospatial and location-based services. • Web3D Symposium series in cooperation with SIGGRAPH, Eurographics
82
Annual Conferences 2009 SIGGRAPH Web3D Symposium Eurographics
• New Orleans Louisiana, 3-7 August 2009 • Web3D Symposium • Darmstadt Germany, June 2009 • Eurographics • Munich Germany, 30 March - 3 April 2009 • SIGGRAPH Asia • Yokohama Japan December 2009 •
83
Chapter Summary
84
Chapter Summary This technical overview chapter is a mile wide and a few meters deep. Key points include • VRML historical background • Web3D Consortium • Browsers, X3D Specifications, scene graph • Profiles + components, field and node data types • XML encoding, ClassicVRML, Compressed binary New students of X3D can refer to details later. Get working on examples in the next chapters!
85
References
86
References 1 X3D: Extensible 3D Graphics for Web Authors by Don Brutzman and Leonard Daly, Morgan Kaufmann Publishers, April 2007, 468 pages. • Chapter 1, Technical Overview • • X3D Resources •
87
References 2 X3D-Edit Authoring Tool X3D Scene Authoring Hints
• X3D Scene Authoring Hints • X3D Graphics Specification • • Also available as help pages within X3D-Edit
88
References 3 Computer Graphics, Principles and Practice , by James D. Foley, Andries van Dam, Stephen K. Feiner and John F. Hughes, Addison-Wesley, second edition, 1997. • Bert Bos et al., “XML in 10 Points,” World Wide Web Consortium (W3C), created 1999, updated 2003. •
89
References 4 Leonard Daly and Don Brutzman,
“X3D: Extensible 3D Graphics Standard,” Standards in a Nutshell column, IEEE Signal Processing Magazine , vol. 24 no. 6, November 2007, pp Wayne Carlson, A Critical History of Computer Graphics and Animation, course notes, Ohio State University. • •
90
Book testimonials 1 There will be no problem understanding these concise, clear, comprehensible background concepts for readers new to Extensible 3D (X3D). There are many notes and examples that compare X3D to Virtual Reality Modeling Language (VRML) features. Don Brutzman and Leonard Daly clearly and thoroughly illustrate each logical concept and feature of X3D with diagrams, tables, code snippets, screenshots of 3D objects/environments, and example scenes, while making use of the very latest specifications and implementations. Their approach contributes greatly to an easy and in-depth understanding of the X3D language. This book is the ultimate introductory guide to X3D! —Dr. Vladimir Geroimenko, University of Plymouth, School of Computing Communications and Electronics, Plymouth, UK
91
Book testimonials 2 This book is required reading for anybody interested in Web3D. The authors are well known and respected in the X3D community as pioneers. Their writing style is concise and engaging, set at an appropriate level to encourage understanding, and uses the concepts being introduced. Their “Hints and warnings” sections provide added value above what is available from X3D specification documents. Hard to achieve in a reference manual! —Professor Nigel W. John, School of Computer Science, University of Wales, Bangor; Chair of Web3D 2005 Symposium
92
Book testimonials 3 How many times have we heard “The ISO specification is hard to read, do you have something more approachable?” This book is the answer. It provides a detailed explanation of each node in the Immersive profile and gives many reusable examples. After reading this book you’ll be well prepared to develop your own X3D content. —Alan Hudson, President Web3D Consortium, Yumetech Inc. This is a much-needed book about the X3D standard and X3D content development. The book follows the structure of the X3D standard specifications which helps readers understand and apply the X3D standard. It can also be used as a reference material in virtual reality and graphics-related courses. —Professor Denis Gracanin, Virginia Polytechnic Institute & State University, Chair Web3D 2006 Symposium
93
Contact Don Brutzman brutzman@nps.edu http://faculty.nps.edu/brutzman
Code USW/Br, Naval Postgraduate School Monterey California USA voice
94
CGEMS, SIGGRAPH, Eurographics
The Computer Graphics Educational Materials Source(CGEMS) site is designed for educators • to provide a source of refereed high-quality content • as a service to the Computer Graphics community • freely available, directly prepared for classroom use • X3D for Web Authors recognized by CGEMS! ☺ • Book materials: X3D-Edit tool, examples, slidesets • Received jury award for Best Submission 2008 CGEMS supported by SIGGRAPH, Eurographics
95
Creative Commons open-source license
96
Open-source license for X3D-Edit software and X3D example scenes
Copyright (c) held by the author(s). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. • Neither the names of the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Similar presentations