J3D-VRML97 Java 3D Loader
Official Project Home: https://j3d-vrml97.dev.java.net/
Summary: Java 3D loader module for loading VRML geometry. This version has a number of bug fixes and improvements compared with the version on the java.net website.
Download latest HVRC-modified version: j3d-vrml97-10-01-26.zip
Michael Louka, Svein Tore Edvardsen and Tom-Robert Bryntesen at IFE HVRC have added the following improvements to the "official" version on the java.net website:
* Supports mip-map generation (use boolean property: org.jdesktop.j3d.loaders.vrml97.mipmap) * Fixed gzip detection * Improvemed memory handling and performance when loading large files * Texture modulation option (use boolean property: org.jdesktop.j3d.loaders.vrml97.modulate) * Improved URL-handling * Fixed loading of inline files using relative paths (use boolean property: org.jdesktop.j3d.loaders.vrml97.inline.relativebase) * Imageio for texture loading * Improved handling of TextureTransform * Texture generation was performed on shapes with texture coordinates * Copes with IndexedFaceSets with empty list of points * Copes with situations where a face is defined with less than three vertices * Correctly handles non-convex polygons * CLAMP_TO_EDGE rather than CLAMP when clamping textures * Texture file caching to speed up loading of files with multiple references to the same texture file * Fixed a bug in CylinderSensor where exposed field objects were not constructed before initial values were set * Fixed a problem where a ROUTE encountered by the parser could lead to an exception if it refers to a node later in the file that has not yet been loaded * Fixed a bug in PlaneSensor where exposed field objects were not constructed before initial values were set * Fixed a bug in PlaneSensor and CylinderSensor where event out field objects were not constructed (CylinderSensor) or were not constructed before initial values were set * Fixed NullPointerException bug in Appearance node related to texgen attributes * Fixed a bug in the Sound node implementation where one of the fields was not always initialised, leading to a NullPointerException when loading VRML files containing Sound nodes * Corrected an unhandled potential null pointer situation in the Script node's clone method, which prevented some models from loading at all * Corrected an issue with unitialised fields in the VisibilitySensor node implementation * Corrected handling of "ccw FALSE" as only the coordinate indexes of IndexedFaceSets were being correctly flipped, causing significant issues with the display of textures for modes with ccw set to false * Corrected texture coordinate generation in the Appearance node implementation so that it is spec compliant. * Modified Inline node to attempt to load the data with the case of the file extension reversed, if the file requested does not exist. This is a hack to workaround an issue where case-insensitive file system users have copied files resulting in the case (as specified in the file referencing the inline) changing from .wrl to .WRL * Fixed setting of description in Scene from the WorldInfo node in a VRML file (if one exists) * Modified AudioClip implementation to allow VRML model to continueto load even if no valid audio data could be found for one or more clips. Previously a model would fail to load at all if a referenced audio file was missing or unreadable * Modified Cylinder node to enable it to be serialised via scenegraphio * Added support for non-powers-of-two textures via property: org.jdesktop.j3d.loaders.vrml97.nonpowtwo * Modified mipmap generation to use hardware support if available * Fixed parser to tacke VisibilitySensor definition * Corrected instancing of PROTOs so that the instance has the type of the base node in the PROTO if there is just one base node and not type Group regardless * Modified routine for reading from URL in Inline to cope with MFString values * Added workaround (hack to cope) for cases when ILS Strip vertex count is less than 2 * Optimised memory usage for textures * Optimised texture loading * Corrected a spec-compliancy bug where IndexedLineSet and PointSet without vertex colours didn t use the materials emissiveColor * Added support for accessing ROUTE information even when in LOAD_STATIC mode * Adjusted TimeSensor, TouchSensor, DragSensor, and Field to enable implementation of sensor behaviour in Java 3D
last updated: 26 January 2010 (Michael.Louka@hrp.no)