15 years agofix for bug 3970
Joilnen Leite [Fri, 10 Mar 2006 19:49:25 +0000 (19:49 +0000)]
fix for bug 3970

15 years agofix bug 3970
Joilnen Leite [Fri, 10 Mar 2006 19:47:36 +0000 (19:47 +0000)]
fix bug 3970

15 years agofix for bug 3970
Joilnen Leite [Fri, 10 Mar 2006 18:52:49 +0000 (18:52 +0000)]
fix for bug 3970

15 years agoFixed a mistake where the hrad/tail radius UI numinput didnt check weather the bobne...
Campbell Barton [Fri, 10 Mar 2006 02:55:18 +0000 (02:55 +0000)]
Fixed a mistake where the hrad/tail radius UI numinput didnt check weather the bobne was connected before using the parents tail value for its head.

15 years ago==SCons==
Nathan Letwory [Thu, 9 Mar 2006 23:48:56 +0000 (23:48 +0000)]
* if you all look to the left, you won't see that on the right BF_PRIORITYLIST
  was spelled BF_PRIORITY_LIST twice.

15 years agoVectorblur fix:
Ton Roosendaal [Thu, 9 Mar 2006 22:50:36 +0000 (22:50 +0000)]
Vectorblur fix:

To be able to make good masks, it is important to separate the non moving
pixels from the moving ones. With fixes I did 2 weeks ago, a floating
point inaccuracy causes speed vectors to be not always zero perfectly...
and the masks to get badly shaped.

It was clearly visible on moving objects over a non-moving background.
Current commit includes minimal threshold to force speed to zero. Images
are nice and smooth again. :)

Good again:

15 years ago-> Path Select Tool
Geoffrey Bantle [Thu, 9 Mar 2006 22:44:14 +0000 (22:44 +0000)]
-> Path Select Tool
Rewrote path select tool to use binary heap implementation from BLI_heap.h. Incredible speedup! Thanks to Brecht for the tip.

15 years agoCommit from campbell of march 5 crashes when no object was active and you
Ton Roosendaal [Thu, 9 Mar 2006 22:05:53 +0000 (22:05 +0000)]
Commit from campbell of march 5 crashes when no object was active and you
do a move to layer...

15 years ago==compile fix==
Tom Musgrove [Thu, 9 Mar 2006 20:14:18 +0000 (20:14 +0000)]
==compile fix==

ffmpeg compile fix for cygwin by Peter

15 years agoFixed bug "Bug Tracker item #3988", where <builtin> TTF (datatoc_bfont_ttf)
Mika Saari [Thu, 9 Mar 2006 16:57:19 +0000 (16:57 +0000)]
Fixed bug "Bug Tracker item #3988", where <builtin> TTF (datatoc_bfont_ttf)
wasn't handled as UTF-8 font but like normal <builtin> font. This caused
Blender to crash.

15 years agoUncommitted change of Campbell 9 days ago... the rest of the logic
Ton Roosendaal [Thu, 9 Mar 2006 15:56:08 +0000 (15:56 +0000)]
Uncommitted change of Campbell 9 days ago... the rest of the logic
editor now screws up... smells like a bug in alignment code, will need
to be checked on.

(Campbell: you sure checked the buttons before committing this? ;)

15 years agoImproved CTRL+G grouping menu; it now offers a choice to add to any
Ton Roosendaal [Thu, 9 Mar 2006 15:18:53 +0000 (15:18 +0000)]
Improved CTRL+G grouping menu; it now offers a choice to add to any
existing group, using a 2nd menu.

15 years agoBugfix... very ancient one even. When you use multiple screens in a project
Ton Roosendaal [Thu, 9 Mar 2006 12:48:13 +0000 (12:48 +0000)]
Bugfix... very ancient one even. When you use multiple screens in a project
with each having different scenes, changing screens didn't call the proper
set_scene() call, which left quite some stuff improperly initialized.

With depsgraph code even causes crashing.

15 years agoAO did not include own material rgb in calculus, causing too bright AO.
Ton Roosendaal [Thu, 9 Mar 2006 12:20:00 +0000 (12:20 +0000)]
AO did not include own material rgb in calculus, causing too bright AO.
Error caused by WIP on rendering passes.

15 years agoWhen imbuf has both float and byte rects, the scale-fast function crashed.
Ton Roosendaal [Thu, 9 Mar 2006 11:25:20 +0000 (11:25 +0000)]
When imbuf has both float and byte rects, the scale-fast function crashed.

