Commit Graph

862 Commits

Author SHA1 Message Date
Ton Roosendaal
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
Ton Roosendaal
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
Ton Roosendaal
952a2709ad Orange: tuesday sync with bf-blender 2005-12-06 10:58:54 +00:00
Ton Roosendaal
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
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
Ton Roosendaal
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
Ton Roosendaal
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
Ton Roosendaal
a2d66cbff8 Hrms... setting the undosteps to zero then should also work! :) 2005-12-05 11:52:30 +00:00
Ton Roosendaal
4fb1bcaa15 Bugfix #3507
Global Undo didn't use the 'undo steps' value in the user presets yet...
even whilst button mentioned 'editmode undo' there, an easy fix to add.
2005-12-05 11:46:40 +00:00
Ton Roosendaal
dd1f6c649a Orange bramch:
New diffuse shader, "Fresnel", which using existing fresnel formula.
Since it hilights edges (away from lamp), nice to fill darker parts with
the new layering system.

Weird stuff though;
http://www.blender.org/bf/0001_0040.avi
(Movie disappears in a couple of days!)

Note; for ray-shadow you need to use the Bias, to prevent 'terminator'
problems. I made that option default now.
2005-12-04 20:43:41 +00:00
Ton Roosendaal
1efe0a7232 Sunday sync of Orange with bf-blender 2005-12-04 17:22:36 +00:00
Ton Roosendaal
aa939b8599 Orange branch feature; Material Layering
(WIP, don't bugs for this in tracker yet please!)

- New Panel "Layers" in Material buttons, allows to add unlimited amount
  of materials on top of each other.
- Every Layer is actually just another Material, which gets rendered/shaded
  (including texture), and then added on top of previous layer with an
  operation like Mix, Add, Mult, etc.
- Layers render fully independent, so bumpmaps are not passed on to next
  layers.
- Per Layer you can set if it influences Diffuse, Specular or Alpha
- If a Material returns alpha (like from texture), the alpha value is
  used for adding the layers too.
- New texture "Map To" channel allows to have a texture work on a Layer
- Each layer, including basis Material, can be turned on/off individually

Notes:

- at this moment, the full shading pass happens for each layer, including
  shadow, AO and raytraced mirror or transparency...
- I had to remove old hacks from preview render, which corrected reflected
  normals for preview texturing.
- still needs loadsa testing!
2005-12-04 14:32:21 +00:00
Nils Thuerey
e49998807c - fixed output behaviour (now behaves just like render output,
thus directories in the path are created using RE_make_existing_file
  in fluidsim.c)
- changed default output to be '//fluidsimdata/...'
- hopefully fixed bugs #3466 and #3470 (orco texture coords caused
  problems when the fluidsim mesh was bigger than the original one,
  one no other deformations were used - new deformedVerts are now
  allocated in this case in DerivedMesh.c)
2005-12-03 17:45:35 +00:00
Ken Hughes
6ba27d69b0 -- Bugfix #3524: theEditMesh structure was not being initialized correctly. 2005-12-02 18:00:38 +00:00
Ton Roosendaal
066f79cfa4 Friday merge of bf-blender into orange branch. 2005-12-02 13:55:13 +00:00
Ton Roosendaal
c4a1d655ae True X-mirror mesh editing!
Set the option in EditMode, in 2nd mesh tools panel. It only works on
transform options now (grab/rot/scale), and of course assumes a near-
perfect symmetrical mesh. Mesh Object itself can be on any location
though (and rotated etc).
2005-12-01 19:04:57 +00:00
Ton Roosendaal
d369a44dde Orange bugreport; disabling (with small icon button) a deforming modifier
for EditMode, the CrazySpace correction still worked. Made it check for
the modifier mode flag.
2005-11-30 20:22:27 +00:00
Ton Roosendaal
ec2644fe5c Bugfix - own repertoire :)
- Curves without bevel or extrude didn't calculate the Z value for
  softbody when the "3d" option for curves was off.
