Commit Graph

53000 Commits

Author SHA1 Message Date
Joshua Leung
173830a7fa == Action/Pose Groups - Keyframing Integration ==
Now, when inserting keyframes (either IKEY or AutoKeying), if an ActionChannel has been newly created, it will get assigned to an Action-Group with the same name as the Bone-Group that the bone it represents belongs to.
2008-01-21 11:26:24 +00:00
Daniel Genrich
3759c772fd Speedup spring creation again, was lost during merge 2008-01-21 10:55:46 +00:00
Joshua Leung
1db590092f == Limit Rotation Constraint - Affects Transform ==
Now, the Limit Rotation Constraint can be made to work on the Transform values like the Limit Location/Rotation constraints. Use the "For Transform" button to activate.

Note: this does not really work as well as for the other constraints, as it currently does conversions between eulers/quats and matrices. This results in loss of rotation data.
2008-01-21 07:54:31 +00:00
Daniel Genrich
ddef077b38 svn merge -r 13240:13323 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2008-01-21 02:42:42 +00:00
Daniel Genrich
530039a429 Restructured many collision things again, GUI cleanup 2008-01-21 02:23:03 +00:00
Campbell Barton
ebb15ff9d5 selecting keyframes in the ipo view didn't work well when zoomed in far, use pixel width rather then frame with when giving deselected frames a bias 2008-01-21 00:41:29 +00:00
Joshua Leung
ab1482dce9 Added missing header (stddef.h) 2008-01-21 00:41:29 +00:00
Joshua Leung
aa03132bc3 [Coder API's]: Added a "generic unique name-finding function".
Basically, this is based on the behaviour of the unique_constraint_name (or equivilant) functions, which have traditionally been duplicated everytime a new datatype needed this.

Currently, this is in use for the following things:
* Constraints
* Action/Bone Groups
* Local Action Markers / PoseLib poses

Usage Notes:
* The file in which this is to be used should include the standard header file <stddef.h>. This defines the offsetof() macro, which should be used to find the relative location of the "name" member of the structs
* This function is only designed for names of up to 128 chars in length (Most names are at most 32. TimeMarkers are 64). If a longer string needs to be handled, the function will need to be modified accordingly. 
* defname is the default name that should be used in case one hasn't been specified already
2008-01-20 23:53:13 +00:00
Campbell Barton
6f4c03a091 opengl stamp wasnt working right, stamp assumed an alpha channel existed. 2008-01-20 23:52:48 +00:00
Martin Poirier
3d7271f059 === Transform Snap ===
Snapping Mode: Active

With this mode, the active element (at this time, object or vertice) is used as snapping target. If there is no active element in the selection, it reverts back to median mode.


Edit Mode snapping, other meshes no longer have to be selected to act as snapping point.


Fix a potential bug with snapping point from other meshes.
2008-01-20 22:43:48 +00:00
Jens Ole Wund
32c4bbbcc5 hiding some softbody options i did hope to get working
that is : good enough to pass PQC = personal qualitiy control
*sigh*
before peach freeze
some of them almost did .. 
but hey we want to give 'em peachers something to rely on
not a mushy "may be it works" 
so 'implicit solver' is gone for now 
and from what i read between the lines in various papers
the main problem is the Jacobian has negative 'eigenvalues'
yeah that rings a bell .. the transition from a continuous system to a discrete one
bears that.
/* you did not read/understand that .. fine .. because this is something that might give me my late PhD */
2008-01-20 22:01:51 +00:00
Nathan Letwory
43f680bad8 *remove superfluous glEnd(); - made func internal too. 2008-01-20 21:37:39 +00:00
Campbell Barton
88561ed669 touch function that should also work on non unix os's, though I cant test here. 2008-01-20 21:27:16 +00:00
Nathan Letwory
107b0997e7 * grow AZone size
* remove ^M's
2008-01-20 21:10:55 +00:00
Campbell Barton
c11fce1a9f draw muted strips faded. hkey added alt+hkey to mute and un-mute strips, Mkey is used for metastrips. would be nice to make this similar to object mode restrict render option. 2008-01-20 20:09:06 +00:00
Peter Schlaile
053dca1fa9 == Sequencer / FFMPEG ==
This fixes:

[#7989] Sequence editor preview and anim render output broken on Linux PPC

and also optimizes RGBA -> ABGR conversion function a little bit.
(Fixing also a crash, if there is no ibuf->rect available...)
2008-01-20 18:55:56 +00:00
Campbell Barton
f417989871 Made it so locked strips inside metastrips are transformed.
Removed FTYPE from render output panel - was some old format that did index colors, and wasn't even used anywhere.

Added 2 options to the render output panel that can be used for a really basic local renderfarm (even artists can use it!),
"NoOverwrite" and "Touch"
When both are enabled, rendering 1 scene between many pc's on a fast network will populate the directory with frames.
Also useful to delete frames that have errors and re-render (without manually re-rendering each frame)
2008-01-20 17:53:58 +00:00
Ton Roosendaal
518d3b2c36 Two fixes for yesterday commit, new Mist pass:
- non OSA case didn't work
- ztransp adding was accidentally using an incorrect alpha value

NOTE: allmost all pass types rendered in OSA with a filter (not box!) were
incorrectly added on solid layers. Like diffuse, AO, etc.
2008-01-20 14:50:30 +00:00
Campbell Barton
8ded57d236 Cant use WHILE_SEQ when drawing,
drawing strips was setting the depth that would then incorrectly overlap when used with metastrips. - so metastrisp would grow when moved - showed up in peach animatic.

Now metastrips draw display differently- only immediate children are shown on the strip.

Also disabled overlap checking during transform for non zero depth strips since its not needed.
2008-01-20 13:52:54 +00:00
Peter Schlaile
223b4132a0 == Sequencer ==
Fixed crash with metastrips where ibufs where null...
2008-01-20 08:59:06 +00:00
Joshua Leung
54cf47aaab == Action Editor - Copy/Paste Improvements ==
Changed the way the offsetting of pasted keys relative to the current time works. Now, all pasted frames are offset by the same amount. This is calculated as the difference in the times of the current frame and the 'first keyframe' (i.e. the earliest one in all channels to be pasted). The 'first keyframe' is found when doing the copying.
2008-01-20 05:10:35 +00:00
Diego Borghetti
a2074a1522 Changes to the "join area" operator.
This is a patch by Michael Fox (mfoxdogg) that make more
easy join two are, just RMB+Alt in the "origin" area,
drag the mouse to the "target" area and release the mouse.

Note that this is not a "final mouse-bind" for the join
operator, just an easy and simple option for test in 
this early stage of 2.5.

Other note: maybe it's a good idea add azones here ?
2008-01-20 04:39:50 +00:00
Joshua Leung
10d8b25aed Action Editor - More Bugfixes for Action-Groups:
* Wrong selection functions were being used for borderselect when handling groups. This resulted in all of the keyframes for a group getting selected
* Select row was not working for groups either, as there was missing code there...
2008-01-20 04:27:54 +00:00
Joshua Leung
721e5b10c4 Bugfix for Action-Groups:
The way the end of a group's channels was being detected was wrong in many places, resulting in the group's last channel often being skipped.
2008-01-20 03:16:19 +00:00
Joshua Leung
cd137f2898 == Bone Groups ==
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.
2008-01-20 02:55:35 +00:00
Diego Borghetti
0db1aed7e1 More change to the gesture manager.
After check this a little more I make some changes to the
API and now work on the following form:
	WM_gesture_init(C, type);

	while() {
		/* handler event, etc */
		/* if something change. */
		if(need_update) {
			/* update the gesture data and notify about it. */
			WM_gesture_update(C, data);
			WM_event_add_notifier (.. WM_NOTE_GESTURE_CHANGE ..);
		}
	}
	WM_gesture_end(C, type);

Another of the change is that now the gesture data is a link list
in the window struct, so we can have multiples "gestures" (but
of different type) at the same time.

Also take care that the "gesture data" is reusable, that mean that
only alloc it 1 time and use in all the place, that is
why don't support multiple gesture of the same type, but of course
that can be change.
2008-01-19 21:54:33 +00:00
Brecht Van Lommel
231840a99f Bugfix for crash in approximate AO pixel cache. 2008-01-19 19:33:32 +00:00
Campbell Barton
2fa4ff4dac missing header from editipo.c 2008-01-19 19:01:19 +00:00
Diego Borghetti
b80049a139 New "Gesture Manager" system.
This is a first implementation of the "gesture manager" system,
the idea is put the WM in a automatic draw mode so we can
implement different "Gesture types" to draw different class
of data (lasso, bound box, etc).

The gesture data is passed through the data field of the notifiers,
i think that we can change this to something like:
	WM_gesture_init(C, data); /* put the data in the context. */

	while() {
		/* send WM_NOTE_GESTURE_CHANGED to update screen */
	}

	/* send event and free the data in the context. */
	WM_gesture_end(C);

Also i add a new operator and event to test the gesture manager.
The new operator is the "border select" function, just press BKEY
in the window and LMB or ESCKEY to exit.
In the case of LMB you can see a print in the console about the
BORDERSELECT event.

All this still need a lot of work, comment are welcome.
2008-01-19 17:54:05 +00:00
Campbell Barton
d450dbec91 add the option to add the parents time offset value. 2008-01-19 16:32:29 +00:00
Campbell Barton
7b6c88473c find_group would only return the first group, this let to the assumption that an object was only in 1 group, made it easy to loop through all groups an object is in.
group = NULL;
while( (group = find_group(base->object, group)) ) {
	...
}
2008-01-19 15:13:42 +00:00
Ton Roosendaal
c8841a7f2f Added new render pass: "Mist".
This is actually just the alpha value as currently being calculated
by the mist code. It is in many cases not very useful to have this as
alpha in shading result, also for postprocess and composite.

Note: this pass also works with "Mist" not set in World, of course.
2008-01-19 11:17:12 +00:00
Campbell Barton
31f14862f7 don't display relative paths button when loading files.
this was silly anyway since it always gave an error.
2008-01-18 23:31:18 +00:00
Kent Mein
320ac3f0e2 Fixing makefiles for binreloc I made it use flags like other
things default on for linux.  ideasman helped me get scons working.
Cmake still needs some love...

Kent
2008-01-18 21:39:47 +00:00
Campbell Barton
09c2fd6f11 Linux only addition to know for sure the path of blender because sometimes the Play button doesn't work depending on how blender is started.
This uses binreloc - http://autopackage.org/docs/binreloc/
it should also solve the problem of python scripts not being found.
2008-01-18 15:10:17 +00:00
Brecht Van Lommel
afc53a1eba Bugfix: particle settings didn't automatically link in associated
objects or groups.
2008-01-18 14:30:26 +00:00
Campbell Barton
9afc417bed 2 new timeoffset buttons in the animation panel "Ofs" and "Rand"
Useful when animating many objects falling at different times (for instance).
2008-01-18 12:20:28 +00:00
Campbell Barton
9d13e08331 bugfix didnt get committed somehow, appending a group assumed any indirectly linked objects were apart of the appended groups and the objects added to the scene.
Now there are recursive dupli's this is no longer true. so need to check the append flag.
2008-01-18 11:51:46 +00:00
Joshua Leung
14f007adc8 == Action-Groups - Drawing Tweak ==
Now action-group channels are drawn with a green-ish strip background instead of the usual colours to help distinguish them from other channels, making it easier to identify them.
2008-01-18 00:04:19 +00:00
Joshua Leung
0db1666b6e Routine purge of compiler warnings 2008-01-17 23:38:53 +00:00
Nathan Letwory
d7223cb3aa * clean up ^M
* make default size of action zones smaller (still draw them, but that could be also made optional).
2008-01-17 23:03:37 +00:00
Joshua Leung
44c31bb045 == Action Editor - Groups for Action Channels (Peach Request) ==
Now, you can assign Action Channels to named (folder-like) groups, which help to organise the channels (important for more complex rigs). These are collapsible, can be "protected", and show a "summary" of the keyframes in the channels the Group contains. They are drawn as bright-green (active) or a darker shade of green (not active) channels.

* Each Action has its own set of Groups. 
* An Action-Channel can only occur in one Group at a time. It can also not occur in any group.
* Action-Channels can be moved between Groups
* Groups + grouped-channels always occur BEFORE un-grouped channels

Important Hotkeys:
* Shift-G  :  Adds the selected Action-Channels to the Active Group. This will create a new group if need be
* Ctrl-Shift-G : Always adds a new group, and adds the selected Action-Channels to it
* Alt-G : Removes selected Action-Channels from their groups
* Ctrl-Shift-Alt-G : (Note: this will be removed soon) This is a simple debugging-hotkey I added, which just prints a list of the groups, channels, and their addresses...
* NKey / Ctrl-LMB: While hovering over the name of a group, this shows a popup like for other channels, which allows the editing of the channel's name, etc.


Assorted Notes:
* Some tools may not work yet with this (Ctrl Numpad+/- for example)
* Fixed some bugs in various places in Action Editor code
* Added theme colours for group channels
* The nomenclature of these tools may change in future when a better alternative is found
* The ability to auto-assign action-channels to groups when they are keyframed will be coming up shortly
2008-01-17 23:02:11 +00:00
Martin Poirier
65d61c2cb6 === Custom Transform Orientation ===
Added orientation overwriting old ones didn't change correctly (weren't returning the correct index).
2008-01-17 22:57:00 +00:00
Kent Mein
e7bcdfa7af Fixed some whitespace indentation I found while looking at something else.
Kent
2008-01-17 21:25:25 +00:00
Brecht Van Lommel
8cdfe865ec Approximate Ambient Occlusion
=============================

A new approximate ambient occlusion method has been added, next to the
existing one based on raytracing. This method is specifically targetted
at use in animations, since it is inherently noise free, and so will
not flicker across frames.

http://www.blender.org/development/current-projects/changes-since-244/approximate-ambient-occlusion/
http://peach.blender.org/index.php/approximate-ambient-occlusion/

Further improvements are still needed, but it can be tested already. There
are still a number of known issues:

- Bias errors on backfaces.
- For performance, instanced object do not occlude currently.
- Sky textures don't work well, the derivatives for texture evaluation
  are not correct.
- Multiple passes do not work entirely correct (they are not accurate
  to begin with, but could be better).
2008-01-17 19:27:16 +00:00
Ton Roosendaal
9af3b8a07e Render control feature: shader-level shadowbuffer bias
Lampbuffers require painful bias tweaking (to prevent aliasing or to
get shadow detail). Sometimes you want this different per object, like
for gras you want less shadow detail, but for the ground you want high
detail. This feature allows to tweak it.

The new "LBias" slider is in shader panel, bottom. Ugly! But, thats for
later...
2008-01-17 19:01:58 +00:00
Campbell Barton
4966e63f4f game engine wasnt compiling 2008-01-17 17:15:44 +00:00
Diego Borghetti
2dc143552f Fix uninitited list pointer when duplicate an area. 2008-01-17 16:22:37 +00:00
Ton Roosendaal
e14ed616fb Tiny fix but took me hours to track down: render layer menu in Image Window
is not being reset when you render, so after render the layer you picked is
still visible in Image Window.
2008-01-17 15:45:40 +00:00
Nathan Letwory
d72af0a5a9 * First working version of a new split tool for areas.
- LMB+drag from lower left action zone. LMB release confirms
  - RMB or ESC cancel.

TODO:
  - subdiv (drag to center)
2008-01-17 13:50:54 +00:00