Commit Graph

2030 Commits

Author SHA1 Message Date
2d06f79ff9 svn merge -r 13177:13240 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-01-15 13:00:29 +00:00
cdcba166f6 Bad bad bug!
Newly added strip->scale was never initialized 1.0f on adding, causing
divide by zero in NLA/Action UI.

Bug since september or so... is nobody using NLA? :)
2008-01-14 15:16:59 +00:00
54be577d68 bumped up max recursiveness, was needed for a peach shot 2008-01-14 13:48:43 +00:00
d660e29365 === Custom Transform Orientation ===
Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -> Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.

If you plan on using only a single custom orientation and don't really need a list, I suggest you use the hotkey as it adds and selects at the same time.

Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).

Adding from an object, the orientation is a normalized version of the object's orientation.
Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest.
(More logical orientations can be suggested).

I plan to add: 2 vertice (connected or not) => edge orientation , 3 vertice = face orientation

Differences from the patch:
- orientations no longer link back to the object they came from, everything is copy on creation.
- orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)
2008-01-13 18:24:09 +00:00
52d283d1ab == MSVC 7.1 projectfiles ==
blenkernel needed opennl include (softbodies)
blenderplayer needed linking opennl too now.
replaces powf with pow in multires - MSVC isn't C99 compatible
2008-01-13 15:10:09 +00:00
800d4de5d6 == Sculpt ==
Fix for the initial brush shape; wasn't initialized properly on older files.
2008-01-12 21:51:23 +00:00
1610b55f7e nice little thing -> have angular response on 'aero'
made backward compatible for sure
2008-01-12 01:26:40 +00:00
6b0cadd780 removed printf and added back a line removed by mistake 2008-01-11 22:54:02 +00:00
b380e344fd bugfix for cyclic curves 2008-01-11 18:02:28 +00:00
e83b7bb46c Bugfix: with non-random particle distribution, the first particle could
still end up on a zero weight face.
2008-01-10 23:06:55 +00:00
f62477fe27 - Bugfix to make dupli particles for hair respect render amount.
- Allow Random and Even distribution settings to be set after hair
  is made editable, since they also affect children.
2008-01-10 21:44:16 +00:00
76cc0a4c57 Added extra include dir to get it compling again.
Kent
2008-01-10 21:35:33 +00:00
38a33eb7da == Auto-Keyframing Refactor (Peach Request) ==
Refactored Auto-Keyframing to make it easier to add more options. There are now three "states" for auto-keying: off, add/replace keys, replace keys.

Description of modes:
1) No auto-keying is done
2) Add new keyframes or replace existing ones if possible (old behaviour)
3) Only modify existing keys, but not insert new ones. 

Internally, I've moved the auto-keying settings out of G.flag and U.uiflag and moved them into their own variables in Userdef, and provided some macros to access those easily. As a result, old auto-keying settings are currently lost.

Also, removed the manual calls to insertkey done in pose-relax. The reason auto-keying didn't work before was because the bones didn't have the BONE_TRANSFORM flag applied. Now, these are set temporarily.


Todo(s):
* Make icons for the TimeLine header menu (currently just a text menu)
* Add version-patches for old files
* Double-check code for all places that use auto-keying (i.e. PoseLib)
2008-01-10 01:36:22 +00:00
5b0b214407 resolving back compatibility issues 2008-01-10 00:07:31 +00:00
0aa6888758 * Updated makefile for OpenNL, used in new softbody.c 2008-01-09 22:32:36 +00:00
ead7a33247 Misc Render Features
====================

- "From Dupli" option for orco and uv texture coordinates. For dupliverts,
  duplifaces and dupli particles, this uses the orco and uv at the point
  on the parent surface. Can for example be used for texturing feathers
  and leafs. Note that uv only works for duplifaces and particles emitted
  from faces, these are not defined at vertices.

- "Width Fade" option for strand render, to fade out along the width of the
  strand. Committing this so it can be tested, might be changed or removed
  even, if it doesn't give nice results.
