From BlenderWiki

Jump to: navigation, search

[edit] 2.49b Release

[edit] Improvements

When BLENDER_FORCE_SWAPBUFFERS env variable is defined, a function is enabled that fixes flickering for some Intel and Radeon cards.

[edit] Updates

  • Update for new OpenAL windows library.
  • Update Japanese translation.
  • Upgrade extern/xvidcore to version 1.22. This fixes Xvid crashing on linux 64 bit.

[edit] 2.46 Release

Matt Ebb

Added selection by similar edge seams and sharpness to the "Select Similar" menu (Shift G). Also did some tweaking in there to make the menu a bit more sensible.

Added Menu entries for Object Mode Show/Hide hotkeys


When saving render result images from the image editor with image->save as, default to the scene image type settings (just like with F3: save rendered image).

Multilayer is still available in the list but most of the time, it's not what you want by default. Too many times I've saved out a render and frustratingly ended up with a huge 'filename.png.exr'.



  • Raised hardcoded limit for curve 'extrude' from 5 to 100.


  • New feature on compo scale node: "Scene Size %"

This option sets the relative scaling factor to the amount set in the scene "100%/75%/50%/25%" buttons. It's useful when you've got a fixed background image, and want to do preview renders at a lesser percentage, so you don't have to go and change the scale node each time you change the %.

Also removed unnecessary use of a global from texture node.


  • Menu entry for relax pose

[edit] Shader nodes

  • Geometry node: Front/back output

This is used as a mask for determining whether you're looking at the front side or back side of a mesh, useful for blending materials, my practical need was giving different materials to the pages of a magazine: http://mke3.net/blender/etc/frontback-h264.mov

Give 1.0 if it's the front side, and 0.0 if it's the back side.

  • Extended material node

This is the same as the material node, but gives more available inputs and outputs, (basically just connecting up more of ShadeInput and ShadeResult to the node). I didn't want to add it to the normal simple Material node since you don't always need all that stuff, and it would make the node huge, but when you do need it, it's nice to have it.

[edit] Comp nodes

  1. Invert node - Inverting is something that happens all the time in a node setup, and this makes it easier. It's been possible to invert previously by adding a mix node and subtracting the input from 1.0, but it's not the best way of doing it. This node:
    • makes it a lot faster to set up, rather than all the clicking required with the mix node
    • is a lot more usable amidst a complex comp setup, when you're looking at a node tree, it's very helpful to be able to see at a glance what's going on. Using subtract for inverting is easily mixed up with other nodes in which you are actually subtracting, not inverting, and looks very similar to all the other mix nodes that usually litter a comp tree.
    • has options to invert the RGB channels, the Alpha channel, or both. This saves adding lots of extra nodes (separate RGBA, subtract, set alpha) when you want to do something simple like invert an alpha channel. I'd like to add this option to other nodes too.
    NOTE: There's also a shader node version too.
  2. Also a few fixes that I committed ages ago, but seems to have been overwritten in Bob's node refactor:
    • adding new compbufs to the set alpha and alphaover nodes when you have only one noodle connected to the lower input
    • making the fac value on RGB curves still work when there's nothing connected to it
  3. Added a hotkey (T) for the sculpt mode flatten brush


patch #6795 by James C (sheep): This converts the Ipo editor and Timeline windows to use the BIF_ API for drawing international/antialiased text, following the user preference or being drawn in Bitmap/Pixmap/Texture mode.

Thanks James!


  • Change to the working of the left mouse select preference

Previously, the implementation of this was quite awkward, with the preference swapping mouse buttons globally, rather than just selection, as is advertised on the pref. This had the effect of changing the painting in sculpt/texture paint/weight paint/etc to the left mouse button. This was totally silly, since when using a tablet, left mouse select is the sane way to go, but it meant that every time you wanted to sculpt or paint, you had to switch the mouse buttons around so you could actually use the tablet as normal.
This commit fixes that, and makes the preference do just what it says, use left mouse for selection (i.e. in object/edit mode) and only that.


  • Updated the max particle amount to 1 million. I've been using it

here for a while and it's been fine - I'm pretty sure it's safe, as long as you've got enough RAM :)


  • Curve tilt interpolation types

Just a quickie feature I needed here at work- the previous linear interpolation of tilt in curves can give nasty pinching problems when trying to do flowing curves like a ribbon. This commit lets you choose the interpolation type, between Linear, Cardinal, and BSpline. The code was already set up for it pretty easily, mainly needed to make the choice visible to the user.

Example: http://mke3.net/blender/devel/etc/tilt_interp_types.png

Works on selected curve 'lines', menu in 'curve tools' panel in edit mode.


  • Added 'Zoom within border (Shift B)' to the 3d view menus.

Can people *please* not commit tools with only hotkeys to access them?


  • Slight change to lamp energy calculation - make lamps invisible

for shading if their 'visibility factor' is below 0.001. This gives no perceptible visual difference in my tests, but can significantly speed up shading when using lots of omni lights with quad falloff over a large area. Since quad lamps never actually fall off to 0, previously every lamp would be considered for shading each pixel, even if such lamps had a tiny falloff distance, and were miles away.


Update of czech translation from Genom



  • QMC Raytracing

This introduces QMC sampling for use in glossy reflections/refractions, soft raytraced shadows, and ambient occlusion.

This work includes many new features and speed-ups, so check out the nice docs here:

Glossy Reflection/Refraction http://www.blender.org/development/current-projects/changes-since-245/glossy-reflectionrefraction/

Raytraced Soft Shadows http://www.blender.org/development/current-projects/changes-since-245/raytraced-soft-shadows/

QMC Sampling http://www.blender.org/development/current-projects/changes-since-245/qmc-sampling/

