rev |
line source |
nuclear@14
|
1 1. INTRODUCTION
|
nuclear@14
|
2 ===============
|
nuclear@14
|
3
|
nuclear@14
|
4 Welcome to OpenCTM!
|
nuclear@14
|
5
|
nuclear@14
|
6 OpenCTM is a file format, a software library and a tool set for compression of
|
nuclear@14
|
7 3D triangle meshes. The geometry is compressed to a fraction of comparable file
|
nuclear@14
|
8 formats (3DS, STL, COLLADA, VRML...), and the format is easily accessible
|
nuclear@14
|
9 through a simple, portable API.
|
nuclear@14
|
10
|
nuclear@14
|
11 The library is written in portable C (C99), and should compile nicely on any
|
nuclear@14
|
12 32/64-bit system regardless of endianity (big endian or little endian).
|
nuclear@14
|
13
|
nuclear@14
|
14
|
nuclear@14
|
15 2. LICENSE
|
nuclear@14
|
16 ==========
|
nuclear@14
|
17
|
nuclear@14
|
18 The OpenCTM API and the OpenCTM tools are released under the zlib/libpng
|
nuclear@14
|
19 license (see LICENSE.txt).
|
nuclear@14
|
20
|
nuclear@14
|
21 3. CREDITS
|
nuclear@14
|
22 ==========
|
nuclear@14
|
23
|
nuclear@14
|
24 Many people have helped out in the development process of OpenCTM, with
|
nuclear@14
|
25 valuable feedback, programming efforts, test models and conceptual ideas.
|
nuclear@14
|
26 Also, OpenCTM relies heavily on many other open source projects.
|
nuclear@14
|
27
|
nuclear@14
|
28 Here is an incomplete list of persons that deserve credit:
|
nuclear@14
|
29
|
nuclear@14
|
30 - Igor Pavlov (LZMA library)
|
nuclear@14
|
31 - Jonas Innala (COLLADA importer, Maya exporter plugin)
|
nuclear@14
|
32 - Ilian Dinev (help with the OpenCTM file format design and the LWO loader)
|
nuclear@14
|
33 - Lee Thomason (TinyXML)
|
nuclear@14
|
34 - Diego Nehab (RPly - for loading PLY files)
|
nuclear@14
|
35 - Lev Povalahev, Marcelo E. Magallon, Milan Ikits (GLEW)
|
nuclear@14
|
36 - Thomas G. Lane, Guido Vollbeding (libjpeg)
|
nuclear@14
|
37 - Jean-loup Gailly, Mark Adler (zlib)
|
nuclear@14
|
38 - Daniel Karling (pnglite)
|
nuclear@14
|
39
|
nuclear@14
|
40 During the development of OpenCTM, the following software has been used
|
nuclear@14
|
41 extensively:
|
nuclear@14
|
42
|
nuclear@14
|
43 - Ubuntu (www.ubuntu.com)
|
nuclear@14
|
44 - Blender (www.blender.org)
|
nuclear@14
|
45 - GCC (gcc.gnu.org)
|
nuclear@14
|
46 - SciTE (www.scintilla.org/SciTE.html)
|
nuclear@14
|
47 - Notepad++ (notepad-plus.sourceforge.net)
|
nuclear@14
|
48 - Smultron (smultron.sourceforge.net)
|
nuclear@14
|
49
|
nuclear@14
|
50 Legal notices:
|
nuclear@14
|
51
|
nuclear@14
|
52 - This software is based in part on the work of the Independent JPEG Group.
|
nuclear@14
|
53
|
nuclear@14
|
54
|
nuclear@14
|
55 4. CHANGES
|
nuclear@14
|
56 ==========
|
nuclear@14
|
57
|
nuclear@14
|
58 v1.0.3 - 2010.01.15
|
nuclear@14
|
59 -------------------
|
nuclear@14
|
60 - Added support for PNG format textures (ctmviewer).
|
nuclear@14
|
61
|
nuclear@14
|
62 - Added support for LightWave LWO files (ctmconv and ctmviewer).
|
nuclear@14
|
63
|
nuclear@14
|
64 - Added support for Geomview OFF files, e.g. as used by the Princeton Shape
|
nuclear@14
|
65 Benchmark (ctmconv and ctmviewer).
|
nuclear@14
|
66
|
nuclear@14
|
67 - Improved the OBJ file loader (ctmviewer and ctmconv).
|
nuclear@14
|
68
|
nuclear@14
|
69 - Experimental support for VRML 2.0 files - export only (ctmconv and ctmviewer).
|
nuclear@14
|
70
|
nuclear@14
|
71 - Made it possible to run ctmviewer without command line arguments.
|
nuclear@14
|
72
|
nuclear@14
|
73 - Improved the normal calculation algorithm (ctmviewer and ctmconv).
|
nuclear@14
|
74
|
nuclear@14
|
75 - Normals are no longer exported if no normals were present in the input file
|
nuclear@14
|
76 (ctmviewer).
|
nuclear@14
|
77
|
nuclear@14
|
78
|
nuclear@14
|
79 v1.0.2 - 2009.12.13
|
nuclear@14
|
80 -------------------
|
nuclear@14
|
81 - Added an OpenCTM exporter plugin for Maya [Jonas Innala].
|
nuclear@14
|
82
|
nuclear@14
|
83 - Added the possiblity to save and load files from ctmviewer, effectively
|
nuclear@14
|
84 turning it into a quick and simple converter tool (without all the options
|
nuclear@14
|
85 in the ctmconv program, though).
|
nuclear@14
|
86
|
nuclear@14
|
87 - Added a function to load texture files from ctmviewer.
|
nuclear@14
|
88
|
nuclear@14
|
89 - Improved the camera control in ctmviewer (panning with the right mouse
|
nuclear@14
|
90 button, zooming with the middle mouse button and the mouse wheel, feature
|
nuclear@14
|
91 focusing by double clicking, Y/Z up axis selection and "fit to screen"
|
nuclear@14
|
92 function).
|
nuclear@14
|
93
|
nuclear@14
|
94 - Added a GUI dialog for showing errors in ctmviewer (this is especially useful
|
nuclear@14
|
95 under Windows, where console output is disabeled).
|
nuclear@14
|
96
|
nuclear@14
|
97 - Added an option for calculating the normals in ctmconv (if the input file
|
nuclear@14
|
98 does not have normals).
|
nuclear@14
|
99
|
nuclear@14
|
100 - Added options for turning off normals, texture coordinates and/or vertex
|
nuclear@14
|
101 colors for the output file in ctmconv.
|
nuclear@14
|
102
|
nuclear@14
|
103 - Added manuals for ctmviewer and ctmconv (man pages).
|
nuclear@14
|
104
|
nuclear@14
|
105 - Added a "make install" build target for Mac OS X and Linux for simple system
|
nuclear@14
|
106 wide installation (see COMPILING.txt).
|
nuclear@14
|
107
|
nuclear@14
|
108 - NOTE: The Linux/X11 version of ctmviewer now reqires GTK+ 2.0.
|
nuclear@14
|
109
|
nuclear@14
|
110
|
nuclear@14
|
111 v1.0.1 - 2009.11.15
|
nuclear@14
|
112 -------------------
|
nuclear@14
|
113 - Notable reduction of the memory footprint by tuning of the LZMA compression
|
nuclear@14
|
114 parameters.
|
nuclear@14
|
115
|
nuclear@14
|
116 - Added a Wavefront OBJ file importer/exporter.
|
nuclear@14
|
117
|
nuclear@14
|
118 - Some improvements to ctmviewer and ctmconv.
|
nuclear@14
|
119
|
nuclear@14
|
120 - Some directory structure and build system cleanups.
|
nuclear@14
|
121
|
nuclear@14
|
122
|
nuclear@14
|
123 v1.0 - 2009.11.09
|
nuclear@14
|
124 -----------------
|
nuclear@14
|
125 - Added a COLLADA converter module to the ctmconv program [Jonas Innala].
|
nuclear@14
|
126
|
nuclear@14
|
127 - Added Python bindings and a demo Python program.
|
nuclear@14
|
128
|
nuclear@14
|
129 - Improved the internal mesh integrity checking, to minimize the risk of invalid
|
nuclear@14
|
130 data processing.
|
nuclear@14
|
131
|
nuclear@14
|
132 - Improved the file format specification document.
|
nuclear@14
|
133
|
nuclear@14
|
134
|
nuclear@14
|
135 v0.8 (beta) - 2009.09.14
|
nuclear@14
|
136 ------------------------
|
nuclear@14
|
137 - Introduced a new API function for controlling the compression level
|
nuclear@14
|
138 (ctmCompressionLevel), and set the default compression level to 5 (rather
|
nuclear@14
|
139 than 9, which would eat a lot of memory, usally without much difference).
|
nuclear@14
|
140
|
nuclear@14
|
141 - Changed the name "texture map" in the API to "UV map" (and all
|
nuclear@14
|
142 corresponding constant and function names). This is more in line with
|
nuclear@14
|
143 the nomenclature of most 3D authoring software, and avoids the confusion
|
nuclear@14
|
144 with the term texture mapping in 3D hardware (which is not limited to
|
nuclear@14
|
145 2D UV mapping coordinates).
|
nuclear@14
|
146
|
nuclear@14
|
147 - A few updates to the documentation.
|
nuclear@14
|
148
|
nuclear@14
|
149
|
nuclear@14
|
150 v0.7 (beta) - 2009.08.29
|
nuclear@14
|
151 ------------------------
|
nuclear@14
|
152 - This was the first public release of OpenCTM.
|