My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads

osgModeling is a open source modeling library for OpenSceneGraph(OSG). Its purpose is to help generate kinds of parametric curves and surfaces, like extrusions, revolutions, lofts, Bezier and NURBS. Another important feature of the library is to help implement multiple polygon technologies. The subdivision of low polygons is supported at present. It also helps construct the binary space partitioning (BSP) trees and do boolean operations (Intersection, Union and Difference) based on the BSP.

New Release

osgModeling 0.1.1 is available on November 17th, 2008. Changes includes:

  • New polygon mesh generator to convert any geometries to vertices-edges-faces list.
  • New subdivision classes to support Loop and Sqrt(3) methods to subdivide polygon meshes.
  • New normal generator to generate normal arrays using different mean weights (MWE, MWA, MWSELR, MWAAT, MWELR, MWRELR).
  • New osgdb_osgmodeling plugin for read/write osgModeling objects in .osg files. Only a framework at present.
  • Support for creating the document and .chm help file based on doxygen.

Features

  • Support for 4 kinds of curves:
    1. k-degree Bezier curves.
    2. k-degree NURBS curves.
    3. Helix (3-dimensional spiral curves resembling a spring).
    4. And user customized curves.
  • Support for 6 kinds of surfaces:
    1. m,n-degree Bezier surfaces.
    2. m,n-degree NURBS surfaces.
    3. Extrusions (constructed by a profile extruded along a path).
    4. Revolutions (constructed by a profile rotated specified angles).
    5. Lofts (constructed by lofting a series of curves that define the cross section on a specified path).
    6. And user customized models.
  • Generate normal arrays and texture coordinate arrays for various models (except user customizations).
    1. Support generating normals with different weights.
    2. Support the normal-flip operation.
  • Free to define customized algorithms to created vertices arrays, normal arrays and texture coordinate arrays for own models.
  • Construct the polygon mesh structures (Vertices-Edges-Faces) for geometries.
  • Subdivide polygon meshes into higher level using different methods.
    1. Loop method: Split each face into 4 parts at every level to build subdivisions.
    2. Sqrt(3) method: Split each face into 3 parts at every level to build subdivisions.
  • Construct the binary space partitioning (BSP) trees for models in built or converted from osg::Geometry.
  • Geometric boolean operations (Intersection, Union and Difference) based on BSP trees of models.

Snapshots

Subdivision of the Stanford Bunny. The original model has 1500 polygons and subdivide to level 2, with Loop (Above) and Sqrt(3) methods.

Subdivision of a chess pawn. Yopu will see the different between Loop (Above) and Sqrt(3) methods (Below and seems a little unnatural at level 1).

Models (pentagrams, bottles, curtains, and what you want) generated by osgModeling::Extrude, Lathe and Loft

The famous OpenGL teapot generated by osgModeling::BezierSurface, a circle by osgModeling::NurbsCurve and an earth model by osgModeling::NurbsSurface

The boolean operation bewteen a box and a sphere (not good mesh at present)

Powered by Google Project Hosting