* Jul 2002 : Soya3D 0.1 * First release * Dec 2002 : Soya3D 0.2 * Second release * Landscape / heightmap * More tutorial lessons * Lots of bugfixes * Jan 2003 : Soya3D 0.2.1 * land: bugfix, faster raypicking, new function get_true_height * fixed bugs with camera as widget * raypicking on morph * material sorting to speed up rendering process * portal reviewed * Fev 2003 : Soya3D 0.3 * INCOMPATIBLE CHANGES !!! ALL SDL* and SDL_* constant have been renamed without the SDL prefix * INCOMPATIBLE CHANGES !!! All soya saved file MUST have a ".data" extension (because of CVS). Renaming your older file is OK: the file format itself have not changed, (except for materials, see below) * INCOMPATIBLE CHANGES !!! materials file-format have changed ! * Can be used along with PyGame !!!!!! * Animations (see tutorial lesson 11) * Faccutter module, to improve your shape by adding more faces (see tutorial lesson 114 and 115) * A main loop with FPS regulation (see soya.idler, and tutorial lesson 013) * Widgets now have begin_round, advance_time and end_round methods * March 2003 : Soya3D 0.3.1 * Faster particle systems * Bugfixes: * Directional lights * Static lights * Lesson 104 was not updated after the new image object * March 2003 : Soya3D 0.4 * Cal3D integration! Cal3D is a blasting 3D animation library. See tutorial lesson 014, and http://cal3d.sourceforge.net * Better Blender exporter: * Easier to use * Import subsurf * Autocreate material if needed * Morph (see lesson 012 for a smiling Tux). Though as we have now integrated Cal3D, morph are quite deprecated... :-( Cal3D offers much more features. * May 2003 : Soya3D 0.4.2 * Added manpage for Soya editor * Bugfixes: * ./configure failed to find Cal3D * May 2003 : Soya3D 0.4.3 * Removed fucking configure -- configuration is now hardcoded in config.py ; edit this file if needed (normally it should be right). * July 2003 : Soya3D 0.5 * New C rendering engine (20-30% faster) * July 2003 : Soya3D 0.5.1 * Cal3D support was disabled in 0.5 * Blender exporter upgraded for Blender 2.28 * December 2003 : Soya3D 0.6 * Soya 0.6 file format is different from Soya 0.5 file format. See convert_to_new_format for converting your files. * Cell shading !!! * Shadows !! * Water cube ! * It is now possible to attach a world to a Cal3D bone (see tutorial lesson 015) * Better Blender exporter, and Blender exporter for Cal3D available sperately (search about blender2cal3d.py) * Morphs have been removed (they were deprecated in favour to Cal3D support), and so there is no longer any tutorial lesson 012. * Bugfixes: * distance_to() was buggy with coordinate system conversion * December 2003 : Soya3D 0.6.1 * Bugfixes: * remove "import soya.game.level" in several lesson, which was totally useless and was causing a dependance on py2play. * December 2003 : Soya3D 0.6.2 * Bugfixes: * Remove "home_page" keyword in setup.py, which cause troubles with old python * June 2004 : Soya3D 0.7 * Full rewrite in Pyrex * August 2004 : Soya3D 0.8 * Cell-shading * Shadows * Bugfixes: * Memory corruption in chunk, thanks Zachary Hamm * Segfault in landscape * Face.is_coplanar() was actually 'is_non_coplanar' ; this may cause some buggy Blender exportation. * Cal3D model with multiple submeshes were buggy * Point.position was always returning None * December 2004 : Soya3D 0.9 * MacOSX support (thanks Toni Alatalo and zratchet) * Windows support (thanks Thomas Paviot) * Auto-exporter for Blender, OBJ/MTL (thanks David PHAM-VAN), .png and .jpeg images (see the blender-auto-exporter-1 tuto) * Now include blender2cal3d.py * Raypicking on animated (Cal3D) models * get_box, get_dimension and set_dimension are now implemented and have been moved in CoordSyst (they were in World previously) * new method widget_begin_round, widget_advance_time, widget_end_round for widgets * new soya.set_gamma function to control gamma correction * Added 3DS import script * new feature : environment mapping * Bugfixes: * Font.get_print_size() was buggy * Raypicking on scaled CoordSysts was buggy * scale_x, scale_y and scale_z were working only if the previous value was 1.0 * particle system autoremoving was slighly ugly * soya.opengl.glDeleteList was buggy * December 2004 : Soya3D 0.9.1 * Bugfixes: * Remove useless file ode/c2py.c in setup.py * January 2005 : Soya3D 0.9.2 * Environment mapping now works for everything (not only SimpleShape) * New Cal3dVolume.animate_reset method * Faster and less scrambly TravelingCamera * New Camera.coord3d_to_2d method * Bugfixes: * Blender2Cal3D exporter now create directories if needed * You can now put soya in the same directory than soya apps (it was causing an "ImportError: No module named _soya") * Take scaling into account for particle systems (only scaling on X axis is used currently) * Disable fog for additive_blending material (because fog has already been applied before) * Cellshaded non-smoothlit faces were lit by backfacing lights * July 2005 : Soya3D 0.10 * Use Cal3D 0.10 (no longer compile with older version) * Use (and require) GLEW (thanks Dunk) * Pudding integrated (soya.pudding now, and see tutos pudding-*, big thanks Dunk !) * Tofu integration (see soya.tofu4soya, and tofudemo.py tuto). * 2 methods added: loaded() is called when an object is loaded from a file, and added_into() is called when a CoordSyst is added inside a World (or None if it is removed from its previous parent). * New tutorial multiple-camera-1.py * Bugfixes: * Cal3DVolume are now pickleable * Ortho Camera now works (object culling was buggy) * Camera.coord3d_to_2d and Camera.coord2d_to_3d now works with ortho Camera, and takes FOV into account for non-ortho Camera. * Bugfixes in OBJ/MTL importer (thanks Vito) * August 2005 : Soya3D 0.10.1 * Support for SDL_mixer (with PySDL_mixer) * If Blender exporter doesn't find PIL, it now tries system-wide Python * Bugfixes: * Bugfix in Face.get_box() * Land.solid was not working * Raypicking on Cal3DVolume.solid was buggy, in particular when the Cal3DVolume was hidden (visible == 0 or out of the screen) * raypick_b was not working on Land if using a vertical direction * Particle systems unpickling was buggy * Raypicking was not working if the root scene was not located in (0.0, 0.0, 0.0) * February 2006 : Soya3D 0.10.2 * Added interpolation support (see tuto state-1) * soya.tofu4soya now use interpolation for remotely controlled mobiles * Solid shapes (see tuto modeling-solid-shape-1) * Support for texture border (automaticaly detected and activated if the texture size is 2**x+2) * Added soya.label3d.Label3D, a 2D text label at a 3D position * Added a module with material classes with special effects on textures, like gliding texture (see soya.spc_material) * Update blender2cal3d.py for Blender 2.41 * Bugfixes: * Newly created materials were activated by error * Cal3dVolume no longer crash if it has no shape * changing Material.clamp didn't re-init the texture, and thus was having no effect * Camera.coord2d_to_3d now works better with ortho cameras (still not perfect though) * Bugfix on object pickling (the bug was probably introduced by a recent version of python) (no Soya3D 0.10.3, dead before its birth) * April 2006 : Soya3D 0.10.4 * Bugfix on ODE support: the .c files have been re-generated from the .pyx files * May 2006 : Soya3D 0.10.5 * Bugfix on Cal3D support: a bug in Pyrex 0.9.4.1 (not present in older version) was causing a segfault bug in Cal3DVolume.detach_from_bone() * June 2006 : Soya3D 0.11 * Full support for cerealizer (i.e. save(), load() and get() can use cerealizer, see set_file_format and basic-savingfile-* and basic-loadingfile-* tutorials) * Pudding listbox, by Reto Spoerri (thanks :-)) * Idler.return_value is now readable (ease hacking the Idler :-) * rotate/turn_lateral/vertical/incline become rotate/turn_x/y/z (the old names are still their and I don't really consider them as "deprecated") * Sources now use tab instead of space for indenting * Bugfixes: * Several bugfixes on shadows, cellshading outlines on Cal3D model and raypicking on Cal3D model * tofudemo tutorial was broken. It now works, although the interpolation feature add some lag. Tofu and Tofu4Soya are still in an unstable stage and may change radically. * July 2006 : Soya3D 0.12 * Massive renaming (backward compatibility is maintained through aliases): Idler -> MainLoop Shape -> Model Cal3dShape -> AnimatedModel Shapifier -> ModelBuilder Volume -> Body Cal3dVolume -> Body (merged with Volume) Land -> Terrain * New sound API (see soya.Sound, soya.SoundPlayer and tuto sound-1.py) * Static and auto_static: all Soya objects (inheriting from CoordSyst) have now a "static" attribute that can be use to tag them as static for optimizing them, and an "auto_static" attribute (defaulting to true) that allows Soya to automatically determine wether they are static or not * Static shadows: static object's shadows are rendered faster * New method MainLoop.update, for embedding Soya inside Tk (or other GUI or mainloop) ; MainLoop.start has been removed since it has never been really working * Font now inherits from SavedInAPath (=> you can have a data/fonts/ directory) * Dynamic model deforming (see tuto deform-1.py); this feature is still under work and the API may change in the next release. * Auto-exporters can now be disabled (soya.AUTO_EXPORTERS_ENABLED = 0) * Bugfix: * Bugfix in 3DSmax exporter on material (thanks Snaip) * The Blender => Soya auto-exporter no longer require that Blender can import Soya. This was causing some weird bugs with some Blender binaries. * Fix for 64 bits platforms. * Bugfix on mirroring (scaling with negative values) * Bugfix on shadows on AnimatedModel: soya was segfaulting if the model was culled on the first rendering * January 2007 : Soya3D 0.13 * New ODE integration (thanks Marmoute!) * New Blender -> Cal3D exporter (thanks Palle!) The new exporter is now automatically used by the auto-exporter. It REQUIRES Blender >= 2.42 * BSP system (work in progress, thanks Souvarine!) * CoordSyst.solid is no longer boolean, but a 32-bit-length bitfield (thanks Souvarine!) * Add RaypickContext.get_item() (thanks Souvarine) * Better font loading under MacOS X (thanks Greg Ewing) * Tofu integrated * CoordSystSpeed added * CoordSystState now support automatic coordinate system conversion (when used with interpolate()), and has a convert_to() method * Bugfixes: * Fixes crash on keycodes > 255, and allows Delete as well as Backspace for erasing characters, in pudding (thanks Greg Ewing) * Severals memory leaks have been fixed (in particular on Terrains and CoordSystStates) * soya.widget.default_font can now be saved as any other fonts * Mesh deformation were buged on cellshaded models * Compile with -fsigned-char because on Mac, chars are by default unsigned * The file caching neighbors was not cleaned when animated models were modifed * May 2007 : Soya3D 0.13.1 * Anti-alias cellshading outlines * Bugfixes: * calling several times MainLoop.stop(arg) now use the arg passed to the first call, and not the last one. * Fix for Python 2.5 * June 2007 : Soya3D 0.13.2 * Better use of fontconfig on Unix * Bugfixes: * Fix old and deprecated tofu4soya.py (for Balazar) * World -> Model compilation (and thus Blender export) was broken on Python 2.4 * January 2008 : Soya3D 0.14rc1 * Allow the centre of mass of a Body to be anywhere in its local coordinate system (thanks Greg Ewing) * Improve tutorial README (thanks Jacques Rebourcier) * Update for Pyrex 0.9.6.2 (thanks Greg Ewing) * Blender => Cal3D can now run with Python 2.3 (thanks Greg Ewing) * New GUI module soya.gui * Bugfixes: * Fix the weird segfaulting bug in terrain (thanks Souvarine) * Fix GL_INVALID_ENUM crash with the OSS ATI DRI driver (thanks Zoltan Dome) * Fix data/worldS and data/blender in the yet-in * Fix speed-1.py tuto * Fog was activated by error on partial camera with no atmosphere * Fix descender computation in font * Fix ODE on terrain (tuto ode-collision-8-terrain.py) * August 2008 : Soya3D 0.14 * Improve the cell-shading algorithm, by anti-aliasing outlines and disabling normal lighting when cell-shading is used * Bugfixes: * When re-starting a MainLoop, define it as the current MainLoop (aka. soya.MAIN_LOOP) * January 2009 : * ODE 10 compatibility (required) * New collide property for lazer. * Quiet mode for soya initialisation and quit * New event management system. round event are now stored in main_loop.event and main_loop.raw_event. * New round_task attribut for main_loop. * Allow screenshot from backbuffer. * Allow to use WorldStep instead of WorldQuickStep for ODE iteration. * Allow None as angular_velocity, linear_velocity, torque, or force. * Allow None as hi_stop, lo_stop * Bugfixes * Fix delta_x and delta_y in coalesced event * Fix AngularMotorJoint API * soya initialisation now write in the common stdout and stderr * Fix font related segfault when soya wasn't initialised * Fix Pudding MainLoop (thanks David Martinez) * Work-around for OpenAL bug for absolute sound sources