These notes are intended as general guidelines for optimising Synthetic Environments. The specific process of optimisation varies considerably depending on your preference of 3D modelling tools or CAD data source.
Reduce the polygon count
Use either the in-built polygon reduction tools of your favourite 3D application,
or use a utility like Lodestar, Raindrop Geomagic Decimate or Rational
Reducer. (3D Studio MAX has a modifier called Optimise and Rhino allows
you to preview and adjust the number of polygons before exporting NURBS surfaces
to VRML).
Reduce detail
Especially in curved surfaces. If even a basic structure has 10 cylindrical
columns, each with 24 sides, a top and a bottom that equates to roughly 1000
polygons just for these few columns! For example, if the columns extend from
floor to ceiling then the top and bottom caps could be removed altogether, reducing
the polygon count by half.
Build only what will be seen
For example, if an external view only is required structures such as floors,
inner wall linings and room subdivisions can be left out. If the interior is
required it should ideally be exported as a separate model (in this way we can
switch between interior and exterior based on the location of the user). Think
of the "Old West" movie sets where building facades only are used.
The same principle applies in the creation of Synthetic Environments.
Modularity
Export as separate objects, although some objects can and should be grouped
together by like material and/or similar geometry. This simplifies the further
dissection of the VRML model and the application of textures and materials.
Scale
The entire model needs to be scaled relative to the user (avatar) to allow accurate
navigation. Many CAD and architectural packages export in millimetres whereas
VRML uses metres so models may need to scaled down by a factor of 1000!
Position
The model should be placed at the world centre for easy import into a larger
scene.
Polygon Reduction (see also Rational
Reducer)
Delete unnecessary detail. Exchange complex geometry (meshes) for VRML primitive
objects. Use the Crease Angle slider to give the illusion of a smooth shaded
surface rather than faceted look.
Filesize Reduction
Exchange complex geometry for VRML Primitives (cones, spheres, cylinders,
boxes and text). Examine the model for similar complex geometry and create Clones
where applicable. Clones share the same geometry and material characteristics
but can be scaled and moved independently (eg. clone the wheels of a car, the
columns and balustrades of a building etc).
Optimisation
Create Levels of Detail (LODs) to improve performance eg. Columns can change
to rectangular boxes at a distance. Divide the model into smaller localised
groups of objects (however this may increase the overall polygon count). A good
balance between polygon count and efficient scene optimisation is required.
Also turning collision detection off or creating Collision Proxies for
complex geometry will accelerate real-time rendering.
Materials and Texturing (see also About
Textures)
Add small textures to selected areas for realism. Avoid the temptation to texture
everything! Use a combination of textures, materials, lighting (and colour-per-vertex
if available in your authoring application).
Restructure the scene graph