[x3d-public] Differences of default values between specification and dtd

Michalis Kamburelis michalis.kambi at gmail.com
Mon Jun 12 08:24:06 PDT 2017


I assumed that DirectionalLight.global is deliberately global=FALSE by
default (in contract to other light sources). And implemented and
checked this carefully in view3dscene and Castle Game Engine.

This makes sense: PointLight and SpotLight have radius = 100 by
default, so they are naturally limited by this radius, even when they
are global.

The DirectionalLight, in contrast, doesn't have a radius as it doesn't
have a position. So it makes sense that it has global=FALSE by
default, otherwise it would always affect the whole scene.

I think that this is also compatible with VRML 2.0. See
http://www.x-3-x.net/vrml/archive/annotatedVRML2/BOOK.HTM (click on
"NODES" on top, then "DirectionalLight"):

  """Since directional lights do not have a radius field to limit the
illumination effects, it is very important to parent DirectionalLights
under the Transform node of the shapes that you want to illuminate.
"""

Regards,
Michalis

2017-06-12 16:30 GMT+02:00 Don Brutzman <brutzman at nps.edu>:
> Thank you very much for this important and useful cross-check Holger.  We
> will investigate and check for consistent values in X3D DTD, XML Schema,
> JSON Schema and Object Model for X3D (OM4X3D).
>
> In general the X3D Abstract Specification is the authoritative reference.
> Further modifications are documented in the Web3D Mantis Issues system and
> draft specification revisions.
>
>         X3D Abstract Specification
>
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/Architecture.html
>
>         X3D Resources: Feedback
>         http://www.web3d.org/x3d/content/examples/X3dResources.html#Feedback
>
>         Mantis issue tracker (Web3D member access required)
>         http://www.web3d.org/realtime-3d/member-only/mantis/my_view_page.php
>
>
> On 6/12/2017 1:21 AM, Holger Seelig wrote:
>>
>> I detected some differences of the default values between the 3.3
>> Specification
>> <http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/Architecture.html>
>> and the 3.3 dtd <http://www.web3d.org/specifications/x3d-3.3.dtd>.
>>
>> The default values are not equal, thus it is not clear to me which values
>> take precedence.
>>
>> A second issue I detected is that the default value for the global field
>> of the DirectionalLight node is FALSE, although all other light nodes have a
>> global TRUE value, which makes sense because if the global field is default
>> FALSE it would break backward compatibility to VRML2.
>>
>> The document attached and below list the affected fields showing the
>> default values of the dtd. Please note the 'Volume rendering component' is
>> still not verified.
>>
>> Best regards,
>> Holger Seelig
>>
>>
>> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN"
>> "http://www.web3d.org/specifications/x3d-3.3.dtd">
>> <X3D profile='Full' version='3.3'
>> xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
>> xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.3.xsd'>
>>    <head>
>>      <meta name='title' content='NodeIndex.x3d'/>
>>    </head>
>>    <Scene>
>>      <Anchor/>
>>      <Appearance/>
>>      <Arc2D/>
>>      <ArcClose2D/>
>>      <AudioClip/>
>>      <Background/>
>>      <BallJoint
>>          forceOutput=''/>
>>      <Billboard/>
>>      <BooleanFilter/>
>>      <BooleanSequencer/>
>>      <BooleanToggle/>
>>      <BooleanTrigger/>
>>      <BoundedPhysicsModel/>
>>      <Box/>
>>      <CADAssembly/>
>>      <CADFace/>
>>      <CADLayer/>
>>      <CADPart/>
>>      <Circle2D/>
>>      <ClipPlane/>
>>      <CollidableOffset/>
>>      <CollidableShape/>
>>      <Collision/>
>>      <CollisionCollection
>>          appliedParameters=''/>
>>      <CollisionSensor/>
>>      <CollisionSpace/>
>>      <Color/>
>>      <ColorDamper/>
>>      <ColorInterpolator/>
>>      <ColorRGBA/>
>>      <ComposedCubeMapTexture/>
>>      <ComposedShader/>
>>      <ComposedTexture3D/>
>>      <Cone/>
>>      <ConeEmitter/>
>>      <Contact
>>          appliedParameters=''/>
>>      <Contour2D/>
>>      <ContourPolyline2D/>
>>      <Coordinate/>
>>      <CoordinateDamper/>
>>      <CoordinateDouble/>
>>      <CoordinateInterpolator/>
>>      <CoordinateInterpolator2D/>
>>      <Cylinder/>
>>      <CylinderSensor/>
>>      <DISEntityManager
>>          applicationID='0'/>
>>      <DISEntityTypeMapping/>
>>      <DirectionalLight
>>          global='false'/>
>>      <Disk2D/>
>>      <DoubleAxisHingeJoint
>>          forceOutput=''
>>          anchorPoint='0 1 0'
>>          axis1='0 1 0'
>>          axis2='0 1 0'/>
>>      <EaseInEaseOut/>
>>      <ElevationGrid
>>          xDimension='2'
>>          zDimension='2'
>>          height='0, 0, 0, 0'/>
>>      <EspduTransform
>>          applicationID='0'
>>          eventApplicationID='0'
>>          munitionApplicationID='0'/>
>>      <ExplosionEmitter/>
>>      <Extrusion/>
>>      <FillProperties/>
>>      <FloatVertexAttribute/>
>>      <Fog/>
>>      <FogCoordinate/>
>>      <FontStyle/>
>>      <GeneratedCubeMapTexture/>
>>      <GeoCoordinate/>
>>      <GeoElevationGrid
>>          xDimension='2'
>>          zDimension='2'
>>          height='0, 0, 0, 0'/>
>>      <GeoLOD/>
>>      <GeoLocation/>
>>      <GeoMetadata/>
>>      <GeoOrigin/>
>>      <GeoPositionInterpolator/>
>>      <GeoProximitySensor/>
>>      <GeoTouchSensor/>
>>      <GeoTransform/>
>>      <GeoViewpoint/>
>>      <ForcePhysicsModel/>
>>      <Group/>
>>      <HAnimDisplacer/>
>>      <HAnimHumanoid/>
>>      <HAnimJoint
>>          stiffness='1, 1, 1'/>
>>      <HAnimSegment/>
>>      <HAnimSite/>
>>      <ImageCubeMapTexture/>
>>      <ImageTexture/>
>>      <ImageTexture3D/>
>>      <IndexedFaceSet/>
>>      <IndexedLineSet/>
>>      <IndexedQuadSet/>
>>      <IndexedTriangleFanSet/>
>>      <IndexedTriangleSet/>
>>      <IndexedTriangleStripSet/>
>>      <Inline/>
>>      <IntegerSequencer/>
>>      <IntegerTrigger/>
>>      <KeySensor/>
>>      <LOD/>
>>      <Layer/>
>>      <LayerSet/>
>>      <Layout
>>          size='1'/>
>>      <LayoutGroup/>
>>      <LayoutLayer/>
>>      <LinePickSensor
>>          objectType=''/>
>>      <LineProperties/>
>>      <LineSet/>
>>      <LoadSensor/>
>>      <LocalFog/>
>>      <Material/>
>>      <Matrix3VertexAttribute/>
>>      <Matrix4VertexAttribute/>
>>      <MetadataBoolean/>
>>      <MetadataDouble/>
>>      <MetadataFloat/>
>>      <MetadataInteger/>
>>      <MetadataSet/>
>>      <MetadataString/>
>>      <MotorJoint
>>          forceOutput=''/>
>>      <MovieTexture/>
>>      <MultiTexture/>
>>      <MultiTextureCoordinate/>
>>      <MultiTextureTransform/>
>>      <NavigationInfo/>
>>      <Normal/>
>>      <NormalInterpolator/>
>>      <NurbsCurve/>
>>      <NurbsCurve2D/>
>>      <NurbsOrientationInterpolator/>
>>      <NurbsPatchSurface/>
>>      <NurbsPositionInterpolator/>
>>      <NurbsSet/>
>>      <NurbsSurfaceInterpolator/>
>>      <NurbsSweptSurface/>
>>      <NurbsSwungSurface/>
>>      <NurbsTextureCoordinate/>
>>      <NurbsTrimmedSurface/>
>>      <OrientationChaser/>
>>      <OrientationDamper/>
>>      <OrientationInterpolator/>
>>      <OrthoViewpoint/>
>>      <PackagedShader/>
>>      <ParticleSystem/>
>>      <PickableGroup
>>          objectType=''/>
>>      <PixelTexture/>
>>      <PixelTexture3D/>
>>      <PlaneSensor/>
>>      <PointEmitter/>
>>      <PointLight/>
>>      <PointPickSensor
>>          objectType=''/>
>>      <PointSet/>
>>      <Polyline2D/>
>>      <PolylineEmitter/>
>>      <Polypoint2D/>
>>      <PositionChaser/>
>>      <PositionChaser2D/>
>>      <PositionDamper/>
>>      <PositionDamper2D/>
>>      <PositionInterpolator/>
>>      <PositionInterpolator2D/>
>>      <PrimitivePickSensor
>>          objectType=''/>
>>      <ProgramShader/>
>>      <ProximitySensor/>
>>      <QuadSet/>
>>      <ReceiverPdu
>>          applicationID='0'
>>          transmitterApplicationID='0'/>
>>      <Rectangle2D/>
>>      <RigidBody
>>          finiteRotationAxis='0 1 0'/>
>>      <RigidBodyCollection/>
>>      <ScalarChaser/>
>>      <ScalarInterpolator/>
>>      <ScreenFontStyle
>>          pointSize='1'/>
>>      <ScreenGroup/>
>>      <Script/>
>>      <ShaderPart/>
>>      <ShaderProgram/>
>>      <Shape/>
>>      <SignalPdu
>>          applicationID='0'/>
>>      <SingleAxisHingeJoint
>>          forceOutput=''/>
>>      <SliderJoint
>>          forceOutput=''/>
>>      <Sound/>
>>      <Sphere/>
>>      <SphereSensor/>
>>      <SplinePositionInterpolator/>
>>      <SplinePositionInterpolator2D/>
>>      <SplineScalarInterpolator/>
>>      <SpotLight/>
>>      <SquadOrientationInterpolator/>
>>      <StaticGroup/>
>>      <StringSensor/>
>>      <SurfaceEmitter/>
>>      <Switch/>
>>      <TexCoordDamper2D/>
>>      <Text/>
>>      <TextureBackground/>
>>      <TextureCoordinate/>
>>      <TextureCoordinate3D/>
>>      <TextureCoordinate4D/>
>>      <TextureCoordinateGenerator/>
>>      <TextureProperties/>
>>      <TextureTransform/>
>>      <TextureTransform3D/>
>>      <TextureTransformMatrix3D/>
>>      <TimeSensor/>
>>      <TimeTrigger/>
>>      <TouchSensor/>
>>      <Transform/>
>>      <TransformSensor/>
>>      <TransmitterPdu
>>          applicationID='0'/>
>>      <TriangleFanSet/>
>>      <TriangleSet/>
>>      <TriangleSet2D/>
>>      <TriangleStripSet/>
>>      <TwoSidedMaterial/>
>>      <UniversalJoint
>>          forceOutput=''/>
>>      <Viewpoint/>
>>      <ViewpointGroup/>
>>      <Viewport/>
>>      <VisibilitySensor/>
>>      <VolumeEmitter/>
>>      <VolumePickSensor
>>          objectType=''/>
>>      <WindPhysicsModel
>>          direction='1 0 0'/>
>>      <WorldInfo/>
>>    </Scene>
>> </X3D>
>>
>>
>
>
> all the best, Don
> --
> Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org



More information about the x3d-public mailing list