This commit and other commits attempting to fix it broke various things. The
main thing that changed was that instead of computing children/paths in
advance as part of particle_system_update, this was moved to do it just before
drawing or rendering. I've changed back that behavior and tried to keep the
other fixes in the commit.
When the new particle system was just committed, it also worked this way but
gave various problems, and I had to remove that behavior to get things working
stable. Basically it meant that you could get have a path cache that was
outdated in various situations, and it doesn't fit well with dependency graph
evaluation order.
This fixes:
#22823: Children Particle Rendering is broken
#22733: Particle objects not displayed
#22888: SigSegV when rending hair particles
#22820: Another SigSegV when undo adding hairs in particel edit mode
Some particle setups in dupligroups.
The three bugs that the original commit fixed are now also still working in
my tests:
#21316: Hair weight drawing is wrong
#21923: Consistent Crash When Rendering Particle Scene.
#21950: Path rendering option for particles causes crash
* Fixed a couple things: for triangle fans, you have to put an extra vert to make them closed, and also flipped the draw order so that the normals went the same as for circle cones.
* Path drawing now works for non hair particles.
* Should fix the following bugs too:
[#21316] Hair weight drawing is wrong
[#21923] Consistent Crash When Rendering Particle Scene.
[#21950] Path rendering option for particles causes crash
note: Im not all that happy with where this feature is going in terms of readability, however preview renders are very distracting when physics meshes and bounding boxes are animating over the top of characters.
Curve->lastselbp field was renamed to Curve->lastsel and now not last
either BPoint or BezTriple is storing here. It's not easy to determine
type of selected point, but operator which depends on such point reviews
the full nurbs, so this shouldn't be a problem.
Made changes to curve undo stuff to restore last selected point on undo/redo.
Added new theme color for curve last selected point.
- Disallow this and report a warning in the console when it happens.
- File selector operators now report in the global report console.
- Cleared some warnings.
This replaces the screen-aligned bitmap text drawing with wireframe x/y/z as
part of the empty axis openGL code. It's a lot faster in all situations that draw
empty axes to screen - including posing armatures with axes on (5fps vs 40fps
on tracker test file).
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing: UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
- Replaced hardcoded nurbcol array with theme colors
- Send notification in duplicate curve operator (this operator could
reset/change active nurb)
- Edge seam color added to the user preferences dialog
Used approach with creating DerivedMesh for curves whet they've got such modifiers.
Available modifiers are: array, edge split, mirror, solidify, subsurf.
The problem was that wmPushMatrix/wmOrtho/.. and similar functions did not
work well for offscreen rendering. It would have been possible to make a
fake subwindow for this, but I decided to just remove this extra layer as
it does not seem to have much purpose and has been quite confusing when
trying to fix other bugs. The relevant matrices are already stored in
RegionView3D so there will be no increase in calls to glGetFloat, which may
have been a performance reason to use this system in the past.
- use mirror when the option is enabled in editmode.
- fliped group names are used when they exist.
- only the setting that is edited will be applied to the mirrored verts group.
- copy value is applied to all mirrored verts of the selection.
- normalize normalizes all vgroups and mirrors.
utility functions defvert_sync and defvert_sync_mapped, similar to defvert_copy but does not remove existing groups and optionally creates groups as needed.
defvert_sync_mapped uses a an int array for mapping the flipped values.
particle systems in the 3d view while rendering, this will recompute the particles
in the modifier stack, while these are being manipulated by the render engine
at the same time... a better fix is needed clearly but quite difficult.
This commit makes the new-style Motion Paths work for Objects and Bones. Motion Paths can either be added for Objects (Object buttons) or for Selected Bones in PoseMode (Armature Buttons), and/or removed from these panels too.
Changes:
* Changed the way the baking code worked, since it was better to be able to bake a bunch of objects at once, instead of doing it per object
* Fixed a variety of bugs regarding initialising defaults and reading old files
* Added operators for Objects (like for bones), and replaced the existing code for bones.
* Fixed bug with baking code that was causing it to bake the wrong ranges
Todos:
* Frame number drawing is currently messed up, since the "cached" text drawing takes into account the object transforms.
* The new MotionPath panels currently appear as the first panels in the respective contexts, probably due to the order in which the files are included. This needs some fixing, though not sure what the best way is yet.