drawing strips was setting the depth that would then incorrectly overlap when used with metastrips. - so metastrisp would grow when moved - showed up in peach animatic.
Now metastrips draw display differently- only immediate children are shown on the strip.
Also disabled overlap checking during transform for non zero depth strips since its not needed.
Changed the way the offsetting of pasted keys relative to the current time works. Now, all pasted frames are offset by the same amount. This is calculated as the difference in the times of the current frame and the 'first keyframe' (i.e. the earliest one in all channels to be pasted). The 'first keyframe' is found when doing the copying.
* Wrong selection functions were being used for borderselect when handling groups. This resulted in all of the keyframes for a group getting selected
* Select row was not working for groups either, as there was missing code there...
I'm committing some work-in-progress code for "bone groups" now, as I there have been are some major bugs caused by the timeoffset stuff (some of my test files were not loading, and other files were showing all sorts of weird problems).
Anyway, in this commit, the following things for "bone groups" have been done:
* Bone groups are stored per armature (internally, this is per bPose block)
* Added controls for editing bone-groups per armature - "add", "remove", "rename". These can be found in the "Links and Materials" panel in PoseMode, beside the settings for PoseLib.
* Reorganised buttons for editing selected bones in PoseMode. I've replaced the "dist" and "weight" buttons (they existed in EditMode anyway) with a menu to choose the bone-group and the custom-shape-ob field. In the place of the old custom-shape-ob field, I've restored the "Hide" button. This might break muscle-memory a bit, but there isn't a lot of space to play with there.
Some stuff I'd been originally planning to do before committing:
* When adding keyframes for bones, an action-group with the same name as the bone's group will be added to the action, and the action-channel will be made a member of that.
* New action/bone groups have unique names (renaming/adding new should check if name exists before assigning it)
* There's a setting under Bone-Groups stuff which sets which custom-colour set is used to colour that group's bones. Currently, this is non-functional, as the necessary drawing code for armatures is not in place yet.
This is actually just the alpha value as currently being calculated
by the mist code. It is in many cases not very useful to have this as
alpha in shading result, also for postprocess and composite.
Note: this pass also works with "Mist" not set in World, of course.
Now action-group channels are drawn with a green-ish strip background instead of the usual colours to help distinguish them from other channels, making it easier to identify them.
Now, you can assign Action Channels to named (folder-like) groups, which help to organise the channels (important for more complex rigs). These are collapsible, can be "protected", and show a "summary" of the keyframes in the channels the Group contains. They are drawn as bright-green (active) or a darker shade of green (not active) channels.
* Each Action has its own set of Groups.
* An Action-Channel can only occur in one Group at a time. It can also not occur in any group.
* Action-Channels can be moved between Groups
* Groups + grouped-channels always occur BEFORE un-grouped channels
Important Hotkeys:
* Shift-G : Adds the selected Action-Channels to the Active Group. This will create a new group if need be
* Ctrl-Shift-G : Always adds a new group, and adds the selected Action-Channels to it
* Alt-G : Removes selected Action-Channels from their groups
* Ctrl-Shift-Alt-G : (Note: this will be removed soon) This is a simple debugging-hotkey I added, which just prints a list of the groups, channels, and their addresses...
* NKey / Ctrl-LMB: While hovering over the name of a group, this shows a popup like for other channels, which allows the editing of the channel's name, etc.
Assorted Notes:
* Some tools may not work yet with this (Ctrl Numpad+/- for example)
* Fixed some bugs in various places in Action Editor code
* Added theme colours for group channels
* The nomenclature of these tools may change in future when a better alternative is found
* The ability to auto-assign action-channels to groups when they are keyframed will be coming up shortly
=============================
A new approximate ambient occlusion method has been added, next to the
existing one based on raytracing. This method is specifically targetted
at use in animations, since it is inherently noise free, and so will
not flicker across frames.
http://www.blender.org/development/current-projects/changes-since-244/approximate-ambient-occlusion/http://peach.blender.org/index.php/approximate-ambient-occlusion/
Further improvements are still needed, but it can be tested already. There
are still a number of known issues:
- Bias errors on backfaces.
- For performance, instanced object do not occlude currently.
- Sky textures don't work well, the derivatives for texture evaluation
are not correct.
- Multiple passes do not work entirely correct (they are not accurate
to begin with, but could be better).
Lampbuffers require painful bias tweaking (to prevent aliasing or to
get shadow detail). Sometimes you want this different per object, like
for gras you want less shadow detail, but for the ground you want high
detail. This feature allows to tweak it.
The new "LBias" slider is in shader panel, bottom. Ugly! But, thats for
later...
- Keyed particles work again for all visualizations (previously only "path"), they still need some work though to be fully operational.
- Keyed particles weren't saved or loaded correctly.
It seems everytime I try to fix something here I break something
else, but anyway, another try at getting this to work properly.
Fixes for:
- Getting dupliverts/faces derivedmesh with orco caused wrong results
on meshes in linked dupligroups with proxy, because modifier stack
was revaluated with wrong object matrix, now gets orco another way.
- Fix render instances being hidden when original object was not added
to the object render list.
- Changed the way object instances find their original objects, now
works the other way around, original objects look for their instances
instead.
There's probably issues still with recursive dupligroups..
* Generalized the interactive brush property control from sculpt mode into a simple API
* Modified sculpt mode to take advantage of this (even fixes some minor bugs!)
* Added shortcuts in particle edit to set brush size/strength (FKEY/shift+FKEY)
Still todo are the other modes that have brushes...
----------
Added RenderData.activeLayer attribute, lets user access the active
rendering layer. Also corrected description of RenderData.freeImages
attribute.
Note: doesn't seem like there is any support in the python API for accessing
the renderlayers settings....
- while sampling color in image window, you now get the sampled color as a line
drawn in the node editor Curve nodes, allowing quicker view of what values you
actually change.
- reverted temporary the patch [#6779] by Matthew Plough
He replaced image drawing of backdrop-node-editor with our Texture drawing
function. That call is extremely slow, and should be by definition slower
than glDrawPixels (unless you don't upload the image each time to gfx mem).
Drawing large frames (2k, 4k) in node editor became unacceptable slow, even
with the neatest hardware around. (tested nvidia, ati)
Probably (Campbell thinks) this is a bypass for Linux ATI cards?
Anyhoo, this should be investigated further before applying. It better then
becomes a user pref, or even much better: part of the OpenGL profiler we need.
Newly added strip->scale was never initialized 1.0f on adding, causing
divide by zero in NLA/Action UI.
Bug since september or so... is nobody using NLA? :)
Now, the Limit Scale Constraint can be made to work on the Transform values like the Limit Location constraint. Use the "For Transform" button to activate.
For clarity, this means that when scaling with a Limit Scale Constraint with this option on, the relevant values in the Transform Properties will stop changing once the Limit defined in the Limit Constraint is reached.
Removed a pair of uiPanelPush()/uiPanelPop() calls from the Transform Orientation panel, which were causing minor redraw/refresh problems for the panel's buttons here.
Snapping for object mode
Changes:
- Transform snap now working in object mode and not just mesh edit mode
- Shift-Tab can be used to toggle snap on/off inside transform too (no more Esc,toggle,restart)
- Object mode snap: Closest uses the bounding box corners of all selected objects, Median uses object center and Center uses transform center (same as edit mode).
- Object mode snap: all visible meshes can be used to get the snapping point (unlike edit mode snap which is limited to selected mesh: this might be adjusted to make edit mode snap use all visible too).
To Do:
- Add "Active" snap target method: use active object (or mesh element) as snap target
- Add snapping capabilities to Scale
- (Maybe) Add "Near pointer" snap target method: use selected element that is closest to mouse pointer as snap target. Active could probably accomplish that already in a less confusing manner, so I might skip this.