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