
This release is dedicated to our fellow french developer Jacques
Guignot.
Jacques was the third member to join the team, when we were still
rewriting and starting to expand the API from Blender 2.25 Publisher,
a couple months after Michel Selten started the initiative. Besides
rewriting the Ipo module, he also contributed all new modules --
Curve, Effects, Metaball and World -- present in the 2.28 release,
when our implementation finally substituted the old one. This team
effort was later voted "Best Coding Achievement" in the first Blender
Conference (2003).
Jacques was a computer programming teacher and open source enthusiast,
and also a man of culture and sensibility, a pleasure to chat with.
Most of all we will remember him as a very kind and friendly developer.
Thanks, pal!
Jacques died on February 6th, 2005.
1) Important notes:
- This release is still compiled against Python version 2.3, for the
next we should be with 2.4. If you need a version compiled against
2.4, please check or ask at the testing builds forum of blender.org,
there were talks about having those available about a week after
official release.
- There have been a few changes in directory structure for scripts.
Now both the data dir and modules dir are inside the main scripts dir.
This can cause problems for users who have their own .blender/ folders
in their home dirs, since some scripts won't be able to find all
BPython modules they need. The "fix" is quite simple: copy the
scripts/ dir tree from Blender's installation on top of your
<homedir>/.blender/scripts folder.
2) Additions and updates:
- New module: Text3d + Font to access 3d text objects
- new menus for registered scripts: Render, Themes, FaceSelect, System
- added Oops location and selection attributes for materials, mesh
- data and objects added .insertIpoKey() method for objects,
- materials, lamps, worlds, cameras. .clearScriptLinks() method now
- accepts optional list of script links to clear added users attribute
- for some types improved access to layers in Scene, Object: old
- .Layer(s) expects an integer (layer bitmask), .layers accepts a list
- of strings
Script links:
- New: Space Handlers -- these are different script links, linked to spaces
(3d View only, currently) for events and draw callbacks. Check Blender
Python Reference documentation for 2.37 for details.
- new event: "Render", runs as "Render" before rendering stills or animations
and as "PostRender" after rendering, for cleanups.
- now "blender -y" disables all script links, not only scene onload ones.
- new "Enable Script Links" button in scripts buttons window, plus cosmetic
updates to help adding script links.
Per module:
Blender:
- added Run(), UpdateMenus(), ShowHelp()
- Get() now can return all paths from User Preferences window, File Paths tab
- added .mode attribute: tells if Blender is in "background" or "interactive" mode
- .event attribute holds ascii value (if valid) during gui events callback
Object:
- support for particle interaction settings and softbody settings
- object.getData(): added optional boolean parameter 'names_only'
- object.get/setDupliVerts()
Curve:
- curve.isCyclic(), CurNurb.isCyclic()
- get/setBevOb() (get, set and clear bevel object)
- access to attributes flagU and flagV
NMesh:
- complete edges support
- face.sel (edit mode selection state) and face.hide attributes
- nmesh.update(): added optional boolean parameter 'vertex_shade' to
init vcols with shading info
- nmesh.setMode() accepts alternatively an int parameter, as returned
by nmesh.getMode()
- nmesh.transform()
- GetNames()
Window:
- file and image selectors now support methods as callbacks
Image:
- image.setFilename()
- image.getPixelF(), image.getMaxXY()
Camera:
- camera.get/setScale for ortho cameras
Draw:
- Image()
- large text support in Text() and GetStringWidth()
Texture:
- 'NormalMap' image flag
Scene:
- scene.getActiveObject()
Scene.Render:
- render.getTimeCode()
Registry:
- support for writing to / reading from config files saved to disk
Theme:
- support for Time space and new theme variables
3) Bug Fixes:
#2093: Ipo.addCurve() added curves of undefined type
#2160: Buggy script header stopped registration of other scripts
#2117: Overflow in Armature.Bone.setName()
#2157: crash in Blender.Image.image.reload() method
#2192: sys.makename() parameter length smaller than related functions
#2074: crash with totally empty string button
#2123: filename string being overwritten in Text.Load() fixed
#1655: background mode (blender -P script) fixed / expanded to work properly
#2379: made small changes to bevel_center's ui to improve display of a button value
#2254: Curve.appendPoint() gave segfault in PySequence_Check()
#2566: setting a scene's MapOld and MapNew values does nothing
#2418: crash when calling the file selector after setting the progress bar
#2429: event for canceled menus being picked as normal event
#2211: hangs when adding verts to a mesh with groups
#2033: vertices of mesh parented to lattice scaled incorrectly
#2607: possible segfault with String button if the allowable length is greater than 400
#2490: Vector == None gives warning
#2476: Image.Draw() failing in certain screen configurations
- World.get/setMode() were not registered
- Preventing scripts win redraws during slider callbacks
- Broken OpenGL urls in BGL docs fixed
- Added corrections and missing ipo channels for Camera, World, Material modules
- Mathutils: Matrix_Determinant() was returning its input arg rather than
the determinant; fixed code and added 16 digits precision to AngleBetweenVecs() (was 8)
4) Scripts:
Updated:
Save Current Theme
Texture Baker
BVH importer
Apply Deform
Sel Same (Similar Faces)
AC3D import and export
BPy Doc Browser
System Info
Help Browser
Dispaint
Fix From Armature (now called Fix From Everything)
Unweld
VRML 2 (now called VRML 97)
Batch Name Edit
Paths importer (svg part)
Wavefront OBJ importer and exporter
New:
X3D exporter by Bart
Envelope Suite by Jonas Petersen
BVH 2 Armature by Jean-Baptiste Perin
Camera Changer by Regis Montoya
Interactive Console by Campbell
Discombobulator by Evan J. Rosky
Scripts Config Editor (helper script)
5) Documentation
- Old and new scripts basic documentation can be browsed with the
Scripts Help Browser Script in the Help menu. Some of them have
links to online documentation.
Also, this is the wiki page for new offered scripts:
- Soon after the release the updated 2.37 BPython API Reference
doc should become available at the documentation section of blender.org.
6) )Credits
(98 commits from January 4th to May 29th)
The following people have contributed with code commits, bug reports,
documentation, patches, suggestions, script updates or additions (we
appologize for possible omissions and thank corrections):
Joilnen B. Leite, Stephane Soppera, Ken Hughes, Stephen Swaney, Johnny
Matthews, Joseph Gilbert, Campbell Barton, Jonathan Merritt, Willian
P. Germano, Tom Musgrove, Toni Alatalo, Austin Benesh, Martin Poirier,
Kent Mein, Michael Reimpell, Yann Vernier, Daniel Dunbar, Jean-Michel
Soler, Alex Mole, Gergely Erdelyi, Roland Hess, Manuel Bastioni, Paolo
Colombo, Melchior Franz, Gert de Roost, Bart, Jonas Petersen,
Jean-Baptiste Perin, Regis Montoya, Evan J. Rosky, German Alonso
Tamayo.