Commit Graph

66005 Commits

Author SHA1 Message Date
feb14b9b66 Orange: Removed old duplicator stuff from renderconverter.c... 2005-12-11 13:37:05 +00:00
d7bee8c117 Big commit with work on Groups & Libraries:
-> Any Group Duplicate now can get local timing and local NLA override. This
   enables to control the entire animation system of the Group.

Two methods for this have been implemented.
1) The quick way: just give the duplicator a "Startframe" offset.
2) Advanced: in the NLA Editor you can add ActionStrips to the duplicator
   to override NLA/action of any Grouped Object.

For "Group NLA" to work, an ActionStrip needs to know which Object in a
group it controls. On adding a strip, the code checks if an Action was
already used by an Object in the Group, and assigns it automatic to that
Object.
You can also set this in the Nkey "Properties" panel for the strip.

Change in NLA: the SHIFT+A "Add strip" command now always adds strips to
the active Object. (It used to check where mouse was). This allows to add
NLA strips to Objects that didn't have actions/nla yet.

Important note: In Blender, duplicates are fully procedural and generated
on the fly for each redraw. This means that redraw speed equals to stepping
through frames, when using animated Duplicated Groups.

-> Recoded entire duplicator system

The old method was antique and clumsy, using globals and full temporal
copies of Object. The new system is nicer in control, faster, and since it
doesn't use temporal object copies anymore, it works better with Derived
Mesh and DisplayList and rendering.

By centralizing the code for duplicating, more options can be easier added.
Features to note:

- Duplicates now draw selected/unselected based on its Duplicator setting.
- Same goes for the drawtype (wire, solid, selection outline, etc)
- Duplicated Groups can be normally selected too

Bonus goodie: SHIFT+A (Toolbox) now has entry "Add group" too, with a
listing of all groups, allowing to add Group instances immediate.

-> Library System

- SHIFT+F4 data browse now shows the entire path for linked data
- Outliner draws Library Icons to denote linked data
- Outliner operation added: "Make Local" for library data.
- Outliner now also draws Groups in regular view, allowing to unlink too.

-> Fixes

- depsgraph missed signal update for bone-parented Objects
- on reading file, the entire database was tagged to "recalc" fully,
  causing unnecessary slowdown on reading.

Might have missed stuff... :)
2005-12-11 13:23:30 +00:00
e0d20e00ce Added some details in the Mathutils documentation. 2005-12-11 04:20:37 +00:00
Ken Hughes
76e7905736 -- Bugfix #3573: Deleting a scriptlink when some other scriptlinks were no
longer linked to a script would cause a crash.  We now delete all
   scriptlinks which are not linked.
2005-12-10 19:36:05 +00:00
Ken Hughes
080eb9b3fa -- Bugfix #3564: Texture.getImage() always returned None for Env maps, even if
an image was assigned.
2005-12-09 23:19:00 +00:00
ccb285006c Bugfix #3526
Division with zero caused wrong pixels to be rendered with Ortho camera.
2005-12-09 17:22:50 +00:00
485dd1d376 Orange; WIP commit for inclusion of "Tangent" vector in rendering.
This first implementation only supports it for Meshes with UV maps, and
only tangents in V direction.

Tangent diffuse:
http://www.blender.org/bf/0001_0080.avi
Tangent spec, diffuse, and bump:
http://www.blender.org/bf/20001_0080.avi

NOTE: since UV coordinates are still very badly subsurfed, this won't work
well for subsurf meshes... on the todo.

On the todo;
- generate tangents for meshes without UV (with some options)
- use tangents from Curve/Surface
- add the Ashkimin shader from tracker

-----

Important bugfix; curves didn't render anymore since yesterday. :)
2005-12-09 15:14:32 +00:00
7b2f1d4776 change return of getMarked method for dict {framnum:['nameframe']}
.
2005-12-09 15:00:54 +00:00
e4c375ef0b bugfix #3550
Fixing Loopcut smooth to actually cut smooth

