http://wiki.blender.org/index.php/Rewriting_the_2.4x_BPython_API
Some areas are not yet finished, the 2.4 api can remain "import Blender" and the bpy api "import bpy" gives access to the new api.
Todo
* event, link, etc are not assigned to Blender.*
* Scripts need to be tested and updated.
* Scripts cannot mix bpy and Blender modules anymore.
* Makefiles need to be updated (only works with scons now)
* Make the 2.4 api optional with IFDEF's
* Lots of testing and small fixes
* Added display of current chain-length setting to the header, when transforming with Auto-IK on
* Removed debug print accidentally left in
* Fixed compiler warning in buttons_object.c
Patch [#7849] by Jetze van Beijma, strike 2.
The first patch fixed the size of the scroll bar, this one fixes drawing of selected text area (the redish area in the scrollbar).
=================
Big commit, but little user visible changes.
- Dupliverts and duplifaces are now rendered as instances, instead
of storing all of the geometry for each dupli, now an instance is
created with a matrix transform refering to the source object.
This should allow us to render tree leaves more memory efficient.
- Radiosity and to some degree raytracing of such objects is not
really efficient still. For radiosity this is fundamentally hard
to solve, but raytracing an octree could be created for each object,
but the current octree code with it's fixed size doesn't allow this
efficiently.
- The regression tests survived, but with I expect that some bugs will
pop up .. hopefully not too many :).
Implementation Notes
====================
- Dupligroups and linked meshes are not rendered as instances yet,
since they can in fact be different due to various reasons,
instancing of these types of duplis that are the same can be added
for them at a later point.
- Each ObjectRen now stores it's own database, instead of there being
one big databases of faces, verts, .. . Which objects that are actually
rendered are defined by the list of ObjectRenInstances, which all refer
to an ObjectRen.
- Homogeneous coordinatess and clipping is now not stored in vertices
anymore, but instead computed on the fly. This couldn't work for
instances. That does mean some extra computation has to be done, but
memory lookups can be slow too, and this saves some memory. Overall
I didn't find a significant speed impact.
- OSA rendering for solid and ztransp now is different. Instead of e.g.
going 8 times over the databases times and rendering the z-buffer, it
now goes over the database once and renders each polygon 8 times. That
was necessary to keep instances efficient, and can also give some
performance improvement without instances.
- There was already instancing support in the yafray export code, now it
uses Blender's render instances for export.
- UV and color layer storage in the render was a bit messy before, now
should be easier to understand.
- convertblender.c was reorganized somewhat. Regular render, speedvector
and baking now use a single function to create the database, previously
there was code duplicated for it.
- Some of these changes were done with future multithreading of scene
and shadow buffer creation in mind, though especially for scene creation
much work remains to be done to make it threadsafe, since it also involves
a lot of code from blenkernel, and there is an ugly conflict with the way
dupli groups work here .. though in the render code itself it's almost there.
Submitted by: David Bryant (digikiller)
This patch adds two new drawtypes for empties in Blender:
* Sphere
* Cone
These draw with wireframes which are slightly more complicated than for other empties. However, this shouldn't really be an issue.
-- Peach request (from wiki feature request list) --
When translating a bone using Auto-IK, you can now use the ScrollWheel on the Mouse or the Page Up/Down keys to adjust the chain length.
Notes:
* Up decreases the length, while Down increases it.
* The previously used chain-length is stored per scene
* Currently, it might be too sensitive. Also, it would help to have some kind of indication of the current chain-length somewhere...
* The chain length specified this way determines the MAXIMUM chain length possible for all chains (if 0, then the default chain-length is used). Chains are clamped to have a chain length which does not exceed the default chain length. This restriction may be removed following further feedback...
This commit introduces two (currently only one is actually functional) new features for working with armatures.
* Bone Merging (Alt-M)
It is now possible to select a bunch of linked bones and "merge" them together. Currently, there's only one option to merge bones that are selected and linked to each other in a chain.
* Add Bone Between Joints (FKEY)
This allows you to select a few joints, and have a bone created between them. Currently, this is not yet functional (but the code is there)
It is used to store a reference to some data that is already in another ListBase. Sometimes, these are needed for small one-off situations, where a custom struct seems overkill...
not mirrored exactly, though the problem is not completely solved.
The way local frames are computed for particles is still not fully
symmetric, which shows especially on long hairs...
Also made the shift+o subsurf switch work recursively into
dupli-groups, did only the first level before.
the depsgraph relations for constraints with a local ipo were being
skipped, but I have no idea why this code was added? Uncommenting
it seems to work fine.
* BLI_arithb.h - isnan definition is only needed for MSVC, but gcc/mingw complains about it
* file-selectors - moved BLI_storage_types.h or sys/stat.h includes before BLI_winstuff.h includes, to silence warnings about S_ISDIR.
This code adds a basic and simple skeleton generator.
Examples and links are in the wiki, docs will come eventually: http://wiki.blender.org/index.php/User:Theeth/skeletor
In a nutshell, select a vertex at the top of the head and press "Generate Skeleton". UI Panel is in the Editing buttons in Edit Mode, tooltips and semi-useful.
by Matthew Plough
Replaces the glDrawPixel call with glaDrawPixelsTex for faster and interpolated drawing.
Adds autocenter and autozoom instead of the clipping that happened previously.
Fixes the button event for timely redraw.
Added a new option for Armature Ghosting: Only draw ghosts for selected bones. This is activated by toggling the "Sel" button beside the GStep: field.
Note: this does not give any speed increases, as the whole pose must be recalculated for each ghost. In fact, it might even cause minor performance decreases, due to the need to tag and un-tag bones before/after drawing the set of ghosts.
* Added an option to make frame numbers of keyframes draw on bone-paths even when frame numbers for other points are not shown.
* Added a new ghosting method, which only shows the keyframes within a range.
When sculpt object is in wireframe mode (including if the current view is in wireframe mode) a second copy is drawn only to the depth buffer so that sculpting can take place as normal.
==============
When pressing the g key on a bone that can't be translated, rotation
is automatically activated. However, with multiple bone selected, it
did this even if some bones can be translated. Now it only switches
to rotation if no bones can translated.
- 577: control reaches end of non-void function (in ui_but_copy_paste)
- 138: initialization makes integer from pointer without a cast
(I'm not sure whether the fix might cause errors on some systems/builds, but it works fine here)