Many thanks to Brecht van Lommel for some initial code snippets and for reviewing the patch, and especially to Alfredo de Greef who gave me a lot of guidance and help along the way!


  • Tweaked the knife tool header info text, making mention of the previously hidden ability to use MMB to constrain to screen axes.


  • Raised some hard coded limits such as mist/envmap clipping ranges


  • Extra lamp falloff options, including custom curve!

This adds some new lamp attenuation options to the Lamp panel, replacing the old 'Quad' button. Yes, the panel layout is still nasty here, but I've ignored it for now to address properly in the panels cleanup work.

  • Constant

http://mke3.net/blender/devel/rendering/falloff-constant.jpg Lamp doesn't decay with distance

  • Inverse Linear

http://mke3.net/blender/devel/rendering/falloff-invlinear.jpg Default, and same as in older Blender without 'Quad' on. Decays linearly, with 'Dist' value as the lamp's half-energy-distance

  • Inverse Square

http://mke3.net/blender/devel/rendering/falloff-invsquare.jpg A sharper, more realistic decay, good for most electric lights (i.e. not sunlight). This is similar to the old Quad option with slight changes.

  • Lin/Quad weighted

Exactly the same as in older Blenders with the old 'Quad' button enabled. When this setting is chosen, two sliders are shown, 'Linear' and 'Quad' (previously Quad1 and Quad2), which controls the 'linearness' or 'quadraticness' of the falloff curve. Lamps in old files with the 'Quad' button on will be initialised to this setting.

But much better for precise control over the lamp falloff now is:

  • Custom Curve

This shows an extra 'Falloff Curve' panel, where you can use the standard Blender curve UI control to precisely control how the light falls off. The Y axis is intensity, and the X axis is distance, stretched over the length of the 'Dist' value.

Some example curves and renders: http://mke3.net/blender/devel/rendering/falloff-curve1-curve.png http://mke3.net/blender/devel/rendering/falloff-curve1.jpg

http://mke3.net/blender/devel/rendering/falloff-curve2-curve.png http://mke3.net/blender/devel/rendering/falloff-curve2.jpg

http://mke3.net/blender/devel/rendering/falloff-curve3-curve.png http://mke3.net/blender/devel/rendering/falloff-curve3.jpg (whee)


  • Tiny tweak to 'set border render (shift B)'. It was always

annoying to have no hotkey to disable render border, having to switch to render buttons to disable it even though you used a hotkey shift B to enable it.

This change makes it so that if you drag the border to cover the entire camera view, it will automatically disable border rendering.


  • Change/fix to texture comp node

Previously if the texture node was not connected directly as the second input to a node like Mix, the size of the generated image was initialised to 140x140, which is not that useful. It now is initialised to the size of the render result if it exists, and if not, the size of the scene render sizeX/sizeY.

This alleviates bug #7068, which is caused by the displace node trying to get pixels from a texture node, where the texture node doesn't contain pixels to cover the entire image (only 140x140) but it's not really a bulletproof solution...


  • changed a few hardcoded low frame limits in wave modifier to use MAXFRAMEF


  • Patch #6877: Zoom to Mouse Position

by Fahrezal Effendi (exavolt)

This adds an additional preference to the view and controls section, which uses the mouse's position as the centre of the zoom when zooming in the 3D View with Ctrl-MMB or the mouse wheel. It's very nice for big scenes, thanks Fahrezal!

A nice todo would be to add this for 2D views as well.


  • Adaptive QMC AO feature - "Adapt from speed vectors"

This is a new feature that can make using AO a lot more attractive when rendering animations with vector blur. It uses the speed vector info calculated in the 'Vec' speed vector pass, in order to reduce AO samples where pixels are moving more quickly. There's not much point calculating all those AO samples when the result is going to be smeared anyway, so you can save a bit of render time by doing a more noisy render in those areas.


You can use this with a new slider in the Adaptive QMC settings 'Adapt Vec'. The higher the value, the more aggressively it will reduce samples. 0.0 means no reduction, and 1.0 reduces one sample per pixel of average displacement for that pixel. 0.25 or so generally gives decent results, but it depends on how fast things are moving.

Here's a demo (compare the final blurred result, and render times): http://mke3.net/blender/devel/raytracing/adapt_speed_off2.jpg http://mke3.net/blender/devel/raytracing/adapt_speed_on2.jpg

And a less contrived example, a short clip from macouno's 'petunia' bconf animation: http://mke3.net/blender/devel/raytracing/petunia-adaptvec-noblur-h264.mov http://mke3.net/blender/devel/raytracing/petunia-adaptvec-blur-h264.mov

the 'adapt vec' requires a Vec pass enabled to work, and there was also some shuffling in the ao panel.



  • Two usability tweaks in adding objects, with user prefs

This changes the default behaviour in adding new objects, which has been discussed for a long time, in person, on the funboard, and in the tracker, and was agreed to be implemented during the 2.5 release cycle, so here it is. They have been made default, with preferences to bring back old behaviour since although people like myself still prefer the new default anyway, it will benefit new users the most.

The preferences are in the 'Edit Methods' section, changing back to old behaviour is as simple as a click of a button.

- Switch to edit mode preference

By default, now adding a new object doesn't automatically switch to edit mode. Not only can this be annoying (most of the time when setting up scenes and models I don't want to edit it straight away anyway), but it's a major hurdle in the learning curve that new users have had to deal with at a very early stage.

Blender's different modes are an important part of understanding how the software works and should have clear behaviour. The problem is that when a user selects something from the add menu, he's not telling Blender to change modes, he wants to add an object. But Blender then goes ahead and changes modes underneath him anyway, something that was never explicitly asked for, something that's unrelated to the mental task at hand, and fundamentally important to the operation of the software.

We observed plenty of people struggling with this during the training sessions that we ran during Project Orange, and there's also no shortage of "why can't I select other objects" questions on the forums.

- Aligned to View preference