2008-01-09 14:40:25 +00:00
43cd8a9f71 svn merge -r 13148:13177 https://svn.blender.org/svnroot/bf-blender/trunk/blender + fixed one crash on enabling deflection 2008-01-09 12:04:54 +00:00
048170bc6f quite a load is still hidden behind the define #ifdef _work_on_sb_solver
a glance to view is the "STU PID semi implicit euler"
most of the work to implement a semi implicit euler was done ..
now i am dealing  with the tradeoffs between 'calculation time' which is quite expensive .. inverting a 0(n*n) sparse matrix /* once agian thanks to brecht for his work on making sparse matrices LU decomposition and evaluating inverses that easy*/  putting it into and cropping works pretty nice .. argh off topic again
...
while i spent a little time on reading recent papers i found :

1. control on springs needs to be split in pushing and pulling  /* fabric pushes easy but pulls hard */
2. diagonals on 4-gons (in the current SB model) can be seen as shear .. thus need a contol to modify .. this commit wil add it
3. 2 nd order springs /*aka rigidity */ can focus on bending .. thus renaming 'em
 
i have no idea how i would provide backward compatiblity, but the spots i marked in code :)
2008-01-09 00:25:51 +00:00
7da95822f0 Addition to last commit, now the length of the hair is used to
scale the object. Also, the direction is now derived from the
first and last keys on the hair, instead of first and second.
2008-01-07 18:15:57 +00:00
fe6c98a4d9 Particle object and group visualization now also work for hair, to
make for example feathers. Also made dupliparts work within groups.

One issue still is that in particle editmode, the duplis can interfere
with brushes and selection, though tweaking the dupli object position
can alleviate the problem.
2008-01-07 16:26:41 +00:00
86d8ef3f91 svn merge -r 13095:13148 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-01-07 03:25:11 +00:00
8d6bbf7635 Merged back with last version where collisions worked at least a bit (rev 12296). Also merged fixes (hopefully). 2008-01-07 03:20:43 +00:00
e6ee8c7d49 Bugfix: in the new image function, uv test grid option
didn't draw colored crosses correct.
2008-01-06 16:04:48 +00:00
bbd4d05321 Used valgrind to find some uninitialized variables 2008-01-05 19:11:10 +00:00
c2eeae8e64 - Further fixes for duplivert rendering inside a dupligroup.
- Fix for integer overflow when allocating a lot of particles
  (9 million * 8 keys * sizeof cache key).
2008-01-04 21:12:48 +00:00
2f7dad7df7 - Make dupliverts inside a dupligroup render and draw as instances.
- Possible fix for a dupli render memory leak, but i'm not sure.
2008-01-04 17:48:07 +00:00
5e58f5d463 == Local Constraints for Proxies (Peach Request) ==
Proxy protected bones can now get local (per-file) constraints added to them, which will be preserved after a file load. This is necessary for adding constraints to proxy-protected bones for special purposes while animating (i.e.  adding CopyLocs to IK-hand controls to pick up an object). 

These must be added after any constraints from the proxy, as proxy constraints may come and go without warning. As such, the UI forbids this from happening by removing the relevant button.

I've also made UI-changes to show which constraints come from the proxy (the buttons to move the constraint up/down and delete it, are replace with two icons - a the proxy 'ghost' icon and a lock). Also, trying to change any settings of proxy-protected constraint will show an error.


Notes:
* Object constraints are still not playing nice with proxies yet. They didn't before this commit either...
2008-01-04 11:21:50 +00:00
56faf73e3c - Bugfix for flickering shadow with strand simplification.
- On non-edited hair, don't generate child particles for
  each step, only at the end.
- Small optimization in the kd-tree.
2008-01-03 22:43:51 +00:00
0e716733bc Bugfix for crash in strand simplification code. 2008-01-03 12:45:56 +00:00
861d5e57a5 displace modifier wasnt loading in linked textures/objects. missing calls to expand_doit 2008-01-02 18:44:13 +00:00
2c6e0f5ab2 Bugfix for memory leak with particle roughness vertex groups. 2008-01-02 17:57:18 +00:00
0c6d3169dd Bugfix for some strand simplification popping. 2008-01-02 15:44:28 +00:00
a9c36825aa svn merge -r 12937:13095 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-01-02 14:36:46 +00:00
5b9a06e041 Pre merge commit, only added debug output so far 2008-01-02 13:51:44 +00:00
3ef896a945 == Sequencer ==
Attention! Rather large sequencer rewrite:

* Implemented layer blending using implicit effects. (works like layers 
  in "The Gimp" or Photoshop.)
