create3000 / x_ite

X_ITE X3D Browser, view and manipulate X3D and VRML scenes in HTML.
https://create3000.github.io/x_ite/
Other
67 stars 15 forks source link

x_ite-8.3.3 Canot support X3D node Rectangle2D ? #131

Closed cgdog1970 closed 1 year ago

cgdog1970 commented 1 year ago

Transform {translation 0 0 -1.2 children [ Shape { appearance Appearance {texture ImageTexture {url "ancient-earth.jpg"}} geometry Rectangle2D {size 8 4 } }]} Viewpoint {position 0 0 5} NavigationInfo {type "EXAMINE"}

source code as above,x_ite-8.3.3 Canot support X3D node Rectangle2D ? but x_ite-7.0.0 are right。below is issue report 。

Parser error at line 9:24 in 'http://localhost/w/proto/Appearance2/test2.wrl'

        geometry Rectangle2D {size 8 4 }
                   ^

Unknown node type or proto 'Rectangle2D', you probably have insufficient component/profile statements.

jamesleesaunders commented 1 year ago

I has a similar issue, This may be a similar to https://github.com/create3000/x_ite/issues/125 As of v8+ you may need to specify you want to use this component in the head.

  <head>
    <component name='Rectangle2D' level='1'/>
  </head>

??maybe?

Or increase the profile in the x3d tag:

<X3D profile='Interactive' version='4.0'>
change to ...
<X3D profile='Full' version='4.0'>

Profile 'Full' should support Geometry2D https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/fullProfile.html#t-ComponentsAndLevels

Profile 'Interactive' does not: https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/interactive.html#t-ComponentsAndLevels

I think this is because by default X_ITE does not load all components now to reduce size/traffic.

I could be wrong but maybe this helps...

create3000 commented 1 year ago

Nodes are grouped in components and components are grouped in profiles. You can look here https://create3000.github.io/x_ite/supported-nodes to see to which component a node belongs. If you use a node you must ensure that you have proper component and profile statements. For VRML syntax it would be

#X3D V4.0 utf8

PROFILE Interchange

COMPONENT Geometry2D : 2

Good profiles are 'Interchange', 'Interactive' and 'Immersive' they include a lot of components. See https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/profileIndex.html. If you don't care for traffic you can use profile 'Full'.

create3000 commented 1 year ago

When using the VRML syntax it is important to provide a proper header statement with version other than 2.0 (first VRML version). Current X3D version is 4.0, which includes all nodes. If you set the version to 2.0 then only the components needed for running VRML2.0 are loaded (automatically).

#X3D V4.0 utf8

If you omit a profile statement profile 'Full' is assumed (or VRML2.0 as mentioned above).

cgdog1970 commented 1 year ago

thanks very much create3000 and jamesleesaunders,i understand。to use VRML format in x_ite-8.3.0 “#X3D V4.0 utf8” must on file head。