VTP Implementation - Other Potential Libraries
- it may make sense to build on many more libraries in the future, but they
should be portable and at least free for non-commercial use, if not more open
Anti-aliased rendering
- Anti-Grain Geometry (AGG)
- free license, portable, high-quality anti-aliasing
- Cairo: A Vector Graphics Library
- possible alternative to AGG for rendering anti-aliased polygons?
- Malte Clasen blog post says:
"If you just need vector graphics, use Cairo. If you need them fast and if you
are willing to trade a high level interface and a good documentation for speed,
go for Anti-Grain. Btw, I didn’t notice any difference in quality on the first
sight, both produce very good looking images."
Image convolution
- ImageMagick
- a huge amount of image functionality, reportedly including image convolution,
which might free us from BExtractor's dependency on IPL
Reading ZIP files
- Info-ZIP's UnZip
- totally portable, license freer than LGPL
- tried to use it; unfortunately had great trouble getting it to build
- Minizip (Zip/UnZip)
from Gilles Vollant
- looks nice, but it's also already built into wxWindows, so it may make
more sense just to use that one
Generating contours from a grid
Polygon triangulation
Other
- libjpeg-turbo
- Claims to be 2-4x as fast as the regular libjpeg. If JPEG
read/write speed ever proves to be a bottleneck, this is worth
investigating.
- GEOS
- a C++ port of the
Java Topology Suite
(JTS)
- includes all the OpenGIS "Simple Features for SQL" spatial predicate
functions and spatial operators
- the license "hasn't been decided yet" - likely GPL or LGPL
- GPS3D
- a set of 100% free open-source utilities to access a GPS device from
a Linux/Win32 box
- "Tested with a Magellan GPS 315, and has never been tested with any
other GPS devices out there. If you own a Garmin, you can either get it
to spit NMEA compatible stuff, or change the code to handle it."
- VRPN - Virtual Reality Peripheral
Network
- a sort-of industry standard for virtual reality hardware support, including
a wide variety of trackers
- OSSIM - Open Source
Software Image Map
- a Remote Sensing/Image Processing/GIS package
- portable, and powerful, but quite huge - it would be a giant dependency
to add, and it duplicates a great deal of what is already available in the
VTP and existing dependencies, e.g. GDAL
- SDL - the Simple DirectMedia Layer
- provides portable audio, video, events, threads, kb & mouse i/o, CDROM
access, and reportedly works well with OpenGL
- the VTP distro now includes an example (sdlSimple) of how SDL works
together nicely with vtlib
- MAM/VRS
- two open-source APIs (high-level/low-level) for building 3D visualization
applications
- reads formats: 3DS, BMP, JPEG, PNG, PPM, SGI
- SEDRIS Coordinate System API
- SEDRIS is the Synthetic Environment Data Repository and Interchange
Specification
- currently used by the SRI digital earth group
- might be faster or more robust than the other other options, i.e. GCTPC
and PROJ.4
- XFrogLib - a library for constructing geometry from
xfrog plant
descriptions
- cal3d
- a skeletal based 3D character animation library, C++, portable
- could be used by vtlib for articulated people/animals
- CWXML
- fast reader and writer for XML and GML, including BXML (binary XML)
- Carworld
Libraries Evaluated, but not used:
- CDBFile
- GPL C++ library for reading DBF files, an important part of ESRI Shape
files
- available from numerous locations e.g.
cdbfile.zip at the Simtel archive
- fortunately, doesn't seem to be needed, since other libraries like
Shapelib which read Shape files,
also provide support for the DBF files
- QT - portable GUI library
- looked into as replacement for wxWidgets/MFC in the VTP apps, but it
does not support free software under Win32 - the free version for non-commercial
use is only for Linux
- PLIB - Steve's Portable Game
Library
- provides GUI widgets, sound, matrix/vector math, and the simple scene
graph library (SSG)
- unfortunately, despite a great deal of time spent attempting to port
vtlib to SSG, it did not produce a usable port, and the author has been
too busy to provide support
-
CrystalSpace,
Open Inventor
- other open-source portable 3D APIs
- CS was too large and complex to be a layer under vtlib, preventing a
modular library design
- Open Inventor did not support Win32
- squish - DXT Compression
Library
- tried version 1.2, with MSVC7.1. Many problems were encountered.
Build warnings were flagged as errors. Using kColourClusterFit resulted
in some textures taking forever to compress, debugger shows buggy values
inside the library. Using kColourRangeFit, debugger reports stack
corruption.
- Eventually got it compiled, and it remains an optional library
Time in seconds to compress a tileset:
|
Hawaii2k/4x4/512/3 |
Oahu/9x9/512/3 |
OpenGL: |
2.0 |
10.3 |
Squish fast: |
2.9 |
19.9 |
Squish slow: |
17.0 |
124.2 |