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.
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.
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
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.