- Typo in softbody.c, for switch of // comments to /* */
2005-11-30 18:58:10 +00:00
Ton Roosendaal
0140c36df9 Cleanup & preparation commit for getting Armatures/Poses/Actions working
in the game engine again.

All files in source/gameengine/ I've committed below have a comment like
/* XXX note .... */
where something needs to be done. This is pretty straightforward for Erwin,
who has been notified in person too about this. :)
2005-11-29 12:45:18 +00:00
Ton Roosendaal
acd06aebc1 Depsgraph fix for editing linked Objects with the other instances being
in other layers (or hidden with local view).

In my search for the absolute minimum of recalculations, changes are only
flushed when they're visible. On changing layers, the tags then are just
set again (for everything that potentially moves) to ensure proper state.

However, it didn't work proper for linked Mesh objects that changed in
editmode, the Derivedmesh callback then accessed memory out of bounds.

The current dependency code was more designed for animation systems...
updating display data should work too, but might need some more tests!

(Thanks Andrea for clear error sample!)
2005-11-27 20:49:25 +00:00
Ton Roosendaal
ebb00c1ce5 Bug #3479
Cyclic paths (or curve guides) were not drawn in Solid View when not
selected.
2005-11-27 18:54:23 +00:00
Ton Roosendaal
dff7bebab8 Bugfix #3478
Using a Curve object as a forcefield (not as Guide) crashed Blender.
Needed an additional check in code.
2005-11-27 18:17:02 +00:00
Ton Roosendaal
cb82936a98 Bugfix #3477
Bug in VortexField caused in some situations the particles or strands to
disappear completely. Non initialized variable...
2005-11-27 17:27:32 +00:00
Brecht Van Lommel
0e0cafcada "UV Test Grid" option in Image Window > Image menu > New, to generate
a colored grid instead of a blank image, for quickly spotting distortion
in UV maps.
2005-11-27 16:21:25 +00:00
Ton Roosendaal
a494a76e9e Finishing touch for hair strand shadows;
- raytracing code now uses cylinder-line intersect for strands. It used
  to intersect with the screen-aligned strand quads, giving too many
  misses for tracing.
  Note; mirror for hair is still not well supported!

- added in Materials a choice for whether a material is Traceable for
  raytracing or whether it is part of Shadow buffers. This way you can
  exclude hair strands from raytracing, but still get shadowbuffers for it.
2005-11-27 12:19:12 +00:00
Ton Roosendaal
986745abcc Bugfix (tracker #3456, elysiun forum).
The new colorband code still had floating point issue... how much a
< or <= can differ eh!
2005-11-24 16:54:55 +00:00
Ton Roosendaal
bb0445c722 Bugfix #3437 #3438
- Mirror modifier showed particles on wrong half.
  Note: particles don't do modifiers yet (apart from using subsurf coords)
- Boolean modifier copy didn't copy the 'operation' type.
2005-11-23 19:19:44 +00:00
Jean-Luc Peurière
16ec668047 added bad level call stub for sluidsim 2005-11-23 14:42:17 +00:00
Nils Thuerey
5c56ca1180 - changed DerivedMesh integration, the fluidsim meshes now
replace the original one. so modifiers now work with them
  (apply modifier, or edit mode still work on original mesh).
  this should fix the three fluidsim bugs in the tracker.
- fixed stupid makesdna problem (writing "char string[160+80]" isnt
  a good idea :)
- changed GUI a bit, now displays an estimate of the required memory,
  there's still a problem with redrawing (currently relies on a call
  to the derived mesh generation)
- the fluidsim struct changed to store the bounding box,
  and the current loaded surface mesh
- temporary simulation files are now removed if env. var.
  BLENDER_DELETEELBEEMFILES is not set or zero
