Commit Graph

5466 Commits

Author SHA1 Message Date
Tom Musgrove
aa31da2abf ==compile fix==
added RE_RenderLayer to stubs.c so we can compile gameengine
2006-03-09 00:34:49 +00:00
Ton Roosendaal
973b442075 Compositing goodie: ESC now works to stop, but it will finish the node it
was working on.
2006-03-08 21:12:48 +00:00
Ton Roosendaal
0bc3e9639b Baking all selected softbody: press ctrl+b in 3d window! 2006-03-08 17:45:32 +00:00
Ton Roosendaal
b05269adc2 <blush>Nice work on renderlayer control yesterday, but... then you should
also change this line in creator.c dude!</blush>
2006-03-08 17:27:20 +00:00
Ton Roosendaal
5d1f64fc19 Bugfix: Sofbody baking included the 'start frame' for the object in
calculus, causing empty keys in the bake, and crashes.
2006-03-08 17:00:48 +00:00
Ton Roosendaal
2858229e9f Compositor now checks for cyclic nodes too, and skips them while executing.
This prevents eternal loops. It prints error message in console.

Note that the Shader nodes dont need this, since they're just executed in
presorted order. The compositing nodes use threading, with a call asking
for the next job... if this includes cyclic nodes, the 'next job' will
always return  NULL.
2006-03-08 13:06:32 +00:00
Ton Roosendaal
8d345b916d Test with render window not drawing in frontbuffer anymore. Only enabled
now for OSX though... that's where we can verify if the irregular crashes
will stop (ATI issue, nvidia seems to be OK)

If ATI users for other platforms want to check; just extend the two
#ifdefs I added for frontbuffer drawing. Note; the syntax then becomes

#if defined(__APPLE__) || defined(_YOUR_PLATFORM_)
2006-03-08 12:28:46 +00:00
Ton Roosendaal
2db9b8fe7f Quick feature: "Around Individual Centers" now works in editmode mesh, but
only in Face-Select mode. It then uses for rotate and scaling the face
center itself as reference.

Code uses a loop-in-loop to find the face that belongs to the vertex...
means it will be slow with operations on 10k or more faces. Acceptable
for now, will make it nicer later. :)
2006-03-08 11:07:49 +00:00
Geoffrey Bantle
d51a6020c8 -> Path Select Tool
Added a new tool to the 'W-Key' popup menu in mesh editmode, 'Path Select'.
When exactly two vertices are selected, 'Path Select' will find the shortest
path of vertices between them. There are two methods for determining
the shortest path, one that finds the path with shortest physical
distance, and one that finds the path with shortest topological distance.

Examples:

Original Selection
http://www.umsl.edu/~gcbq44/pathselect.jpg

Path Select - Edge Length
http://www.umsl.edu/~gcbq44/pathselect-shortestphysical.jpg

Path Select - Topological
http://www.umsl.edu/~gcbq44/pathselect-topological.jpg

The tool uses a straightforward implementation of Dijsktra's algorithm
and may be a bit slow on extremely large meshes. As a speedup you can
hide the parts of the mesh that you are not working on and they will
not be searched.
2006-03-08 03:28:17 +00:00
Ton Roosendaal
c2fffa60b1 Small fix for surviving changes in library data.
In case an armature object lost its object-data, it crashed in trying
to link the pose data.
2006-03-07 21:50:26 +00:00
Ton Roosendaal
d0011f3318 Compositing workflow goodie; each 'render result' node now has a button
option to re-render that specific node. Also works for nodes using other
scenes.
2006-03-07 21:26:37 +00:00
Peter Schlaile
48f6e94036 Fixes a small warning, when compiling without ffmpeg 2006-03-07 20:28:05 +00:00
Peter Schlaile
327d413eb3 this patch features several cleanups and bugfixes for the sequencer:
- blur works again (this was a serious bug in gamwarp...)
- seperates all sequence effects into a seperate file with a clean interface
- thereby fixing some obscure segfaults
- seperates the scope views into a seperate file
- adds float support to all effects and scope views
- removes a bad level call to open_plugin_seq
- FFMPEG seeking improved a lot.
- FFMPEG compiles with debian sarge version cleanly
- Makes hdaudio seek and resample code really work
2006-03-07 20:01:12 +00:00
Ton Roosendaal
9ce587e211 Quickfix: appending scenes from a file, won't expand the other scenes
when used in a compositor node... this is quite useless, and invokes
importing all data.
2006-03-07 14:47:41 +00:00
Ton Roosendaal
800e6400dc CTRL+C Copy Menu now includes modifiers for Curve objects. 2006-03-07 13:29:25 +00:00
Ton Roosendaal
aa1d8162be Curves with bevel, but without front/back or extrude depth, now render
as a full circle instead of 2 halves.
2006-03-06 21:44:08 +00:00
Ton Roosendaal
29f60690e5 Render option "Single Layer" now keeps the already rendered other layers,
and after rendering restores them. Also means this option works for
compositing now.
2006-03-06 13:50:07 +00:00
Campbell Barton
e0f9c69a2c quick fix for Python armature CVS making bones with no layers, therefor being invisible.
Should realy have Bone/Layer access through python.
2006-03-06 02:07:39 +00:00
Campbell Barton
d16254cc2c Rather then just complaining it cant be done, made M move objects out of the current localview.
This is quicker then switching to non localview, de-selecting and going back into localview.
  Test by pressing Mkey in localview.