I think this will go to HEAD now...
2005-12-09 14:49:41 +00:00
Ken Hughes
1e589f59d0 -- Bugfix #3520: Text with extrusion and/or bevelling would would disappear
when edit mode was entered.
2005-12-09 14:30:51 +00:00
Ken Hughes
cf42e62ebb -- Bugfix #3545: Toggling the "apply modifier to editing cage during
Editmode" flag in one modifier cleared the flag for all other modifiers.
   It now only allows toggling of the last modifier in the stack.
2005-12-09 13:57:27 +00:00
c492729b3a New feature: "Stress" texture input channel
(As usual movies disappears after while)

Face example showing stress values on a blend. White is stretch, black
is squeeze
http://www.blender.org/bf/0001_0014.avi

Quick test with softbody stretch
http://www.blender.org/bf/0001_0100.avi

Based on the difference of the "Orco" (original undeformed coordinate)
and the actual render coordinate, a stress value is computed to make
textures react to stretching or wrinking skin.

The texture coordinate is neutral (0) on relaxed state. -1 is squeezed
to zero, +1 is stretched to infinity.
Note that scaling (object itself or parent) also will result in
stress values.

The reason for the huge commit is a cleanup in allocating memory for
the vertices. These were growing too large with new options, so now it
allocates the optional coordinates dynamically.
Saves about 20 MB memory per 1M vertices already. But best of all is that
I now can add much more fun... so tangents, here we come!
2005-12-08 22:05:42 +00:00
13d638c8b8 bugfix #3550
Fixing Loopcut smooth to actually cut smooth
2005-12-08 21:35:08 +00:00
ae8c2963e5 Orange: fix for duplicator-group using X-Ray or Transparent draw options.
Note that X-ray is skipped, since it can only work for clearing the zbuffer,
but Transparent works now.
2005-12-08 20:07:41 +00:00
459d9607e8 Orange: Made Action Editor to respect Bone layers too.
Note: only works when an Object has Action linked, and not for pinned
actions.
2005-12-08 18:32:06 +00:00
7422fd4fff Orange: Action editor didn't reset selection flag on selecting Pose bones. 2005-12-08 15:18:42 +00:00
4b7bc941e5 Orange: More fixes in bone-layers (#$@%!).
- constraint buttons were drawing the hidden bone settings
- ctrl+I or 'Add constraint' didn't respect layers yet
2005-12-08 15:05:14 +00:00
42ec7a2afa Orange: Made Nkey and info text in 3d window respect Bone Layers. 2005-12-07 23:25:43 +00:00
Ken Hughes
e67360cb97 Made Mesh verts/edges/faces hashable (as they were in NMesh); this will
make it easier for some scripts to be converted.
2005-12-07 21:12:33 +00:00
89974f1546 Orange fixes;
- protected editing library data names in outliner
- layer-bone recode caused selection from posemode not to flush correctly
  to editmode
2005-12-07 20:28:48 +00:00
2f0ae40979 Bugfix from own collection: Rename option in Outliner didn't handle an ESC
correctly. Button wasn't closed then.
2005-12-07 19:59:26 +00:00
44c9b42f60 Orange: Bugfix for uninitialized variables in lscm/stretch, forgot to
update initialization when switching from MEM_callocN to BLI_memarena.
This should fix the windows crashes.

Patch by Jens, thanks!
2005-12-07 19:54:52 +00:00
0c60e72cbf Orange: Group with curve objects in it, and used with group-duplication,
didn't update display when original was on hidden layer.
2005-12-07 19:47:22 +00:00
5b71510ecf A patch from Ken Hughes per request of Bassam here at Orange: Python access to armature visibility layers. 2005-12-07 19:36:01 +00:00
ddc98d1307 Orange: option "Add to new group" (CTRL+G) didn't work when a group
already existed.
2005-12-07 15:13:37 +00:00
fba94ef97a Orange: Custom drawing types for bones in Poses!
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
2005-12-07 15:07:31 +00:00
5a514ae20e Orange Bugfix: depsgraph code crashed on building particle system without
forcefields.... tsk!
2005-12-07 12:46:34 +00:00
1123be1bcc Orange request; Bones in Armature now have own layer settings.
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.
2005-12-07 12:36:26 +00:00
Ken Hughes
b02ff5f2a2 -- Bugfix #3551: fix memory corruption problem if Text3d.setText() called
while selected text is in edit mode.

(Future note: now that there is Unicode support in Blender, we need to add
support for it in the BPy Text3d API.)
2005-12-07 05:44:29 +00:00
Ken Hughes
b558edd629 Fix memory leak; if Blender quits while in text edit mode, free textbuf
inside of free_editText().
2005-12-07 05:41:58 +00:00
4cf83c2c14 Fix for bug #3529
Provided by Jorge Bernal (lordloki)

Function was returning a wrong value in a switch statement.

Kent
2005-12-06 18:52:55 +00:00
Ken Hughes
39ca3e3fa4 -- Bugfix #3548: material.setMode() was doing incorrect range check on
inputs, returned error setting RAYMIRROR or RAYTRANSP modes.
2005-12-06 17:08:09 +00:00
ee63a6fd79 Orange:
Depsgraph support for animated duplicated groups that come from Library
files.... so nice, a huge walking group of characters in a 90k file or so!
2005-12-06 17:05:37 +00:00
6555ddbcd8 Orange:
Series of fixes in Library linking of groups;

- On library-linking (SHIFT-F1) a Group, the Objects now don't get a "Base"
  anymore, meaning they won't show up as Objects in the Scene.
  This ensures you can use the linked Group as duplicator without having
  your file polluted with new (and linked) objects.
  (I realize it should be possible to have it with Base too, will check)
- On append or file-read, the linked Group Objects get drawn properly,
  but the animation system doesn't run yet.
- Group buttons (F7) now shows if a Group is from Library
- Outliner draws Library linked data with blue-ish text

Other fixes;

- Using group-duplicator, with originals in hidden layer, now shows and
  updates animated Objects correctly.
- All of Object button panels did not have a proper protection against
  editing Library data.
2005-12-06 15:39:25 +00:00
898cbe370e Orange:
Pointer was checked before being set... but it refused to crash on me! For
everyone else it crashed on rendering.
Thanks Toni for the bughunt.
2005-12-06 15:02:13 +00:00
2f716483a9 Orange: fix for reading material light groups (didnt set pointer OK yet)
(Thanks Lee for finding it!)
2005-12-06 12:14:53 +00:00
952a2709ad Orange: tuesday sync with bf-blender 2005-12-06 10:58:54 +00:00
d024452ebf Orange branch: Revived hidden treasure, the Groups!
Previous experiment (in 2000) didn't satisfy, it had even some primitive
NLA option in groups... so, cleaned up the old code (removed most) and
integrated it back in a more useful way.

Usage:
- CTRL+G gives menu to add group, add to existing group, or remove from
  groups.
- In Object buttons, a new (should become first) Panel was added, showing
  not only Object "ID button" and Parent, but also the Groups the Object
  Belongs to. These buttons also allow rename, assigning or removing.
- To indicate Objects are grouped, they're drawn in a (not theme yet, so
  temporal?) green wire color.