- fluidsimSettingsFree now gets properly called when freeing an object
2005-11-23 12:49:22 +00:00
Kent Mein
00f266c651 This is a modified version of patch #2995
To enable dynamic tiff support.
I had to fix some of the logic in the fileselect box for icons,
I also expanded the patch to look in various default locations for
a dynamic libtiff.so/libtiff.dll
and look at the env variable BF_TIFF_LIB if it can't find it automatically.
If unable to load the library it prints a message about setting BF_TIFF_LIB
to the console.

I haven't been able to test it on a lot of platforms but hopefully it
will just work ;)  I added the files to scons but have not had a chance to
test that as well.

Kent
2005-11-22 18:50:03 +00:00
Ton Roosendaal
6c619b235c Another bugreport, this time Basse: in NLA a position could sometimes be
set whilst the actual time was 1 frame after the strip. Appeared to be
a rounding error that didnt show in OSX.

Previously I added a threshold, to make sure strips are included when the
current frame is exactly on the end. That threshold now is smaller, and
I also made the fmod() to be done only on repeating strips.
2005-11-22 17:58:10 +00:00
Ton Roosendaal
1568ebcd5f Bugfix #3346
Decimate modifier wasn't resistant to decimating below 3 vertices. It now
detects so, and doesn't add a face or edges then.
2005-11-21 16:21:03 +00:00
Ton Roosendaal
256b878b50 Colorband input for ramp shaders need to be clamped for (0-1)... 2005-11-21 15:21:55 +00:00
Ton Roosendaal
fb352bd8da Bugfix #3431
Too strict checking in depsgraph code missed a dependency case; this
specifically when objects have own motion (ipo) and are being deformed
by a parent.
This worked, unless the parent also had own motion (ipo or constraint)...

Also: the DAG_add_relation() added multiple relationships for object pairs,
now they "Or" the relationship description flag. Makes it a tad faster
again :)
2005-11-21 12:14:13 +00:00
Ton Roosendaal
d3bb02013f Bugfix #3426
Object duplicators didn't draw when not selected. Was one 'else' to many in
the code!

Also noticed that duplicators couldn't be transformed when they have Ipos,
was an improper call to do_ipo in duplicator code... also made sure the
transformation info in the object is stored/restored before duplicating.
2005-11-21 11:30:53 +00:00
Ton Roosendaal
c52170b4ed Patch provided by Alfredo de Greef
This adds Radiance HDR image file support. So now at least we can save
the 'fbuf' (4x32 bits float colors) in Blender.
It doesn't change anything for internal support in imbuf for floa colors,
so when reading .hdr files it still converts it to 32 bits RGBA.

As an extra I've added that saving images with F3 now also adds the
optional extension, when the F10 "Extensions" option is set.

One important note; I don't know the proper license for the code, it was
provided without... will await feedback from Alfredo about it. For now
I've added the standard Blender GPL header.
2005-11-20 14:32:07 +00:00
Ton Roosendaal
b310216a47 Patch provided by Stephan Kassemeyer.
This fixes an error in the striding system, which was by default correcting
path position backwards in time, which could give errors when a stride bone
moves in the beginning of a path faster than the path moves. (Can you
follow that? cool!)

The patch checks for this case, it corrects by default forwards in time,
unless we're at the end of a path. As bonus this fix will also ensure the
character stays on the path closer.
2005-11-20 12:41:00 +00:00
Jens Ole Wund
b6c5b24f4f no code changes (i hope)
review of lyrics/epics to replace '//' comments by /*ones*/
+ adaptive step size in a nutshell  comment
2005-11-19 21:35:06 +00:00
Jens Ole Wund
54c032440f bug: scaled lattice softbodies ( and the new ones ) shrinked/blew up to original size under SB dynamics
had a shadow in memory there was an issue ..
yes, spring calculation should care for scaling in object matrix
so here it is