Now by default, adding a new object doesn't rotate it so it's aligned facing the view, but rather, it's remains unrotated in world space. This is something that's more of a convenience issue (allowing people like me to stop the 'Add->Tab->Alt R dance), but also makes things easier for new users, especially when doing things like rigging.

For a lot of tools in Blender, like curve deform, path cycling, constraints, it's necessary for your objects' local axes to be aligned. This requirement isn't that obvious, and I've had to debug rigs a few times from the animator in our studio, who has everything set up correctly, but he just happened to be in a different vie at the time he added the object, so they're misaligned and causing problems. Having all objects get created aligned to worldspace, by default, makes a lot of these problems go away. It's much more understandable when rotations are caused by something you've done explicitly, rather than as a side effect of the software.

For convenience as well, most of the time, when I'm working in context and I decide I need a new object, particularly working on production scenes that involve more than just one model, an Alt R is almost always required after adding, since I don't want to have to disrupt the current view of the scene by switching to top view, just to add an object. It's a bit arbitrary, the view from which you want to look at your objects isn't usually the way you want them to be looking at you.


  • Visualise the Map Old/Map New setting in the timeline with a stippled overlay in the stretched section


  • New material option: TexFace Alpha

This is an additional option for 'TexFace', which uses the alpha of the UV assigned faces as well as the colour. It appears in material buttons as a little 'A' button next to 'TexFace', when 'TexFace is switched on. It's a bit horrible, but no point tweaking that layout in isolation at this stage.

This image is using texface alpha, with different assigned images, all sharing the one material: http://mke3.net/blender/devel/rendering/texface_alpha.jpg

Usually I consider texface (and teaching people to use it for UV mapping) to be pretty evil, but in some cases, when you have lots of separate images that you want to control in the one material, it can be quite handy.


  • Don't swap mouse buttons for particle painting - similar thing

was done a while ago in trunk, but this probably never made it through to particle branch.


  • Displacement map baking

This is an extension on the work Brecht already did to implement normal map baking. I've updated the release notes page here with info and pics:

http://www.blender.org/development/current-projects/changes-since-244/render-baking/ Brecht

[edit] UV select inverse

Patch #6717: Select Inverse function in the UV editor, by Juho Vepsalainen.

[edit] Add "View Selected" in the IPO editor

- Numpad dot is shortcut key, same as in other windows.

[edit] Textured drawing in Edit Mode

  • In textured drawmode it now draws the texture, with solid mode lighting.
  • UVs and vertex colors for subsurf are not computed incremental yet, so editing in textured drawmode then may not be as fast as the other modes.

Implementation Notes:

  • Added textured drawing functions to the editmesh and subsurf derivedmeshes.
  • Removed some unused, legacy subsurf code that directly used Mesh.
  • Restructured texture drawing a bit to make it more clear and allow for editmode drawing.

[edit] Make B-Bones not deform in rest position by default

B-Bones already deformed the mesh in the armature rest position, which is unconvenient. For backwards compatibility existing .blend files still have a button for the old behavior enabled.

[edit] Hinge Bone Transform

This changes the way hinge bones are transformed when their parent bones are also selected. Before it just disabled transform for these, now they are rotated and scaled as well, but without influencing the transform center, which gives behaviour as if they were regular bones.


[edit] Bone Transform

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.

[edit] Shape Keys

  • Added a Mute button for shape keys, useful for debugging the influence of driven shape keys.
  • Bugfix for the shape keys relative to others keys, was hanging in an eternal loop when deleting the other key.

[edit] new image

Increased the size limit (to 16384) and the default size (to 1024) for the New Image function.


[edit] opengl rendering

For the OpenGL render option in the 3d view, if a camera is active, it now sets the viewport exactly the same as if rendering.


[edit] Render Instancing

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.

[edit] subdivision

Shift+O subdivision switching now also allows to switch particle systems on/off if they exist.


[edit] Threaded Shadowbuffers Creation

  • One shadowbuffer per thread.
  • Added more break tests in shadow buffer code.
  • Removed R.clipcrop global, solution is not nice yet, but at least threadsafe.
  • Fixed bug in strand render shadow buffer code.

[edit] Misc Render Features

  • "From Dupli" option for orco and uv texture coordinates. For dupliverts, duplifaces and dupli particles, this uses the orco and uv at the point on the parent surface. Can for example be used for texturing feathers and leafs. Note that uv only works for duplifaces and particles emitted from faces, these are not defined at vertices.
  • "Width Fade" option for strand render, to fade out along the width of the strand. Committing this so it can be tested, might be changed or removed even, if it doesn't give nice results.

[edit] Render

Bounding box clipping in the render engine.

Now bounding boxes are computed per object, and checked first before zbuffering objects. For strands, bounding boxes are computed per original face in the mesh. Overall the speed improvement from this is quite small (zbuffering is rarely the bottleneck), but it seems a sensible thing to do anyway.

[edit] Particle Edit Mode

  • Only do keep length and deflection on hairs that are being moved/combed/.. speeds up editing of 10000 hairs a lot.
  • Key selections in editmode are now saved to file to and restored on file load.
  • Added .-key view center on selected particles.
  • Added a "See Particle buttons." label in the Particle modifier, fixed some drawing glitch, and tweaked spacing a bit.
  • Fixed subdivide tool (always crashed).
  • Fixed lasso selection to work.
  • Fixed crash displaying the fields panel with particle systems but none active.
  • Fixed particle stubs to have definitions too (declarations only do nothing).
  • Fixed softbody pointcache getting the wrong stack index.
  • Added some proper particle mode exits that were missing (like scene delete). Made a generic function for it, since this code for multiple modes was duplicated in multiple places.
  • Fixed double undo push for mouse selection.
  • Various warning fixes.


  • Brushes and other settings are now saved in the scene toolsettings, and saved to file.
  • Made the button value range of emitter distance bigger (1.0 -> 10.0).


  • Rearranged the particle mode panel and added 'select' and 'particle' menus in particle mode.
  • Replaced the 'deform_only' variable that was being passed in the particle code, by storing it in the derivedmesh itself. (fixes particles dissappearing in some cases)
  • Made density vertex group work again.
  • Added more checks in particle edit tools to prevent some crashes when the particle system is not editable.
  • Add orientation mapping, previously only the position was mapped correctly to e.g. subsurf, but the direction of the particle was still wrong. This changes the way the hair -> object or global matrix is computed, I tried to make it compatible, but might break existing particle systems.


  • Mirror editing, exists of two parts:
    • A "Mirror Particles" tool that mirrors particles to the other side. If a particle already exists in that place, it instead gets the same coordinates.
    • A "X-Axis Mirror" option to mirror edits to the other side while editing, should work for all tools: brushes, transform, delete, rekey, .. .
  • (Again) modified the way particles are stored in faces. Now it is using mean value weights instead of bilinear, which means adding particles with the add brush will put them exactly in the place they need to be, and the particles can be mirrored exactly, while keeping nice interpolation on quads. It also means I can now properly understand what is going in the code :). This breaks backwards compatibility (sorry).
  • Proportional edit should now work, also optimized it to only do deflection, etc. on particles that are actually moved.
  • Changed the way Even and Random distribution work. Previously small faces would get no particles at all, which meant that e.g. on our models the hands would get no particles.
  • Made the radius for mouse selection bigger, is now 75 pixels like mesh edit mode.
  • Fixed the Remove Keys tool, didn't work correct.
  • Added Select Linked to the menu, missed that before.
  • Added a "Puff" tool to make hairs stand up more, or less.
  • Made Shrink and Grow a single tool called "Length", with buttons and shift key modifier to switch between the two.
  • Partial path cache updates for children and parents, makes editing with child particles showing much faster.
  • Moved the kdtree code into blenlib, added balancing and optimized the nearest neighbour search a bit as well. Makes child particle distribution about 3-4 times faster here.
  • Take normal into account for child particle parent search (just multiply the distance by 10 if the normal is facing away), solves issue with parent particles on one side of an ear affecting the other side.
  • Set dmcache_index in the add brush and mirror tools, otherwise it falls back to slow lookups until the cache is refreshed.
  • Draw child particles shaded in edit mode, instead of black (they often still end up black though, with the normals facing down).
  • Fix memory leak when deleting all particles in particle mode.
  • Two new options for diffuse strand shading:
    • Surface Diffuse: computes the strand normal taking the normal at the surface into account.
    • Blending Distance: the distance in Blender units over which to blend in the normal at the surface.
    • Special strand rendering for more memory efficient and faster hair and grass. This is a work in progress, and has a number of known issues, don't report bugs to me for this feature yet.

