Vorlon 1.5 Release Notes
What's new in this release
Bug fixes and performance enhancements. Bugs are now recorded as
Chisel bugs, since Chisel includes Vorlon. These bugs are not
tracked separately. See Chisel bug fix list
for details.
New in Version 1.5
A new flag: -graph to show scene graph. A new flag:
-nurbs allows Vorlon to support blaxxun nurbs proposal. Added
h-anim specification version 1.1 support. Fixed PROTO nesting
non-conformance bug, which detected nesting by PROTO
instantiation rather than PROTO definition. Fixed self-reference
node bug, which reported the common case of scripts contained in
grouping nodes referring to their parent as an error.
New in Version 1.2
A new error category, flagged with keyword "Nonconformance",
warns against base profile nonconformance, as specified in the
VRML 97 specification Table 7-1. Vorlon performs a large number
of conformance tests, listed
here.
More complete checks for IndexedFaceSets, IndexedLineSets,
ElevationGrids, Extrusions
In addition, some specific problems with the previous release
were fixed (see Bugs fixed for full
list).
Checks performed by Vorlon
Data type checks
ROUTEs |
verifies source and destination types are same |
PROTOs |
verifies IS types are same |
Node fields |
verifies node fields contain correct type of node or
PROTO |
|
Node specific checks
Interpolators |
verifies increasing key values, verifies ratio of key to
keyValue entries |
IndexedFaceSet |
verifies faces have at least 3 edges, verifies correct
relationship between coord/coordIndex, texCoord/texCoordIndex,
colorPerVertex/color/colorIndex,
normalPerVertex/normal/normalIndex. Warning if extra values are
present that are ignored, error if not enough values present.
Warning if there are no faces, warning for each unused
coordinate, texture coordinate, color, normal Nonconformance if
there are more than 10 sides to a face. |
ElevationGrid |
verifies at least xDimension, zDimension at least 2 |
Extrusion |
verifies base profile conformance, crossSection*spine <
2500 |
Background |
verifies at least 2 colors, at least 1 angle, and 1 more
color than angle for skyColor and groundColor |
LOD |
verifies range values increasing, at least two nodes in LOD,
1 more node than range value |
|
Errors, Warnings,
Nonconformances
The following table lists the messages reported by Vorlon.
There are three categories of messages: Nonconformance, Warning
or Error. The category name is always the first word in the
message.
- An Error is an illegal VRML statement.
- A Warning is a legal but dangerous or unnecessary VRML
statement.
- A Nonconformance is a value that is outside the range
recommended by Table 7-1 of the VRML 97 specification. The
conformance tests performed by Vorlon are listed here.
Vorlon Output
Checks this information |
If incorrect reports(2.) |
Table 7-1 base profile conformance(1.) |
Nonconformance |
Node & PROTO type checks(4.) |
Error |
Node & field name spelling(5.) |
Error |
VRML header |
Error |
ROUTE nodes/fields |
Error |
Field values(6.) |
Error, Warning |
IS <field> spelling(7.) |
Error |
IS/ROUTE type checks(8.,8.) |
Error |
Interpolator key/keyValue(10.) |
Error |
IndexedFaceSet numerous checks(11.) |
Error |
Duplicate DEFs |
Warning |
Duplicate PROTOs |
Warning |
Default field values used |
Warning |
Notes
- Table 7-1 conformance: You
can check specifically for base profile conformance with the
-conformance command line flag. All base profile messages are
flagged with the keyword "Nonconformance".
- Limiting output: You can
disable warnings with the -nowarning command line flag.
You can disable both warnings and errors with the
-conformance command line flag.
- Checking nested url
references: You can add nested url checking with the
-url command line flag. Whenever a field or statement refers
to a URL, Vorlon will automatically check for the existence of
these files, both locally and remotely. If the URL is a local
reference (i.e. just the file name or path name as opposed to a
complete URL) to another VRML file (as opposed to a texture map,
script, etc.), Vorlon will add this file to the queue of files to
be processed. Files may be nested to any level.
- Node and PROTO type checks:
Some SFNode fields are limited to nodes of specific types. For
example, the "geometry" field of a Shape node is limited to
geometry nodes like Box, Cone, etc. Vorlon is aware of 12 basic
node data types: appearance, color, coordinate, fontstyle,
geometry, material, normal, sound source, texture, texture
coordinate, texture transform, and grouping nodes. PROTOs are
also type checked using these node types, with the first node in
the PROTO determining its node data type. These checks only
occur on fields that require a specific node data type.
- Field name spelling:
Both built in nodes and PROTOs have a set of field names. When
these are used, the names are validated against the actual set
allowed.
- field value checks:
Vorlon verifies that int, color, boolean, and float fields are
valid. Repeated field declarations are flagged with a
warning.
- IS field spelling:
Fields passed into PROTOs can be mapped into other fields within
the PROTO using IS. The name of the PROTO field (on the
right of IS) is checked against the PROTO parameter fields.
- IS type checks: PROTO
fields are referenced within the PROTO with the "IS"
statement. Vorlon checks that the fields on both sides of the
"IS" are of the same type. PROTO fields that are not referenced
by the "IS" statement are flagged with a warning.
- ROUTE type checks:
Vorlon verifies that the source and destination fields of a ROUTE
are of the same type.
- Interpolator checks:
verifies key fields are non-decreasing, verifies there are the
correct number of keyValue fields
- IndexedFaceSet checks: reports
warnings for unused coordinates, texture coordinates, normals,
colors. Reports warning for no faces, extra texCoordIndex,
normalIndex, colorIndex values. Reports errors for not enough
texCoord/texCoordIndex, normal/normalIndex, color/colorIndex
values. Reports errors for texCoordIndex/normalIndex/colorIndex
out of synch with coordIndex, reports exact location of out of
synch condition. Validates coordIndex values.
- right bracket/brace: notes location of missing right
brackets/braces
Node Level Type Checks
The following tabele lists all the Node level type checks
performed by Vorlon. In the VRML 2.0 specification, some fields
must be of a particular type. The following is a complete list
of these types, and what fields only accept each type.
In addition to nodes listed in the "Nodes of this type"
column, PROTO's in which that type is the first node also pass
the type check.
Node Type |
Nodes of this type |
Fields accepting this type |
Appearance |
Appearance |
Shape.appearance |
Color |
Color |
ElevationGrid.color, IndexedFaceSet.color,
IndexedLineSet.color, PointSet.color |
Coordinate |
Coordinate |
IndexedFaceSet.coord, IndexedLineSet.coord,
PointSet.coord |
FontStyle |
FontStyle |
Text.fontStyle |
Geometry |
Box, Cone, Cylinder, ElevationGrid, Extrusion,
IndexedFaceSet, IndexedLineSet, PointSet, Sphere, Text |
Shape.geometry |
Material |
Material |
Appearance.material |
Normal |
Normal |
ElevationGrid.normal, IndexedFaceSet.normal |
SoundSource |
AudioClip, MovieTexture |
Sound.source |
Texture |
ImageTexture, MovieTexture, PixelTexture |
Appearance.texture |
TextureCoordinate |
TextureCoordinate |
ElevationGrid.texCoord, IndexedFaceSet.texCoord |
TextureTransform |
TextureTransform |
Appearance.textureTransform |
Grouping |
Anchor, Billboard, Collision, Group, Transform |
Collision.proxy |
Known Bugs in Version 1.12
- url with a forward reference to a Viewpoint is flagged as
unknown DEF.
- Empty interpolators should be reported as a warning rather
than an error
- Polygon count wrong in some cases where polygons contained in
PROTOS.
- "set_xxxxxx" eventIn flagged as errors when used in PROTOs,
e.g. "set_rotation IS set_rotation" used in a Transform inside a
PROTO that declares a set_rotation eventIn, reported as an error
that Transform has no field named "set_rotation".
- ROUTEing an eventOut to a Field is not reported as an
error.
- Cannot handle file names with space characters.
- PROTO declaration (not instance) in "children" field not
reported as an error, instead PROTO not available in Vorlon
checks (i.e. not included in PROTOs available to the scene)
- urls that are passed as parameters to PROTO are not checked
when "-url" flag is used.
- Quotes around DEF names not reported as an error
See the
chisel buglist.
Version 1.1 Bugs Fixed in Version 1.12
- Flag not handled correctly if specified before filename
- IndexedFaceSet point field with default value in PROTO
interface not handled correctly.
- Exceptions occur and Vorlon stops processing when running
Java 1.0.2 and using "-url" flag and a GZIP file is
encountered.
- Mistaken check for a file "javascript" when: url [
"javascript: ..." ] used in an Script node contained in an
Inlined file, bug doesn't occur if the [] characters are not part
of the url field.
- Only first default field of each type marked with "Field
value is default" warning, i.e. first: "repeatS TRUE" of a
texture node marked this way, a later "repeatS TRUE" not flagged
with the warning.
- USEing a texCoord that doesn't have enough coordinates is not
flagged as an error. General form of this problem with
IndexedFaceSet texCoord/normal/color &
texCoordIndex/colorPerVertex/colorIndex/normalPerVertex/normalIndex
also fixed -- warnings generated if too many values (browser
getting values that are ignored) -- errors generated if not
enough values or index fields get out of synch with
coordIndex.
- PixelTexture handling inefficient, get OutOfMemory exception
easily, numeric values of texture not checked.
- Flag errors with "Error,..." similar to warning
indications.
- negative and 0 scale values not reported as errors
- Non-digits in coordIndex[] not reported as errors.
- PROTO with no implementation not reported as an error.
- WorldInfo (and other nodes) with an SFString continued on
another line reports error on continuation line.
- Color values using exponent like 6.3e-05 are reported as
errors, detected as not being in range 0 to 1.
- IndexedFaceSet point field with default value in PROTO
interface not handled correctly.
How Vorlon was Tested
- Book CD tests. Vorlon was run on all the "wrl" files
included in four notable VRML 2.0 books: The Annotated VRML
2.0 Reference Manual, VRML 2.0 Sourcebook, Late
Night VRML 2.0, and Teach Yourself VRML 2.0 in 21
days.
- Table 7-1 Base Profile tests. These tests verify the
Table 7-1 checks, flagged by the keyword "Nonconformance". More
information on the test files is available here.
- Feature tests. These tests verify that each of the
features in the "implemented" table actually work as
expected.
- Generated tests. It is very tedious to come up with
all possible type checking tests, so "wrl" files were generated
with every possible legal and illegal node type field assignment,
as well as identical tests using PROTOs.
- Bug Report tests. Thanks to everyone who has reported
bugs, and sent a ".wrl" file! This is a diverse collection of
VRML files with syntax previous versions of Vorlon did not handle
correctly.
- Miscellaneous tests. These are various files we have
collected from a variety of sources.
Back.
Copyright © 1997, 1998 by Trapezium Development
LLC. All rights reserved.