note: for meshes the bp array is abused for caching -->
only 1 matrix multiplication compared to 2 per spring
2005-11-19 20:02:30 +00:00
Ton Roosendaal
dfb200d405 Made sure lattice and curve springs are calculated based on the original
(Non deformed) lenghts. Code for lattice (by Jens Ole) was already there
btw, was replaced accidentally by Daniel during his modifier craze :)

ALso added comments in code to clarify the softbody initialize flow, which
happens in 2 stages now. Goal weights and springs are read from the
original data, the vertex coordinates from the modifier data.
2005-11-19 18:19:41 +00:00
Jiri Hnidek
81eb851796 - bug fix of bug #2923
bug was reported by ideasman, thanks! This bug fix also solve problem, when
   MetaBall is parented to some zero size object.
2005-11-17 23:26:45 +00:00
Ton Roosendaal
5471aa1d48 Two errors in old style (not relative) Shape Keys;
- they didn't even execute!
- you could not grab them in IpoWindow
2005-11-17 21:31:49 +00:00
Ton Roosendaal
1688cd8f95 Fix: When inserting keys for Forcefields, used for particles systems, you
could not move the object anymore (since the ipo got executed).
Solved with copying original Object data in the Deflector Cache.
2005-11-17 21:10:16 +00:00
Ton Roosendaal
e700e0c4f9 Fix in Colorband: the "B-Spline" interpolation didn't extend well, when a
marker wasn't on the first or last possible position. Caused by clipping.
As bonus; added Cardinal interpolation option too, which is just that
little bit different! (Cardinal goes through the controlpoints, bspline not)
2005-11-17 20:31:18 +00:00
Ton Roosendaal
824ed2e041 A year-zero bug, and actually another issue with auto-handles for Ipo
curves. On sharp 'peaking' curves the handle was calculated
using both X and Y distance. This could result in overshooting.

New code only evaluates the X distance, resulting in much more moderate
sized handles.

Thanks Gabio for the demo file!
2005-11-17 19:34:32 +00:00
Ton Roosendaal
502fc2da31 One visit to studio orange, and voila a todo list!
- 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.
2005-11-17 18:01:07 +00:00
Ton Roosendaal
f0593ea8e8 Bug in SoftBody for Curve/Surface: in some cases the edge spring array was
not initialized, like when adding a SoftBody to Object in EditMode.
2005-11-17 12:24:29 +00:00
Ton Roosendaal
ec477f7a63 Another Orange sneak-in feature: SoftBody support for Curves & Surfaces.
Well, it already worked a bit, but without weight options or edge
stiffness. You now can set the weights using the "Properties" Panel in
the 3D Window (allows multiple selections too) or with Wkey in Edit Mode.
Bezier curves have this too.

NOTE: Lattice SoftBody Goal created yesterday won't work anymore!
I've had to recode weight support for Nurbs Points, using a new weight
variable... this because the existing W variable was in use for Nurbs
already. Also Lattices have this new Weight variable, so the code is nice
uniform. Sorry for the artists who already created complex Lattices... :)

NOTE2: Surface Objects don't support edge stiffness yet

NOTE3: I've removed ancient screen coordinates from the Bezier struct,
which makes - even with added weight and padding - the struct smaller!

Demo file:
http://download.blender.org/demo/test/2.40/softbody_curve_lattice.blend
2005-11-17 11:40:57 +00:00
Brecht Van Lommel
6719d32f99 Bug reported by Bassam:
Influence for "Rot" option in IK constraint didn't work correct
in some cases.
2005-11-17 01:46:43 +00:00
Ton Roosendaal
befd6f3150 Special Orange request; support for SoftBody Goal weights for Lattices.
Animating detailed clothes with softbody becomes messy, so now we'll
try it this way. :)

It simply uses the W (weight) value, as already available in each Lattice
Point. Only had to make it editable;

- NKey panel
- or press W in editmode

Further there's a minimalistic W button in the softbody Panel!
2005-11-16 21:58:49 +00:00