Merge of the famous particle patch by Janne Karhu, a full rewrite of the Blender particle system. This includes:

  • Emitter, Hair and Reactor particle types.
  • Newtonian, Keyed and Boids physics.
  • Various particle visualization and rendering types.
  • Vertex group and texture control for various properties.
  • Interpolated child particles from parents.
  • Hair editing with combing, growing, cutting, .. .
  • Explode modifier.
  • Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle systems are being converted to the new system, but will require tweaking to get them looking the same as before.

  • Like sculptmode, a brush can now be selected from a menu with Ctrl+Tab in particle mode.
  • Texture orco coordinates for particles are now actual orcos instead of just the vertex positions, which means they are the same under deformations and the same as the ones on the mesh.
  • Particle distribution now uses these orcos to get consistent distributions independent of deformation.
  • This required changing the way orco's are computed for meshes. Now instead of generating an orco derivedmesh separately, the derivedmesh is generated alongside the regular one and stored in an orco custom data layer.


  • Added texture control for child particle roughness.
  • Fix some use of uninitialized variables in particle texture code.
  • Normalize strand coordinates over the length of the strand, not cut off when with e.g. length texture control.
  • Weight paint and particle mode x-mirror now works with deformation and shape keys active.
  • X-ray is now disabled in particle mode, messed up depth tests.

Also made the shift+o subsurf switch work recursively into dupli-groups, did only the first level before.

The new system to replace manual baking, based on automatic caching on disk. This is currently used by softbodies and the particle system.

See the Cache API section on: http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint


  • The render and realtime button for the particle system modifier and the enabled button for particles now work seperate again, made a bad design decision to tie them together. Now with only the render button and not realtime enabled it renders.
  • Added a Remove Doubles tool, to remove two particles with the same root position.

Particle object and group visualization now also work for hair, to make for example feathers. Also made dupliparts work within groups.

One issue still is that in particle editmode, the duplis can interfere with brushes and selection, though tweaking the dupli object position can alleviate the problem.


Addition to last commit, now the length of the hair is used to scale the object. Also, the direction is now derived from the first and last keys on the hair, instead of first and second.


Changed the way falloff for fields works, was hard to control well. Specifically with maxdist set, the falloff is now from 1.0 to 0.0 at the maxdist, so that there isn't a sudden discontinuity.

Added an "effector" vertex group for hair, that defines how much influence effectors have.

[edit] Strand Render Simplification

  • Strand render now has options to remove child strands as the object's faces becomes smaller, in the Simplification particle panel.
  • "Reference Size" is the approximate size of the object on screen, after which simplification starts.
  • "Rate" is how fast strands are removed.
  • "Transition" is the percentage of strands being faded out as they are removed.
  • Another "Viewport" option removes strands on faces that are outside of the viewport. "Rate" again controls how fast these are removed.
  • Strand render in Blender Units now has an adjustable minimum width. Below this minimum width, strands start fading out instead of getting smaller.

[edit] 2.43 Release

[edit] View Camera Selector

This appears as a new 'Cameras' menu in the 3D View's View menu, containing a command to set the active object as active camera, and a list of the available cameras in the scene to choose from.

[edit] Easier python expressions

Removes the requirement to type # at the start when you want to use Python expression evaluation when typing a value in a button.