* Fixed Space-Bar start-stop in preview windows.
  You can start playback using spacebar within a preview-window and it _works_!
* Fixed Flip Y (didn't work for float)
* Fixed premul (didn't work for float)
* Added IPOs to _all_ tracks. In blend-mode REPLACE it drives the 
  "mul"-parameter in all other blend modes it drives the effect.
* you can meta single tracks.
* moved "mute track" from "M" to "Shift-M"
* added "Shift-L" for "lock track"
* changed inner workings for Metas. Now all ImBufs have to use the
  reference counting mechanism. (Only interesting for coders :)

!!! Really important change, that affects current files!

Since you can mute tracks and now there is real layer blending capabilities
in place, I changed the silly behaviour that chose the output track.

Old behaviour: if we have an effect track visible, use the uppermost effect
track. If there is _no_ effect track visible, use the lowest input track.

New behaviour: always use the uppermost track. With blend modes active: 
work our way down starting from the uppermost track to the first 
"replace"-mode track. This is the way the gimp, photoshop, basically _all_
other applications work...

So if this change ruins your day: please try to fix your files using
"mute". If this doesn't work out, I can still restore the old behaviour,
but I really hope, that this is _not_ necessary!

Rational: most people won't get affected by this change, since you can't
really do anything usefull with the (old) sequencer without at least one 
effect track and then you are on the safe side...
2008-01-01 11:44:42 +00:00
d5e491c3ef Recoded particles initial rotations to allow much more flexible settings. 2008-01-01 01:00:05 +00:00
9afd6135d6 made dupli's respect render and view restrict flags (from the outliner)
This means one group can contain proxy objects to display in the 3d view as well as hi quality models that are only rendered. - again for peach tree's.
2007-12-31 12:47:10 +00:00
d00d1f1c89 Routine purge of compiler warnings
* Most were uninitialised vars
* Fixed whitespace in a few places 
* The change I made in rendercore.c -> do_bake_shade() was for an uninitialised var, but I hope it does't cause any rendering errors...
2007-12-30 23:27:35 +00:00
5be2e5aa98 == PoseLib - Overhauled Implementation ==
Based on feedback from Ton, I've recoded the way "PoseLibs" are implemented/exposed. Therefore, quite a bit of code has been changed to fit this in better.

Now, ANY ACTION can be a "PoseLib". A set of Markers which belong to the Action (it's taken a year, but they're finally back), are used to tag "poses" in the Action. These markers are shown using diamond-shaped blue icons (designed by Matt Ebb) in three shades - unselected/normal, selected, active. 

Notes:
* Each Armature Object has an Action which acts as a PoseLib.
* Improved UI presented in buttons panel for this
-- added proper buttons for action assigning
-- renamed "Validate PoseLib" to "Auto-Sync PoseLib" (this option auto-tags poses based on keyframes found) 

Like in the 3d-view, use the hotkeys:
* Shift-L to add a local marker 
* Ctrl-Shift-L to rename a local marker
* Alt-L to delete selected local markers

Note: transforms, etc. are not currently available with these markers 

== PoseLib Preview ==
Added a few features here:
* Left/Right-Arrow keys now change the poses too (previous and next respectively)
* Up/Down-Arrow keys also change the poses, but "jump" to a pose 5 steps away in their respective directions
2007-12-30 12:08:28 +00:00
3c1ad6a295 * Displacement map baking
This is an extension on the work Brecht already did to implement normal map baking. I've updated the release notes page here with info and pics:

http://www.blender.org/development/current-projects/changes-since-244/render-baking/
2007-12-29 05:17:19 +00:00
64dd90af0b - particle size changes weren't updated without a cache clear
- protecting the particle cache now actually protects the cache a bit better and not just prevent the clear button from working
- cache was being used for "none" physics.
- a bad tooltip for "reactor initial velocity"
2007-12-28 16:13:52 +00:00
16ea99cbaa Support for recursive dupli's, now dupliverts and duplifaces can instance empties that intern instance dupligroups. 2007-12-27 22:58:32 +00:00
fbc743f332 fix .. hum not really a bug but waste of CPU
remove 6 multiplications and one square root in core spring calculation .. called for every solver step try
2007-12-27 22:48:30 +00:00
f4015d9fce Bilateral Blur Node
Bilateral Blur node allows the user to blur images while retaining their
sharp edges. Blurring can be controlled by following controls:
*Iterations
*Color Sigma
*Space Sigma

Also image input to blur and a determinator image is provided. The node produces
a blurred image as its output.

The more iterations are provided, the smoother the result. Use color and space
sigmas to control the amount of blur. One way to use the determinator input is
to feed a mix (add) of Z and normal passes to it.

Examples of usage:
Ambient Occlusion smoothing - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_01.blend
Blurry Refraction - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_02.blend
Smoothed shadows and smoothed Ambient Occlusion combined - http://wiki.blender.org/index.php/Image:Bilateral_blur_example_03.blend

If you check out the examples, render the image and alter the values to see how 
they affect.

More information about the algorithm can be found at 
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html .

Thanks to Vilem Novak for contributing the patch.
2007-12-27 20:36:17 +00:00
59d40d7f84 DupliGroups can now instance duplifaces and duplierts - not nice code, but this should help a move to proper recursive dupli's.
This is needed for peach project leaves on tree's

(space.c better tooltip for mipmaps)
2007-12-27 20:33:29 +00:00
8ddc48d32f Directional Blur Node
Directional Blur node allows the users to do various blur operations on the input 
image. It essentially offers three different kind of ways of blurring in one node.
It is possible to blur using a certain direction, spin and zoom. These three ways 
can be used in conjunction.

The node contains following controls:
*Iterations, Wrap
*Center: X, Y
*Distance, Angle
*Spin
*Zoom

Iterations is used to determine the smoothness of the result. The more iterations,
the smoother result. Low values are good for preview.

Wrap means that the image is wrapped as if it was tiled on both x and y directions.
To see better what this means, try it with spin for instance.

Center values (X and Y) determine the location which is used as a pivot point for
the operations. It is center (0.5) of the image by default.

Distance and angle are used to adjust directional blur. The result can be described
as a sweep that varies based on given distance (bigger distance, longer sweep) and
angle. Angle is given in degrees.

Spin produces rotating blur based on given angle. Yet again it is in degrees. Also
negative values work.

Zoom causes the image to be zoomed towards set center point (Center values).

Thanks to Alfredo de Greef (eeshlo) for contribution.

Possible development ideas:
*Make an algorithm to extend image in case spin is used. Extend would temporarily
change the size of the canvas of the input image. Canvas would be filled based on
colors on the edges of the input image. After the blur operation has been done,
the image would be cropped back to normal size. The advantage of this would be nicer
result of spin (no problems with image size) on a computational cost.
*Make values animatable. This is something that is better solved on more general
level. ("everything is animatable" paradigm)
*Provide an option to calculate automatic value for iterations. A good value that
produces a smooth result could be calculated based on direction deltas. This would be
useful in conjuction of animatable values.
2007-12-27 14:19:11 +00:00
d06dc00af9 Toggle links tool for Node Editor
This commit adds a new tool, Toggle Links, to the node editor. This tool
allows the user to toggle the status (linked/not linked) between desired
sockets. The tool can be used either by using the f key or the menus.

This functionality is analogue to one found in object editing modes except
for its additional toggle functionality.

To use this tool, the user has to first select an input and an output socket.
Selecting is done by clicking with right mouse button on a socket. After the 
tool has been invoked, the link between those two sockets is toggled. The 
result may vary based on existing linkage.

There can be only one input and one output selected at maximum in a node 
tree. This means that if the user selects a socket while one of the same 
type is already selected, the old one will be deselected.

The tool complements the current way of connecting nodes. One possible use
for it is to use it to review output of nodes by using a viewer node. Just
select wanted input socket of a viewer node, set it visible and use selection 
of an output socket in conjuction with f key to show the output in the viewer
node. Select another output and hit f to see its output and so on.
2007-12-27 10:17:33 +00:00
fc2cf13fc6 == Sculpt ==
Fixed a memory leak when using the interactive brush resize tool.
2007-12-26 23:08:00 +00:00
015007beaf == Sculpt ==
Fixed bad level calls in sculptmode.
2007-12-26 22:40:56 +00:00
8e84f64c3d == Multires ==
Fixed multires_update_colors so it ignores the editmesh during render.
2007-12-26 20:43:58 +00:00