ROL

ROL is Recursive Object Library. It implements 3D modeling with recursive object definitions (RODs). RODs allow user to define an object in the virtual world as a primitive approximation and a collection of member objects, each of which is in turn defined using RODs. Rendering of an object depends on the desired precision. Member objects get rendered when the required precision is high while the approximation is displayed when the precision is low. This approach can be used to model features of a virtual world with arbitrary precision and enables dynamic level of detail in interactive applications. It is particularly effective for fractal and partially self-similar structures. It is also well suited for collision detection.

ROL demo screenshots

Documents

latest thesis draft - HTML
small intro article - PDF

Download:

rol_demo_0.07.tgz
rol_demo_0.05.tgz
rol_demo_0.03.tgz
rol_demo_0.01.tgz
  To use the demo, compile and install the sources with "make install" and
then run "./rol_demo".
  It is recommended that you run the demos with hardware acceleration.
If you use Mesa, type: "export MESA_GLX_FX=fullscreen" to enable
hardware acceleration.

rol_demo


  This demo allows one to fly through a map with some RDOs: stone blocks
 and plants and fight a small battle.  Close approach to the objects should
 reveal a high level of detail.  An enemy will pursue the viewer and attack.

  Controls:

    A - increase speed
    Z - decrease speed
    arrow keys - rotate
    esc - quit

    V - Toggle drawing the viewer
    p - Toggle printing the viewer configuration
    
    q,w - slide camera on x-axis relative to the viewer
    e,r - slide camera on y-axis relative to the viewer
    t,y - slide camera on z-axis relative to the viewer

    s,d - rotate the camera around x-axis relative to the viewer
    f,g - rotate the camera around y-axis relative to the viewer
    h,j - rotate the camera around z-axis relative to the viewer
    c - align camera with the viewer

    1, 2, 3 - fire weapons

utilities

  A number of utilities are included with the library.  They can be used to
view RODs and primitive objects. Sets and primitive objects are contained in
the data subdirectory, while utilities are contained in the bin subdirectory.
Possible commands are:

  ./bin/view_set data/rol_set/map1.set
  ./bin/view_set data/rol_set/rect_pyr_pink_twist.set
  ./bin/view_dynamic_tex_mesh data/rol_dynamic_tex_mesh/devils_tower.dyn.tex.mesh

  Some utilities and data are work in progress and may be unstable.

CHANGELOG

Copyright: Grigori Kapoustin
Distributed under the GPL