x_ite 8.4.3 → 8.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +5 -1
- package/Makefile +0 -3
- package/build/bin/components.js +173 -0
- package/build/bin/tags.pl +28 -0
- package/build/bin/tests.pl +80 -2
- package/build/bin/version.pl +12 -7
- package/dist/assets/components/Annotation.js +13 -13
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +13 -13
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +28 -29
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +13 -13
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +9 -9
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +19 -19
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +33 -33
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +63 -42
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +8 -8
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +37 -29
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +29 -31
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +23 -23
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +19 -19
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +24 -19
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +30 -30
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +172 -594
- package/dist/assets/components/Text.min.js +1 -1
- package/dist/assets/components/TextureProjector.js +31 -47
- package/dist/assets/components/TextureProjector.min.js +1 -1
- package/dist/assets/components/Texturing3D.js +367 -346
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +19 -19
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +9 -9
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +12174 -3553
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/docs/_config.yml +5 -136
- package/docs/_data/nav/components-CADGeometry.yml +14 -0
- package/docs/_data/nav/components-Core.yml +16 -0
- package/docs/_data/nav/components-CubeMapTexturing.yml +8 -0
- package/docs/_data/nav/components-DIS.yml +14 -0
- package/docs/_data/nav/components-EnvironmentalEffects.yml +12 -0
- package/docs/_data/nav/components-EnvironmentalSensor.yml +8 -0
- package/docs/_data/nav/components-EventUtilities.yml +16 -0
- package/docs/_data/nav/components-Followers.yml +30 -0
- package/docs/_data/nav/components-Geometry2D.yml +18 -0
- package/docs/_data/nav/components-Geometry3D.yml +16 -0
- package/docs/_data/nav/components-Geospatial.yml +24 -0
- package/docs/_data/nav/components-Grouping.yml +10 -0
- package/docs/_data/nav/components-HAnim.yml +14 -0
- package/docs/_data/nav/components-Interpolation.yml +28 -0
- package/docs/_data/nav/components-KeyDeviceSensor.yml +6 -0
- package/docs/_data/nav/components-Layering.yml +8 -0
- package/docs/_data/nav/components-Layout.yml +12 -0
- package/docs/_data/nav/components-Lighting.yml +10 -0
- package/docs/_data/nav/components-NURBS.yml +30 -0
- package/docs/_data/nav/components-Navigation.yml +16 -0
- package/docs/_data/nav/components-Networking.yml +8 -0
- package/docs/_data/nav/components-ParticleSystems.yml +22 -0
- package/docs/_data/nav/components-Picking.yml +12 -0
- package/docs/_data/nav/components-PointingDeviceSensor.yml +10 -0
- package/docs/_data/nav/components-Rendering.yml +30 -0
- package/docs/_data/nav/components-RigidBodyPhysics.yml +30 -0
- package/docs/_data/nav/components-Scripting.yml +4 -0
- package/docs/_data/nav/components-Shaders.yml +18 -0
- package/docs/_data/nav/components-Shape.yml +22 -0
- package/docs/_data/nav/components-Sound.yml +44 -0
- package/docs/_data/nav/components-Text.yml +6 -0
- package/docs/_data/nav/components-TextureProjector.yml +6 -0
- package/docs/_data/nav/components-Texturing.yml +22 -0
- package/docs/_data/nav/components-Texturing3D.yml +18 -0
- package/docs/_data/nav/components-Time.yml +4 -0
- package/docs/_data/nav/components-VolumeRendering.yml +28 -0
- package/docs/_data/nav/components-X_ITE.yml +4 -0
- package/docs/_data/nav/main.yml +26 -0
- package/docs/_data/nav/reference.yml +18 -0
- package/docs/_data/nav/tutorials-animation-sensors-and-geometry.yml +18 -0
- package/docs/_data/nav/tutorials-basic.yml +6 -0
- package/docs/_data/nav/tutorials-optimize-your-scene.yml +6 -0
- package/docs/_data/nav/tutorials-scripts-and-prototypes.yml +12 -0
- package/docs/_data/nav/tutorials-shapes-geometry-and-appearance.yml +16 -0
- package/docs/_data/nav/tutorials-textures-lights-and-environment.yml +20 -0
- package/docs/_includes/nav.html +2 -2
- package/docs/_includes/scripts.html +2 -1
- package/docs/_posts/accessing-the-external-browser.md +1 -1
- package/docs/_posts/browser-support.md +1 -1
- package/docs/_posts/components/CADGeometry/CADAssembly.md +83 -0
- package/docs/_posts/components/CADGeometry/CADFace.md +70 -0
- package/docs/_posts/components/CADGeometry/CADLayer.md +84 -0
- package/docs/_posts/components/CADGeometry/CADPart.md +117 -0
- package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +125 -0
- package/docs/_posts/components/CADGeometry/QuadSet.md +113 -0
- package/docs/_posts/components/Core/MetadataBoolean.md +90 -0
- package/docs/_posts/components/Core/MetadataDouble.md +67 -0
- package/docs/_posts/components/Core/MetadataFloat.md +67 -0
- package/docs/_posts/components/Core/MetadataInteger.md +66 -0
- package/docs/_posts/components/Core/MetadataSet.md +63 -0
- package/docs/_posts/components/Core/MetadataString.md +66 -0
- package/docs/_posts/components/Core/WorldInfo.md +54 -0
- package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +76 -0
- package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +65 -0
- package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +66 -0
- package/docs/_posts/components/DIS/DISEntityManager.md +73 -0
- package/docs/_posts/components/DIS/DISEntityTypeMapping.md +88 -0
- package/docs/_posts/components/DIS/EspduTransform.md +416 -0
- package/docs/_posts/components/DIS/ReceiverPdu.md +168 -0
- package/docs/_posts/components/DIS/SignalPdu.md +168 -0
- package/docs/_posts/components/DIS/TransmitterPdu.md +232 -0
- package/docs/_posts/components/EnvironmentalEffects/Background.md +189 -0
- package/docs/_posts/components/EnvironmentalEffects/Fog.md +97 -0
- package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +40 -0
- package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +84 -0
- package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +142 -0
- package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +90 -0
- package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +91 -0
- package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +73 -0
- package/docs/_posts/components/EventUtilities/BooleanFilter.md +62 -0
- package/docs/_posts/components/EventUtilities/BooleanSequencer.md +86 -0
- package/docs/_posts/components/EventUtilities/BooleanToggle.md +46 -0
- package/docs/_posts/components/EventUtilities/BooleanTrigger.md +47 -0
- package/docs/_posts/components/EventUtilities/IntegerSequencer.md +90 -0
- package/docs/_posts/components/EventUtilities/IntegerTrigger.md +51 -0
- package/docs/_posts/components/EventUtilities/TimeTrigger.md +47 -0
- package/docs/_posts/components/Followers/ColorChaser.md +77 -0
- package/docs/_posts/components/Followers/ColorDamper.md +85 -0
- package/docs/_posts/components/Followers/CoordinateChaser.md +76 -0
- package/docs/_posts/components/Followers/CoordinateDamper.md +80 -0
- package/docs/_posts/components/Followers/OrientationChaser.md +72 -0
- package/docs/_posts/components/Followers/OrientationDamper.md +80 -0
- package/docs/_posts/components/Followers/PositionChaser.md +72 -0
- package/docs/_posts/components/Followers/PositionChaser2D.md +72 -0
- package/docs/_posts/components/Followers/PositionDamper.md +80 -0
- package/docs/_posts/components/Followers/PositionDamper2D.md +80 -0
- package/docs/_posts/components/Followers/ScalarChaser.md +76 -0
- package/docs/_posts/components/Followers/ScalarDamper.md +80 -0
- package/docs/_posts/components/Followers/TexCoordChaser2D.md +72 -0
- package/docs/_posts/components/Followers/TexCoordDamper2D.md +80 -0
- package/docs/_posts/components/Geometry2D/Arc2D.md +71 -0
- package/docs/_posts/components/Geometry2D/ArcClose2D.md +91 -0
- package/docs/_posts/components/Geometry2D/Circle2D.md +55 -0
- package/docs/_posts/components/Geometry2D/Disk2D.md +75 -0
- package/docs/_posts/components/Geometry2D/Polyline2D.md +54 -0
- package/docs/_posts/components/Geometry2D/Polypoint2D.md +54 -0
- package/docs/_posts/components/Geometry2D/Rectangle2D.md +66 -0
- package/docs/_posts/components/Geometry2D/TriangleSet2D.md +66 -0
- package/docs/_posts/components/Geometry3D/Box.md +66 -0
- package/docs/_posts/components/Geometry3D/Cone.md +90 -0
- package/docs/_posts/components/Geometry3D/Cylinder.md +98 -0
- package/docs/_posts/components/Geometry3D/ElevationGrid.md +162 -0
- package/docs/_posts/components/Geometry3D/Extrusion.md +170 -0
- package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +208 -0
- package/docs/_posts/components/Geometry3D/Sphere.md +66 -0
- package/docs/_posts/components/Geospatial/GeoCoordinate.md +65 -0
- package/docs/_posts/components/Geospatial/GeoElevationGrid.md +180 -0
- package/docs/_posts/components/Geospatial/GeoLOD.md +128 -0
- package/docs/_posts/components/Geospatial/GeoLocation.md +93 -0
- package/docs/_posts/components/Geospatial/GeoMetadata.md +75 -0
- package/docs/_posts/components/Geospatial/GeoOrigin.md +69 -0
- package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +95 -0
- package/docs/_posts/components/Geospatial/GeoProximitySensor.md +109 -0
- package/docs/_posts/components/Geospatial/GeoTouchSensor.md +108 -0
- package/docs/_posts/components/Geospatial/GeoTransform.md +121 -0
- package/docs/_posts/components/Geospatial/GeoViewpoint.md +126 -0
- package/docs/_posts/components/Grouping/Group.md +75 -0
- package/docs/_posts/components/Grouping/StaticGroup.md +65 -0
- package/docs/_posts/components/Grouping/Switch.md +89 -0
- package/docs/_posts/components/Grouping/Transform.md +126 -0
- package/docs/_posts/components/HAnim/HAnimDisplacer.md +89 -0
- package/docs/_posts/components/HAnim/HAnimHumanoid.md +136 -0
- package/docs/_posts/components/HAnim/HAnimJoint.md +165 -0
- package/docs/_posts/components/HAnim/HAnimMotion.md +68 -0
- package/docs/_posts/components/HAnim/HAnimSegment.md +107 -0
- package/docs/_posts/components/HAnim/HAnimSite.md +108 -0
- package/docs/_posts/components/Interpolation/ColorInterpolator.md +73 -0
- package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +76 -0
- package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +73 -0
- package/docs/_posts/components/Interpolation/EaseInEaseOut.md +67 -0
- package/docs/_posts/components/Interpolation/NormalInterpolator.md +68 -0
- package/docs/_posts/components/Interpolation/OrientationInterpolator.md +72 -0
- package/docs/_posts/components/Interpolation/PositionInterpolator.md +72 -0
- package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +77 -0
- package/docs/_posts/components/Interpolation/ScalarInterpolator.md +76 -0
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +93 -0
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +93 -0
- package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +106 -0
- package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +78 -0
- package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +78 -0
- package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +70 -0
- package/docs/_posts/components/Layering/Layer.md +67 -0
- package/docs/_posts/components/Layering/LayerSet.md +78 -0
- package/docs/_posts/components/Layering/Viewport.md +80 -0
- package/docs/_posts/components/Layout/Layout.md +107 -0
- package/docs/_posts/components/Layout/LayoutGroup.md +85 -0
- package/docs/_posts/components/Layout/LayoutLayer.md +74 -0
- package/docs/_posts/components/Layout/ScreenFontStyle.md +137 -0
- package/docs/_posts/components/Layout/ScreenGroup.md +71 -0
- package/docs/_posts/components/Lighting/DirectionalLight.md +100 -0
- package/docs/_posts/components/Lighting/EnvironmentLight.md +91 -0
- package/docs/_posts/components/Lighting/PointLight.md +103 -0
- package/docs/_posts/components/Lighting/SpotLight.md +132 -0
- package/docs/_posts/components/NURBS/Contour2D.md +57 -0
- package/docs/_posts/components/NURBS/ContourPolyline2D.md +46 -0
- package/docs/_posts/components/NURBS/CoordinateDouble.md +47 -0
- package/docs/_posts/components/NURBS/NurbsCurve.md +71 -0
- package/docs/_posts/components/NURBS/NurbsCurve2D.md +66 -0
- package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +70 -0
- package/docs/_posts/components/NURBS/NurbsPatchSurface.md +106 -0
- package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +70 -0
- package/docs/_posts/components/NURBS/NurbsSet.md +66 -0
- package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +90 -0
- package/docs/_posts/components/NURBS/NurbsSweptSurface.md +69 -0
- package/docs/_posts/components/NURBS/NurbsSwungSurface.md +65 -0
- package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +77 -0
- package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +114 -0
- package/docs/_posts/components/Navigation/Billboard.md +88 -0
- package/docs/_posts/components/Navigation/Collision.md +102 -0
- package/docs/_posts/components/Navigation/LOD.md +99 -0
- package/docs/_posts/components/Navigation/NavigationInfo.md +122 -0
- package/docs/_posts/components/Navigation/OrthoViewpoint.md +117 -0
- package/docs/_posts/components/Navigation/Viewpoint.md +117 -0
- package/docs/_posts/components/Navigation/ViewpointGroup.md +80 -0
- package/docs/_posts/components/Networking/Anchor.md +111 -0
- package/docs/_posts/components/Networking/Inline.md +115 -0
- package/docs/_posts/components/Networking/LoadSensor.md +91 -0
- package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +54 -0
- package/docs/_posts/components/ParticleSystems/ConeEmitter.md +76 -0
- package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +72 -0
- package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +58 -0
- package/docs/_posts/components/ParticleSystems/ParticleSystem.md +177 -0
- package/docs/_posts/components/ParticleSystems/PointEmitter.md +76 -0
- package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +94 -0
- package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +90 -0
- package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +90 -0
- package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +68 -0
- package/docs/_posts/components/Picking/LinePickSensor.md +125 -0
- package/docs/_posts/components/Picking/PickableGroup.md +93 -0
- package/docs/_posts/components/Picking/PointPickSensor.md +112 -0
- package/docs/_posts/components/Picking/PrimitivePickSensor.md +114 -0
- package/docs/_posts/components/Picking/VolumePickSensor.md +107 -0
- package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +122 -0
- package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +114 -0
- package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +89 -0
- package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +87 -0
- package/docs/_posts/components/Rendering/ClipPlane.md +67 -0
- package/docs/_posts/components/Rendering/Color.md +56 -0
- package/docs/_posts/components/Rendering/ColorRGBA.md +61 -0
- package/docs/_posts/components/Rendering/Coordinate.md +45 -0
- package/docs/_posts/components/Rendering/IndexedLineSet.md +128 -0
- package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +128 -0
- package/docs/_posts/components/Rendering/IndexedTriangleSet.md +128 -0
- package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +116 -0
- package/docs/_posts/components/Rendering/LineSet.md +85 -0
- package/docs/_posts/components/Rendering/Normal.md +41 -0
- package/docs/_posts/components/Rendering/PointSet.md +76 -0
- package/docs/_posts/components/Rendering/TriangleFanSet.md +112 -0
- package/docs/_posts/components/Rendering/TriangleSet.md +108 -0
- package/docs/_posts/components/Rendering/TriangleStripSet.md +116 -0
- package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +78 -0
- package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +75 -0
- package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +83 -0
- package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +90 -0
- package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +65 -0
- package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +70 -0
- package/docs/_posts/components/RigidBodyPhysics/Contact.md +117 -0
- package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +162 -0
- package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +183 -0
- package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +175 -0
- package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +120 -0
- package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +108 -0
- package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +106 -0
- package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +119 -0
- package/docs/_posts/components/Scripting/Script.md +81 -0
- package/docs/_posts/components/Shaders/ComposedShader.md +81 -0
- package/docs/_posts/components/Shaders/FloatVertexAttribute.md +65 -0
- package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +53 -0
- package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +53 -0
- package/docs/_posts/components/Shaders/PackagedShader.md +77 -0
- package/docs/_posts/components/Shaders/ProgramShader.md +71 -0
- package/docs/_posts/components/Shaders/ShaderPart.md +76 -0
- package/docs/_posts/components/Shaders/ShaderProgram.md +68 -0
- package/docs/_posts/components/Shape/AcousticProperties.md +52 -0
- package/docs/_posts/components/Shape/Appearance.md +123 -0
- package/docs/_posts/components/Shape/FillProperties.md +67 -0
- package/docs/_posts/components/Shape/LineProperties.md +63 -0
- package/docs/_posts/components/Shape/Material.md +217 -0
- package/docs/_posts/components/Shape/PhysicalMaterial.md +173 -0
- package/docs/_posts/components/Shape/PointProperties.md +84 -0
- package/docs/_posts/components/Shape/Shape.md +63 -0
- package/docs/_posts/components/Shape/TwoSidedMaterial.md +149 -0
- package/docs/_posts/components/Shape/UnlitMaterial.md +115 -0
- package/docs/_posts/components/Sound/Analyser.md +72 -0
- package/docs/_posts/components/Sound/AudioClip.md +139 -0
- package/docs/_posts/components/Sound/AudioDestination.md +52 -0
- package/docs/_posts/components/Sound/BiquadFilter.md +70 -0
- package/docs/_posts/components/Sound/BufferAudioSource.md +86 -0
- package/docs/_posts/components/Sound/ChannelMerger.md +46 -0
- package/docs/_posts/components/Sound/ChannelSelector.md +48 -0
- package/docs/_posts/components/Sound/ChannelSplitter.md +48 -0
- package/docs/_posts/components/Sound/Convolver.md +66 -0
- package/docs/_posts/components/Sound/Delay.md +66 -0
- package/docs/_posts/components/Sound/DynamicsCompressor.md +74 -0
- package/docs/_posts/components/Sound/Gain.md +62 -0
- package/docs/_posts/components/Sound/ListenerPointSource.md +62 -0
- package/docs/_posts/components/Sound/MicrophoneSource.md +54 -0
- package/docs/_posts/components/Sound/OscillatorSource.md +58 -0
- package/docs/_posts/components/Sound/PeriodicWave.md +42 -0
- package/docs/_posts/components/Sound/Sound.md +92 -0
- package/docs/_posts/components/Sound/SpatialSound.md +68 -0
- package/docs/_posts/components/Sound/StreamAudioDestination.md +52 -0
- package/docs/_posts/components/Sound/StreamAudioSource.md +54 -0
- package/docs/_posts/components/Sound/WaveShaper.md +66 -0
- package/docs/_posts/components/Text/FontStyle.md +145 -0
- package/docs/_posts/components/Text/Text.md +102 -0
- package/docs/_posts/components/TextureProjector/TextureProjector.md +52 -0
- package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +52 -0
- package/docs/_posts/components/Texturing/ImageTexture.md +134 -0
- package/docs/_posts/components/Texturing/MovieTexture.md +221 -0
- package/docs/_posts/components/Texturing/MultiTexture.md +100 -0
- package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +47 -0
- package/docs/_posts/components/Texturing/MultiTextureTransform.md +47 -0
- package/docs/_posts/components/Texturing/PixelTexture.md +80 -0
- package/docs/_posts/components/Texturing/TextureCoordinate.md +52 -0
- package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +64 -0
- package/docs/_posts/components/Texturing/TextureProperties.md +137 -0
- package/docs/_posts/components/Texturing/TextureTransform.md +73 -0
- package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +76 -0
- package/docs/_posts/components/Texturing3D/ImageTexture3D.md +132 -0
- package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +131 -0
- package/docs/_posts/components/Texturing3D/PixelTexture3D.md +75 -0
- package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +53 -0
- package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +52 -0
- package/docs/_posts/components/Texturing3D/TextureTransform3D.md +69 -0
- package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +57 -0
- package/docs/_posts/components/Time/TimeSensor.md +136 -0
- package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +92 -0
- package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +53 -0
- package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +83 -0
- package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +51 -0
- package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +67 -0
- package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +99 -0
- package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +51 -0
- package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +48 -0
- package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +80 -0
- package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +75 -0
- package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +63 -0
- package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +71 -0
- package/docs/_posts/components/VolumeRendering/VolumeData.md +71 -0
- package/docs/_posts/components/X_ITE/BlendMode.md +94 -0
- package/docs/_posts/custom-shaders.md +9 -4
- package/docs/_posts/dom-integration.md +1 -6
- package/docs/_posts/features.md +2 -2
- package/docs/_posts/getting-started.md +100 -57
- package/docs/_posts/glossary.md +1 -1
- package/docs/_posts/how-to-configure-your-web-server.md +1 -1
- package/docs/_posts/reference/browser-services.md +78 -18
- package/docs/_posts/reference/constants-services.md +1 -1
- package/docs/_posts/reference/ecmascript-object-and-function-definitions.md +1 -1
- package/docs/_posts/reference/field-services-and-objects.md +8 -8
- package/docs/_posts/reference/prototype-services.md +7 -7
- package/docs/_posts/reference/route-services.md +1 -1
- package/docs/_posts/reference/scene-services.md +5 -5
- package/docs/_posts/reference/script-node-authoring-interface.md +1 -1
- package/docs/_posts/report-a-bug.md +1 -1
- package/docs/_posts/setup-a-localhost-server.md +5 -1
- package/docs/_posts/supported-nodes.md +239 -238
- package/docs/_posts/tutorials/adding-backgrounds.md +3 -3
- package/docs/_posts/tutorials/adding-fog.md +2 -2
- package/docs/_posts/tutorials/adding-sound.md +19 -19
- package/docs/_posts/tutorials/animating-transforms.md +17 -17
- package/docs/_posts/tutorials/basic-nodes.md +30 -30
- package/docs/_posts/tutorials/building-a-x3d-world.md +3 -3
- package/docs/_posts/tutorials/building-elevation-grids.md +7 -7
- package/docs/_posts/tutorials/building-extruded-shapes.md +7 -7
- package/docs/_posts/tutorials/building-primitive-shapes.md +13 -13
- package/docs/_posts/tutorials/building-shapes-out-of-points-lines-and-faces.md +21 -21
- package/docs/_posts/tutorials/controlling-appearance-with-materials.md +7 -7
- package/docs/_posts/tutorials/controlling-color-on-coordinate-based-geometry.md +11 -11
- package/docs/_posts/tutorials/controlling-detail.md +4 -4
- package/docs/_posts/tutorials/controlling-how-textures-are-mapped.md +7 -7
- package/docs/_posts/tutorials/controlling-navigation.md +3 -3
- package/docs/_posts/tutorials/controlling-shading-on-coordinate-based-geometry.md +13 -13
- package/docs/_posts/tutorials/controlling-the-viewpoint.md +3 -3
- package/docs/_posts/tutorials/creating-new-node-types.md +4 -4
- package/docs/_posts/tutorials/grouping-nodes.md +13 -13
- package/docs/_posts/tutorials/hello-world.md +1 -1
- package/docs/_posts/tutorials/improving-performance.md +1 -1
- package/docs/_posts/tutorials/increasing-rendering-speed.md +1 -1
- package/docs/_posts/tutorials/introducing-animation.md +10 -10
- package/docs/_posts/tutorials/introducing-script-use.md +3 -3
- package/docs/_posts/tutorials/introducing-x3d.md +1 -1
- package/docs/_posts/tutorials/lighting-your-world.md +4 -4
- package/docs/_posts/tutorials/mapping-textures.md +7 -7
- package/docs/_posts/tutorials/naming-nodes.md +1 -1
- package/docs/_posts/tutorials/overview.md +1 -1
- package/docs/_posts/tutorials/providing-information-about-your-world.md +2 -2
- package/docs/_posts/tutorials/sensing-the-viewer.md +15 -15
- package/docs/_posts/tutorials/sensing-viewer-actions.md +10 -10
- package/docs/_posts/tutorials/transforming-shapes.md +4 -4
- package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +5 -5
- package/docs/_posts/what's-new.md +40 -2
- package/docs/_tabs/components.md +383 -0
- package/docs/_tabs/imprint.md +1 -1
- package/docs/_tabs/laboratory.md +38 -6
- package/docs/_tabs/playground.html +22 -66
- package/docs/_tabs/reference.md +2 -1
- package/docs/_tabs/tags.md +1 -1
- package/docs/_tabs/tutorials.md +1 -1
- package/docs/assets/X3D/Michroma-Regular.ttf +0 -0
- package/docs/assets/X3D/peakpx.jpg +0 -0
- package/docs/assets/X3D/teaser.x3d +55 -0
- package/docs/assets/css/style.scss +120 -11
- package/docs/assets/img/laboratory/blend-mode.png +0 -0
- package/docs/assets/img/laboratory/dicom-nrrd.png +0 -0
- package/docs/assets/img/laboratory/earthquake.png +0 -0
- package/docs/assets/img/laboratory/gltf.png +0 -0
- package/docs/assets/img/laboratory/l-system.png +0 -0
- package/docs/assets/js/autoupdate.js +25 -0
- package/docs/laboratory/gltf-sample-viewer.html +318 -0
- package/docs/laboratory/x3d-visual-blend-mode-editor.html +1 -0
- package/package.json +9 -2
- package/src/assets/components/Texturing3D.js +5 -3
- package/src/assets/shaders/Types.glsl.js +5 -5
- package/src/assets/shaders/webgl1/PBR.fs.js +1 -1
- package/src/assets/shaders/webgl1/include/Colors.glsl.js +5 -7
- package/src/assets/shaders/webgl1/include/Fragment.glsl.js +4 -0
- package/src/assets/shaders/webgl1/include/Hatch.glsl.js +1 -1
- package/src/assets/shaders/webgl1/include/Texture.glsl.js +3 -3
- package/src/assets/shaders/webgl2/include/Colors.glsl.js +5 -7
- package/src/assets/shaders/webgl2/include/Hatch.glsl.js +1 -1
- package/src/assets/shaders/webgl2/include/Particle.glsl.js +2 -2
- package/src/assets/shaders/webgl2/include/Texture.glsl.js +2 -2
- package/src/bookmarks.js +12 -8
- package/src/examples.js +3 -0
- package/src/lib/jquery.js +20 -0
- package/src/lib/libgif/libgif.js +1004 -0
- package/src/lib/libtess.js +1 -0
- package/src/lib/nurbs/extras/sample.js +5 -7
- package/src/standard/Math/Algorithms/Bezier.js +175 -33
- package/src/standard/Math/Geometry/Box2.js +15 -55
- package/src/standard/Math/Geometry/Box3.js +19 -66
- package/src/standard/Math/Geometry/Triangle3.js +14 -79
- package/src/standard/Math/Numbers/Color3.js +4 -0
- package/src/standard/Math/Numbers/Color4.js +4 -0
- package/src/standard/Math/Numbers/Matrix3.js +11 -3
- package/src/standard/Math/Numbers/Matrix4.js +9 -6
- package/src/standard/Math/Numbers/Rotation4.js +72 -65
- package/src/tests.js +3 -0
- package/src/x_ite/Base/X3DArrayField.js +0 -2
- package/src/x_ite/Base/X3DInfoArray.js +2 -2
- package/src/x_ite/Base/X3DObjectArrayField.js +19 -0
- package/src/x_ite/Base/X3DTypedArrayField.js +149 -0
- package/src/x_ite/Browser/Core/BrowserOptions.js +108 -64
- package/src/x_ite/Browser/Core/Context.js +1 -1
- package/src/x_ite/Browser/Core/ContextMenu.js +2 -2
- package/src/x_ite/Browser/Core/Notification.js +1 -1
- package/src/x_ite/Browser/Core/RenderingProperties.js +4 -0
- package/src/x_ite/Browser/Core/X3DCoreContext.js +99 -54
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +4 -14
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +3 -13
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +3 -12
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +25 -22
- package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -3
- package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +2 -2
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +19 -15
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +30 -10
- package/src/x_ite/Browser/Shaders/X3DShadersContext.js +1 -1
- package/src/x_ite/Browser/Shape/X3DShapeContext.js +30 -3
- package/src/x_ite/Browser/Text/PolygonText.js +137 -134
- package/src/x_ite/Browser/Texturing/GifMedia.js +113 -0
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1 -6
- package/src/x_ite/Browser/Texturing3D/NRRDParser.js +81 -310
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +162 -122
- package/src/x_ite/Browser/X3DBrowserContext.js +7 -5
- package/src/x_ite/Components/Core/WorldInfo.js +3 -3
- package/src/x_ite/Components/Core/X3DNode.js +7 -7
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +2 -3
- package/src/x_ite/Components/Geometry3D/Extrusion.js +27 -23
- package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +10 -19
- package/src/x_ite/Components/Grouping/X3DBoundedObject.js +1 -3
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +39 -15
- package/src/x_ite/Components/HAnim/HAnimJoint.js +6 -9
- package/src/x_ite/Components/Layering/X3DLayerNode.js +21 -2
- package/src/x_ite/Components/Layout/Layout.js +4 -2
- package/src/x_ite/Components/Layout/ScreenFontStyle.js +6 -0
- package/src/x_ite/Components/Lighting/DirectionalLight.js +4 -11
- package/src/x_ite/Components/Lighting/EnvironmentLight.js +1 -1
- package/src/x_ite/Components/Lighting/PointLight.js +4 -11
- package/src/x_ite/Components/Lighting/SpotLight.js +4 -11
- package/src/x_ite/Components/Lighting/X3DLightNode.js +7 -9
- package/src/x_ite/Components/Navigation/OrthoViewpoint.js +2 -2
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +14 -6
- package/src/x_ite/Components/Networking/Inline.js +48 -59
- package/src/x_ite/Components/Networking/X3DUrlObject.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +2 -2
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +7 -13
- package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +4 -2
- package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +4 -2
- package/src/x_ite/Components/Scripting/Script.js +2 -2
- package/src/x_ite/Components/Shaders/ShaderPart.js +1 -1
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +1 -3
- package/src/x_ite/Components/Shape/Appearance.js +27 -1
- package/src/x_ite/Components/Shape/FillProperties.js +1 -0
- package/src/x_ite/Components/Shape/LineProperties.js +15 -9
- package/src/x_ite/Components/Shape/Material.js +33 -22
- package/src/x_ite/Components/Shape/PhysicalMaterial.js +22 -15
- package/src/x_ite/Components/Shape/PointProperties.js +23 -7
- package/src/x_ite/Components/Shape/UnlitMaterial.js +3 -2
- package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +25 -19
- package/src/x_ite/Components/Sound/AudioClip.js +5 -5
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +26 -34
- package/src/x_ite/Components/Text/X3DFontStyleNode.js +1 -1
- package/src/x_ite/Components/TextureProjector/TextureProjector.js +4 -12
- package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +6 -14
- package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +7 -7
- package/src/x_ite/Components/Texturing/ImageTexture.js +15 -10
- package/src/x_ite/Components/Texturing/MovieTexture.js +51 -11
- package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +2 -2
- package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +230 -0
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +12 -10
- package/src/x_ite/Execution/BindableList.js +35 -37
- package/src/x_ite/Execution/BindableStack.js +25 -7
- package/src/x_ite/Execution/X3DScene.js +2 -2
- package/src/x_ite/Execution/X3DWorld.js +1 -1
- package/src/x_ite/Fields/SFRotation.js +2 -1
- package/src/x_ite/Fields/SFString.js +1 -1
- package/src/x_ite/InputOutput/FileLoader.js +105 -236
- package/src/x_ite/InputOutput/Generator.js +12 -8
- package/src/x_ite/Parser/Expressions.js +85 -0
- package/src/x_ite/Parser/GLB2Parser.js +147 -0
- package/src/x_ite/Parser/GLTF2Parser.js +2221 -0
- package/src/x_ite/Parser/GoldenGate.js +64 -13
- package/src/x_ite/Parser/JSONParser.js +7 -36
- package/src/x_ite/Parser/OBJParser.js +1076 -0
- package/src/x_ite/Parser/STLAParser.js +376 -0
- package/src/x_ite/Parser/STLBParser.js +156 -0
- package/src/x_ite/Parser/SVGParser.js +2476 -0
- package/src/x_ite/Parser/VRMLParser.js +127 -183
- package/src/x_ite/Parser/X3DOptimizer.js +191 -0
- package/src/x_ite/Parser/X3DParser.js +34 -0
- package/src/x_ite/Parser/XMLParser.js +11 -109
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -2
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +3 -3
- package/src/x_ite/Rendering/DependentRenderer.js +1 -1
- package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +150 -0
- package/src/x_ite/Rendering/TextureBuffer.js +3 -5
- package/src/x_ite/Rendering/X3DRenderObject.js +2 -7
- package/src/x_ite/X3D.js +1 -0
- package/src/x_ite/X3DCanvas.js +10 -0
- package/src/x_ite.html +39 -17
- package/webpack.config.js +1 -0
- package/x_ite.min.html +38 -17
- package/src/standard/Networking/BinaryTransport.js +0 -116
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Material
|
|
3
|
+
date: 2022-01-07
|
|
4
|
+
nav: components-Shape
|
|
5
|
+
categories: [components, Shape]
|
|
6
|
+
tags: [Material, Shape]
|
|
7
|
+
---
|
|
8
|
+
<style>
|
|
9
|
+
.post h3 {
|
|
10
|
+
word-spacing: 0.2em;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Material specifies surface rendering properties for associated geometry nodes. Material attributes are used by the X3D lighting equations during rendering.
|
|
17
|
+
|
|
18
|
+
The Material node belongs to the **Shape** component and its default container field is *material.* It is available since X3D version 3.0 or later.
|
|
19
|
+
|
|
20
|
+
## Hierarchy
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
+ X3DNode
|
|
24
|
+
+ X3DAppearanceChildNode
|
|
25
|
+
+ X3DMaterialNode
|
|
26
|
+
+ X3DOneSidedMaterialNode
|
|
27
|
+
+ Material
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Fields
|
|
31
|
+
|
|
32
|
+
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
33
|
+
|
|
34
|
+
Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
|
|
35
|
+
|
|
36
|
+
### SFFloat [in, out] **ambientIntensity** 0.2 <small>[0,1]</small>
|
|
37
|
+
|
|
38
|
+
How much ambient omnidirectional light is reflected from all light sources. Interchange profile hint: this field may be ignored, applying the default value regardless.
|
|
39
|
+
|
|
40
|
+
### SFString [in, out] **ambientTextureMapping** ""
|
|
41
|
+
|
|
42
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
43
|
+
|
|
44
|
+
### SFNode [in, out] **ambientTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
45
|
+
|
|
46
|
+
When applying ambientIntensity for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
47
|
+
|
|
48
|
+
#### Hint
|
|
49
|
+
|
|
50
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
51
|
+
- Contained texture node must include containerField='ambientTexture'
|
|
52
|
+
|
|
53
|
+
### SFColor [in, out] **diffuseColor** 0.8 0.8 0.8 <small>[0,1]</small>
|
|
54
|
+
|
|
55
|
+
How much direct, angle-dependent light is reflected from all light sources.
|
|
56
|
+
|
|
57
|
+
#### Hints
|
|
58
|
+
|
|
59
|
+
- Only emissiveColor affects IndexedLineSet, LineSet and PointSet. If a texture is present the diffuseColor is always multiplied with the texture color, in contrast to the specification. Set diffuseColor to (1 1 1) to get maximum texture color intensity.
|
|
60
|
+
|
|
61
|
+
### SFString [in, out] **diffuseTextureMapping** ""
|
|
62
|
+
|
|
63
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
64
|
+
|
|
65
|
+
### SFNode [in, out] **diffuseTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
66
|
+
|
|
67
|
+
When applying diffuseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
68
|
+
|
|
69
|
+
#### Hints
|
|
70
|
+
|
|
71
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
72
|
+
- Contained texture node must include containerField='diffuseTexture'
|
|
73
|
+
|
|
74
|
+
### SFColor [in, out] **specularColor** 0 0 0 <small>[0,1]</small>
|
|
75
|
+
|
|
76
|
+
Specular highlights are brightness reflections (example: shiny spots on an apple). Interchange profile hint: this field may be ignored, applying the default value regardless.
|
|
77
|
+
|
|
78
|
+
### SFString [in, out] **specularTextureMapping** ""
|
|
79
|
+
|
|
80
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
81
|
+
|
|
82
|
+
### SFNode [in, out] **specularTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
83
|
+
|
|
84
|
+
When applying specularColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
85
|
+
|
|
86
|
+
#### Hints
|
|
87
|
+
|
|
88
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
89
|
+
- Contained texture node must include containerField='specularTexture'
|
|
90
|
+
|
|
91
|
+
### SFColor [in, out] **emissiveColor** 0 0 0 <small>[0,1]</small>
|
|
92
|
+
|
|
93
|
+
How much glowing light is emitted from this object.
|
|
94
|
+
|
|
95
|
+
#### Hints
|
|
96
|
+
|
|
97
|
+
- EmissiveColors glow even when all lights are off. Reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout. Only emissiveColor affects IndexedLineSet, LineSet and PointSet.
|
|
98
|
+
|
|
99
|
+
#### Warning
|
|
100
|
+
|
|
101
|
+
- Bright emissiveColor values can wash out other colors and some textures.
|
|
102
|
+
|
|
103
|
+
### SFFloat [in, out] **emissiveStrength** 1 <small>[0,∞) <span class="yellow">non standard</span></small>
|
|
104
|
+
|
|
105
|
+
A multiplier for emissiveColor and emissiveTexture values.
|
|
106
|
+
|
|
107
|
+
#### Hint
|
|
108
|
+
|
|
109
|
+
- [glTF version 2 KHR materials emissive strength](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_emissive_strength){:target="_blank"}
|
|
110
|
+
|
|
111
|
+
### SFString [in, out] **emissiveTextureMapping** ""
|
|
112
|
+
|
|
113
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
114
|
+
|
|
115
|
+
### SFNode [in, out] **emissiveTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
116
|
+
|
|
117
|
+
When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
118
|
+
|
|
119
|
+
#### Hints
|
|
120
|
+
|
|
121
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
122
|
+
- Contained texture node must include containerField='emissiveTexture'
|
|
123
|
+
|
|
124
|
+
### SFFloat [in, out] **shininess** 0.2 <small>[0,1]</small>
|
|
125
|
+
|
|
126
|
+
Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights. Interchange profile hint: this field may be ignored, applying the default value regardless.
|
|
127
|
+
|
|
128
|
+
### SFString [in, out] **shininessTextureMapping** ""
|
|
129
|
+
|
|
130
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
131
|
+
|
|
132
|
+
### SFNode [in, out] *shininessTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
133
|
+
|
|
134
|
+
When applying shininess for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
135
|
+
|
|
136
|
+
#### Hints
|
|
137
|
+
|
|
138
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
139
|
+
- Contained texture node must include containerField='shininessTexture'
|
|
140
|
+
|
|
141
|
+
### SFFloat [in, out] **occlusionStrength** 1 <small>[0,1]</small>
|
|
142
|
+
|
|
143
|
+
*occlusionStrength* indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.
|
|
144
|
+
|
|
145
|
+
#### Hints
|
|
146
|
+
|
|
147
|
+
- Only the Red channel of the texture is used for occlusion computations, other channels are ignored.
|
|
148
|
+
- https://en.wikipedia.org/wiki/Ambient_occlusion
|
|
149
|
+
|
|
150
|
+
### SFString [in, out] **occlusionTextureMapping** ""
|
|
151
|
+
|
|
152
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
153
|
+
|
|
154
|
+
### SFNode [in, out] **occlusionTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
155
|
+
|
|
156
|
+
When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
157
|
+
|
|
158
|
+
#### Hints
|
|
159
|
+
|
|
160
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
161
|
+
- Contained texture node must include containerField='occlusionTexture'
|
|
162
|
+
|
|
163
|
+
### SFFloat [in, out] **normalScale** 1 <small>[0,∞)</small>
|
|
164
|
+
|
|
165
|
+
*normalScale* controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.
|
|
166
|
+
|
|
167
|
+
#### Hints
|
|
168
|
+
|
|
169
|
+
- normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.
|
|
170
|
+
- normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
|
|
171
|
+
|
|
172
|
+
### SFString [in, out] **normalTextureMapping** ""
|
|
173
|
+
|
|
174
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
175
|
+
|
|
176
|
+
### SFNode [in, out] **normalTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
177
|
+
|
|
178
|
+
When applying normalScale for this material node, the contained texture modulates the texture across the surface.
|
|
179
|
+
|
|
180
|
+
#### Hints
|
|
181
|
+
|
|
182
|
+
- normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
|
|
183
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
184
|
+
- Contained texture node must include containerField='normalTexture'
|
|
185
|
+
|
|
186
|
+
### SFFloat [in, out] **transparency** 0 <small>[0,1]</small>
|
|
187
|
+
|
|
188
|
+
How "clear" an object is: 1.0 is completely transparent, 0.0 is completely opaque.
|
|
189
|
+
|
|
190
|
+
#### Interchange profile hint:
|
|
191
|
+
|
|
192
|
+
Transparency < .5 opaque, transparency > .5 transparent.
|
|
193
|
+
|
|
194
|
+
#### Hint
|
|
195
|
+
|
|
196
|
+
- If a texture is present the transparency is always multiplied with the texture's transparency, in contrast to the specification. Set transparency to (0) to get a full opaque texture color.
|
|
197
|
+
|
|
198
|
+
## Description
|
|
199
|
+
|
|
200
|
+
### Hints
|
|
201
|
+
|
|
202
|
+
- Insert Shape and Appearance nodes before adding material.
|
|
203
|
+
- DEF/USE copies of a single node can provide a similar "look + feel" style for related shapes in a scene.
|
|
204
|
+
|
|
205
|
+
## Example
|
|
206
|
+
|
|
207
|
+
<x3d-canvas src="https://create3000.github.io/media/examples/Shape/Material/Material.x3d"></x3d-canvas>
|
|
208
|
+
|
|
209
|
+
## External Links
|
|
210
|
+
|
|
211
|
+
- [X3D Specification of Material](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/shape.html#Material){:target="_blank"}
|
|
212
|
+
- [X3D Scene Authoring Hints, Color](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color){:target="_blank"}
|
|
213
|
+
- [X3D Example Archives, Basic, Universal Media Materials](https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials){:target="_blank"}
|
|
214
|
+
- [3D Architecture 17.2.2 Lighting model](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel){:target="_blank"}
|
|
215
|
+
- [Rendering](https://en.wikipedia.org/wiki/Rendering_(computer_graphics)){:target="_blank"}
|
|
216
|
+
- [3D rendering](https://en.wikipedia.org/wiki/3D_rendering){:target="_blank"}
|
|
217
|
+
- [Phong reflection model](https://en.wikipedia.org/wiki/Phong_reflection_model){:target="_blank"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: PhysicalMaterial
|
|
3
|
+
date: 2023-01-31
|
|
4
|
+
nav: components-Shape
|
|
5
|
+
categories: [components, Shape]
|
|
6
|
+
tags: [PhysicalMaterial, Shape]
|
|
7
|
+
---
|
|
8
|
+
<style>
|
|
9
|
+
.post h3 {
|
|
10
|
+
word-spacing: 0.2em;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
PhysicalMaterial specifies surface rendering properties for associated geometry nodes. Material attributes are used by the X3D lighting equations during rendering.
|
|
17
|
+
|
|
18
|
+
The PhysicalMaterial node belongs to the **Shape** component and its default container field is *material.* It is available since X3D version 4.0 or later.
|
|
19
|
+
|
|
20
|
+
## Hierarchy
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
+ X3DNode
|
|
24
|
+
+ X3DAppearanceChildNode
|
|
25
|
+
+ X3DMaterialNode
|
|
26
|
+
+ X3DOneSidedMaterialNode
|
|
27
|
+
+ PhysicalMaterial
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Fields
|
|
31
|
+
|
|
32
|
+
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
33
|
+
|
|
34
|
+
Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
|
|
35
|
+
|
|
36
|
+
### SFColor [in, out] **baseColor** 1 1 1 <small>[0,1]</small>
|
|
37
|
+
|
|
38
|
+
Similar to diffuseColor from Material.
|
|
39
|
+
|
|
40
|
+
### SFString [in, out] **baseTextureMapping** ""
|
|
41
|
+
|
|
42
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
43
|
+
|
|
44
|
+
### SFNode [in, out] **baseTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
45
|
+
|
|
46
|
+
When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
47
|
+
|
|
48
|
+
#### Hints
|
|
49
|
+
|
|
50
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
51
|
+
- Contained texture node must include containerField='baseTexture'
|
|
52
|
+
|
|
53
|
+
### SFColor [in, out] **emissiveColor** 0 0 0 <small>[0,1]</small>
|
|
54
|
+
|
|
55
|
+
How much glowing light is emitted from this object.
|
|
56
|
+
|
|
57
|
+
#### Hints
|
|
58
|
+
|
|
59
|
+
- emissiveColors glow even when all lights are off.
|
|
60
|
+
- Reset diffuseColor from default (0.8 0.8 0.8) to (0 0 0) to avoid washout.
|
|
61
|
+
- Only emissiveColor affects IndexedLineSet, LineSet and PointSet.
|
|
62
|
+
|
|
63
|
+
#### Warning
|
|
64
|
+
|
|
65
|
+
- Bright emissiveColor values can wash out other colors and some textures.
|
|
66
|
+
|
|
67
|
+
### SFFloat [in, out] **emissiveStrength** 1 <small>[0,∞) <span class="yellow">non standard</span></small>
|
|
68
|
+
|
|
69
|
+
A multiplier for emissiveColor and emissiveTexture values.
|
|
70
|
+
|
|
71
|
+
#### Hint
|
|
72
|
+
|
|
73
|
+
- [glTF version 2 KHR materials emissive strength](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_emissive_strength){:target="_blank"}
|
|
74
|
+
|
|
75
|
+
### SFString [in, out] **emissiveTextureMapping** ""
|
|
76
|
+
|
|
77
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
78
|
+
|
|
79
|
+
### SFNode [in, out] **emissiveTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
80
|
+
|
|
81
|
+
When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
82
|
+
|
|
83
|
+
#### Hints
|
|
84
|
+
|
|
85
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
86
|
+
- Contained texture node must include containerField='emissiveTexture'
|
|
87
|
+
|
|
88
|
+
### SFFloat [in, out] **metallic** 1 <small>[0,1]</small>
|
|
89
|
+
|
|
90
|
+
How metallic is the material.
|
|
91
|
+
|
|
92
|
+
### SFFloat [in, out] **roughness** 1 <small>[0,1]</small>
|
|
93
|
+
|
|
94
|
+
How rough is the material.
|
|
95
|
+
|
|
96
|
+
### SFString [in, out] **metallicRoughnessTextureMapping** ""
|
|
97
|
+
|
|
98
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
99
|
+
|
|
100
|
+
### SFNode [in, out] **metallicRoughnessTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
101
|
+
|
|
102
|
+
When applying metallic for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
103
|
+
|
|
104
|
+
#### Hints
|
|
105
|
+
|
|
106
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
107
|
+
- Contained texture node must include containerField='metallicRoughnessTexture'
|
|
108
|
+
|
|
109
|
+
### SFFloat [in, out] **occlusionStrength** 1 <small>[0,1]</small>
|
|
110
|
+
|
|
111
|
+
*occlusionStrength* indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.
|
|
112
|
+
|
|
113
|
+
#### Hints
|
|
114
|
+
|
|
115
|
+
- Only the Red channel of the texture is used for occlusion computations, other channels are ignored.
|
|
116
|
+
- https://en.wikipedia.org/wiki/Ambient_occlusion
|
|
117
|
+
|
|
118
|
+
### SFString [in, out] **occlusionTextureMapping** ""
|
|
119
|
+
|
|
120
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
121
|
+
|
|
122
|
+
### SFNode [in, out] **occlusionTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
123
|
+
|
|
124
|
+
When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.
|
|
125
|
+
|
|
126
|
+
#### Hints
|
|
127
|
+
|
|
128
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
129
|
+
- Contained texture node must include containerField='occlusionTexture'
|
|
130
|
+
|
|
131
|
+
### SFFloat [in, out] **normalScale** 1 <small>[0,∞)</small>
|
|
132
|
+
|
|
133
|
+
*normalScale* controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.
|
|
134
|
+
|
|
135
|
+
#### Hints
|
|
136
|
+
|
|
137
|
+
- normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.
|
|
138
|
+
- normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
|
|
139
|
+
|
|
140
|
+
### SFString [in, out] **normalTextureMapping** ""
|
|
141
|
+
|
|
142
|
+
The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.
|
|
143
|
+
|
|
144
|
+
### SFNode [in, out] **normalTexture** NULL <small>[X3DSingleTextureNode]</small>
|
|
145
|
+
|
|
146
|
+
When applying normalScale for this material node, the contained texture modulates the texture across the surface.
|
|
147
|
+
|
|
148
|
+
#### Hints
|
|
149
|
+
|
|
150
|
+
- normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping
|
|
151
|
+
- If texture node is NULL or unspecified, no effect is applied to material values.
|
|
152
|
+
- Contained texture node must include containerField='normalTexture'
|
|
153
|
+
|
|
154
|
+
### SFFloat [in, out] **transparency** 0 <small>[0,1]</small>
|
|
155
|
+
|
|
156
|
+
How "clear" an object is: 1.0 is completely transparent, 0.0 is completely opaque.
|
|
157
|
+
|
|
158
|
+
## Description
|
|
159
|
+
|
|
160
|
+
### Hints
|
|
161
|
+
|
|
162
|
+
- Insert Shape and Appearance nodes before adding material.
|
|
163
|
+
- DEF/USE copies of a single node can provide a similar "look + feel" style for related shapes in a scene.
|
|
164
|
+
|
|
165
|
+
## External Links
|
|
166
|
+
|
|
167
|
+
- [X3D Specification of PhysicalMaterial](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/shape.html#PhysicalMaterial){:target="_blank"}
|
|
168
|
+
- [X3D Scene Authoring Hints, Color](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color){:target="_blank"}
|
|
169
|
+
- [X3D Example Archives, Basic, Universal Media Materials](https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials){:target="_blank"}
|
|
170
|
+
- [3D Architecture 17.2.2 Lighting model](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel){:target="_blank"}
|
|
171
|
+
- [Rendering](https://en.wikipedia.org/wiki/Rendering_(computer_graphics)){:target="_blank"}
|
|
172
|
+
- [3D rendering](https://en.wikipedia.org/wiki/3D_rendering){:target="_blank"}
|
|
173
|
+
- [Physically based rendering (PBR)](https://en.wikipedia.org/wiki/Physically_based_rendering){:target="_blank"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: PointProperties
|
|
3
|
+
date: 2022-01-07
|
|
4
|
+
nav: components-Shape
|
|
5
|
+
categories: [components, Shape]
|
|
6
|
+
tags: [PointProperties, Shape]
|
|
7
|
+
---
|
|
8
|
+
<style>
|
|
9
|
+
.post h3 {
|
|
10
|
+
word-spacing: 0.2em;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
PointProperties allows precise fine-grained control over the rendering style of PointSet node points inside the same Shape.
|
|
17
|
+
|
|
18
|
+
The PointProperties node belongs to the **Shape** component and its default container field is *pointProperties.* It is available since X3D version 4.0 or later.
|
|
19
|
+
|
|
20
|
+
## Hierarchy
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
+ X3DNode
|
|
24
|
+
+ X3DAppearanceChildNode
|
|
25
|
+
+ PointProperties
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Fields
|
|
29
|
+
|
|
30
|
+
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
31
|
+
|
|
32
|
+
Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
|
|
33
|
+
|
|
34
|
+
### SFFloat [in, out] **pointSizeScaleFactor** 1 (1,∞)
|
|
35
|
+
|
|
36
|
+
Nominal rendered point size is a browser-dependent minimum renderable point size, which is then multiplied by an additional (greater than or equal to 1.0) pointSizeScaleFactor.
|
|
37
|
+
|
|
38
|
+
#### Hint
|
|
39
|
+
|
|
40
|
+
- Additional sizing modifications are determined by pointSizeMinValue, pointSizeMaxValue, and pointSizeAttenuation array.
|
|
41
|
+
|
|
42
|
+
### SFFloat [in, out] **pointSizeMinValue** 1 <small>[0,∞)</small>
|
|
43
|
+
|
|
44
|
+
*pointSizeMinValue* is minimum allowed scaling factor on nominal browser point scaling.
|
|
45
|
+
|
|
46
|
+
#### Warning
|
|
47
|
+
|
|
48
|
+
- Maintain pointSizeMinValue\<= pointSizeMaxValue.
|
|
49
|
+
|
|
50
|
+
### SFFloat [in, out] **pointSizeMaxValue** 1 <small>(0,∞)</small>
|
|
51
|
+
|
|
52
|
+
*pointSizeMaxValue* is maximum allowed scaling factor on nominal browser point scaling
|
|
53
|
+
|
|
54
|
+
#### Warning
|
|
55
|
+
|
|
56
|
+
- Maintain pointSizeMinValue \<= pointSizeMaxValue.
|
|
57
|
+
|
|
58
|
+
### MFFloat [in, out] **pointSizeAttenuation** 1 0 0 <small>(0,∞)</small>
|
|
59
|
+
|
|
60
|
+
*pointSizeAttenuation* array values [a, b, c] are set to default values if undefined. Together these parameters define attenuation factor 1/(a + b×r + c×r^2) where r is the distance from observer position (current viewpoint) to each point.
|
|
61
|
+
|
|
62
|
+
#### Hint
|
|
63
|
+
|
|
64
|
+
- Nominal point size is multiplied by attenuation factor and then clipped to a minimum value of pointSizeMinValue × minimum renderable point size, then clipped to maximum size of pointSizeMaxValue × minimum renderable point size.
|
|
65
|
+
|
|
66
|
+
### SFString [in, out] **colorMode** "TEXTURE_AND_POINT_COLOR" <small>["POINT_COLOR", "TEXTURE_COLOR", "TEXTURE_AND_POINT_COLOR"]</small>
|
|
67
|
+
|
|
68
|
+
*colorMode* has blending effect on the rendering of point sprites, applying supplied color (Color node or Material emissiveColor) and texture color
|
|
69
|
+
|
|
70
|
+
#### Hint
|
|
71
|
+
|
|
72
|
+
- POINT_COLOR shall display the RGB channels of the color instance defined in X3DMaterialNode or X3DColorNode, and the A channel of the texture if any. If no color is associated to the point, the default RGB color (0, 0, 0) shall be used. TEXTURE_COLOR shall display the original texture with its RGBA channels and regardless to the X3DMaterialNode or X3DColorNode which might be associated to the point set. TEXTURE_AND_POINT_COLOR shall display the RGBA channels of a texture added to the RGB channels of the color defined in X3DMaterialNode or X3DColorNode node, and the A channel of the texture if any. If no color is associated to the point, the result shall be exactly the same as TEXTURE_COLOR.
|
|
73
|
+
|
|
74
|
+
## Description
|
|
75
|
+
|
|
76
|
+
### Hints
|
|
77
|
+
|
|
78
|
+
- DEF/USE copies of a single node can provide a similar "look + feel" style for related shapes in a scene.
|
|
79
|
+
- When an X3DTextureNode is defined in the same Appearance instance as PointProperties node, the points of a PointSet shall be displayed as point sprites using the given texture(s).
|
|
80
|
+
- Requires X3D profile='Full' or else include \<component name='Shape' level='5'/>`
|
|
81
|
+
|
|
82
|
+
## External Links
|
|
83
|
+
|
|
84
|
+
- [X3D Specification of PointProperties](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/shape.html#LineProperties){:target="_blank"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Shape
|
|
3
|
+
date: 2022-01-07
|
|
4
|
+
nav: components-Shape
|
|
5
|
+
categories: [components, Shape]
|
|
6
|
+
tags: [Shape, Shape]
|
|
7
|
+
---
|
|
8
|
+
<style>
|
|
9
|
+
.post h3 {
|
|
10
|
+
word-spacing: 0.2em;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Shape can appear under any grouping node. Shape can contain an Appearance node and a geometry node (Box Cone Cylinder ElevationGrid Extrusion IndexedFaceSet IndexedLineSet LineSet PointSet Sphere Text).
|
|
17
|
+
|
|
18
|
+
The Shape node belongs to the **Shape** component and its default container field is *children.* It is available since X3D version 3.0 or later.
|
|
19
|
+
|
|
20
|
+
## Hierarchy
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
+ X3DNode
|
|
24
|
+
+ X3DChildNode
|
|
25
|
+
+ X3DShapeNode
|
|
26
|
+
+ Shape
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Fields
|
|
30
|
+
|
|
31
|
+
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
32
|
+
|
|
33
|
+
Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
|
|
34
|
+
|
|
35
|
+
### SFVec3f [ ] **bboxSize** -1 -1 -1 <small>[0,∞) or −1 −1 −1</small>
|
|
36
|
+
|
|
37
|
+
Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.
|
|
38
|
+
|
|
39
|
+
#### Hint
|
|
40
|
+
|
|
41
|
+
- Can be useful for collision computations or inverse-kinematics (IK) engines.
|
|
42
|
+
|
|
43
|
+
### SFVec3f [ ] **bboxCenter** 0 0 0 <small>(-∞,∞)</small>
|
|
44
|
+
|
|
45
|
+
Bounding box center: optional hint for position offset from origin of local coordinate system.
|
|
46
|
+
|
|
47
|
+
### SFNode [in, out] **appearance** NULL <small>[X3DAppearanceNode]</small>
|
|
48
|
+
|
|
49
|
+
Input/Output field appearance.
|
|
50
|
+
|
|
51
|
+
### SFNode [in, out] **geometry** NULL <small>[X3DGeometryNode]</small>
|
|
52
|
+
|
|
53
|
+
Input/Output field geometry.
|
|
54
|
+
|
|
55
|
+
## Description
|
|
56
|
+
|
|
57
|
+
### Hint
|
|
58
|
+
|
|
59
|
+
- You can also substitute a type-matched ProtoInstance node for contained content.
|
|
60
|
+
|
|
61
|
+
## External Links
|
|
62
|
+
|
|
63
|
+
- [X3D Specification of Shape](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/shape.html#Shape){:target="_blank"}
|