15 years ago<sob>dropping OpenGL float buffer drawing... it seems that this isn't
Ton Roosendaal [Thu, 9 Mar 2006 10:13:37 +0000 (10:13 +0000)]
<sob>dropping OpenGL float buffer drawing... it seems that this isn't
a well supported feature for glDrawPixels(), especially on ATIs crashes
happen with it irregularly. (note; drawing float is a regular opengl 1.0

Now all scanline/part updates in renderwindow is converted to 32 bits
before drawing, also the in the UV Image window only 32 bits RGBA is drawn.

What is still float: drawing the final image after render in renderwindow,
and drawing the Z or Alpha in renderwindow and UV image.

Of course we need to test this first. :) Will await reports...

15 years ago==compile fix==
Tom Musgrove [Thu, 9 Mar 2006 00:34:49 +0000 (00:34 +0000)]
==compile fix==

added RE_RenderLayer to stubs.c so we can compile gameengine

15 years agoCompositing goodie: ESC now works to stop, but it will finish the node it
Ton Roosendaal [Wed, 8 Mar 2006 21:12:48 +0000 (21:12 +0000)]
Compositing goodie: ESC now works to stop, but it will finish the node it
was working on.

15 years agoBaking all selected softbody: press ctrl+b in 3d window!
Ton Roosendaal [Wed, 8 Mar 2006 17:45:32 +0000 (17:45 +0000)]
Baking all selected softbody: press ctrl+b in 3d window!

15 years ago<blush>Nice work on renderlayer control yesterday, but... then you should
Ton Roosendaal [Wed, 8 Mar 2006 17:27:20 +0000 (17:27 +0000)]
<blush>Nice work on renderlayer control yesterday, but... then you should
also change this line in creator.c dude!</blush>

15 years agoBugfix: Sofbody baking included the 'start frame' for the object in
Ton Roosendaal [Wed, 8 Mar 2006 17:00:48 +0000 (17:00 +0000)]
Bugfix: Sofbody baking included the 'start frame' for the object in
calculus, causing empty keys in the bake, and crashes.

15 years agoCompositor now checks for cyclic nodes too, and skips them while executing.
Ton Roosendaal [Wed, 8 Mar 2006 13:06:32 +0000 (13:06 +0000)]
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.

15 years agoTest with render window not drawing in frontbuffer anymore. Only enabled
Ton Roosendaal [Wed, 8 Mar 2006 12:28:46 +0000 (12:28 +0000)]
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_)

15 years agoQuick feature: "Around Individual Centers" now works in editmode mesh, but
Ton Roosendaal [Wed, 8 Mar 2006 11:07:49 +0000 (11:07 +0000)]
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. :)

15 years ago-> Path Select Tool
Geoffrey Bantle [Wed, 8 Mar 2006 03:28:17 +0000 (03:28 +0000)]
-> 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.


Original Selection

Path Select - Edge Length

Path Select - Topological

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.

15 years agoSmall fix for surviving changes in library data.
Ton Roosendaal [Tue, 7 Mar 2006 21:50:26 +0000 (21:50 +0000)]
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.

15 years agoCompositing workflow goodie; each 'render result' node now has a button
Ton Roosendaal [Tue, 7 Mar 2006 21:26:37 +0000 (21:26 +0000)]
Compositing workflow goodie; each 'render result' node now has a button
option to re-render that specific node. Also works for nodes using other

15 years agoFixes a small warning, when compiling without ffmpeg
Peter Schlaile [Tue, 7 Mar 2006 20:28:05 +0000 (20:28 +0000)]
Fixes a small warning, when compiling without ffmpeg

15 years agothis patch features several cleanups and bugfixes for the sequencer:
Peter Schlaile [Tue, 7 Mar 2006 20:01:12 +0000 (20:01 +0000)]
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

15 years agoQuickfix: appending scenes from a file, won't expand the other scenes
Ton Roosendaal [Tue, 7 Mar 2006 14:47:41 +0000 (14:47 +0000)]
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.

15 years agoCTRL+C Copy Menu now includes modifiers for Curve objects.
Ton Roosendaal [Tue, 7 Mar 2006 13:29:25 +0000 (13:29 +0000)]
CTRL+C Copy Menu now includes modifiers for Curve objects.