In a nutshell, that means you can now type 3 + 5 in a numbut and see it change to 8.

Word of warning: The normal Python operator logic applies, so if you type in 1 / 3, you'll get 0 and not 0.333. There's no going around that.

[edit] Two point perspective architecture camera

The 2-point perspecitve Architecture Camera!

When taking a picture of a high building, and aiming up, you get 3 point perspective with vertical lines converging. This is reality, nothing wrong with that. But architects tend to think different. They want their pictures completely straight. Which is quite nice for compositions, given that the lines of the paper you print on and the screen you view with are also straight.

Previously to get a 2 point perspective, you had to aim the camera level to the horizon, however this resulted in the top half of the building being cut off and the horizon being in the exact middle, which looks very boring. Architectural photographers use 'shift lenses' to solve this problem. Shift lenses shift the image to another place on the film.

This technique works well for high buildings as well as for normal sized objects.

http://www.funnyfarm.tv/patch_lens_shift/patch_lens_shift.mov

[edit] pen tablet support

Pen tablet support has been added for all of the major platforms - in particular OS X, Windows XP, and Linux OSes.

[edit] lock view to object

Option to lock a view to always show a specific object, so you can see long walkcycles or actions well.

Option is per 3d window, in "View Properties" panel. It also can optional lock a view to a single bone even!


[edit] Copy Pose Attributes Menu

 I've added a few more options for the copy pose attributes menu - Copy:
 * Transform Locks
 * IK Limits/DOF settings
 * Custom Bone Shape


[edit] Particles

Static particle option: maximum length. Button is next to "Vect" in first

 particle panel. This allows weird forcefields and wind to act without
 extreme long strands.


[edit] recursive group duplicator

Group duplicators now are recursive, so group-duplid can be

 grouped and become a new duplicated group, and so on.
 
 IMPORTANT NOTE!
 - no check for eternal loops, so I've hardcoded limited it to 5 levels
 - no support for animation or deformation/modifiers/constraints
 
 So, only fun for the props and architecture department :)

New dupli-group feature: you can now set in Groups the layers you want

 a group to show when used for duplicators. Is in the Object Buttons,
 "Object and Links" panel. Note that the duplicator layer itself still
 defines still visiblitily of entire group.
 
 New behaviour for SHIFT+O (set subsurf on/off) or CTRL+0/1/2/3/4 for level.
 
 - Now works on selection of Objects (as do allmost all hotkeys)
 - If multiple selected have different settings, it sets all the same
 - Also does subsurf settings within a dupli-group


[edit] curves

Four more selection options in Curve editing;

 - select more/less (ctrl+numpadplus/minus)
 - select first/last point
 
 All nice in menus and toolbox even!
 
 Patch note: had to fix bugs in using 'continue' inside of while() loops.
 Turned all oldstyle while() in for() for going over lists.



[edit] uv face select

 One of the annoying things in Blender was that the UV Faceselect mode
 immediately forced the object to draw 'Textured', mimicing how the game
 engine could show it. For modeling and texturing workflow not optimal.
 
 UV FaceSelect mode now draws textured & default lighted, if the view is
 set to 'Solid'. Switch view to 'Textured' to see again what the game
 engine could draw (which is using real lamps, and the per-face lighted
 flag).

[edit] weight paint

 - Weight paint options now also show in Nkey panel
 - added uiNewPanelTitle() in interface API to rename panels. In use now
   for the Nkey panel title.
   (Note: original name is identifier, do not change that)
 Vertex/Weight Paint now uses the regular global Undo.
 
 Also cleaned up bad global variable stuff in vpaint.c, now only need a
 good place to store the paint settings in file still...



[edit] mesh editing

 ->Commit of patch #5132: Separate by material
 
 This patch adds a new option to the separate menu in editmode, 'By Material'.
 It simply loops through all materials in the mesh selects the faces associated
 with them and calls separate().
 
 Thanks to Andrea Weikert for the patch!

[edit] misc

 Patch #5091, by Ramon Carlos Ruiz
 
 For numerical pad 2-4-6-8, it adds a step value in degrees in the User
 Presets. Code had to be rewritten some... :)

[edit] border zoom

 Patch #5126 by Ben Stabler
 
 In 3D window, ortho view, you can use SHIFT+B to zoom in to a border.
 
 I've disabled it for perspective, that doesn't work at all with this.

[edit] node

 Patch #5184, Juho V (bebraw)
 
 One liner basically; makes toolbox pop up like in 3d window, if you've
 set it to reveil on holding RMB.


[edit] text

 Patch #5185, Juho V (bebraw)
 
 Convert menu for Text objects (ALT+C) now has option to directly degrade to
 a Mesh.

[edit] materials

 Set the default material preview type to 'sphere' for newly added materials.

[edit] desktop icons

Added a great new set of Linux Blender icons, conforming to the

 freedesktop.org standard.
 
 Many thanks to Jakub Steiner, who created these!
 ( http://jimmac.musichall.cz/weblog.php/Artwork/WarOnBlobs.php )


[edit] misc

binary subversions

 NEW! Subversion control and test for future Blender binaries.
 
 Next to the release code, a subversion number is written in the file
 now. This is in the chunk GLOB, which is now in beginning of file.
 
 Subversions can be used to have finer control over do_versions(), so you
 don't have to wait for a release to patch stuff nicely. We can also
 increase these subversions regularly to denote important changes.
 If a subversion is not 0, it's being printed in the header, so a user can
 also verify the state. (We might even tag cvs for it?).
 
 Next to this, a minimum version and subversion number are written too.
 From now on, if you change files in a way a past binary cannot read this
 nicely anymore, you should set these minima to the current version.
 This was especially added for the new mesh layers, which will not work
 for older binaries once we make 2.43.

[edit] scripts

 request from malefico - select faces based on there weight in the active group.
 Access from the face select menu

[edit] commandline

 Thread support for commandline:
 
   -t <threads>
 
 It overrides the settings as saved in scenes. Only works for background
 rendering, to force thread amounts to match the cpus in system.
 For funny jokers: amount is clipped for MAXTHREADS :)