2006-03-06 01:11:56 +00:00
Ton Roosendaal
8da71e806e Added CTRL+L link copy and SHIFT+L link select for group-duplicators. 2006-03-05 22:31:32 +00:00
Ricki Myers
8ba4f45ec6 Removes warning in drawtext.c 2006-03-05 19:56:31 +00:00
Ricki Myers
7cf600be30 Adds menu item in text editor under format menu to convert whitespace to
Spaces or to tabs.
Adds function void convert_tabs(struct SpaceText *st, int tab)
int tab is eather 0 or 1; 1 if converting to tabs
I was going to make this auto run when running a script but did not know what that would do to the GE or any thing else.
2006-03-05 19:50:14 +00:00
Jean-Luc Peurière
f325da228c fix for bug #3655
adding a DAG update like in other implantations of the call supress
the crash on remove double.

added the undo push too to be consistant
2006-03-05 18:34:49 +00:00
Ton Roosendaal
fd1d3779d0 Fix for appending data from other files: if this appended data
again was linking from another file, this relationship was not
corrected (lib_indirect -> lib_extern), so also not saved in a file.
2006-03-05 17:35:06 +00:00
Andrea Weikert
f6cd40ee40 === code cleanup ===
Replacing strcpy with BLI_strncpy where it's safe.
Was part of patch #2840 - thanks Eric Forsythe.
2006-03-05 16:36:32 +00:00
Chris Want
58f4fcfd6e Some C conpilers only want variables to be initialized with constants,
and will not allow variables to be initialized with the contents of
other variables.
2006-03-05 14:56:51 +00:00
Ton Roosendaal
6d6f539d03 Ungrouping a Node in Compositor left uiBlock pointers unchanged in
nodes, causing crashes evidently. :)
2006-03-05 14:37:46 +00:00
Ton Roosendaal
a5a26170b2 Also fixed memory print for background render to survive > 2 gig (unsigned) 2006-03-04 22:35:28 +00:00
Ton Roosendaal
2cabdfa37b Dupli-Group fix: when using multiple instances of groups, with groups on
different layers, the layer flags of objects got mixed up on selection.

This caused groups to become unselectable or uneditable, also the original
group...
2006-03-04 17:05:28 +00:00
Ken Hughes
ae32a538dd ===Python API===
Taking a hint from Hos, started adding some (hopefully) better examples into
the documentation for creating and manipulating meshes.
2006-03-04 00:04:45 +00:00
Geoffrey Bantle
932717da38 -> Silly mistake in loop_multiselect() in editmesh_mods.c, called EM_select_flush() instead of EM_selectmode_flush()... Oops! 2006-03-03 18:00:33 +00:00
Joilnen Leite
8afc4cf192 fix for bug 3903
.
2006-03-03 17:45:23 +00:00
Ton Roosendaal
524a2d24ac New copy option in CTRL+C menu: copy autosmooth settings. 2006-03-02 22:54:12 +00:00
Ton Roosendaal
3d2aa2815d Accidentally mixed up a true and false statement for detecting if halos
need panorama clipping or regular clip, causing halos to not render
without panorama...
2006-03-02 16:09:30 +00:00
Campbell Barton
0caa0ddb82 Fixed mistake where BLI_countlist(&(lb)) should be BLI_countlist(lb) 2006-03-02 01:00:13 +00:00
Ton Roosendaal
a85d160a3e Feature: Sofbody bake "Local"
Sofbody simulation happens in global coordinate space, and this was also
used for baking softbodies. Too bad you cannot re-use or further animate
the baked softbody then... :)