15 years agoCurves with bevel, but without front/back or extrude depth, now render
Ton Roosendaal [Mon, 6 Mar 2006 21:44:08 +0000 (21:44 +0000)]
Curves with bevel, but without front/back or extrude depth, now render
as a full circle instead of 2 halves.

15 years ago==SCons==
Nathan Letwory [Mon, 6 Mar 2006 14:50:08 +0000 (14:50 +0000)]
* BF_DEBUG_FLAGS was missing for the allowed cmd-line arguments. Oops!

15 years agoRender option "Single Layer" now keeps the already rendered other layers,
Ton Roosendaal [Mon, 6 Mar 2006 13:50:07 +0000 (13:50 +0000)]
Render option "Single Layer" now keeps the already rendered other layers,
and after rendering restores them. Also means this option works for
compositing now.

15 years agoquick fix for Python armature CVS making bones with no layers, therefor being invisible.
Campbell Barton [Mon, 6 Mar 2006 02:07:39 +0000 (02:07 +0000)]
quick fix for Python armature CVS making bones with no layers, therefor being invisible.
Should realy have Bone/Layer access through python.

15 years agoRather then just complaining it cant be done, made M move objects out of the current...
Campbell Barton [Mon, 6 Mar 2006 01:11:56 +0000 (01:11 +0000)]
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.

15 years agoAdded CTRL+L link copy and SHIFT+L link select for group-duplicators.
Ton Roosendaal [Sun, 5 Mar 2006 22:31:32 +0000 (22:31 +0000)]
Added CTRL+L link copy and SHIFT+L link select for group-duplicators.

15 years agoRemoves warning in drawtext.c
Ricki Myers [Sun, 5 Mar 2006 19:56:31 +0000 (19:56 +0000)]
Removes warning in drawtext.c

15 years agoAdds menu item in text editor under format menu to convert whitespace to
Ricki Myers [Sun, 5 Mar 2006 19:50:14 +0000 (19:50 +0000)]
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.

15 years agofix for bug #3655
Jean-Luc Peurière [Sun, 5 Mar 2006 18:34:49 +0000 (18:34 +0000)]
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

15 years agoFix for appending data from other files: if this appended data
Ton Roosendaal [Sun, 5 Mar 2006 17:35:06 +0000 (17:35 +0000)]
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.

15 years ago=== code cleanup ===
Andrea Weikert [Sun, 5 Mar 2006 16:36:32 +0000 (16:36 +0000)]
=== code cleanup ===
Replacing strcpy with BLI_strncpy where it's safe.
Was part of patch #2840 - thanks Eric Forsythe.

15 years agoIt looks like Irix works alright with the /dev/zero trick for mmap().
Chris Want [Sun, 5 Mar 2006 14:58:56 +0000 (14:58 +0000)]
It looks like Irix works alright with the /dev/zero trick for mmap().
I had to include fcntl.h for Irix to get symbol O_RDWR.

15 years agoSome C conpilers only want variables to be initialized with constants,
Chris Want [Sun, 5 Mar 2006 14:56:51 +0000 (14:56 +0000)]
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.

15 years agoUngrouping a Node in Compositor left uiBlock pointers unchanged in
Ton Roosendaal [Sun, 5 Mar 2006 14:37:46 +0000 (14:37 +0000)]
Ungrouping a Node in Compositor left uiBlock pointers unchanged in
nodes, causing crashes evidently. :)

15 years agoAlso fixed memory print for background render to survive > 2 gig (unsigned)
Ton Roosendaal [Sat, 4 Mar 2006 22:35:28 +0000 (22:35 +0000)]
Also fixed memory print for background render to survive > 2 gig (unsigned)

15 years agoTo prevent confusement; used %u (unsigned int) for printing memory error.
Ton Roosendaal [Sat, 4 Mar 2006 22:22:38 +0000 (22:22 +0000)]
To prevent confusement; used %u (unsigned int) for printing memory error.

15 years ago=== Script Update: UV Export ===
Martin Poirier [Sat, 4 Mar 2006 18:19:05 +0000 (18:19 +0000)]
=== Script Update: UV Export ===

Updated the interface to use PupBlock and the FileSelector instead of drawing a full GUI
Fix a crash when no objects were selected and the Ob option was activated
Added option to edit the resulting image in an external program (this needs a full python distro for the os module. it detects the presence of the module and shows the option only if possible).
Saves the selected settings (except the save path) with Registry, so they get loaded back next time you use the script.

