A place to Bee

„A place to Bee“ is a non-interactive 3d demo, implemented in Java using JOGL, the Jave OpenGL bindings. It’s initial purpose was to prove that Java can be used for high quality real time rendering. Most of the public JOGL examples are plain ugly, so we set out to create something more beautiful.

Actually, the project consists of two parts: .10gine, a custom-built 3d engine and the actual „a place to bee“ application which adds specific content and animation into the engine.

Features

The main features of .10gine are

  • landscape generation from heightmaps
  • import of static and animated objects from VRML files
  • real time generation of trees with dynamic level of detail (500 to 100.000 polygons)
  • semi-real-time slicing of those trees and other geometry into low poly proxies (4 to 60 polygons)
  • built-in keyframe animation editor
  • optimization of arbritary (even animated) geomety (and compositions of multiple geometries) into display lists and vertex buffer objects
  • real time depth map shadows (currently disabled)
  • frustum culling based on bounding-boxes and bounding-spheres

These are used by „a place to bee“ do create a green valley with trees, rocks and flowers. The camera floats arround, and eventually frames and follows a bee, who is busily flying from blossom to blossom and finally into its hive.

My contributions

  • general conception
  • software architecture
  • dynamic tree generation
    • hierachical pseudo random number generator
    • graphical tree species editor
  • polygon reduction by different levels of geometry slicing
  • improvement of the mathematical core classes (vectors, matrices, quaternions, geometric and temporal interpolation) which I originally developed for the HDR Viewer and Voyager projects

Other resources

  • partial documentation (only my contributions)
  • Project .10gine++, an unfinished C++ port of the engine used in „a place to bee“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.