[edit] Script: UV Export

 * SVG export support (thanks to Jarod's patch in the tracker)
 * Faster tga export (from Jarod's patch too)
 * Fixes from the review thread and the wiki:
 ** No longer adds the extension (tga or svg) if already there
 ** Adds the object name in between the filename and extension (and not after the extension if it was already present)
 ** Renamed options here and there.


[edit] proxy for duplicate groups

 Log:
 Next level of Proxy support for animation: Proxy for duplicated groups.
 
 Notes:
 - Only referenced groups (from other files)
 - Only 1 group (no more duplicates using same group yet)
 - Only Proxy working well for Armature or Empty
 
 Is going to be reviewed in Plumiferos team; but target is that this will
 solve a major animation pipeline bottleneck :)
 
 Usage; select group, alt+ctrl+p, pick an object you want to proxify.
 
 Group Proxy: now drivers from proxy to Shape keys work :)


[edit] new button type

 New 'TOG DUAL' button (for locking bone layers) disabled extend-press
 with shift key.

[edit] referencing

 New rule for append/reference Armature objects: the custom shapes get
 automatically loaded as well.

[edit] Bone Layer

 Bone Layer feature: now also Armature layers have a hotkey menu; Shift+m.
 Note that these menus again react to hotkeys, so making layer 4 visible
 then is Shift+m, 4.

[edit] Hook siblings

 malefico's request when working with many hook objects-
 Select Grouped -> Hook Siblings (Deform Same Data)
 changed select grouped hooks functionality- just select the hooks that use the active object.
 also speed up for select group, only find group status for unselected objects.
 
 Updated the select group menu in 3 places, the space bar menu was out missing some other group options also.

[edit] proportional edit

 * Allow Shift O proportional hotkey to cycle to random mode in 3D view,
 looks like I only got the image editor in previous commit.

[edit] global delete

 Added global delete, triggered with Shift+Del, this removes the object from all scenes (saves searching manually)

[edit] outliner

 * Clicking on a constraint in the outliner now shows object buttons

[edit] drawtype

  • Added a new empty draw type - single arrow. This can be useful in situations
 where you just need a direction, like a wind or vortex force field for example.