15 years agoDupli-Group fix: when using multiple instances of groups, with groups on
Ton Roosendaal [Sat, 4 Mar 2006 17:05:28 +0000 (17:05 +0000)]
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

15 years agoFixes for some gcc 4 warnings in intern/. More than 100 lines of warnings
Brecht Van Lommel [Sat, 4 Mar 2006 16:23:15 +0000 (16:23 +0000)]
Fixes for some gcc 4 warnings in intern/. More than 100 lines of warnings
for 2 unused parameters in templated c++ code, that's just ridiculous.

15 years ago===Python API===
Ken Hughes [Sat, 4 Mar 2006 00:04:45 +0000 (00:04 +0000)]
===Python API===
Taking a hint from Hos, started adding some (hopefully) better examples into
the documentation for creating and manipulating meshes.

15 years ago-> Silly mistake in loop_multiselect() in editmesh_mods.c, called EM_select_flush...
Geoffrey Bantle [Fri, 3 Mar 2006 18:00:33 +0000 (18:00 +0000)]
-> Silly mistake in loop_multiselect() in editmesh_mods.c, called EM_select_flush() instead of EM_selectmode_flush()... Oops!

15 years agofix for bug 3903
Joilnen Leite [Fri, 3 Mar 2006 17:45:23 +0000 (17:45 +0000)]
fix for bug 3903

15 years agoNew copy option in CTRL+C menu: copy autosmooth settings.
Ton Roosendaal [Thu, 2 Mar 2006 22:54:12 +0000 (22:54 +0000)]
New copy option in CTRL+C menu: copy autosmooth settings.

15 years agoImproved error print in case malloc returns NULL; it now adds the current
Ton Roosendaal [Thu, 2 Mar 2006 19:49:51 +0000 (19:49 +0000)]
Improved error print in case malloc returns NULL; it now adds the current
total allocated.

15 years agoAccidentally mixed up a true and false statement for detecting if halos
Ton Roosendaal [Thu, 2 Mar 2006 16:09:30 +0000 (16:09 +0000)]
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...

15 years agoFixed mistake where BLI_countlist(&(lb)) should be BLI_countlist(lb)
Campbell Barton [Thu, 2 Mar 2006 01:00:13 +0000 (01:00 +0000)]
Fixed mistake where BLI_countlist(&(lb)) should be BLI_countlist(lb)

15 years agoFeature: Sofbody bake "Local"
Ton Roosendaal [Wed, 1 Mar 2006 23:45:25 +0000 (23:45 +0000)]
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.

15 years agoProper syntax for freeing an allocated array in silly c++ :)
Ton Roosendaal [Wed, 1 Mar 2006 21:18:31 +0000 (21:18 +0000)]
Proper syntax for freeing an allocated array in silly c++ :)

15 years agoArray modifier patch by Ben Batt! (#3788)
Brecht Van Lommel [Wed, 1 Mar 2006 15:30:10 +0000 (15:30 +0000)]
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:

15 years ago==SCons==
Nathan Letwory [Wed, 1 Mar 2006 09:15:50 +0000 (09:15 +0000)]
* WITH_BF_GAMEENGINE=0 implicitely means WITH_BF_BULLET=0 now

15 years ago-> Vertex Group/Weight support in removedoublesflag()
Geoffrey Bantle [Wed, 1 Mar 2006 03:33:45 +0000 (03:33 +0000)]
-> 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.

15 years agoreverted the looping vs switch statement. I don't know what I was thinking
Kent Mein [Tue, 28 Feb 2006 23:58:17 +0000 (23:58 +0000)]
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.)


15 years agoComplex issue in group duplicators... since they can duplicate entire
Ton Roosendaal [Tue, 28 Feb 2006 20:43:21 +0000 (20:43 +0000)]
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.

15 years agoFix for bug #3886
Kent Mein [Tue, 28 Feb 2006 18:30:16 +0000 (18:30 +0000)]
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.


15 years agoSaving OpenEXR half didn't free allocated half buffer... silly c++ memory
Ton Roosendaal [Tue, 28 Feb 2006 16:45:52 +0000 (16:45 +0000)]
Saving OpenEXR half didn't free allocated half buffer... silly c++ memory

15 years agoUrm... Kent's commit to fix a bug broke the other nodes that use the
Ton Roosendaal [Tue, 28 Feb 2006 16:24:25 +0000 (16:24 +0000)]
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...

