[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