Now, there are preset brushes made for each tool type (eg. for sculpt mode, Grab,
Draw, Inflate, etc), and the recommended method for changing sculpt tools is to
change between Brushes. The shortcut keys for changing between tools have
now been changed to change between named brushes - the G key in sculpt
mode now changes to any brush named 'Grab'.
The advantages of this are:
* Changing between brushes remembers the strength/size/texture etc settings for
each brush. This means that for example, you can draw with a strong textured
Clay brush, but then switch quickly to a weaker, untextured Smooth brush,
without having to re-do your settings each time.
* You can now add your own custom shortcut keys to your own custom brushes -
just add a keymap entry similar to the existing ones, that references your own
custom brush names.
To bring over these new default brushes to an existing B.blend setup, just
append them in from the new B.blend in svn.
* Moved 'change shortcut' (previously directly RMB on menu items) to a context-menu item, and added Remove Shortcut and Add Shortcut. This is all available now in a RMB context menu for operator buttons and menu entries.
* Renamed a bunch of key maps to be consistent with UI names, and human-readable. Since these key map names are now being directly used in the UI for people to find things, they should be understandable and in plain language.
This renaming may break some older saved key map setups - though previously saved .b25.blends should convert over ok. Exported .py files may need some find/replacing - in this commit check the changes in resources.c to see what's changed.
- ToolSettings had its id.data set to NULL when taken directly from the context (causing a crash in cases)
- menu for changing vert/edge/face selection now a python menu, removed operator.
- wm.context_set_value(), would really prefer not to have this since it evaluates the value as a python expression however there are no ways to define arrays in PyOperators
Mostly the same as the recently added editmode tool with some extras.
* Options to disable filling in the rim between inner and outer surface, since its faster not to detect this in cases where its not needed.
* Option to disable high quality normal calculation, mostly noticable when operating on building walls, not needed for cloth or more organic shapes.
* Option to disable 'even thickness', again, not needed in some cases.
Also options for creasing inner/outer and rim edges, need this for makign Sintels cloths solid since zero crease looks far too soft.
note:
* UVs and VCols etc are copied to the new skin however rim faces dont get the UVs or vcols set from the faces they are created from yet.
* Normals are assumed to be pointing outwards
* used patch from Uncle Entity as a template since it added the DNA and RNA entries but the actual modifier from the patch wasnt used.
Takes into account the hierarchical structures of keymaps as well as wildcards (KM_ANY) in event definitions, user remaps (emulate numpad, action/select mouse buttons, ...) and event values that overlap (click, press and release)
For now, doesn't do anything other than print conflicts in the console.
As a result, I cleaned up a lot of keymaps that had double definitions, moved some keymap items in more appropriate places, fixed wrong definitions and removed kmi that were added for testing a long long time ago.
Out of all the remaining conflicts, after removing obvious non-issues, here's what remains: http://www.pasteall.org/9898
New unique ID per keymap item (unique inside their keymap) for default and configuration keymaps.
This allows restoring a single user defined kmi to its previous (default or config) values instead of having to restore the whole keymap.
The restore item button is disabled for kmi added by the users (they don't have an ID).
Also fixes a bug in the rna function for add keymap item (parameter order was incorrect, messing adding back saved configurations).
Currently access by selecting a marking and binding with the active camera from the view menu.
Note:
after long discussion we decieded there is no nice way to do this.. animate pointers? animate multiple camera visibility?, use sequencer? use NLA?.... have a kind of event system (like framechange scriptlinks)... etc
so this is ifdef'd with DURIAN_CAMERA_SWITCH
Now the key maps are displayed in a hierarchical list which you can
browse through. As well as in the main list, modal key maps are also
available in context, for example, if you unfold out a Transform key
map item, you'll be able to fold out and access its modal key map underneath.
More work to do, including search, better operator browsing, etc.
Still need to revise the ordering/hierarchy and clean up naming to be
consistent too, it's a bit of an 'evolved' mess right now.
Thanks to theeth for some initial work here too.
Separated preview drawing into own ARegion, this should make using View2D possible
The Sequencer now has three view types: Sequencer, Preview and split Sequencer/Preview.
Changing the preview can be done either by the combobox in the header or toggling through those types with CTRL+TAB.
Notes:
* Icon for split Sequencer/Preview view missing still.
* Naming items in the comboboxes can be improved (just Preview instead of Image Preview?)
Next steps:
* bringing back View2D handling (zoom/pan) for image preview
* experimenting with splitting the Preview ARegion for In/Out editing
* option to roll the delta of the arm rig.
* fix to copy metarig type
* renamed EditBone.align() --> EditBone.align_roll()
* Added EditBone.align_orientation(other)
* Added bone.vector: same as (bone.tail - bone.head)
* Added a User-Pref option for the "XYZ to RGB" colour-mode setting for new F-Curves to compliment the one used for Keying Sets. With this option enabled, the builtin Keying Sets also can obey this option.
* Made all places that were previously manually checking the flags for keyframing to use a standard API function to do this now.
* Fixed bug introduced earlier today in commit 25353 by reverting the changes to keyingsets.c. Forgot that delete_keyframe doesn't handle do the "entire array" hack with array_index = -1
* Fixed bug with the insert-keyframe code for the array_index = -1 case, where too many channels were being keyed (i.e. an imaginary channel was often keyed in addition to the valid ones)
On ubuntu/debian install these tools...
sudo apt-get install pylint pyflakes python-setuptools python-pip
sudo pip install pep8
then run from blenders source dir...
python release/test/pep8.py
This searches for the comments "# <pep8 compliant>" and "# <pep8-80 compliant>", running the checking tools on these scripts only.
* some minor pep8 corrections too.
Removed the Start/End Settings and the effect_fader from the sequencer transform strip.
The transform strip can now only be animated directly by keying the Scale X, Scale Y, Translate X, Translate Y and Rotation values.
Caveat:
The uniform scale re-uses the Scale X value, so when changing the animation on Scale X in the non-uniform scaling case, the uniform scaling will be affected too. This was done to not break files for Durian.
Note:
As much as I would have liked to clean up the TransformVars, it caused crashes of earlier versions of blender when opening the file.
The rna identifiers were also kept as to not break any existing animation on those keys.
http://www.blender.org/development/release-logs/blender-250/sculpt-and-multiresolution/
Release logs are work in progress, also check missing items on that
page, there's still a few things that need work.
Quick summary of the changes:
* Use BVH for optimizing sculpt mode, doing only editing and updates
on nearby nodes.
* Memory reduction by use of CCG grids for subsurf, own undo stack,
no vertex-face map, no origindex, .. .
* Multithreading for sculpting, multires, and subsurf.
* Optional external file storage for multires displacements.
* Various tweaks to brush behavior.
* Made the TimeLine current frame indicator get drawn using the standard frame-indicator code. Also, it is now possible to show the frame indicator box beside the line as in the other animation editors, although this is disabled in the timeline due to the closeness of the frame number field.
* Removed some old (unnecessary) code
-> "Continue Physics" option in TimeLine, which is now obsolete with the current physics options. Feel free to restore if this is not the case.
-> Already commented out hacks to create "speed ipo" for curves. There are easy alternatives that are better integrated.
-> Unused init/exit callbacks for scrubbing time, since those were only used to set an obsolete flag for timeline drawing that is now used for the indicator.
* Switched long-keyframe optimisation code to use constants instead of some magic numbers + fancy trickery...
customisable player.
You can choose a player in User Preferences -> File Paths. You can
choose a plan custom command line, otherwise there are presets available
for the Blender 2.4 player or DJV (where it will give it the correct filename,
fps, etc on the command line). So for example if you have a Blender 2.4
version installed, you can enter the path to the blender 2.4 executable,
and the playback will work just like before.
Any info on other frame players (FrameCycler? pdplayer?) and their
command line settings could be useful for adding some more presets too,
if anyone knows of them.
It's available in Render->Play Rendered Animation (Ctrl F11)
[#20336] Missing notifier - properties view does not update on UV unwrap
[#20337] Shift select is not working in UV-editor island mode
[#20338] Update automatically menu item has strange icon behavior
[#20339] Select all will quit working in UV editor
Revised external multires file saving. Now it is more manual in that you
have to specify where to save it, like an image file, but still saved at
the same time as the .blend. It would ideally be automatic, but this is
difficult to implement, so for now this should at least be more reliable.
Added option to KeyingSets+Keyframing Functions which makes newly added F-Curves for Transforms + Colours to use the colour mode which uses the array index to determine the colour of the F-Curve.
The main implication of this is that when this option is enabled for a KeyingSet, all sets of XYZ F-Curves (i.e. location, rotation, scale) for transforms will be shown in Red/Green/Blue instead of some automatically determined "rainbow" colour. Useful for animators far too used to Maya's Graph Editor :P
This setting is named, "XYZ to RGB", though that doesn't make its purpose entirely clear.
* added default_fader to transform strip, since it used the old fac too.
* removed ANIMATEABLE attribute from the settings in the transform strip, since they are animated via the effect_fader and not directly for now. (too confusing)
* UI: only show default_fader for the effect strips that support it
Sequencer Durian feature: uniform scale for Sequence transform strip.
* for now re-using variable for x-axis scaling.
Note: This brings back functionality as close to 2.49 as possible. The Start and End values in the current design are not meant to be animated directly, but via the effect_fader.
* Massive Code Cleanup, still not "Layout Code Guidelines" conform, but much better.
* Commented out buttons that don't work yet, like translation buttons.
* Some minor shuffling around of buttons in "System" Tab. William: Feel free to modify that, still some room for improvements. :)
Now, temp screens are hidden from being accessed directly, with a new 'Back to Previous' button appearing in place of the screen menu when (for example) fullscreen render image areas are present. Window type menus also get disabled here too, to prevent things from getting too mixed up.
1. MSVC 9 projectfiles update (graph_header.c, action_header.c and nla_header.c removed)
2. Fix for opening the filebrowser when saving file for the first time (untitled.blend) from file menu
3. Add CROSS effect sequence type back to menu. (Durian fix)
Note: Removed SEQ_EFFECT from rna, since this no actual sequence type, but rather used to check for the effect bit.
* Don't allow adding/removing multires levels in editmode.
* Customdata code for swapping mdisps restored.
* Fix inflate brush crashing with multires.
* Smooth and layer brush don't work yet with multires, but at
least avoids crashing now.
* Fix threading issue with flatten brush.
* Make partial update work again for faster editing.
* Draw parents over children again, nicer for editing.
* Fix crash with remove tools & showing child particles.
* Fix children not disappearing always when setting to None.
* Fix wrong normal for last point in child path.
* Fix a python error in the hair dynamics panel.
Brecht, I added a Layout template function, template_dopesheet_filter -> uiTemplateDopeSheetFilter, this creates the group of buttons for filtering ID type (and some other options) for animation editors (Graph, NLA and Dopesheet). I hope this is all right, if not, we can move this maybe to a .py file as a function for reuse.
Don't use passes anymore for indirect lighting, people were using this
probably thinking it would do bounces, but that's not the intention of
this feature, it is to reduce problems with light bleeding. I want to
remove this option for AO as well, but will leave it in for now until
there is a better alternative.
Added bounces option for indirect, could be implemented much better,
but perhaps useful for testing now. Existing files need to set this to
1 to get the same results again.
After testing and feedback, I've decided to slightly modify the way color
management works internally. While the previous method worked well for
rendering, was a smaller transition and had some advantages over this
new method, it was a bit more ambiguous, and was making things difficult
for other areas such as compositing.
This implementation now considers all color data (with only a couple of
exceptions such as brush colors) to be stored in linear RGB color space,
rather than sRGB as previously. This brings it in line with Nuke, which also
operates this way, quite successfully. Color swatches, pickers, color ramp
display are now gamma corrected to display gamma so you can see what
you're doing, but the numbers themselves are considered linear. This
makes understanding blending modes more clear (a 0.5 value on overlay
will not change the result now) as well as making color swatches act more
predictably in the compositor, however bringing over color values from
applications like photoshop or gimp, that operate in a gamma space,
will give identical results.
This commit will convert over existing files saved by earlier 2.5 versions to
work generally the same, though there may be some slight differences with
things like textures. Now that we're set on changing other areas of shading,
this won't be too disruptive overall.
I've made a diagram explaining the pipeline here:
http://mke3.net/blender/devel/2.5/25_linear_workflow_pipeline.png
and some docs here:
http://www.blender.org/development/release-logs/blender-250/color-management/
This brings back the single bounce indirect diffuse lighting for AAO,
it's not integrated well but that will be tackled later as part of
shading system refactor and subdivision changes. The caveats are the
same as AAO, with one extra thing, the diffuse lighting is sampled once
per face, so it will not be accurate unless faces are subdivided.
I'm committing this now so we can start testing it for Durian, and
since changes need to make it work properly are planned.
2. Add action parameter to Select_All_Toggle operators, rename to Select_All.
Options are Toggle (default), Select, Deselect, Invert (same as select swap). This makes it possible to map separate hotkeys for select all and deselect all.
NOTE for Aligorith: I didn't change animation operators for select_all which already had an Invert operator. These should be fixed eventually.
Brought back default effect fading: (adding a wipe effect makes it
wipe by default for the length of the strip)
First round in upgrading IPOs from older versions. (works for non-IPO
case now and sets at least the new "default effect fade"-flag)
Still non-working for old IPOs, since Sequence-Strips aren't real IDs!
And: non-frame-lock case should stretch the FCurve to the right length!
* Moved more of 3dview header to python
* Fixed the layout of the ui layers template to show the correct number of buttons
* Added support for layer icons (active layer, used layers)
[#20123] "Import" menu entry becomes empty
[#20141] In Object menu Make Links appears twice - SVN 24970
also moved OBJs name cleaning func to bpy.utils.clean_name(name, replace="_")
* Now support a Surface mode next to the existing Volume mode. This binds
the mesh to the cage mesh surface rather than it's volume.
* Implemented reusing the bone heat weighting code.
* Advantage is that it works for cage meshes that are not volumes and that
binding is much faster.
* Weak point is that disconnected components of a mesh are not guaranteed
to stick together (same problem exists with bone heat weighting).
* Bind weights could still be compressed better to use less memory.
Example file:
http://download.blender.org/ftp/incoming/cloth_mdef_surface.blend
* Dolly zoom Vertical/Horizontal switch
Changes between using vertical or horizontal mouse movement for zooming
* Invert Zoom Direction
Inverts the vertical or horizontal mouse movement for dolly zoom
Available in object mode (Object -> Join as Shapes), only works for meshes at
the present. Will merge all selected objects as shape keys on the active object,
if the vertex count is the same.
This does not keep references to the external objects like in some applications,
rather it's a quick way to update the shapes on the active object (perhaps after
importing new versions from external applications).
Renaming "Sync Audio" to "Realtime Playback" to make it clearer about its purpose. Internally, it's still called "sync_audio" since that's strictly what it represents, but that could be changed later if there is a need.
This contains two entries - one which calls the region flip operator, and one which calls the maxmize area operator.
Unfortunately, there seem to be some context issues which are causing the wrong region to get activated for use by the region flipping, meaning that nothing happens.
Also, fixed own typo in 3d-view header/menu code...
* This is experimental, the file format may change still!
* Helps reduce memory usage, keeps .blend files smaller, and makes
saving quicker when not editing multires.
* This is implemented at the customdata level, currently only the
multires displacements can be stored externally.
ToDo
* Better integration with object duplication/removal/..
* Memory is not yet freed when exiting sculpt mode.
* Loading only lower levels is not supported yet.
the To Do was more like self-remaining since no one else is currently working with stereo :)
I will get back to that once 2.5alpha0 is out. In the mean time let's have a cleaner interface.
- remove functions such as operator_int(), operator_enum(), operator_string
this mixed with keyword arguments in a way that made them hard to read.
Instead, have operator() always return properties rather then needing an argument.
- rename prop_pointer() --> prop_object(), pointer is more a C thing.
- missed item_enumR(), rename to prop_enum()
* Restored Center View to 3D Cursor. For now, I've mapped this to QKEY since all other nice combinations of CKEY have been taken now.
* Fixed bug introduced in commit last night where parenting lattice to armatures with deforms would no longer work.