15 years ago- Now the cache limitor also frees the float-planes
Peter Schlaile [Tue, 28 Feb 2006 13:07:02 +0000 (13:07 +0000)]
- Now the cache limitor also frees the float-planes

15 years agomsvc6 projects building debug
Jens Ole Wund [Tue, 28 Feb 2006 09:07:13 +0000 (09:07 +0000)]
msvc6 projects building debug

15 years agomscv6 projects again
Jens Ole Wund [Tue, 28 Feb 2006 08:31:33 +0000 (08:31 +0000)]
mscv6 projects again
no GE right now ( need to adapt to erwins file reshuffle
so may be i wait a bit until he has his mind made up )
elbeem is running when you remove the extra std:: at some places
well the msvc6 preprocessor is not very smart
--> std:: is not a member of std:: :)
so i guess there is a "using namespace std" somewhere

15 years ago-> Loop MultiSelect
Geoffrey Bantle [Tue, 28 Feb 2006 02:28:45 +0000 (02:28 +0000)]
-> 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 -
step 2 -
step 3 -

-> 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.

15 years agoFix for bug #3967.
Kent Mein [Mon, 27 Feb 2006 21:38:57 +0000 (21:38 +0000)]
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].


15 years agocommented out a debugging message... was getting errors about cast to int
Kent Mein [Mon, 27 Feb 2006 20:05:05 +0000 (20:05 +0000)]
commented out a debugging message... was getting errors about cast to int
losses percision on 64bit linux with gcc4.X


15 years agoRestored the free_imbuf_seq_except() in sequencer, to free all memory
Ton Roosendaal [Mon, 27 Feb 2006 19:36:42 +0000 (19:36 +0000)]
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?

15 years agoAdded a few more button align's
Campbell Barton [Mon, 27 Feb 2006 16:30:53 +0000 (16:30 +0000)]
Added a few more button align's

15 years agoRecoded Panorama rendering.
Ton Roosendaal [Mon, 27 Feb 2006 12:39:36 +0000 (12:39 +0000)]
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)
(with pano)

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).

15 years agoMade vertex clear work for selected faces from the menu, to be the same as Shift+K.
Campbell Barton [Mon, 27 Feb 2006 12:34:53 +0000 (12:34 +0000)]
Made vertex clear work for selected faces from the menu, to be the same as Shift+K.
Also makde Shift+K work in weightpaint mode.

15 years ago- elbeem.h header file was missing
Nils Thuerey [Mon, 27 Feb 2006 11:56:04 +0000 (11:56 +0000)]
- elbeem.h header file was missing

15 years ago- typo in SConscript
Nils Thuerey [Mon, 27 Feb 2006 11:48:25 +0000 (11:48 +0000)]
- typo in SConscript

15 years agoSorry for the big commit, but I've been fixing many of these
Nils Thuerey [Mon, 27 Feb 2006 11:45:42 +0000 (11:45 +0000)]
Sorry for the big commit, but I've been fixing many of these
issues in parallel... So this commit contains: an update of
the solver (e.g. moving objects), integration of blender IPOs,
improved rendering (motion blur, smoothed normals) and a first particle
test. In more detail:

Solver update:
- Moving objects using a relatively simple model, and not yet fully optimized - ok
  for box falling into water, water in a moving glass might cause trouble. Simulation
  times are influenced by overall no. of triangles of the mesh, scaling meshes up a lot
  might also cause slowdowns.
- Additional obstacle settings: noslip (as before), free slip (move along wall freely)
  and part slip (mix of both).
- Obstacle settings also added for domain boundaries now, the six walls of the domain are
  obstacles after all as well
- Got rid of templates, should make compiling for e.g. macs more convenient,
  for linux there's not much difference. Finally got rid of parser (and some other code
  parts), the simulation now uses the internal API to transfer data.
- Some unnecessary file were removed, the GUI now needs 3 settings buttons...
  This should still be changed (maybe by adding a new panel for domain objects).

- Animated params: viscosity, time and gravity for domains. In contrast
  to normal time IPO for Blender objects, the fluidsim one scales the time
  step size - so a constant 1 has no effect, values towards 0 slow it down,
  larger ones speed the simulation up (-> longer time steps, more compuations).
  The viscosity IPO is also only a factor for the selected viscosity (again, 1=no effect).