[edit] Transform

 Embryon functionnality for snapping.
 
 - Only snaps to grid on translations (grab)
 - Transform constraints are supported but header display is wrong.
 - Can be turned on/off in the Object/Mesh header menu under Transform Properties (tentative spot, will have to integrate better and in other object type menus too)
 - Can be turned on/off during transform with ` (Back Quote, also tentative)
 
 This is, of course, very much Work in Progress.
 
 This implements part of the structural ideas for the transform cleanup I've been juggling around with.

[edit] bones

 This allows to select parent bones in PoseMode and EditMode. Hotkey: P.

[edit] 3D View

 Customizable Grid Subdivisions
 
 This commit adds a numbut to the View Properties panel that lets you specify how the grid is subdivided.
 
 This affects snapping in translations, obviously.
 
 Default: 10 (behavior doesn't change)
 
 That means people still stuck in feet and inches (shudders) can set it to 12 and have 1 unit = 1 foot.
 
 That also means you can work in "heads" when doing body proportions or whatnot (don't think of it as being limite to "CAD" uses).
 

[edit] Compositor

Compositor: the 'File Output' node now has a min/max frame for which it

   writes files
 
 - Compositor: fixed a very bad bug (even in 2.42a release) that made the
   depsgraph for nodes not work... while editing, only the nodes that change
   should be recalculated, but accidentally all of them were done each time.

[edit] compositing curves widget

New Curves Widget option: curves can get extrapolated extension.

 Especially for Compositing it was annoying that colors always got clipped
 in the 0.0-1.0 range. For this reason, extrapolated Curves now is the
 default. Old saved files still have horizontal extrapolation.
 
 Set the option with 'Tools' menu (wrench icon). This is a setting per
 curve, so you might need to set all 4 curves for an RGBA curves widget.
 

[edit] curve modifier

Changed the Curve Modifier to have it's own X/Y/Z axis deform direction

  settings, rather than using the object's TrackX/Y/Z/etc buttons.
 
  This is good for two reasons: a) having the settings over in the object buttons
  before was terribly unintuitive and hidden, now it's more visible how to
  control the deformation, and b) now if you have more than one curve modifier,
  they can have their own settings, instead of being forced to use the object
  level data.
 

[edit] render window zoom with mousewheel and pgup pgdwn

 adds additional shortcuts to zoom on the render window, patch by Onur Yalazi (onuryalazi)

[edit] armature

Added button in Armature options panel to set custom

 bone drawing on/off. Is default on.

[edit] 2.42 Release

[edit] Make Local

"Make Local" menu (Lkey) now has as first option to make only Objects local, keeping all Data stuff (Mesh, Materials) from Library.

The animation stuff on Object becomes local though; - Ipo - Action - NLA

[edit] Union

This commit enhances the support for temporary storage for the structs EditVert, EditEdge, and EditFace. The field "EditVert *vn" has been removed and replaced by a union called "tmp" that can hold:

v,an EditVert pointer;
e,an EditEdge pointer;
f,an EditFace pointer;
fp, a float pointer;
p,a void pointer;
l,a long;

Please see the mailing list post here for more information about this:

http://projects.blender.org/pipermail/bf-committers/2005-December/012877.html

[edit] Orange empties

Display types and variable size for Empties.

New options are in edit buttons for empties to control the display style and the size. New styles are easy to add, too. Just needs useful ideas and minor effort from anyone who wants to.

Support for copying these values has also been added to the Copy Attributes->Drawtype menu command.


[edit] Wave drawing

  • Fixed a few problems with wave drawing-
  • Optimized so only samples inside the screens bounds are drawn.
  • Wave display detail is based on zoom - so you can view realy large wave files as well as indervidual samples.
  • Changed logic so an approximation of the wave is displayed rather then just the symetrical amplitude of the sound. Triangles at start and end were annoying and obscured the start of the sound. made them alpha. 0.7 for sound clips only.
  • a whole CD of music should display well and zoom smoothly now.

Image:Release Notes_Notes242_wave_display.gif

[edit] softbody

 -- fast softbody collision /* caching colliding 

objects & some global bounding boxes */

 -- to compare .. set rt to 666


[edit] hack

 Log:
 yet another temporary strange but straightforward 

hack for a script at orange to work! that is: while

Joseph is working on the actual Constraint API for

bones etc., this allows our armature script to set

influences with a simple call:

armatureobject.setConstraintInfluenceForBone(bonename,

constraintname, influence); fails silently at failure

('cause the c calls used do and no retvals are

checked) and is in the strange place (as the current

api is largely not object level) but works for us for

now (e.g. next few weeks).


[edit] images

 If Images have relative path, and come from a 

library, it uses the library

 path as reference for loading the image.



[edit] memcache limiter

 Adds generic memcache limitor (used by the new 

sequencer to cache

 only a certain amount of frames).

[edit] particle

 Log:
 Appending a single object with particle system, will 

now also expand to

 append its group and objects.
 * If an empty is a forcefield, scale the 3D 

forcefield shape with the empty drawsize

[edit] autosmooth

 Log:
 - Autosmooth now calculates smoothing based on 

original object-space

   vertex locations, not global coordinates. This 

ensures consistant

   autosmoothing for each frame. Also fixes missing 

vectorblur for parts.

   Nice task for a dev: put autosmooth code in end of 

modifier stack... then

   it also shows in 3D window
 

[edit] paths

 - Appending Images now re-assigns relative paths, to match with the file
   as currently being used

[edit] large textures

Interesting commit for artists using huge textures;

 The code that generated mipmaps took a real long time to do it... on a
 5k x 5k image it took here (no optim, debug compile) 32.5 sec.
 
 Recoded the very old filtering routine, which already brought it down to
 2.8 seconds. Then tested if we even need this filtering... in many cases
 the images are painted or photographs, which is filtered OK already.
 Without the filter, the mipmap timing went down to 0.39 second. :)
 
 http://www.blender.org/bf/filters/index1.html
 
 Here's an example of two 'mips' generated with or without gauss filter.
 Note that aliasing in an image remains there... which can be a wanted
 effect anyway.
 
 So; added the gauss filter as option in making mipmaps. Also had to
 reshuffle the buttons there in a more logical manner.
 There's also disabled code in the do_versions to set 'gauss' on in older
 files. Will be enabled during release time.


[edit] Translations

  * Use newest French translation from Erwan Jacq


[edit] misc

 - Improved stats drawing while rendering, it now draws - while preparing
   renderdata -  each second the amount of verts/faces.
   Also while rendering, the amount of finished and total parts are printed.
 
 - Added ESC in loop that generated Group render data
 
 - On deleting Render Layers, the nodes that use them are now checked and
   corrected.
 
 - Restored drawing all scanlines in renderwindow... this wasn't the bug!


[edit] os x icons

 Updated Mac OS X icons courtesy of Erik Mendoza, re. this thread on blender.org:
 http://www.blender.org/forum/viewtopic.php?t=8121

[edit] memory management

 Added new malloc type in our MEM module; using the unix feature 'mmap'.
 
 In Orange we've been fighting the past weeks with memory usage a lot...
 at the moment incredible huge scenes are being rendered, with multiple
 layers and all compositing, stressing limits of memory a lot.
 I had hoped that less frequently used blocks would be swapped away
 nicely, so fragmented memory could survive. Unfortunately (in OSX) the
 malloc range is limited to 2 GB only (upped half of address space).
 Other OS's have a limit too, but typically larger afaik.
 
 Now here's mmap to the rescue! It has a very nice feature to map to
 a virtual (non existing) file, allowing to allocate disk-mapped memory
 on the fly. For as long there's real memory it works nearly as fast as
 a regular malloc, and when you go to the swap boundary, it knows nicely
 what to swap first.
 
 The upcoming commit will use mmap for all large memory blocks, like
 the composit stack, render layers, lamp buffers and images. Tested here
 on my 1 GB system, and compositing huge images with a total of 2.5 gig
 still works acceptable here. :)
 
 http://www.blender.org/bf/memory.jpg
 This is a silly composit test, using 64 MB images with a load of nodes.
 Check the header print... the (2323.33M) is the mmap disk-cache in use.
 
 BTW: note that is still limited to the virtual address space of 4 GB.
 
 The new call is:
 MEM_mapalloc()
 
 Per definition, mmap() returns zero'ed memory, so a calloc isn't required.
 
 For Windows there's no mmap() available, but I'm pretty sure there's an
 equivalent. Windows gurus here are invited to insert that here in code! At
 the moment it's nicely ifdeffed, so for Windows the mmap defaults to a
 regular alloc.
 Log:
 Belonging to previous commit; mmapped memory for large datablocks.


[edit] spotlamps

 Log:
 Adding new SpotLamps should get 'buffers' set to 1. Was in the do_version()
 check, but not in adding lamps... this will fix crashing shadowbuffers.


[edit] bugfix

 Log:
 patch #3830 Fix for commenting a block of text with highlight enabled
 
 Highlighting would not update when you un/commented a block of code.
 Contributed by Ricki Myers (themyers).

[edit] Replacing SDL threads with pthread.

 For some reason I thought SDL thread handling would be much simpler... but
 the migration to posix pthread went very smooth and painless. Less code
 even, and I even notice a slight performance increase!
 
 All threading code is still wrapped in blenlib/intern/threads.c
 Only real change was making the callback functions to return void pointer,
 instead of an int.
 
 The mutex handling is also different... there's no test anymore if a
 mutex was initialized, which is a bit confusing. But it appears to run
 all fine still. :)
 
 Nathan Letwory has been signalled already to provide the Windows pthread
 library and make/scons linking. For MSVC we might need help from someone
 else later though.


[edit] Sofbody bake "Local"

 Sofbody simulation happens in global coordinate space, and this was also
 used for baking softbodies. Too bad you cannot re-use or further animate
 the baked softbody then... :)
 
 If you now use the new "Local" button in the Bake menu, it will allow to
 animate or move the baked object.


[edit] copy autosmooth settings

 New copy option in CTRL+C menu: copy autosmooth settings.


[edit] code cleanup

 Replacing strcpy with BLI_strncpy where it's safe.
 Was part of patch #2840 - thanks Eric Forsythe.

[edit] text editor

 Adds menu item in text editor under format menu to convert whitespace to
 Spaces or to tabs.
 Adds function void convert_tabs(struct SpaceText *st, int tab)
 int tab is eather 0 or 1; 1 if converting to tabs
 I was going to make this auto run when running a script but did not know what that would do to the GE or any thing else.


[edit] move

 Rather then just complaining it cant be done, made M move objects out of the current localview.
 This is quicker then switching to non localview, de-selecting and going back into localview.
   Test by pressing Mkey in localview.


[edit] bake all selected softbody

 Baking all selected softbody: press ctrl+b in 3d window!

[edit] Bugfix

very ancient one even. When you use multiple screens in a project
 with each having different scenes, changing screens didn't call the proper
 set_scene() call, which left quite some stuff improperly initialized.
 
 With depsgraph code even causes crashing.


[edit] grouping

 Improved CTRL+G grouping menu; it now offers a choice to add to any
 existing group, using a 2nd menu.


[edit] nurbs

With the commit last week to have curve bevels nice circular (when no

 front/back is selected), the UV coordinates for curves should also be
 corrected.
 This commit re-uses the same code as for Nurbs, to make sure UV coordinates
 wrap around nicely.
 
 BUT! I've noticed that Daniel's commit of august in this code actually
 broke this UV correction... in his craze to cleanup old code, he missed
 the actual functionality. Meaning that in 2.40 and 2.41, "UV orco" texture
 coordinates wrap around ugly in Nurbs Surfaces, something that was fixed
 in NaN days.
 
 Got no time for tracker now... but I'm sure it's in there! :)

[edit] UV Editor

 Ctrl+RMB in local sticky mode now selects as if in sticky mode. This used
 to work only in non-sticky mode, but now with local sticky as default,
 it's nice to have this functionality working there also.


[edit] security patch #3910

provided by Joerg Sonnenberger on Os X
 file opening


[edit] copy

 CTRL+C copy menu now has "Copy UV orco" for curves/surfaces

[edit] fileseletor

 patch #2554: My Documents and Desktop folder automaticly added to the Folders
 pulldown of the filesector
 
 Only affects Windows builds.
 
 Uses shell functions to correctly get the My Documents and Desktop folders and
 then add them to the fsmenu, right below the drive letters.
 
 Needs shell32.lib linked, which is already linked by default for VS7 project files.
 Platform maintainer please check if it has to be added to scons and MSVC6 project files.
 
 Patch provided by Martin Poirier (theeth) - many thanks!


[edit] paint

 -some knitpicking on low scale brushes
 -- should do 'alpha' right now ..  down to brushes of 2 pixel size
 -making AUX1/2 real air brushes .. must have been lost by brechts 

'cleaning'


[edit] vertex paint

 Added better safety in vertex/weight paint, so it survives painting 

outside

 the window edge. Also did a paranoia larger memory allocation... weird
 reports I got.


[edit] Vertex Paint Blend Modes

Added lighten/darken paint modes, works in vertex paint mode and weight Usefull for painting in areas with ~0.5 values without overwriting existing 1.0 weights.

[edit] brush hotspot

 Log:
 Moved to brush cursors hotspot to be at the tip of the brush.


[edit] paint vertex clear

 Log:
 Made vertex clear work for selected faces from the menu, to be the same as 

Shift+K.

 Also makde Shift+K work in weightpaint mode.


[edit] library

 Log:
 Tweaked library link/append rules for groups a bit further;
 
 - append group: appends group + puts objects in scene
 - link group: only links group, doesn't put objects in scene
 
 - append particle system with group: appends group + objects in scene
 - link particle system with group: only links group



[edit] paint

change CKEY to toggle paint on or off in image paint patch by Stephan Kassemeyer

[edit] fonts

New option for convert-menu font->curve: "Curve (Single filling group)".

 Since the text-object remake, it was not possible anymore to 'cut out'
 text from, say, a box made by a polycurve, by converting text to curve
 and then joining - only the first character would be cut out.
 
 This is because of the filling groups (nu/dl->charidx)
 I introduced for getting the vast speedup and the possibility
 of overlapping characters.
 
 The new convert menu option now assigns filling group 0 to all of
 the nurbs generated.
 
 Maybe filling groups should be exposed in the UI in general for curves -
 there are various occasions where they are useful.
 
 (Hint to the UI mafia! ;)

[edit] translations

 update to the italian translation, thanks Gianluca Faletti and the other translators


[edit] modifiers

Basic support in modifiers_isDeformedByArmature for multiple armatures per mesh- use Selected armature object first, if no armatures are selected then return the last/only found armature.

[edit] recent files

 Log:
 As nobody else ever felt like doing it, and I work too much with official
 CVS these days in order not to be terribly annoyed by its absence, here it
 is: instinctive-blender's "Recent files list".
 
 It's in the CTRL-O menu. No UI / muscle memory changes -- the first entry is
 the same as the only entry that used to be in the former popup.
 .

Contents