yichen2017 / osgmodeling Goto Github PK
View Code? Open in Web Editor NEWThis project forked from smcclosk/osgmodeling
Automatically exported from code.google.com/p/osgmodeling
License: Other
This project forked from smcclosk/osgmodeling
Automatically exported from code.google.com/p/osgmodeling
License: Other
osgModeling is a open source modeling library for OpenSceneGraph(OSG). Its purpose is to help generate kinds of parametric curves and surfaces, and calculate vertices, normals and texture coordnates automatically. For up-to-date information and latest versions of the project, please visit: http://code.google.com/p/osgmodeling/ For in-depth details of OpenSceneGraph, please visit its website: http://www.openscenegraph.org =============================== Requirements: =============================== - OpenSceneGraph: version 2.6.0 or higher =============================== Features: =============================== - Support for 4 kinds of curves: * k-degree Bezier curves. * k-degree NURBS curves. * Helix (3-dimensional spiral curves resembling a spring). * And user customized curves. - Support for 6 kinds of surfaces: * m,n-degree Bezier surfaces. * m,n-degree NURBS surfaces. * Extrusions (constructed by a profile extruded along a path). * Revolutions (constructed by a profile rotated specified angles). * Lofts (constructed by lofting a series of curves that define the cross section on a specified path). * And user customized models. - Generate normal arrays and texture coordinate arrays for various models (except user customizations). * Support 6 methods to generate normals with different weights. * 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. * Loop method: Split each face into 4 parts at every level to build subdivisions. * 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. =============================== How to build: =============================== The osgModeling uses the CMake build system to generate a platform-specific build environment. If you don't have CMake version 2.4.6 or later installed, you may download it from: http://www.cmake.org Under unices, type the following commands: ./configure make sudo make install Under Windows, just use the CMake GUI tool to build Visual Studio solutions. =============================== Libraries and examples: =============================== There are 1 or 2 dynamic library file after installation: - {libosgModeling.so | osgModeling.dll}: The library. - {libosgdb_osgmodeling.so | osgdb_osgmodeling.dll}: The reader/writer plugin. There are 5 executable files as examples: - osgmodelingbasic.exe: Demonstrates how to build extrusions, revolutions and lofts with osgModeling classes (Extrude, Lathe, Loft, Helix and so on). - osgmodelingboolean.exe: Demonstrates how to create a boolean object from two specified models. - osgmodelingbsptree.exe: Demonstrates how to build BSP trees for models. - osgmodelingnurbs.exe: Demonstrates how to create Bezier and NURBS surfaces with osgModeling classes. - osgmodelingsubd.exe: Demonstrates how to subdivide models using different levels and methods (Loop or Sqrt3). =============================== Bibliography: =============================== [1] Philip Schneider, David H. Eberly, Geometric Tools for Computer Graphics, Elsevier Science, 2002 [2] Tomas Akenine-Moller, Eric Haines, Real-Time Rendering, A.K.Peters, 2002 [3] Piegl, Tiller, The NURBS Book, Springer, 1997 [4] Denis Zorin, Peter Schroder, Subdivision for Modeling and Animation, SIGGRAPH 2000 Course Notes, 2000 [5] Charles T. Loop, Smooth Subdivision Surfaces Based on Triangles, Utah University, 1987 [6] Leif Kobbelt, Sqrt3-Subdivision, Max-Planck Institute for Computer Sciences, 2000 [7] Shuangshuang Jin, Robert R. Lewis, David West, "A Comparison of Algorithms for Vertex Normal Computation", Washington State University, 2003
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.