Well it certainly is the most impressive cube i've seen in a while...
Extremely involved.  Lack of appropriate line feeds & tabs makes it
pretty hard to read.

Here is what Vorlon says (best viewed in landscape mode):

D:\>vorlon part3.wrl
Vorlon 97 v1.3
Copyright (c) 1998 by Trapezium Development LLC.  All rights reserved.
Checking 'part3.wrl'
20: translation IS translation rotation IS rotation children IS children } } DEF ROOT 
Group{ children[
                                                                             ^ 
Warning, DEF is not used
21: DEF P0002_0002_z003_P Part{ children[ Shape{ geometry IndexedFaceSet{ coord DEF 
P2_2_z3_L0_CRD Coordinate{ point[
    ^ Warning, DEF is not used
21: DEF P0002_0002_z003_P Part{ children[ Shape{ geometry IndexedFaceSet{ coord DEF 
P2_2_z3_L0_CRD Coordinate{ point[
                                                          ^ Error, coord count 8 does 
not match normal count 6
28: DEF P0002_0002_z001_P Part{ children[ ] }  ] } NavigationInfo{ type 
["EXAMINE","ANY"] headlight TRUE
    ^ Warning, DEF is not used
28: DEF P0002_0002_z001_P Part{ children[ ] }  ] } NavigationInfo{ type 
["EXAMINE","ANY"] headlight TRUE
                                ^ Warning, field value is default
29: avatarSize[0.05,1.6,0.75] } DEF BACKGROUND Background{ skyColor[0 0 0] } 
Viewpoint{ description "IsometricView"
                                ^ Warning, DEF is not used
29: avatarSize[0.05,1.6,0.75] } DEF BACKGROUND Background{ skyColor[0 0 0] } 
Viewpoint{ description "IsometricView"
                                                           ^ Warning, field value is 
default
6 warnings.
1 error found.
12 polygons.

http://www.web3D.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#IndexedFaceSet
says (a few paragraphs down)
> If the normal field is not NULL, it shall contain a Normal node whose normals are 
>applied
> to the vertices or faces of the IndexedFaceSet in a manner exactly equivalent to
> that described above for applying colours to vertices/faces (where normalPerVertex
> corresponds to colorPerVertex and normalIndex corresponds to colorIndex). If the
> normal field is NULL, the browser shall automatically generate normals, using
> creaseAngle to determine if and how normals are smoothed across shared vertices (see
> 4.6.3.5, Crease angle field).

since no normalPerVertex field is provided, default is normalPerVertex TRUE.
So indeed, not having the same number of normals as coordinates appears
noncompliant.

CosmoPlayer did not report any problems.  I suspect it dropped the the normals
silently and recalculated them, or just calculated the missing normals.

This is an approach you could use to fix the autogenerated file.  Chisel did
not volunteer to fix this.  However it did reformat the file on request,
at least making it much easier to read (attached).

[Also tried to see if there was a conformance test in the suite to check
 on my read of the IFS spec.  Unfortunately the NIST server somehow got
 password protected.  CC:ing Mike Kass who can likely fix it or provide an
 alternative address to http://autumn.ncsl.nist.gov/vrml-conf/index.html  TIA]

all the best, Don
--
Don Brutzman  Naval Postgraduate School, Code UW/Br Root 200  work 831.656.2149
              Monterey California 93943-5000 USA              fax  831.656.3679
Virtual worlds/underwater robots/Internet     http://web.nps.navy.mil/~brutzman

part3_2.wrl

Reply via email to