X3D
X3D(Extensible 3D)는 3차원 컴퓨터 그래픽스를 선언적으로 표현하기 위한 로열티 프리 ISO/IEC 표준들의 집합이다. X3D에는 대화형 네트워크 지원 3D 데이터의 전달 및 통합을 위한 다양한 그래픽 파일 형식, 프로그래밍 언어 API 정의 및 런타임 사양이 포함되어 있다. X3D 버전 4.0은 Web3D 컨소시엄의 승인을 받았으며 ISO/IEC의 개정된 국제 표준(IS)으로 최종 검토 중이다.
X3D는 웹 아키텍처를 사용하여 다양한 장치에서 작동하도록 특별히 설계되었다. X3D는 기본 자산 교환 및 CADInterchange에서 Interactive, MPEG-4 Interactive, Medical, Immersive 및 Full Profiles에 이르기까지 프로필을 통해 다양한 3D 기능을 제공한다. Humanoid Animation(HAnim) 신체 구조 및 동작에 대한 해부학적 철저한 지원도 가능하다. X3D의 'X'는 확장 가능을 의미한다. 사용자 정의 공급업체 및 연구 구성 요소 확장을 표준 기능에 추가할 수 있다.
X3D 파일 형식 지원에는 XML, ClassicVRML, CBE(압축 바이너리 인코딩) 및 초안 JSON 인코딩이 포함된다. 시맨틱 웹 지원은 타틀(Turtle) 인코딩으로도 입증되었다. X3D는 2001년 VRML(Virtual Reality Modeling Language)의 후속 버전이 되었다. X3D는 VRML에 대한 여러 확장(예: CAD, 지리 공간, 휴머노이드 애니메이션, NURBS 등)을 제공하며 XML 구문을 사용하여 장면을 인코딩하는 기능과 ECMAScript, 자바, 파이썬 및 기타 프로그래밍 언어를 포함하여 강력한 형식의 API를 사용하는 VRML97의 오픈 인벤터(Open Inventor)와 유사한 구문 또는 바이너리 압축이다.
X3D 렌더링에는 glTF 2.0 기능과 일치하는 클래식(예: Blinn-Phong) 및 최신 물리 기반 렌더링(PBR) 방법이 모두 포함되어 있다. 세 가지 플랫폼별 셰이더 언어를 사용하는 사용자 정의 셰이더 사용도 정의된다. 작성자는 다양한 이미지 및 동영상 형식을 포함한 풍부한 멀티미디어 기능을 사용할 수 있다. 완전히 공간화된 청각 렌더링은 W3C 웹 오디오 API 기능과 MIDI 2.0 또는 기타 사운드 형식을 사용하여 디지털화된 오디오 입력을 적용한다.
모든 X3D 파일 인코딩 및 프로그래밍 언어 API는 X3D 아키텍처 표준의 기능 정의와 일치하는 동등한 표현력을 갖는다. 따라서 X3D는 XML, DOM(문서 객체 모델), XPath 등을 포함한 개방형 표준과 함께 작동할 수 있다.
예시
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "http://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile="Interchange" version="4.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-4.0.xsd">
<Scene>
<Shape DEF="MyTriangle">
<IndexedFaceSet coordIndex="0 1 2">
<Coordinate point="0 0 0 1 0 0 0.5 1 0"/>
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>