Age | Commit message (Collapse) | Author |
|
shadow drawing fix also affected 3d view opengl render, hiding armatures,
now there's separate flags for it.
|
|
Submitted by: Teppo Kansala (teppoka)
See patch report for details of fixes.
https://projects.blender.org/tracker/index.php?func=detail&aid=17500&group_id=9&atid=127
Note: the patch submitter's test files were quite nice, and would be good to have in our regression suite.
|
|
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:
* GLSL support in the viewport and game engine, enable in the game
menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.
* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
An extra texture slot shows up once the last slot is used.
* Memory limit for undo, not enabled by default yet because it
needs the .B.blend to be changed.
* Multiple undo for image painting.
* An offset for dupligroups, so not all objects in a group have to
be at the origin.
|
|
were set to posemode in their scene.
|
|
|
|
|
|
Now it is possible to define a custom colour set per bone group. This allows rigs to look consistent across different computers with different themes. As such, the bone-groups buttons have been reshuffled to present the settings in a better way.
Colour sets are now selected from a menu with descriptive names, instead of using a slider. Choose the 'Custom Set' entry to use a custom set of colours for the active group. The sets of theme colours have been retained, and can be used directly, or as the basis for a new custom colour set (when any one of the colour controls is touched).
For bone-groups that haven't had any custom colour set used yet, a default 'test' set is used. This uses bright versions of the RGB colours.
|
|
Bones drawn using this mode can now be selected, and are drawn correctly in envelope mode. This may draw a bit slower, as it is done in a separate mode.
|
|
* Action Editor "Open/Close Level" now works with Action Groups. Groups have priority over Action Channels for collapsing/expanding.
* Custom bone shapes using the new 'wire' option, were drawing with the wrong wireframe colour at times (i.e. when out of posemode, this happened quite often).
* Fixed/added a few comments in various places
|
|
regardless of whether 'Relationship Lines' has been enabled for the view, if the IK-chain was temporarily added for Auto-IK. This is so that it is possible to see the length of Auto-IK chains.
|
|
In production rigs, such as those for Peach and Plumiferos, custom bone shapes are often simple wireframe shapes (formed with a single line). These are only visible when the armature's drawtype is Wire, which means that this drawtype must be used for the display of those bones. On the other hand, 'normal' bones must also be drawn as wireframes.
I've added a small toggle beside the field for the name of the object to use. This is marked 'W' (this is not great, but it'll have to do for now).
When activated, that bone's custom bone shape will always draw as a wireframe. As a result, the armature's drawtype doesn't have to be set to 'Wire' to see these bones.
|
|
Line-bones without any constraints-colours/custom-colours were being drawn the wrong colour (i.e. they insides were drawn black)
|
|
Keyframes are now checked for whether they are visible or not before they are prepared for drawing. This should provide some improvements for large data-sets...
In general there don't appear to be any major issues, although in a few situations, long-keyframes may end up appearing/disappearing.
|
|
This commit introduces the ability to give groups of bones different colour-sets, which enables them to be more easily identified in the 3d-view. Currently, custom bone colours have been implemented as a way to visualise bone-group membership (after all, colours and groups are both just ways of managing bones).
Usage Notes:
* Each theme currently has 20 Color-Sets available for Bones.
These can be accessed from the "Bone Color Sets" option under the Theme buttons. (Note: currently, I haven't defined any default colour-sets. Donations welcome on this ;-) ) As such, colour sets are not saved per file! You will need to save the theme to preserve the color set for the next session.
* Each Bone-Group can use any one of these 20 sets, or just use the default colour-set.
Use the "GroupCol" button to set this. When a set has been chosen, three little rectangles are drawn beside the button to preview the colours the set provides.
* A bone must belong to a Bone-Group to get that group's colours.
* "Colors" toggle on "Armature" panel must be enabled for these custom-colours to be shown for all bones that can have them.
This toggle is off by default, but is there to allow rigs to be debugged (by colours) for example.
* The "Use 'Constraint' Colouring" option (per Colour Set), determines whether the colours denoting presences of constraints, ik, or keyframes are drawn in conjunction with the custom colours. It is off by default, as in many combinations, they look quite ugly when used in conjunction with custom colours.
* Custom colours are only shown in PoseMode
Assorted Notes:
* I've tested this thoroughly, and there shouldn't be any problems caused by this.
* In the process, I found a bug with envelope bone drawmode. In wire-frame mode, all bones got scaled up by several types.
* I've cleaned up the armature drawing code a bit (mostly fixing messy white-space usage), but also creating a centralised method of setting colours for bones (currently only used for bones in PoseMode).
|
|
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.
|
|
ghosting. Also general code tidying in editaction.c
|
|
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.
|
|
* "Show Keys" - increased the size of keyframe dots once again (now 5.0).
* WKEY (specials menu) - still used "Clear All Paths"
|
|
|
|
"Show Keyframes" option for Bone Path Drawing was broken. It seems that I forgot to update this code when the Action Editor's drawing code went from using CfraElem structs to ActKeyColumn structs for storing keyframes for drawing.
Also, now Keyframe dots on the path are drawn slightly larger to make them stand out more.
|
|
Bugfixes:
* "Clear Paths" change from last commit wasn't complete yet. Now it REALLY only clears the paths of the selected bones
* Button layout in "Armature Visualisation" panel has been reorganised a bit to better present the options (clearer separation between Display and Calculation buttons)
New Stuff (Yay!):
* Paths of active bones now draw more visibly than those of unselected bones. This makes it easier to identify the path that is taken by the bone
* The part of path on the current frame is now drawn in green (the same shade that is used for the current-frame line in the Animation Editors). This nicely blends between the black and blue parts of the path (before and after current frame, respectively), and looks much nicer.
* The colour of the current-frame marker in the Animation Editors and the 3D-View, are now theme-colours. This is needed to make the previous option work.
|
|
* "Around Current Frame" option now works differently. When this option is activated, the path range calculated remains the same (PSta -> PEnd), but only PPre and PPost amount of path-points on either side of the current frame get shown. This is less clumsy to use, and looks quite neat!
* "Clear Paths" now only clears the paths of the selected bones, not all bones. The old behaviour can still be obtained by selecting all bones, but previously there was no way to only clear paths of selected bones.
* Own fix: path colours are now drawn less saturated, as they were showing up TOO strongly.
TODO:
* Fix up interface for "Around current..." option. It's quite confusing atm.
* Selective recalculation of path on certain operations could also be investigated further...
|
|
Peach Request: Bone path lines are now drawn using two colours to show the parts of the path before and after the current frame. Those before the current frame are drawn darker, while those after are drawn in a blue colour.
|
|
* Added a new option to only calculate a certain number of frames before/after the current frame instead of defining a frame range. This is useful in certain cases on longer timelines, to be able to view the paths for certain regions quicker.
* When inserting a keyframe, if a bone already has path drawing on, the path for that bone will get automatically recalculated. More testing is required to see if there are any more cases where this would be useful. Also, a global setting to turn this on/off would be a good idea.
Todo (requested but not yet implemented):
* Parts of path before/after current frame could get drawn with different colours
|
|
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.
(peach feature request)
|
|
Submitted by: David Bryant
This patch adds 2 new drawtypes for empties (circle draws a 2d-circle on the x-z plane, and cube draws a regular cube), and allows empties to be used as custom bone shapes.
I've modified the patch a bit to fix up weird formatting, optimising the circle-drawing method, but the cube-drawing function has been maintained. In the process, I also moved the mesh-specific code in draw_object_instance to draw_object_mesh_instance so that empties can be used by whatever else might use draw_object_instance too.
|
|
uses OpenGL displaylists.
|
|
I've always found it hard to see the armature bones in 'Line' mode that don't have any constraints/ik/keyframes/etc. colour indications as they were set to the colour of the background. This tweak makes these particular bones draw slightly darker than
the minor-gridlines in the 3d-view, but not as dark as the major gridlines.
|
|
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
|
|
OpenGL functions.
|
|
This adds a little paranoia check for some values used by path drawing
which may be uninitialised in older-files causing an infinite loop.
|
|
Now, when several highlighted points on the path occur at the same place
(i.e. when there is a pause) only the first frame number when this is the case
is drawn. This results in less overlapping frame numbers (causing an unreadable
blob of digits)
|
|
The Plumiferos Team have requested some improvements to the
ghost and path drawing tools for armatures. These changes make
these more useful, with more customisable settings. A new panel in
the editing panels for armatures has been added to house these
settings.
-> Ghosts
In addition to the existing method of showing ghosts either side of the
current frame, it is now possible to show ghosts from a given frame range.
This is useful for visualising how the poses in another part of the animation
changed, while editing another part. The colour of ghosts goes from light
(earlier on) to darker (later on).
-> Paths
Several new options for path drawing have been added.
* It is now possibly specify a frame range in which to calculate paths too.
This offers speedups for longer timelines as a shorter span of time can be
sampled.
* Keyframes from the active action/action strip can be shown in a different
colour (in the default theme, this is yellow) on the path.
* Frame numbers for the highlighted positions on the path can be drawn.
Two notes of caution:
* For ghost range: keep the frame ranges relatively small (20-50 frames),
otherwise you will experience a slowdown.
* For path frame numbers: if you have a graphics card which is picky about
text in the 3d-view (like x,y,z labels on empty), this may cause issues.
|
|
Dupli-group, with armature in PoseMode, made selections not work.
Weird that this wasn't reported before :)
|
|
bone drawing on/off. Is default on.
|
|
This is using instructions from Ton, so hopefully the implementation is ok.
This is really needed here where we are using all sorts of wacky scales, and
empties look too big or too small. Of course we don't want to scale the
empties because there are often things parented to them.
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.
|
|
'relationship lines' - i.e. the dashed lines that connect objects in parent/constraint/hook/IK relationships. After talking to the others I rolled the Armature-specific one into the same setting for simplicity's sake. We can see how it goes, always possible to put it back.
|
|
locked length should not skip hidden channels.
|
|
- follow path constraint + stride path didn't update correct on file load
- selection of 'stick' bones didn't work in object mode, solid view
- change bone layer sends redraw to NLA too
|
|
Was too ugly! :)
|
|
didn't draw in solid.
|
|
In Armature Pose-bone panel, the 'hide' button got replaced with a button
where you can type (TAB complete works) a name for a Mesh Object. It then
draws that Object instead of the indicated bone drawing type.
Fixes for bone layers:
- Akey in Editmode didnt work proper (now deselects all non visible bones
too. selection for editmode works on the vertices, not bones...
- Snap in Editmode now respects layers
|
|
Works like for Object layers, but local within Armature itself. Each Bone
can be in (16 now) any layer, and the Armature layer defines what is
visible or not. Also note that hiding will still work too.
Since the Blender code is *stuffed* with Bone options now, this commit
requires a good test if all tools we got now comply to layers...
(I counted 130 cases for checking for selected Bones in code!)
In PoseMode; hotkey M will show 'movetolayer' menu. Not in editmode...
then its the mirror menu.
Todo: make action/nla drawing comply to Armature layer settings.
|
|
sets. To fix it, I got rid of a very ancient hack to enable set grey wire
drawing (setting a global to pretend it's picking select draw).
Now this setting is nicely passed on via functions as argument.
|
|
This commit is based on the patch & cool design work of Matt. It includes
the new Lamp drawing style, and replaces the Object center dots with a
similar styled OpenGL drawn dot.
Important side-note is that removing the old glDrawPixels() for centers or
lamps will not only make Blender faster, but also prevents crashing on a
couple of cheaper 3d cards (as reported for S3 and Intel on-board cards)
Notes:
- The new default only draws Object centers when selected or active. If
you like to see them always, use the View Properties Panel. You can also
save that in the .B.blend
- The size for centers (and lamps) is in the User settings "View & Controls"
- Unselected Lamps, and their offset lines from zero Z, are drawn in a new
Theme color
Changes and additions in Matt's patch:
- Lamps and centers are drawn fixed size, in pixels. Also the 'sun' lamp
draws screen aligned now.
- Center dots now also draw in blue to denote Library linkage or to show
that an Object has been linked to other scenes.
- When objects are empty (no vertices) they will always draw a center dot.
Otherwise these objects would never be selectable anymore!
- Added theme setting for center size, and initialization
- Removed the old redundant code for drawing centers
- Cleanup of drawing routines, made center dots faster
- Started removing calls to glBlendFunc(). Regular alpha drawing should
become standard, and the (very) occasional exception should return this
to default after usage.
|
|
- bug: posemode, bones were drawing names and axes even when hidden
- bug: using softbody guides actually worked on themselves, causing
an infinite loop
- feature: when a pose/bone is completely locked for transform, a grab
will change into rotate by default.
|
|
Hess.
In a comment on maillist I already mentioned a weird 0.5 in the code,
which I added to ensure correct rounding to integer frame numbers.
With a variable step size however, this won't work properly. You could
see it in the patch, because the ghost steps were animating.... they
should remain frozen, looks much nicer then. So I've added some fmod
voodoo here.
|
|
- Bone Ghost drawing now skips axes and names
- "Snap to cursor" now works for parent-less bones in PoseMode
- Prevented assigning in buttons of negative zero (was confusing)
|
|
- Armature editmode, x-axis mirror edit, didn't mirror alt+s scaling of
B-Bones
ALso: found out that alpha drawing for Envelope Bones in editmode wasn't
set properly.
|