nuclear@14: 1. INTRODUCTION nuclear@14: =============== nuclear@14: nuclear@14: Welcome to OpenCTM! nuclear@14: nuclear@14: OpenCTM is a file format, a software library and a tool set for compression of nuclear@14: 3D triangle meshes. The geometry is compressed to a fraction of comparable file nuclear@14: formats (3DS, STL, COLLADA, VRML...), and the format is easily accessible nuclear@14: through a simple, portable API. nuclear@14: nuclear@14: The library is written in portable C (C99), and should compile nicely on any nuclear@14: 32/64-bit system regardless of endianity (big endian or little endian). nuclear@14: nuclear@14: nuclear@14: 2. LICENSE nuclear@14: ========== nuclear@14: nuclear@14: The OpenCTM API and the OpenCTM tools are released under the zlib/libpng nuclear@14: license (see LICENSE.txt). nuclear@14: nuclear@14: 3. CREDITS nuclear@14: ========== nuclear@14: nuclear@14: Many people have helped out in the development process of OpenCTM, with nuclear@14: valuable feedback, programming efforts, test models and conceptual ideas. nuclear@14: Also, OpenCTM relies heavily on many other open source projects. nuclear@14: nuclear@14: Here is an incomplete list of persons that deserve credit: nuclear@14: nuclear@14: - Igor Pavlov (LZMA library) nuclear@14: - Jonas Innala (COLLADA importer, Maya exporter plugin) nuclear@14: - Ilian Dinev (help with the OpenCTM file format design and the LWO loader) nuclear@14: - Lee Thomason (TinyXML) nuclear@14: - Diego Nehab (RPly - for loading PLY files) nuclear@14: - Lev Povalahev, Marcelo E. Magallon, Milan Ikits (GLEW) nuclear@14: - Thomas G. Lane, Guido Vollbeding (libjpeg) nuclear@14: - Jean-loup Gailly, Mark Adler (zlib) nuclear@14: - Daniel Karling (pnglite) nuclear@14: nuclear@14: During the development of OpenCTM, the following software has been used nuclear@14: extensively: nuclear@14: nuclear@14: - Ubuntu (www.ubuntu.com) nuclear@14: - Blender (www.blender.org) nuclear@14: - GCC (gcc.gnu.org) nuclear@14: - SciTE (www.scintilla.org/SciTE.html) nuclear@14: - Notepad++ (notepad-plus.sourceforge.net) nuclear@14: - Smultron (smultron.sourceforge.net) nuclear@14: nuclear@14: Legal notices: nuclear@14: nuclear@14: - This software is based in part on the work of the Independent JPEG Group. nuclear@14: nuclear@14: nuclear@14: 4. CHANGES nuclear@14: ========== nuclear@14: nuclear@14: v1.0.3 - 2010.01.15 nuclear@14: ------------------- nuclear@14: - Added support for PNG format textures (ctmviewer). nuclear@14: nuclear@14: - Added support for LightWave LWO files (ctmconv and ctmviewer). nuclear@14: nuclear@14: - Added support for Geomview OFF files, e.g. as used by the Princeton Shape nuclear@14: Benchmark (ctmconv and ctmviewer). nuclear@14: nuclear@14: - Improved the OBJ file loader (ctmviewer and ctmconv). nuclear@14: nuclear@14: - Experimental support for VRML 2.0 files - export only (ctmconv and ctmviewer). nuclear@14: nuclear@14: - Made it possible to run ctmviewer without command line arguments. nuclear@14: nuclear@14: - Improved the normal calculation algorithm (ctmviewer and ctmconv). nuclear@14: nuclear@14: - Normals are no longer exported if no normals were present in the input file nuclear@14: (ctmviewer). nuclear@14: nuclear@14: nuclear@14: v1.0.2 - 2009.12.13 nuclear@14: ------------------- nuclear@14: - Added an OpenCTM exporter plugin for Maya [Jonas Innala]. nuclear@14: nuclear@14: - Added the possiblity to save and load files from ctmviewer, effectively nuclear@14: turning it into a quick and simple converter tool (without all the options nuclear@14: in the ctmconv program, though). nuclear@14: nuclear@14: - Added a function to load texture files from ctmviewer. nuclear@14: nuclear@14: - Improved the camera control in ctmviewer (panning with the right mouse nuclear@14: button, zooming with the middle mouse button and the mouse wheel, feature nuclear@14: focusing by double clicking, Y/Z up axis selection and "fit to screen" nuclear@14: function). nuclear@14: nuclear@14: - Added a GUI dialog for showing errors in ctmviewer (this is especially useful nuclear@14: under Windows, where console output is disabeled). nuclear@14: nuclear@14: - Added an option for calculating the normals in ctmconv (if the input file nuclear@14: does not have normals). nuclear@14: nuclear@14: - Added options for turning off normals, texture coordinates and/or vertex nuclear@14: colors for the output file in ctmconv. nuclear@14: nuclear@14: - Added manuals for ctmviewer and ctmconv (man pages). nuclear@14: nuclear@14: - Added a "make install" build target for Mac OS X and Linux for simple system nuclear@14: wide installation (see COMPILING.txt). nuclear@14: nuclear@14: - NOTE: The Linux/X11 version of ctmviewer now reqires GTK+ 2.0. nuclear@14: nuclear@14: nuclear@14: v1.0.1 - 2009.11.15 nuclear@14: ------------------- nuclear@14: - Notable reduction of the memory footprint by tuning of the LZMA compression nuclear@14: parameters. nuclear@14: nuclear@14: - Added a Wavefront OBJ file importer/exporter. nuclear@14: nuclear@14: - Some improvements to ctmviewer and ctmconv. nuclear@14: nuclear@14: - Some directory structure and build system cleanups. nuclear@14: nuclear@14: nuclear@14: v1.0 - 2009.11.09 nuclear@14: ----------------- nuclear@14: - Added a COLLADA converter module to the ctmconv program [Jonas Innala]. nuclear@14: nuclear@14: - Added Python bindings and a demo Python program. nuclear@14: nuclear@14: - Improved the internal mesh integrity checking, to minimize the risk of invalid nuclear@14: data processing. nuclear@14: nuclear@14: - Improved the file format specification document. nuclear@14: nuclear@14: nuclear@14: v0.8 (beta) - 2009.09.14 nuclear@14: ------------------------ nuclear@14: - Introduced a new API function for controlling the compression level nuclear@14: (ctmCompressionLevel), and set the default compression level to 5 (rather nuclear@14: than 9, which would eat a lot of memory, usally without much difference). nuclear@14: nuclear@14: - Changed the name "texture map" in the API to "UV map" (and all nuclear@14: corresponding constant and function names). This is more in line with nuclear@14: the nomenclature of most 3D authoring software, and avoids the confusion nuclear@14: with the term texture mapping in 3D hardware (which is not limited to nuclear@14: 2D UV mapping coordinates). nuclear@14: nuclear@14: - A few updates to the documentation. nuclear@14: nuclear@14: nuclear@14: v0.7 (beta) - 2009.08.29 nuclear@14: ------------------------ nuclear@14: - This was the first public release of OpenCTM.