Extensible 3D (X3D)
Part 1: Architecture and base components
Annex E
(normative)
Immersive profile
This annex defines the X3D components which comprise the immersive profile. This includes not only the nodes which shall be supported but also which fields in the supported nodes may be ignored.
This profile is targeted towards:
Table E.1 provides links to the major topics in this annex.
Table E.2 lists the components and their levels which shall be supported in the Immersive profile. Tables E.2 and E.3 describe limitations on required support for nodes and fields contained within these components.
Table E.2 — Components and levels
Component | Level | Reference |
---|---|---|
Core | 2 | 7.5 Support levels |
Time | 1 | 8.5 Support levels |
Networking | 3 | 9.5 Support levels |
Grouping | 2 | 10.5 Support levels |
Rendering | 3 | 11.5 Support levels |
Shape |
2 |
12.5 Support levels |
Geometry3D | 4 | 13.4 Support levels |
Geometry2D | 1 | 14.4 Support levels |
Text | 1 | 15.5 Support levels |
Sound | 1 | 16.5 Support levels |
Lighting | 2 | 17.5 Support levels |
Texturing | 3 | 18.5 Support levels |
Interpolation | 2 | 19.5 Support levels |
Pointing device sensor | 1 | 20.5 Support levels |
Key device sensor | 2 | 21.5 Support levels |
Environmental sensor | 2 | 22.5 Support levels |
Navigation | 2 | 23.4 Support levels |
Environmental effects | 2 | 24.5 Support levels |
Scripting | 1 | 29.5 Support levels |
Event utilities | 1 | 30.5 Support levels |
Conformance to this profile shall include conformance criteria defined by the specifications for those components and levels listed in Table E.2.
In Table E.2 and Table E.3, the first column defines the item for which conformance is being defined. In some cases, general limits are defined but are later overridden in specific cases by more restrictive limits. The second column defines the requirements for a X3D file conforming to the Immersive profile; if a X3D file contains any items that exceed these limits, it may not be possible for a X3D browser conforming to the Immersive profile to successfully parse that X3D file. The third column defines the minimum complexity for a X3D scene that a X3D browser conforming to the Immersive profile shall be able to present to the user. The word "ignore" in the minimum browser support column refers only to the display of the item; in particular, set_ events to ignored inputOutput fields shall still generate corresponding _changed events.
Table E.3 lists the nodes which shall be supported in the Immersive profile and specifies any fields in these nodes for which this profile requires less than full support.
Table E.3 — Nodes for conforming to the Immersive profile
Item | X3D File Limit | Minimum Browser Support |
---|---|---|
Anchor | No restrictions. | Full support. |
Appearance | No restrictions. | fillProperties not supported. |
AudioClip | 30 second uncompressed PCM WAV. | 30 second uncompressed PCM WAV. |
Background | No restrictions. | One skyColor, one groundColor, panorama images as per ImageTexture. |
Billboard | Restrictions as for all groups. | Full support except as for all groups. |
BooleanFilter | No restrictions. | Full support. |
BooleanSequencer | No restrictions. | Full support. |
BooleanToggle | No restrictions. | Full support. |
BooleanTrigger | No restrictions. | Full support. |
Box | No restrictions. | Full support. |
Collision | Restrictions as for all groups. | Full support except as for all groups. Any navigation behaviour acceptable when collision occurs. |
Color | 15,000 colours. | 15,000 colours. |
ColorInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators. |
ColorRGBA | 15,000 colours. | 15,000 colours. Alpha component optionally supported. |
Cone | No restrictions. | Full support. |
Coordinate | 15,000 points. | 15,000 points. |
CoordinateInterpolator | 15,000 coordinates per keyValue. Restrictions as for all interpolators. | 15,000 coordinates per keyValue. Support as for all interpolators. |
Cylinder | No restrictions. | Full support. |
CylinderSensor | No restrictions. | Full support. |
DirectionalLight | No restrictions. | Not scoped by parent Group or Transform. |
ElevationGrid | 16,000 heights. | 16,000 heights. |
Extrusion | (#crossSection points) × (#spine points) ≤ 2,500. | (#crossSection points) × (#spine points) ≤ 2,500. |
Fog | No restrictions. | Full support. |
FontStyle | No restrictions. | If the values of the text aspects character set, family, style cannot be simultaneously supported, the order of precedence shall be: 1) character set 2) family 3) style. Browser shall display all characters in Table 2 (Basic Latin) and Table 3 (Latin-1 Supplement) of ISO/IEC 10646-1 (see 2.[I10646-1]). |
Group | Restrictions as for all groups. | Full support except as for all groups. |
ImageTexture | JPEG (2.[JPEG]) and PNG (2.[I15948]) format. Restrictions as for PixelTexture. | JPEG (2.[JPEG]) and PNG (2.[I15948]) format. Support as for PixelTexture. |
IndexedFaceSet | 10 vertices per face. 5000 faces. Less than 15,000 indices. | 10 vertices per face. 5000 faces. 15,000 indices in any index field. |
IndexedLineSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field. |
IndexedTriangleFan | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field. |
IndexedTriangleSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field. |
IndexedTriangleStripSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field. |
Inline | No restrictions. | Full support. |
IntegerSequencer | No restrictions. | Full support. |
IntegerTrigger | No restrictions. | Full support. |
KeySensor | No restrictions. | Full support. |
LineProperties | No restrictions. | Full support. |
LineSet | 15,000 total vertices. | 15,000 total vertices. |
LoadSensor | No restrictions. | Full support. |
LOD | Restrictions as for all groups. | At least first 4 level/range combinations interpreted, and support as for all groups. |
Material | No restrictions. | Full support. |
MetadataDouble | No restrictions. | Full support. |
MetadataFloat | No restrictions. | Full support. |
MetadataInteger | No restrictions. | Full support. |
MetadataSet | No restrictions. | Full support. |
MetadataString | No restrictions. | Full support. |
MovieTexture | MPEG1-Systems and MPEG1-Video formats (see 2.[I14496-1]). | MPEG1-Systems and MPEG1-Video formats (see 2.[I14496-1]). Display one active movie texture. |
MultiTexture | No restrictions. | At least two textures displayed per node with any number specified. Full support. |
MultiTextureCoordinate | 15,000 coordinates. | 15,000 coordinates. |
MultiTextureTransform | Restrictions as for all groups. | addChildren optionally supported. removeChildren optionally supported. Otherwise, full support except as for all groups. |
NavigationInfo | No restrictions. | Full support. |
Normal | 15,000 normals | 15,000 normals |
NormalInterpolator | 15,000 normals per keyValue. Restrictions as for all interpolators. | 15,000 normals per keyValue. Support as for all interpolators. |
OrientationInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators. |
PixelTexture | 512 width. 512 height. | 512 width. 512 height. Display fully transparent and fully opaque pixels. |
PlaneSensor | No restrictions. | Full support. |
PointLight | No restrictions. | radius optionally supported. Linear attenuation. |
PointSet | 5000 points. | 5000 points. |
Polyline2D | 5000 vertices. | 5000 vertices. |
Polypoint2D | 5000 points. | 5000 points. |
PositionInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators. |
ProximitySensor | No restrictions. | Full support. |
Rectangle2D | No restrictions. | Full support. |
ScalarInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators. |
Script | 25 fields of each access type. | 25 fields of each access type. No scripting language support required. |
Shape | No restrictions. | Full support. |
Sound | No restrictions. | 2 active sounds. |
Sphere | No restrictions. | Full support. |
SphereSensor | No restrictions. | Full support. |
SpotLight | No restriction | beamWidth optionally supported. radius optionally supported. Linear attenuation. |
StringSensor | 100 characters per string. 100 strings. | Full support. 100 characters per string. 100 strings. |
Switch | Restrictions as for all groups. | Full support except as for all groups. |
Text | 100 characters per string. 100 strings. | 100 characters per string. 100 strings. |
TextureCoordinate | 15,000 coordinates. | 15,000 coordinates. |
TextureCoordinateGenerator | No restrictions. | Full support. |
TextureTransform | No restrictions. | Full support. |
TimeSensor | No restrictions. | pause optionally supported. isPaused optionally supported. resumeTime optionally supported. |
TimeTrigger | No restrictions. | Full support. |
TouchSensor | No restrictions. | Full support. |
TriangleFan | 15,000 coordinates. | Full support. |
TriangleSet | 15,000 coordinates. | Full support. |
TriangleSet2D | 15,000 coordinates. | Full support. |
TriangleStripSet | 15,000 coordinates. | Full support. |
Transform | Restrictions as for all groups. | Full support except as for all groups. |
Viewpoint | No restrictions. | Full support. |
VisibilitySensor | No restrictions. | Always visible. |
WorldInfo | No restrictions. | Full support. |
Table E.4 specifies limitations unrelated to nodes which are imposed by the Immersive profile.
Item | X3D File Limit | Minimum Browser Support |
---|---|---|
All groups | 500 children. | 500 children. Ignore bboxCenter and bboxSize. |
All interpolators | 1000 key-value pairs. | 1000 key-value pairs. |
All lights | 8 simultaneous lights. | 8 simultaneous lights. |
Names for DEF/PROTO/field | 50 utf8 octets. | 50 utf8 octets. |
All url fields | 10 URLs. | 10 URLs. URN's ignored. Support 'http', 'file', and 'ftp' protocols. Support relative URLs where relevant. |
PROTO/ EXTERNPROTO |
30 fields of each access type. | 30 fields of each access type. |
EXTERNPROTO | n/a | URL references X3D files conforming to the current X3D profile/component configuration |
PROTO definition nesting depth | 5 levels. | 5 levels. |
SFBool | No restrictions. | Full support. |
SFColor | No restrictions. | Full support. |
SFColorRGBA | No restrictions. | Full support. |
SFDouble | No restrictions. | Full support. Range ±1e±12. Precision 1e−7. |
SFFloat | No restrictions. | Full support. |
SFImage | 512 width. 512 height. | 512 width. 512 height. |
SFInt32 | No restrictions. | Full support. |
SFNode | No restrictions. | Full support. |
SFRotation | No restrictions. | Full support. |
SFString | 30,000 utf8 octets. | 30,000 utf8 octets. |
SFTime | No restrictions. | Full support. |
SFVec2d | 15,000 values. | 15,000 values. |
SFVec2f | 15,000 values. | 15,000 values. |
SFVec3d | 15,000 values. | 15,000 values. |
SFVec3f | 15,000 values. | 15,000 values. |
MFColor | 15,000 values. | 15,000 values. |
MFColorRGBA | 15,000 values. | 15,000 values. |
MFDouble | 1000 values. | 1000 values. |
MFFloat | 1,000 values. | 1,000 values. |
MFInt32 | 20,000 values. | 20,000 values. |
MFNode | 500 values. | 500 values. |
MFRotation | 1,000 values. | 1,000 values. |
MFString | 30,000 utf8 octets per string, 10 strings. | 30,000 utf8 octets per string, 10 strings. |
MFTime | 1,000 values. | 1,000 values. |
MFVec2d | 15,000 values. | 15,000 values. |
MFVec2f | 15,000 values. | 15,000 values. |
MFVec3d | 15,000 values. | 15,000 values. |
MFVec3f | 15,000 values. | 15,000 values. |