If you now use the new "Local" button in the Bake menu, it will allow to
animate or move the baked object.
2006-03-01 23:45:25 +00:00
Ton Roosendaal
a8afa6dc20 Proper syntax for freeing an allocated array in silly c++ :) 2006-03-01 21:18:31 +00:00
Brecht Van Lommel
b9861d2a80 Array modifier patch by Ben Batt! (#3788)
This modifier allows to make arrays of meshes, with multiple offset types:
- constant offset
- offset relative to object width
- offset with scale and rotation based on another object

The number of duplicates can be computed based on a fixed count, fixed length
or length of a curve. Duplicate vertices can be automatically merged.

Nice docs and example files available in the wiki:
http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier
2006-03-01 15:30:10 +00:00
Geoffrey Bantle
13a1a4c15e -> Vertex Group/Weight support in removedoublesflag()
Remove doubles didn't previously deal with vertex groups/weights properly. Now it averages the weights of vertices when they are doubles and share the same group. Verts that get merged but don't belong to all the same groups are dealt with as well.
2006-03-01 03:33:45 +00:00
Kent Mein
fc9615f15e reverted the looping vs switch statement. I don't know what I was thinking
in doing this in the first place.  (1 conditional vs 1 per loop duh)
Thanks for calling me on this Alexander.

(I didn't actually benchmark it to see but its pretty obvious which is less
work for the computer.)

Kent
2006-02-28 23:58:17 +00:00
Ton Roosendaal
3ecee5f154 Complex issue in group duplicators... since they can duplicate entire
animation systems, all transforms of all duplicated group members have
to be set first, before drawing or converting for render. This because
then still deformation can be calculated.
2006-02-28 20:43:21 +00:00
Kent Mein
59aced7a50 Fix for bug #3886
Basically the check for a type of jpeg was messed up.
I added a imb_is_a_jpeg function since I was working on that bit and
it makes it a little more similar to the other filetypes.

I also changed a switch statement that had the same loop for all
cases, just moved the loop outside of the switch statement.

Kent
2006-02-28 18:30:16 +00:00
Ton Roosendaal
21df108cb9 Saving OpenEXR half didn't free allocated half buffer... silly c++ memory
management!
2006-02-28 16:45:52 +00:00
Ton Roosendaal
b1c7f7f0f7 Urm... Kent's commit to fix a bug broke the other nodes that use the
same composit3_pixel_processor() function. gcc even gives nice warning:

node_composite.c: In function `node_composit_exec_mix_rgb':
node_composite.c:1437: warning: passing arg 9 of `composit3_pixel_processor' from incompatible pointer type

floats were read as pointer...
2006-02-28 16:24:25 +00:00
Peter Schlaile
5a8fd7d809 - Now the cache limitor also frees the float-planes 2006-02-28 13:07:02 +00:00
Geoffrey Bantle
3662ce0045 -> Loop MultiSelect
Added new function in editmesh_mods.c, "loop multiselect" and can be
accessed via the CTRL-E popup menu in editmode. It is used to select
multiple edge loops/rings based upon the current selection set. It does
this simply by looping through a list of currently selected edges and
calls 'edge_loop_select' or 'edge_ring_select' for each one. This can
be used to build large selection sets quickly, as can be seen in
the following example images...

step 1 - http://www.umsl.edu/~gcbq44/multiselectA.jpg
step 2 - http://www.umsl.edu/~gcbq44/multiselectB.jpg
step 3 - http://www.umsl.edu/~gcbq44/multiselectC.jpg

-> Misc

While I was in there I fixed a couple of existing issues as well...

- "Select Less" now gets a proper undo push.
- countall() wasn't being called after inclusive selection mode conversion
- some strange formatting in EM_convertsel() in editmesh_lib.c fixed.
2006-02-28 02:28:45 +00:00
Kent Mein
4de6d54eec Fix for bug #3967.
It still needs some work but at least now it doesn't crash.

Basically it changed composit3_pixel_processor so that its using full
vector instead of first element (fac variable in the code).
In reality though its just pushing where its looking at the first element
of the vector to another function (do_mix_rgb)
which is calling ramp_blend with fac[0].

Kent
2006-02-27 21:38:57 +00:00
Ton Roosendaal
23f9960db9 Restored the free_imbuf_seq_except() in sequencer, to free all memory
of sequencer, except current frame. Apparently the cache limitor doesnt
work for floatbuffers yet... and while rendering, I prefer to have all
memory available for the render itself.

Schlaile; you might check on what is wrong, in case imbufs have have
a rect_float or zbuf_float, the cache doesnt work yet?
2006-02-27 19:36:42 +00:00
Campbell Barton
833e0be7bf Added a few more button align's 2006-02-27 16:30:53 +00:00
Ton Roosendaal
f68b0ddb2a Recoded Panorama rendering.
The old implementation was added quite hackish (talking about 10 yr ago).
You also had to make a small image slice, which was extended Xparts in
size. That also required to adjust the camera angle. Very clumsy.

Now; when enabling the Panorama option, it will automatically apply the
panorama effect on the vertically aligned tiles. You can just enable or
disable the "Pano" button, to get a subtle lens effect like this:

(without pano)
http://www.blender.org/bf/rt.jpg
(with pano)
http://www.blender.org/bf/rt1.jpg

For Panorama render, the minimum slice size has been hardcoded to be 8
pixels. The XParts button goes up to 512 to allow that. In practice,
rendering 64 slices will already give very good images for a wide angle
lens of 90 degrees, the curvature of straight lines then is equal to
a circle of 256 points.
Rendering a full 360 degree panorama you do by creating an extreme wide
angle camera. The theory says camera-lens 5 should do 360 degrees, but
for some reason my tests reveil it's 5.1... there's a rounding error
somewhere, maybe related to the clipping plane start? Will look at that
later. :)

Also note that for each Xpart slice, the entire database needs to be
rotated around camera to correct for panorama, on huge scenes that might
give some overhead.

Threaded render goes fine for Panorama too, but it can only render the
vertically aligned parts in parallel. For the next panorama slice it has
to wait for all threads of the current slice to be ready.

On reading old files, I convert the settings to match as closely as
possible the new situation.
Since I cannot bump up the version #, the code detects for old panorama
by checking for the image size. If image width is smaller than height, it
assumes it's an old file (only if Panoroma option was set).
2006-02-27 12:39:36 +00:00