- Use ALT+SHIFT mouse-select to (de)select an entire group

But, the real power of groups is in the following features:

-> Particle Force field and Guide control
In the "Particle Motion" Panel, you can indicate a Group name, this then
limits force fields or guides to members of that Group. (Note that layers
still work on top of that... not sure about that).

-> Light Groups
In the Material "Shaders" Panel, you can indicate a Group name to limit
lighting for the Material to lamps in this group. The Lights in a Group do
need to be 'visible' for the Scene to be rendered (as usual).

-> Group Duplicator
In the Object "Anim" Panel, you can set any Object (use Empty!) to
duplicate an entire Group. It will make copies of all Objects in that Group.
Also works for animated Objects, but it will copy the current positions or
deforms. Control over 'local timing' (so we can do Massive anims!) will be
added later.
(Note; this commit won't render Group duplicators yet, a fix in bf-blender
will enable that, next commit will sync)

-> Library Appending
In the SHIFT-F1 or SHIFT+F4 browsers, you can also find the Groups listed.
By appending or linking the Group itself, and use the Group Duplicator, you
now can animate and position linked Objects. The nice thing is that the
local saved file itself will only store the Group name that was linked, so
on a next file read, the Group Objects will be re-read as stored (changed)
in the Library file.
(Note; current implementation also "gives a base" to linked Group Objects,
to show them as Objects in the current Scene. Need that now for testing
purposes, but probably will be removed later).

