Difference between revisions of "X3D/HTML Implementations"
(→X3D Tag Attributes) |
(→X_ITE) |
||
(28 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
== X3DOM == | == X3DOM == | ||
+ | |||
+ | Reference: [https://www.x3dom.org/ x3dom.org] | ||
=== X3D Tag Attributes === | === X3D Tag Attributes === | ||
Line 16: | Line 18: | ||
* 'PrimitiveQuality' | * 'PrimitiveQuality' | ||
− | These twelve are attributes of any PARAM child element of the X3D tag. See this [https://x3dom.org/docs-old/configuration.html old documentation] | + | These twelve are attributes of any PARAM child element of the X3D tag. See this [https://x3dom.org/docs-old/configuration.html old documentation]. The additional comments below were supplied by Andreas. |
* 'components' | * 'components' | ||
* 'loadpath' | * 'loadpath' | ||
− | * 'disableDoubleClick' | + | * 'disableDoubleClick' - expected to work, double click otherwise recentres |
* 'backend' | * 'backend' | ||
* 'altImg' | * 'altImg' | ||
− | * 'flashrenderer' | + | * 'flashrenderer' - flash is not supported anymore |
− | * 'swfpath' | + | * 'swfpath' - flash is not supported anymore |
− | * 'runtimeEnabled' | + | * 'runtimeEnabled' - disables x3dom runtime interface, not sure if disabling works |
− | * 'keysEnabled' | + | * 'keysEnabled' - disables keys, probably works |
− | * 'showTouchpoints' | + | * 'showTouchpoints' - for mobile, likely works, is useful |
* 'disableTouch' | * 'disableTouch' | ||
− | * 'maxActiveDownloads' | + | * 'maxActiveDownloads' - x3dom has a download manager for resources |
=== Javascript functions === | === Javascript functions === | ||
− | * “getAttribute” / “setAttribute” | + | * “getAttribute” / “setAttribute” - standard DOM calls, using strings for the value |
− | * “getFieldValue” / “setFieldValue” | + | * “getFieldValue” / “setFieldValue” - operate directly on the X3D scene graph using typed values - Andreas reports that the DOM is not synchronized |
− | * “requestFieldRef” / “releaseFieldRef” | + | * “requestFieldRef” / “releaseFieldRef” - gets a field reference. Any modification is a direct modification of the X3D scene graph |
− | === | + | === X3DOM specific event attributes === |
− | |||
* ''OnOutputChanged'' | * ''OnOutputChanged'' | ||
+ | * ''OnViewpointChanged'' – not documented, but see these [https://github.com/x3dom/x3dom/search?q=viewpointchanged&type=Issues&utf8=%E2%9C%93 GitHub issues] | ||
=== X3D Nodes with additional or missing fields === | === X3D Nodes with additional or missing fields === | ||
− | * X3DBackgroundNode – additional “crossOrigin” field | + | * X3DBackgroundNode – additional “crossOrigin” field - this relates to CORS ([https://en.wikipedia.org/wiki/Cross-origin_resource_sharing Cross-Origin Resource Sharing]) - crossOrigin = "anonymous" can be very useful if remote host allows it |
* X3DBindableNode – different “bind” field, “isActive” rather than “isBound”, an additional “description” field, and is missing the “bindTime” field | * X3DBindableNode – different “bind” field, “isActive” rather than “isBound”, an additional “description” field, and is missing the “bindTime” field | ||
− | * X3DComposableVolumeRenderStyleNode – additional “surfaceNormals” field | + | * X3DComposableVolumeRenderStyleNode – additional “surfaceNormals” field - some X3D nodes do have this field |
− | * X3DGeometryNode – additional “lit” and “useGeoCache” fields. The “ccw” and “solid” are not in the X3D X3DGeometryNode, but are in many of the geometry items | + | * X3DGeometryNode – additional “lit” and “useGeoCache” fields. The “ccw” and “solid” are not in the X3D X3DGeometryNode, but are in many of the geometry items. For the “useGeoCache” field, the “geo” refers to geometry. This might be useful in advanced scenes where careful memory management is required |
* X3DGroupingNode – additional “render” field | * X3DGroupingNode – additional “render” field | ||
− | * X3DLightNode – additional “shadowFilterSize”, “shadowIntensity”, “shadowMapSize”, “shadowOffset”, “zFar”, and “zNear” fields | + | * X3DLightNode – additional “shadowFilterSize”, “shadowIntensity”, “shadowMapSize”, “shadowOffset”, “zFar”, and “zNear” fields. Shadows is a candidate new functionality for V4.0 of X3D |
− | * X3DSensorNode – missing “isActive” field | + | * X3DSensorNode – missing “isActive” field - although is in at least some of the derived concrete nodes |
* X3DShapeNode – additional “isPickable” and "idOffset"fields | * X3DShapeNode – additional “isPickable” and "idOffset"fields | ||
− | * X3DTextureNode – additional “origChannelCount”, “scale” and “crossOrigin” fields | + | * X3DTextureNode – additional “origChannelCount”, “scale” and “crossOrigin” fields - WebGL requires textures to be scaled. |
* TimeSensor – additional “first” and “firstCycle” fields | * TimeSensor – additional “first” and “firstCycle” fields | ||
Line 66: | Line 68: | ||
* DynamicLOD | * DynamicLOD | ||
* ExternalGeometry | * ExternalGeometry | ||
− | * ExternalShape | + | * ExternalShape - the only active format is glTF |
* ImageGeometry | * ImageGeometry | ||
* ImageTextureAtlas | * ImageTextureAtlas | ||
* MatrixTransform | * MatrixTransform | ||
− | * Mesh | + | * Mesh - designed to import a whole mesh |
* MPRVolumeStyle | * MPRVolumeStyle | ||
− | * MultiPart | + | * MultiPart - derives from Inline - might be related to CAD assemblies, e.g. explosion views |
* Nozzle | * Nozzle | ||
* Plane | * Plane | ||
Line 81: | Line 83: | ||
* RectangularTorus | * RectangularTorus | ||
* RefinementTexture | * RefinementTexture | ||
− | * RemoteSelectionGroup | + | * RemoteSelectionGroup - used for server/client communications |
+ | * RenderedTexture | ||
* SlopedCylinder | * SlopedCylinder | ||
* Snout | * Snout | ||
Line 91: | Line 94: | ||
* Uniform | * Uniform | ||
* ViewFrustrum | * ViewFrustrum | ||
+ | |||
+ | === Proposed HTML Profile === | ||
+ | |||
+ | A new proposed HTML profile is listed on the [https://www.x3dom.org/nodes-2/ X3DOM web site], which details an extension to the [http://www.web3d.org/documents/specifications/19775-1/V3.2/Part01/interchange.html X3D Interchange profile]. | ||
+ | |||
+ | === CSS === | ||
+ | |||
+ | * Is X3DOM is responsive to some changes produced by CSS - this is believed to be restricted to 3D transformations and animations, and only a Transform (and perhaps other grouping) nodes can be styled in that way. The X3D element can be styled as well. Dynamic changes to the style may have to be applied to the generated Canvas element. | ||
+ | * Does X3DOM have any special CSS-related functionality? | ||
---- | ---- | ||
== X_ITE == | == X_ITE == | ||
+ | |||
+ | Note: This section is for X_ITE itself, and does not include Andreas' X_ITE DOM extension, which is listed separately below. | ||
+ | |||
+ | Reference: [http://create3000.de/x_ite/ X_ITE] | ||
+ | |||
+ | Reference: [https://www.npmjs.com/package/x_ite usage example] | ||
+ | |||
+ | === General === | ||
+ | |||
+ | * X_ITE sticks very closely to the X3D spec. | ||
+ | |||
+ | === X3D Tag Attributes === | ||
+ | * No listing or documentation found. | ||
+ | |||
+ | === X3D Canvas Tag and Attributes === | ||
+ | * Required tag, that shall be the parent of the X3D tag, has the following attributes: | ||
+ | ** src | ||
+ | ** url | ||
+ | ** splashScreen | ||
+ | ** notifications | ||
+ | ** timings | ||
+ | ** contextMenu | ||
+ | ** cache | ||
+ | * Documentation not found on X_ITE web site - some located [https://www.npmjs.com/package/x_ite here] | ||
+ | |||
+ | === Javascript functions === | ||
+ | |||
+ | === X3D specific event attributes === | ||
+ | |||
+ | * X_ITE does not expose any X3D specific events to the DOM and the X3D nodes are not part of the DOM. | ||
+ | |||
+ | === X3D Nodes with additional or missing fields === | ||
+ | |||
+ | * None known. | ||
+ | |||
+ | === Additional nodes not in X3D === | ||
+ | |||
+ | * None known. | ||
+ | |||
+ | === X3D Script nodes === | ||
+ | * Fully supported | ||
+ | * See documentation for [http://create3000.de/users-guide/components/scripting/script/ Scripting component] and [http://create3000.de/users-guide/script-node-authoring-interface/ Script node authoring interface] | ||
+ | |||
+ | === CSS === | ||
+ | |||
+ | * Is X_ITE responsive to changes produced by CSS? | ||
+ | * Does X_ITE have any special CSS-related functionality? | ||
+ | |||
+ | === SAI === | ||
+ | |||
+ | * X3D nodes can be accessed via the SAI programmatically after getting a browser reference. | ||
+ | |||
+ | == X_ITE DOM Extension == | ||
+ | |||
+ | * Adds X3D nodes to the DOM, and generates X3D specific events. | ||
+ | * All X3D out events become custom X3D specific DOM events with names derived from the X3D event name. | ||
+ | * The X3D element probably can be styled. Dynamic changes to the style may have to be applied to the generated Canvas element. |
Latest revision as of 13:28, 20 December 2017
Contents
Summary
This page reviews each of the X3D/HTML implementations, with respect to the X3D V3.3 standard ISO/IEC 19775-1:2015, the X3D version 4.0 Development strategy, as well as the X3D V4 HTML Integration Requirements. The aim of this review is to identify any features that may need to be added, or possibly deleted from, the upcoming suite of X3D V4.0 standards.
X3DOM
Reference: x3dom.org
X3D Tag Attributes
The first four are attributes of the X3D tag
- 'showLog'
- 'showStat'
- 'showProgress'
- 'PrimitiveQuality'
These twelve are attributes of any PARAM child element of the X3D tag. See this old documentation. The additional comments below were supplied by Andreas.
- 'components'
- 'loadpath'
- 'disableDoubleClick' - expected to work, double click otherwise recentres
- 'backend'
- 'altImg'
- 'flashrenderer' - flash is not supported anymore
- 'swfpath' - flash is not supported anymore
- 'runtimeEnabled' - disables x3dom runtime interface, not sure if disabling works
- 'keysEnabled' - disables keys, probably works
- 'showTouchpoints' - for mobile, likely works, is useful
- 'disableTouch'
- 'maxActiveDownloads' - x3dom has a download manager for resources
Javascript functions
- “getAttribute” / “setAttribute” - standard DOM calls, using strings for the value
- “getFieldValue” / “setFieldValue” - operate directly on the X3D scene graph using typed values - Andreas reports that the DOM is not synchronized
- “requestFieldRef” / “releaseFieldRef” - gets a field reference. Any modification is a direct modification of the X3D scene graph
X3DOM specific event attributes
- OnOutputChanged
- OnViewpointChanged – not documented, but see these GitHub issues
X3D Nodes with additional or missing fields
- X3DBackgroundNode – additional “crossOrigin” field - this relates to CORS (Cross-Origin Resource Sharing) - crossOrigin = "anonymous" can be very useful if remote host allows it
- X3DBindableNode – different “bind” field, “isActive” rather than “isBound”, an additional “description” field, and is missing the “bindTime” field
- X3DComposableVolumeRenderStyleNode – additional “surfaceNormals” field - some X3D nodes do have this field
- X3DGeometryNode – additional “lit” and “useGeoCache” fields. The “ccw” and “solid” are not in the X3D X3DGeometryNode, but are in many of the geometry items. For the “useGeoCache” field, the “geo” refers to geometry. This might be useful in advanced scenes where careful memory management is required
- X3DGroupingNode – additional “render” field
- X3DLightNode – additional “shadowFilterSize”, “shadowIntensity”, “shadowMapSize”, “shadowOffset”, “zFar”, and “zNear” fields. Shadows is a candidate new functionality for V4.0 of X3D
- X3DSensorNode – missing “isActive” field - although is in at least some of the derived concrete nodes
- X3DShapeNode – additional “isPickable” and "idOffset"fields
- X3DTextureNode – additional “origChannelCount”, “scale” and “crossOrigin” fields - WebGL requires textures to be scaled.
- TimeSensor – additional “first” and “firstCycle” fields
Additional nodes not in X3D
- BinaryGeometry – imports the specific binary format from AOPT
- BlendMode
- Block
- ColorMaskMode
- CommonSurfaceShader
- DepthMode
- Dish
- DynamicLOD
- ExternalGeometry
- ExternalShape - the only active format is glTF
- ImageGeometry
- ImageTextureAtlas
- MatrixTransform
- Mesh - designed to import a whole mesh
- MPRVolumeStyle
- MultiPart - derives from Inline - might be related to CAD assemblies, e.g. explosion views
- Nozzle
- Plane
- PopGeometry
- PopGeometryLevel
- Pyramid
- RadarVolumeStyle
- RectangularTorus
- RefinementTexture
- RemoteSelectionGroup - used for server/client communications
- RenderedTexture
- SlopedCylinder
- Snout
- SolidOfRevolution
- SphereSegment
- StippleVolumeStyle – not yet implemented
- SurfaceShaderTexture
- Torus
- Uniform
- ViewFrustrum
Proposed HTML Profile
A new proposed HTML profile is listed on the X3DOM web site, which details an extension to the X3D Interchange profile.
CSS
- Is X3DOM is responsive to some changes produced by CSS - this is believed to be restricted to 3D transformations and animations, and only a Transform (and perhaps other grouping) nodes can be styled in that way. The X3D element can be styled as well. Dynamic changes to the style may have to be applied to the generated Canvas element.
- Does X3DOM have any special CSS-related functionality?
X_ITE
Note: This section is for X_ITE itself, and does not include Andreas' X_ITE DOM extension, which is listed separately below.
Reference: X_ITE
Reference: usage example
General
- X_ITE sticks very closely to the X3D spec.
X3D Tag Attributes
- No listing or documentation found.
X3D Canvas Tag and Attributes
- Required tag, that shall be the parent of the X3D tag, has the following attributes:
- src
- url
- splashScreen
- notifications
- timings
- contextMenu
- cache
- Documentation not found on X_ITE web site - some located here
Javascript functions
X3D specific event attributes
- X_ITE does not expose any X3D specific events to the DOM and the X3D nodes are not part of the DOM.
X3D Nodes with additional or missing fields
- None known.
Additional nodes not in X3D
- None known.
X3D Script nodes
- Fully supported
- See documentation for Scripting component and Script node authoring interface
CSS
- Is X_ITE responsive to changes produced by CSS?
- Does X_ITE have any special CSS-related functionality?
SAI
- X3D nodes can be accessed via the SAI programmatically after getting a browser reference.
X_ITE DOM Extension
- Adds X3D nodes to the DOM, and generates X3D specific events.
- All X3D out events become custom X3D specific DOM events with names derived from the X3D event name.
- The X3D element probably can be styled. Dynamic changes to the style may have to be applied to the generated Canvas element.