- For objects that are enabled for fluidsim, a new IPO type shows up. Inflow
  objects can use the velocity channels to animate the inflow. Obstacles, in/outflow
  objects can be switched on (Active IPO>0) and off (<0) during the simulation.
- Movement, rotation and scaling of those 3 types is exported from the normal
  Blender channels (Loc,dLoc,etc.).

- This is still experimental, so it might be deactivated for a
  release... It should at some point be used to model smaller splashes,
  depending on the the realworld size and the particle generation
  settings particles are generated during simulation (stored in _particles_X.gz
- These are loaded by enabling the particle field for an arbitrary object,
  which should be given a halo material. For each frame, similar to the mesh
  loading, the particle system them loads the simulated particle positions.
- For rendering, I "abused" the part->rt field - I couldnt find any use
  for it in the code and it seems to work fine. The fluidsim particles
  store their size there.

- The fluidims particles use scaled sizes and alpha values to give a more varied
  appearance. In convertblender.c fluidsim particle systems use the p->rt field
  to scale up the size and down the alpha of "smaller particles". Setting the
  influence fields in the fluidims settings to 0 gives equally sized particles
  with same alpha everywhere. Higher values cause larger differences.
- Smoothed normals: for unmodified fluid meshes (e.g. no subdivision) the normals
  computed by the solver are used. This is basically done by switching off the
  normal recalculation in convertblender.c (the function calc_fluidsimnormals
  handles other mesh inits instead of calc_vertexnormals).
  This could also be used to e.g. modify mesh normals in a modifier...
- Another change is that fluidsim meshes load the velocities computed
  during the simulation for image based motion blur. This is inited in
  load_fluidsimspeedvectors for the vector pass (they're loaded during the
  normal load in DerivedMesh readBobjgz). Generation and loading can be switched
  off in the settings. Vector pass currently loads the fluidism meshes 3 times,
  so this should still be optimized.

- smoothed normals versus normals from subdividing once:
- fluidsim particles, size/alpha influence 0:
  size influence 1:
  size & alpha influence 1:
- the standard drop with motion blur and particles:
  (here's how it looks without
- another inflow animation (moving, switched on/off) with a moving obstacle
  (and strong mblur :)

Things still to fix:
- rotating & scaling domains causes wrong speed vectors
- get rid of SDL code for threading, use pthreads as well?
- update wiki documentation
- cool effects for rendering would be photon maps for caustics,
  and motion blur for particles :)

15 years agonew emptys now have default settings for new emptys.
Campbell Barton [Mon, 27 Feb 2006 06:00:00 +0000 (06:00 +0000)]
new emptys now have default settings for new emptys.

15 years agoApplied JMS's Patch. for better Python Dupli Access.
Campbell Barton [Mon, 27 Feb 2006 04:05:55 +0000 (04:05 +0000)]
Applied JMS's Patch. for better Python Dupli Access.
Made some fixes and changes.
* The matricies returned were wrapped. Wrapping Display Mesh matricies segfaulted sometimes. - Made a copy instead.
* Added 1 missing epydoc from the patch.
* Renamed getDupliMatrices to getDupliObjects, and changed to return a list of (object, matrix) tuples instead of just the matrix. This is much more usefull because it allows python to know what objects are used for dupliGroups and for dupliverts where there is more then 1 child. also cleaned up this function a bit.

15 years agopthreads for Makefiles/cygwin (don't forget to update lib/windows).
Chris Want [Mon, 27 Feb 2006 00:03:18 +0000 (00:03 +0000)]
pthreads for Makefiles/cygwin (don't forget to update lib/windows).

15 years agoremoved typos causing MTL loading to fail.
Campbell Barton [Sat, 25 Feb 2006 15:05:36 +0000 (15:05 +0000)]
removed typos causing MTL loading to fail.

15 years ago==SCons==
Nathan Letwory [Sat, 25 Feb 2006 14:53:27 +0000 (14:53 +0000)]
+ SCons support for pthreads-win32. Library will be committed shortly into
  lib/windows, so be sure to check commit list and update that as well
  when the pthread lib is available.

15 years agoconverted sqrtf to SimdSqrt Solaris has no sqrtf.
Kent Mein [Sat, 25 Feb 2006 13:43:15 +0000 (13:43 +0000)]
converted sqrtf to SimdSqrt  Solaris has no sqrtf.


15 years agoBugfix: CTRL+select on a Bone, while in editmode Curve, crashed.
Ton Roosendaal [Sat, 25 Feb 2006 12:49:35 +0000 (12:49 +0000)]
Bugfix: CTRL+select on a Bone, while in editmode Curve, crashed.

15 years agoReplacing SDL threads with pthread.
Ton Roosendaal [Sat, 25 Feb 2006 11:56:08 +0000 (11:56 +0000)]
Replacing SDL threads with pthread.

For some reason I thought SDL thread handling would be much simpler... but
the migration to posix pthread went very smooth and painless. Less code
even, and I even notice a slight performance increase!

All threading code is still wrapped in blenlib/intern/threads.c
Only real change was making the callback functions to return void pointer,
instead of an int.

The mutex handling is also different... there's no test anymore if a
mutex was initialized, which is a bit confusing. But it appears to run
all fine still. :)

Nathan Letwory has been signalled already to provide the Windows pthread
library and make/scons linking. For MSVC we might need help from someone
else later though.

15 years ago==SCons==
Nathan Letwory [Sat, 25 Feb 2006 10:40:31 +0000 (10:40 +0000)]
* Use same warning flags as with linux2, greatly reducing noise in
  output during compile. Also for developers using win32/mingw now
  in effect: correct *each* and *every* warning in your code. I
  command you to!

15 years ago==SCons==
Nathan Letwory [Sat, 25 Feb 2006 01:06:02 +0000 (01:06 +0000)]
* Warning flags I had dutifully copied from sirdudes yet unpublished
  make rewrite turned out to be the Paranoia flags, causing the flood
  of warnings. Using better flags instead (like current Makefile level 1).

  All developers on Linux that use SCons for building - (new) code you write is
  supposed to be *entirely* warning-free from now on (Ton said so!)

15 years ago==SCons==
Nathan Letwory [Fri, 24 Feb 2006 18:55:44 +0000 (18:55 +0000)]
* compile game-engine libs only when actually enabled

15 years agoI had to disable mmap altogether for Irix.
Chris Want [Fri, 24 Feb 2006 14:37:24 +0000 (14:37 +0000)]
I had to disable mmap altogether for Irix.

15 years agoforgot note for last commit;
Ton Roosendaal [Fri, 24 Feb 2006 10:21:40 +0000 (10:21 +0000)]
forgot note for last commit;

There's one 'volatile' warning in pipeline.c still, should be harmless...
it is bad code to be rewritten soon.

15 years agoMade the most critical variables in render pipeline "volatile", especially
Ton Roosendaal [Fri, 24 Feb 2006 10:20:31 +0000 (10:20 +0000)]
Made the most critical variables in render pipeline "volatile", especially
the ones that get changed within threads, to communicate with the main

(Part of the long quest to get threaded render safe, especially in Linux)

15 years agoParanoia "volatile" assignment to globals in MEM module. Was suggested to
Ton Roosendaal [Fri, 24 Feb 2006 10:18:48 +0000 (10:18 +0000)]
Paranoia "volatile" assignment to globals in MEM module. Was suggested to
do this for globals that can be changed within threads.

15 years agoShould now work with python 2.3, also optimized dictionary's a bit. keys -> iterkeys...
Campbell Barton [Fri, 24 Feb 2006 04:03:15 +0000 (04:03 +0000)]
Should now work with python 2.3, also optimized dictionary's a bit. keys -> iterkeys and has_key -> try/except

15 years agorestored SDL_WaitThread() again, SDL_KillThread() is not OK.
Ton Roosendaal [Thu, 23 Feb 2006 23:12:33 +0000 (23:12 +0000)]
restored SDL_WaitThread() again, SDL_KillThread() is not OK.

15 years agoButtons could crash on wrong scene layer index... not sure how that index
Ton Roosendaal [Thu, 23 Feb 2006 21:38:48 +0000 (21:38 +0000)]
Buttons could crash on wrong scene layer index... not sure how that index
can get wrong, but secure code is always OK. :)

15 years ago==SCons==
Nathan Letwory [Thu, 23 Feb 2006 21:37:29 +0000 (21:37 +0000)]
* Add check for WITH_BF_OPENEXR to ensure WITH_OPENEXR is specified when
  needed. Now workyworky again

15 years ago==SCons==
Nathan Letwory [Thu, 23 Feb 2006 21:08:40 +0000 (21:08 +0000)]
+ When giving CC and CXX on the command-line you can specify what compiler
  to use:

  scons CC=gcc-3.3 CXX=g++-3.3