-> Outliner
Outliner now shows Groups as optio too, nice to organize your data a bit too!

In General, Groups have a very good potential... for example, it could
become default for MetaBall Objects too (jiri, I can help you later on how
this works). All current 'layer relationships' in Blender should be dropped
in time, I guess...
2005-12-06 10:55:30 +00:00
Ken Hughes
1aebee2f9e More corrections and additions to Ipo and IpoCurve documentation. 2005-12-06 06:16:10 +00:00
Ken Hughes
569f9de63c Added some extra parameter checking in Ipo driver code. 2005-12-06 05:42:23 +00:00
e61ebefd90 Added GPL licence header. possibly some other new stuff, not sure how old the CVS console script was. 2005-12-06 04:30:23 +00:00
9497b6dfb6 Updated bvh importer. tested on over 100 bvh files.
* Modified to use Mathutils for matrix math,
* Fixed possible joint naming bug,
* Imports BVH's with bad EOF gracefully
* Fixed duplicate joint names, make them unique
* Use \r as well as \n for newlines
* Added suppot for nodes with 0 motion channels
* Rotation IPOs never cross more then 180d
   fixes sub frame tweening and time scaling
* 5x overall speedup.
2005-12-06 03:53:35 +00:00
Ken Hughes
2d19c4f208 -- Bugfix 3543: call to test_index_face() in decimateModifier_applyModifier()
was passing pointer to the wrong face, which led to eekadoodle later in
   EditMode.
2005-12-06 00:02:55 +00:00
34049def4e Modified the logic under linux.
My 64bit box fell through and didn't do anything
because it didn't match a CPU type, so changed the logic so there is a default.

Kent
2005-12-05 21:32:55 +00:00
Ken Hughes
1a2ac4e64d -- Bugfix #3072: As discussed on IRC, matrix.invert() should throw a
ValueError exception if matrix is singular.
2005-12-05 19:57:23 +00:00
Ken Hughes
e209676d3d -- Bugfix 3453: coercion operations were doing an extra incref on coerced
objects.  Also found extra increfs on some newly-created quat and matrix
   objects, from calls to Matrix_Identity() and Quaternion_Identity().
2005-12-05 19:02:30 +00:00
863234481e "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
2005-12-05 17:06:58 +00:00
f98a5a8036 Bugfix #3514
Once an Object Ipo position was inserted, the object couldn't be moved when
a particle system was tied to it. Needed code to copy object settings,
before the particle animation was done.
2005-12-05 13:44:22 +00:00
cd014fd556 Bugfix #3512
Duplicated objects, that have modifiers, didn't render (or not correct).
Bug reported case with softbody being duplicated.

The duplicator system is ancient... integration with new derivedmesh or
modifiers has not been really done yet.
2005-12-05 13:22:16 +00:00
a2d66cbff8 Hrms... setting the undosteps to zero then should also work! :) 2005-12-05 11:52:30 +00:00