blender.git
14 years ago==SCons==
Nathan Letwory [Sun, 19 Feb 2006 19:33:36 +0000 (19:33 +0000)]
==SCons==
A working configuration file for win32/mingw, provided by Rehno Lindeque.
Thanks!

14 years agoPatch: [ #3283 ] strcat --> sprintf
Martin Poirier [Sun, 19 Feb 2006 18:41:33 +0000 (18:41 +0000)]
Patch: [ #3283 ] strcat --> sprintf

Less yuckiness!

14 years agoPath: [ #2789 ] Add a "copy size" constraint
Martin Poirier [Sun, 19 Feb 2006 17:42:20 +0000 (17:42 +0000)]
Path: [ #2789 ] Add a "copy size" constraint
At long last!
This new constraint is pretty simple. Following in the footsteps of such giants as Copy Loc and Copy Rot, it lets you constrain the size of an object/bone to another object/bone, with per axis restrictions.

14 years agoComposite: Added "Fac" input for AlphaOver, so you can control amount.
Ton Roosendaal [Sun, 19 Feb 2006 17:25:51 +0000 (17:25 +0000)]
Composite: Added "Fac" input for AlphaOver, so you can control amount.

14 years agoFix for Colorband node, it skipped calculus when 1 output was unused :)
Ton Roosendaal [Sun, 19 Feb 2006 16:33:19 +0000 (16:33 +0000)]
Fix for Colorband node, it skipped calculus when 1 output was unused :)

14 years agoMore compositing goodies.
Ton Roosendaal [Sun, 19 Feb 2006 14:55:16 +0000 (14:55 +0000)]
More compositing goodies.

- Texture Node
Allows to use any Blender Texture block as input for masks or color
blending. The texture node doesn't generate a real image, but adjusts to
the size as mapped with during an operation. So it won't work to use it
as Image input for Blur or Filter nodes.

Note; the Vector inputs for this node only work with manual input now!

- Translation Node
Give any image an offset in X or Y direction

For the Texture node to work, I needed to move the central 'pixel
processor' up one level... to allow differently sized images to merge
and allow 'procedural images' without size.

Temporal image of the day: http://www.blender.org/bf/rt.jpg

14 years agoWarning fix in subsurf_ccg.c. Also changed subsurf UV vertex and edge
Brecht Van Lommel [Sun, 19 Feb 2006 11:37:50 +0000 (11:37 +0000)]
Warning fix in subsurf_ccg.c. Also changed subsurf UV vertex and edge
handles to be more consistent.

14 years agoAdding new SpotLamps should get 'buffers' set to 1. Was in the do_version()
Ton Roosendaal [Sat, 18 Feb 2006 19:35:53 +0000 (19:35 +0000)]
Adding new SpotLamps should get 'buffers' set to 1. Was in the do_version()
check, but not in adding lamps... this will fix crashing shadowbuffers.

14 years agoAdded mask input for new Hue/Saturation Node.
Ton Roosendaal [Sat, 18 Feb 2006 17:07:30 +0000 (17:07 +0000)]
Added mask input for new Hue/Saturation Node.

14 years agoThe regular warning fix update; includes two variables that were used
Ton Roosendaal [Sat, 18 Feb 2006 16:21:32 +0000 (16:21 +0000)]
The regular warning fix update; includes two variables that were used
without initialization.

For Brecht:

source/blender/blenkernel/intern/subsurf_ccg.c:329: warning: left-hand operand of comma expression has no effect

This line I don't understand...

14 years agoQuick change in Hue/Saturation Node: made the central Hue value 0.5, to
Ton Roosendaal [Sat, 18 Feb 2006 15:57:46 +0000 (15:57 +0000)]
Quick change in Hue/Saturation Node: made the central Hue value 0.5, to
make applying changes easier. Saturation slider goes to 2.0 now.

Fix: rendering compositing nodes without scene crashed in header stats
drawing.

14 years ago- Restored "dither" option for conversion from float -> byte images.
Ton Roosendaal [Sat, 18 Feb 2006 14:35:43 +0000 (14:35 +0000)]
- Restored "dither" option for conversion from float -> byte images.
  This now is a post-process option only (used to be in render).
  It is only handled within the Imbuf/ module, on conversions from float
  to byte rect, which atm mostly happens on saving images.

- Small fix: when using Scene RenderLayer nodes, the speed vectors for
  these nodes were not created when that scene had "Do Composite" off.

14 years agoSmall tweak to get openexr compiling in scons
Ton Roosendaal [Sat, 18 Feb 2006 14:26:38 +0000 (14:26 +0000)]
Small tweak to get openexr compiling in scons

14 years agoFour-in-one commit:
Ton Roosendaal [Sat, 18 Feb 2006 13:28:44 +0000 (13:28 +0000)]
Four-in-one commit:

(NOTE: new include dependency in Render module, might need MSVC update!
It has to include the imbuf/intern/openexr/ directory in search path)

-> New Composite node: "Hue Saturation".
Works like the former 'post process' menu. There's no gamma, brightness or
multiply needed in this node, for that the Curves Node functions better.

-> Enabled Toolbox in Node editor
This now also replaces the SHIFT+A for adding nodes. The nodes are
automatically added to the menus, using the 'class' category from the
type definition.

Current classes are (compositor examples):

Inputs: RenderResult, Image
Outputs: Composite, Viewer
Color Ops: RGB Curves, Mix, Hue Saturation, AlphaOver
Vector Ops: Normal, Vector Curves, Map Value
Filters: Filter, Blur, VectorBlur
Convertors: ColorRamp, RGBtoBW, Separate RGBA, Separate HSVA, Set Alpha
Generators: RGB, Value, Time
Groups: the list of custom defined nodes

-> OpenEXR tile saving support
Created an API for for saving tile-based Images with an unlimited amount
of layers/channels. I've tested it for 'render result' now, with the idea
that this can (optionally) replace the current inserting of tiles in the
main result buffers. Especially with a lot of layers, the used memory for
these buffers can easily go into the 100s of megs.
Two other advantages:
- all 'render result' layers can be saved entirely in a single file, for
  later use in compositing, also for animation output.
- on each render, per scene, a unique temp file can be stored, allowing
  to re-use these temp files on starting Blender or loading files, showing
  the last result of a render command.

The option is currently disabled, needs more work... but I had to commit
this because of the rest of the work I did!

-> Bug fix
The Image node didn't call an execute event when browsing another image.

14 years agotemporarily fix from Johnny Matthews committed, win32 doesn't have munmap. Someone...
Erwin Coumans [Fri, 17 Feb 2006 20:18:49 +0000 (20:18 +0000)]
temporarily fix from Johnny Matthews committed, win32 doesn't have munmap. Someone can worry about a future mmap-like implementation.

14 years ago===Python API===
Ken Hughes [Fri, 17 Feb 2006 17:50:54 +0000 (17:50 +0000)]
===Python API===
Bugfix: make face and edge .extend() methods check that input vertices are
from the same mesh.  Fixes a bug found by Cam.

14 years ago- Added option 'convert to premul' to AlphaOver node in Compositor
Ton Roosendaal [Fri, 17 Feb 2006 15:44:46 +0000 (15:44 +0000)]
- Added option 'convert to premul' to AlphaOver node in Compositor
- Fixed mix mode "Overlay", it was missing a multiplication with 2 :)
- small bugix in Matts nodes commit, wrong pointers transfered to coltobw()

14 years ago3 very simple new composite nodes that I wanted for working with here. Hope the code...
Matt Ebb [Fri, 17 Feb 2006 13:51:55 +0000 (13:51 +0000)]
3 very simple new composite nodes that I wanted for working with here. Hope the code is ok,
they work ok in testing here and get done what I need, any checks or fixes are welcome.

* Separate RGBA: Separates an input RGBA image into its R, G, B and A channels
* Separate HSVA: Separates an input RGBA image into H, S, V and A channels
* Set Alpha: Takes an input RGBA image and an alpha value channel and combines them
into a single RGBA image channel. You can also set the alpha for the entire image
with the number field when there's no input alpha channel. TODO: Allow input alpha
channel with no input image, in order to output a solid colour, with alpha.

14 years ago===Python API===
Ken Hughes [Thu, 16 Feb 2006 20:09:32 +0000 (20:09 +0000)]
===Python API===

Allow object.setMatrix() to accept 3x3 matrices by extending to a 4x4
internally.  Also check the dimensions of the new matrix and throw an
exception if not a 3x3 or 4x4.

14 years agoAdded new malloc type in our MEM module; using the unix feature 'mmap'.
Ton Roosendaal [Thu, 16 Feb 2006 17:51:01 +0000 (17:51 +0000)]
Added new malloc type in our MEM module; using the unix feature 'mmap'.

In Orange we've been fighting the past weeks with memory usage a lot...
at the moment incredible huge scenes are being rendered, with multiple
layers and all compositing, stressing limits of memory a lot.
I had hoped that less frequently used blocks would be swapped away
nicely, so fragmented memory could survive. Unfortunately (in OSX) the
malloc range is limited to 2 GB only (upped half of address space).
Other OS's have a limit too, but typically larger afaik.

Now here's mmap to the rescue! It has a very nice feature to map to
a virtual (non existing) file, allowing to allocate disk-mapped memory
on the fly. For as long there's real memory it works nearly as fast as
a regular malloc, and when you go to the swap boundary, it knows nicely
what to swap first.

The upcoming commit will use mmap for all large memory blocks, like
the composit stack, render layers, lamp buffers and images. Tested here
on my 1 GB system, and compositing huge images with a total of 2.5 gig
still works acceptable here. :)

http://www.blender.org/bf/memory.jpg
This is a silly composit test, using 64 MB images with a load of nodes.
Check the header print... the (2323.33M) is the mmap disk-cache in use.

BTW: note that is still limited to the virtual address space of 4 GB.

The new call is:
MEM_mapalloc()

Per definition, mmap() returns zero'ed memory, so a calloc isn't required.

For Windows there's no mmap() available, but I'm pretty sure there's an
equivalent. Windows gurus here are invited to insert that here in code! At
the moment it's nicely ifdeffed, so for Windows the mmap defaults to a
regular alloc.

14 years agoRendering tricks for improving workflow:
Ton Roosendaal [Thu, 16 Feb 2006 12:27:46 +0000 (12:27 +0000)]
Rendering tricks for improving workflow:

- Button option "Single" in render-layer panel will enable to only render
  the currently indicated render-layer. It will also skip compositing.

- Brought back the 'Local View' render. This will only render the visible
  objects, but with lights from the original view-layers.
  To make the option useful, it also temporal enables 'Single', which has
  the a disadvantage that you need to set the correct render-layer.

  It is a bit a tricky option though... since its quite invisble and
  confusing for people who don't know the feature. This might become either
  a button in 3d header, or use a popup requester to confirm, or... will
  need to think over!

At least; both options display in render window a text to denote the option.

14 years ago==UV Editor==
Brecht Van Lommel [Wed, 15 Feb 2006 22:33:55 +0000 (22:33 +0000)]
==UV Editor==
Small ABF stability improvement, do some angle clamping during iteration,
fixes a particular model that went wrong.

14 years ago==Python==
Brecht Van Lommel [Wed, 15 Feb 2006 22:31:43 +0000 (22:31 +0000)]
==Python==
Small bug reported on irc, matrix.translationPart didn't check bounds
properly (needed to use || instead of &&). Also fixed similar bugs in
rotationPart and rich compare.

14 years agoWe found out memory got fragmented a lot for creating speed vectors on
Ton Roosendaal [Wed, 15 Feb 2006 19:55:29 +0000 (19:55 +0000)]
We found out memory got fragmented a lot for creating speed vectors on
large scenes... this because it has to make 3 entire databases to find
the vertex-speed to previous and next frame. Even though most of the
prev/next database was freed, the parts I kept were spread all over
memory.

This commit copies from the prev/next database only the two screen aligned
speed vectors and stores that in temporal per-object structs. Even whilst
it takes more memory, it then can free the entire database, making space
for the next database to be built.
Tests reveiled it saves quite some... well, if you want to believe the
'virtual memory' total unix gives... :)

14 years agoAdded printing stats back in commandline renders. Prints now a full 'log',
Ton Roosendaal [Wed, 15 Feb 2006 15:22:49 +0000 (15:22 +0000)]
Added printing stats back in commandline renders. Prints now a full 'log',
using 1 line per part rendered. Might go back to 1 line again, but at this
moment I need the logs for debugging.
Same prints are active now for UI rendering. Just temporal :)

14 years ago- Preview render (buttons) was executing the 'data ipos', causing inserting
Ton Roosendaal [Wed, 15 Feb 2006 09:35:01 +0000 (09:35 +0000)]
- Preview render (buttons) was executing the 'data ipos', causing inserting
  keys with IKEY in buttons to not work.

- Crash in opengl while rendering was caused by the fact that scanline
  updates are drawn in the main thread, whilst the actual render thread
  then can already be doing different stuff.
  Especially with many layers & passes it's getting confusing easily :)

  Convention now is that scanline render updates only happen while the
  thread is looping over scanlines. As soon as it reached the last, no
  drawing happens, not even to update the last segment.
  This isnt a problen, since any finished tile is drawn again entirely.

14 years agoadded proper casts to get things compiling with gcc 4.0 Os X
Jean-Luc Peurière [Tue, 14 Feb 2006 23:52:47 +0000 (23:52 +0000)]
added proper casts to get things compiling with gcc 4.0 Os X

14 years agoFix for report #3916: The background image size/offset buttons now have
Alexander Ewering [Tue, 14 Feb 2006 22:17:23 +0000 (22:17 +0000)]
Fix for report #3916: The background image size/offset buttons now have
max values multiplied by the view's grid setting, like most other buttons
dealing with sizes and locations.

Sorry, untested, as I can't get it to link (error while loading
shared libraries: libavformat.so)

14 years agoPotential fix for crashing ogl in drawing render updates... ATI only?
Ton Roosendaal [Tue, 14 Feb 2006 22:14:14 +0000 (22:14 +0000)]
Potential fix for crashing ogl in drawing render updates... ATI only?
I don't know why, but at Andrea's system it goes fine.

14 years agoForgot to commit define.... tsk!
Ton Roosendaal [Tue, 14 Feb 2006 19:25:33 +0000 (19:25 +0000)]
Forgot to commit define.... tsk!

14 years agoAdded 'screen' to texture mixing menu as well.
Ton Roosendaal [Tue, 14 Feb 2006 18:47:21 +0000 (18:47 +0000)]
Added 'screen' to texture mixing menu as well.

14 years agoAdded blending type "Overlay" to options for Mix node & ramp shaders.
Ton Roosendaal [Tue, 14 Feb 2006 18:41:34 +0000 (18:41 +0000)]
Added blending type "Overlay" to options for Mix node & ramp shaders.

The description is here; it blends nicely bright parts.
http://www.pegtop.net/delphi/articles/blendmodes/overlay.htm

14 years agoAdded callback to compositor, so it can print in RenderWindow header the
Ton Roosendaal [Tue, 14 Feb 2006 18:04:25 +0000 (18:04 +0000)]
Added callback to compositor, so it can print in RenderWindow header the
current to-be composited node and amount of memory in use.

14 years agoA small alteration for C syntax, code and vars mixed up (MSVC complained about this).
Johnny Matthews [Tue, 14 Feb 2006 17:55:55 +0000 (17:55 +0000)]
A small alteration for  C syntax, code and vars mixed up (MSVC complained about this).

14 years agoRender Layer button typo...
Ton Roosendaal [Tue, 14 Feb 2006 17:35:38 +0000 (17:35 +0000)]
Render Layer button typo...

14 years agoNasty memory conflict in Compositor... when:
Ton Roosendaal [Tue, 14 Feb 2006 17:32:49 +0000 (17:32 +0000)]
Nasty memory conflict in Compositor... when:

- a Group has Curve node inside
- this Group was re-used more times
- with threaded render activated
- and both groups executed on same time

Then the premultipy optimize table was created twice... causing memory
to confuse.

14 years agoUncommitted button "Single" from render-layer panel... this was supposed
Ton Roosendaal [Tue, 14 Feb 2006 16:16:23 +0000 (16:16 +0000)]
Uncommitted button "Single" from render-layer panel... this was supposed
to be a new feature, but have not working code for it yet :)

14 years agoWeekly cleanup in my precious blender tree :)
Ton Roosendaal [Tue, 14 Feb 2006 11:46:45 +0000 (11:46 +0000)]
Weekly cleanup in my precious blender tree :)
Unused variables, missing prototypes mostly.

14 years agoDangerous typo in softbody.c... a missing '/' made a /* */ comment to
Ton Roosendaal [Tue, 14 Feb 2006 11:30:43 +0000 (11:30 +0000)]
Dangerous typo in softbody.c... a missing '/' made a /* */ comment to
disable the entire next line of code too.

14 years agoBug fix: copying a scene, choosing 'empty scene' did a corrupt copy of the
Ton Roosendaal [Tue, 14 Feb 2006 11:28:13 +0000 (11:28 +0000)]
Bug fix: copying a scene, choosing 'empty scene' did a corrupt copy of the
scene render layers

Little feat: Render Result Nodes that use other scene, have icon in button
to indicate this.

14 years agoReviewed octree filling times... found a way to optimize some 10% of time,
Ton Roosendaal [Tue, 14 Feb 2006 10:02:25 +0000 (10:02 +0000)]
Reviewed octree filling times... found a way to optimize some 10% of time,
nothing radical. :)
Just remember to always try higher octree resolutions (256 or 512) or more
complex scenes. Can be 5-10 times faster.

For waiting pleasure; added a per-second header print update to tell where
octree is. Also added an ESC test in octree making.

(Commit in image.c is a faulty print for 'Not an anim').

14 years agoMade threaded Compositing more friendly for last node in list... the main
Ton Roosendaal [Tue, 14 Feb 2006 00:05:09 +0000 (00:05 +0000)]
Made threaded Compositing more friendly for last node in list... the main
thread entered a loop without sleep() then.

14 years agoBug in vector blur; the mask anti-alias code was accidentally using a char
Ton Roosendaal [Tue, 14 Feb 2006 00:04:07 +0000 (00:04 +0000)]
Bug in vector blur; the mask anti-alias code was accidentally using a char
for counting the size of a 'jaggie' to be antialiased, which can of course
be more than 255 pixels in size... causing eternal loop.

14 years agoModified Files:
Geoffrey Bantle [Mon, 13 Feb 2006 22:49:46 +0000 (22:49 +0000)]
Modified Files:
source/blender/blenlib/BLI_editVert.h
  source/blender/include/BIF_editmesh.h
  source/blender/src/edit.c source/blender/src/editmesh.c
  source/blender/src/editmesh_lib.c
  source/blender/src/editmesh_mods.c
  source/blender/src/editmesh_tools.c
  source/blender/src/header_view3d.c
Log:
Commit of the 'upgraded merge tools' (Patch #3345) and 'inclusive selection mode conversion' (Patch #3768).

14 years agoTypo in smart SETLOOPER() define, which I added to prevent nasty loop
Ton Roosendaal [Mon, 13 Feb 2006 22:38:41 +0000 (22:38 +0000)]
Typo in smart SETLOOPER() define, which I added to prevent nasty loop
code for going over all objects in set. :)

14 years agoFix in blur filter 'bokeh'.
Ton Roosendaal [Mon, 13 Feb 2006 21:40:47 +0000 (21:40 +0000)]
Fix in blur filter 'bokeh'.

This filter type uses a filter-image, and spreads color of current pixel
over all neighbour pixels based on this filter-image. That creates a
problem on borders... since there only parts get accumulated.

Solved by going over the to-be-filtered image pretending it is wider
exactly the amount of the filter-image size.

14 years agoUpdated Mac OS X icons courtesy of Erik Mendoza, re. this thread on blender.org:
Matt Ebb [Mon, 13 Feb 2006 21:08:43 +0000 (21:08 +0000)]
Updated Mac OS X icons courtesy of Erik Mendoza, re. this thread on blender.org:
http://www.blender.org/forum/viewtopic.php?t=8121

14 years agoUgly bug in ungrouping... it left freed memory in the main database.
Ton Roosendaal [Mon, 13 Feb 2006 20:39:31 +0000 (20:39 +0000)]
Ugly bug in ungrouping... it left freed memory in the main database.

14 years agoBugfix: When using 'border render' (part image), and then in compositor
Ton Roosendaal [Mon, 13 Feb 2006 20:14:42 +0000 (20:14 +0000)]
Bugfix: When using 'border render' (part image), and then in compositor
the Preview Panel, you got a crash... this case wasn't anticipated in
code... two cropping mechanisms on top. :)

Works OK now, but offset of cropping is drawn a bit weird... this case
needs recode a bit. On list for later.

14 years agoBugfix: the RenderResult node, using another scene, didn't use the
Ton Roosendaal [Mon, 13 Feb 2006 19:38:31 +0000 (19:38 +0000)]
Bugfix: the RenderResult node, using another scene, didn't use the
frame nummers of the active scene.

14 years agoPreview rendering improvement;
Ton Roosendaal [Mon, 13 Feb 2006 19:27:16 +0000 (19:27 +0000)]
Preview rendering improvement;

Until now, on each mouse/key event preview render restarted with first tile.
It now rememers where it was, and continues rendering.
Also tried to get threaded preview working, but its more work than I can
spend right now. Back to bugs :)

14 years agoBugfix in Preview renders; material with lightgroups didn't get initialized
Ton Roosendaal [Mon, 13 Feb 2006 11:52:55 +0000 (11:52 +0000)]
Bugfix in Preview renders; material with lightgroups didn't get initialized
correctly.

14 years agoallow typed constraints (for future hinge/vehicles etc)
Erwin Coumans [Mon, 13 Feb 2006 06:37:34 +0000 (06:37 +0000)]
allow typed constraints (for future hinge/vehicles etc)

14 years agomore vehicle preparation and some bullet collision detection bugfixes (related to...
Erwin Coumans [Mon, 13 Feb 2006 06:28:35 +0000 (06:28 +0000)]
more vehicle preparation and some bullet collision detection bugfixes (related to collision margin)

14 years agoImproved OpenGL Shader Language support for game engine. The python interface is...
Erwin Coumans [Mon, 13 Feb 2006 05:45:32 +0000 (05:45 +0000)]
Improved OpenGL Shader Language support for game engine. The python interface is much simplified. Drawback is that scripts need to be updated next release. Testfiles:

http://www.continuousphysics.com/ftp/pub/test/index.php?dir=blender/&file=demos-2.42.zip

patch by Charlie Carley (snailrose @ elysiun.com)

14 years agogameplayer will use blender materials automatically
Erwin Coumans [Mon, 13 Feb 2006 03:37:00 +0000 (03:37 +0000)]
gameplayer will use blender materials automatically

14 years agoassignment typo: had == instead of =
Kent Mein [Mon, 13 Feb 2006 01:25:03 +0000 (01:25 +0000)]
assignment typo:  had == instead of =
Reported by jkw on the forums.
source/blender/python/api2_2x/Text3d.c

Kent

14 years agoCouple of smaller fixes:
Ton Roosendaal [Sun, 12 Feb 2006 21:57:56 +0000 (21:57 +0000)]
Couple of smaller fixes:

- Improved stats drawing while rendering, it now draws - while preparing
  renderdata -  each second the amount of verts/faces.
  Also while rendering, the amount of finished and total parts are printed.

- Added ESC in loop that generated Group render data

- On deleting Render Layers, the nodes that use them are now checked and
  corrected.

- Restored drawing all scanlines in renderwindow... this wasn't the bug!

14 years agoBug #2839: Shift key not working in Shear, Push-Pull and shrink-Fatten
Martin Poirier [Sun, 12 Feb 2006 21:09:18 +0000 (21:09 +0000)]
Bug #2839: Shift key not working in Shear, Push-Pull and shrink-Fatten

- I changed the input method for shear quite a bit. It used to be constant
  regardless of zooming, so it was quite limiting in the amount of shear you
  could do. However, I'm not sure if the current method is quite well
  adjusted, if you think it works too fast, please drop me a line.
  It's basicly the same method as Shrink-Fatten / Push-Pull except on an
  horizontal basis. (since shear is an horizontal motion and the two others
  are more like pulling towards/pushing away from you in regards to the center)
- Factored out the input methods in preparation for later code <evil>.

14 years agoWork on shadowbuffer system... right now only new filtertypes for
Ton Roosendaal [Sun, 12 Feb 2006 20:21:08 +0000 (20:21 +0000)]
Work on shadowbuffer system... right now only new filtertypes for
sampling have been activated for UI. Check the pictures here:

http://www.blender.org/bf/filters/index2.html

I also did do tests with anti-aliased shadowbuffers:

http://www.blender.org/bf/filters/index3.html

But this needs more thinking over still...

14 years agoArgh! Commented out line in readfile.c (with comment I really dont know
Ton Roosendaal [Sun, 12 Feb 2006 20:17:12 +0000 (20:17 +0000)]
Argh! Commented out line in readfile.c (with comment I really dont know
what this does), actually makes sure that on linking same data from a
library again (after reopening file), the linking of data pointers goes
OK.

14 years agocommiting patch #3847
Jean-Luc Peurière [Sun, 12 Feb 2006 18:25:53 +0000 (18:25 +0000)]
commiting patch #3847

add drag-lock to numbuts to prevent accidental adjustemnts.
Patch furnished by Roger Prefontaine (isocles)

14 years ago==Translations==
Wouter van Heyst [Sun, 12 Feb 2006 18:07:45 +0000 (18:07 +0000)]
==Translations==
 * Add missing sr@Latn.po translation
 * Try to make sure fr.po gets read as utf-8 encoded, should fix garbled data showing up

14 years ago==Translations==
Wouter van Heyst [Sun, 12 Feb 2006 17:30:06 +0000 (17:30 +0000)]
==Translations==
 * Bring back Serbian and Ukrainian lost in the Orange merge

14 years ago==Translations==
Wouter van Heyst [Sun, 12 Feb 2006 17:19:53 +0000 (17:19 +0000)]
==Translations==
 * Make sure all languages get built (Makefile, scons to be done)

14 years ago==SConscript fix for cygwin==
Tom Musgrove [Sun, 12 Feb 2006 15:37:01 +0000 (15:37 +0000)]
==SConscript fix for cygwin==

open inventor export contributed by Radek Barton

14 years agoCouple of features/fixes:
Ton Roosendaal [Sat, 11 Feb 2006 23:17:41 +0000 (23:17 +0000)]
Couple of features/fixes:

- Compositor now frees memory of buffers internally used in groups
  immediately. This wasn't part of the event-based cache anyway

- New option: "Free Texture Images" (in render Output panel). This
  frees after each render of each scene all images and mipmaps as
  used by textures. As reference it prints total amount of MB freed.

- Render stage 'creating speed vectors' had no ESC checking yet

- Made drawing scanline updates during render draw 1 scanline less...
  dunno, still hunting for weird opengl crashes.

- 3D preview render didn't properly skip sequence or composit render.

14 years agoSwitching glFlush() to glFinish() in renderwindow drawing for updates...
Ton Roosendaal [Sat, 11 Feb 2006 18:20:17 +0000 (18:20 +0000)]
Switching glFlush() to glFinish() in renderwindow drawing for updates...
no idea if it helps, will be tested now. :)

14 years agoBugfix: duplicate time node didn't copy the curve itself.
Ton Roosendaal [Sat, 11 Feb 2006 16:52:18 +0000 (16:52 +0000)]
Bugfix: duplicate time node didn't copy the curve itself.

14 years agoThread rendering stability commit.
Ton Roosendaal [Sat, 11 Feb 2006 15:55:00 +0000 (15:55 +0000)]
Thread rendering stability commit.

I noticed still several cases where the Imbuf library was called within a
thread... and that whilst the Imbuf itself isn't threadsafe. Also the
thread lock I added in rendering for loading images actually didn't
work, because then it was still possible both threads were accessing the
MEM_malloc function at same time.

This commit nearly fully replaces ImBuf calls in compositor (giving another
nice speedup btw, the way preview images in Nodes were calculated used
clumsy imbuf scaling code).

I've also centralized the 'mutex' locking for threading, which now only
resides in BLI_threads.h. This is used to secure the last ImBuf calls
I cannot replace, which is loading images and creating mipmaps.

Really hope we get something more stable now!

14 years ago=== bugfix ===
Andrea Weikert [Sat, 11 Feb 2006 15:02:23 +0000 (15:02 +0000)]
=== bugfix ===
Fixing case where BLI_make_file_string reads one byte before passed in string when the string is empty.
Leftover from patch tracker item #2740 - thanks Andrew Zabolotny.
Also fixed the part that made sure exactly one slash is appended at the end of the dir - comment wasn't telling what the code did here :)

14 years agoTwo significant improvements in vectorblur:
Ton Roosendaal [Sat, 11 Feb 2006 13:23:08 +0000 (13:23 +0000)]
Two significant improvements in vectorblur:

1) Accumulation buffer alpha handling
Accumulating colors in an accumulation is simple; a weighting factor can
make sure colors don't over- or undersaturate.
For alpha this is a bit more complex... especially because the masks for
vectorblur are anti-aliased themselves with alpha values. Up to now I just
premultiplied the mask-alpha with the actual color alpha, which worked OK
for solid masks, but not for transparent ones. I thought that would be an
acceptable situation, since 'ztra' faces only get blurred with alpha==1.

However, it gives bad results when using 'mist' in Blender, which just
gives pixels an alpha value based on camera distance. In these cases the
alpha became oversaturated, accumulating into too high values.

The solution is to store the mask-alpha separately, only premultiply this
alpha with the weighting factor to define the accumulation amount.
This is the math:

blendfactor: the accumulation factor for a vectorblur pass
passRGBA: color and alpha value of the current to be accumulated pass
accRGBA: color and alpha value of accumulation buffer (initialized
         with original picture values)
maskA: the mask's alpha itself

accRGBA = (1 - maskA*blendfactor)*accRGBA + (maskA*blendfactor)*passRGBA

This formula accumulates alpha values equally to colors, only using the
mask-alpha as 'alpha-over' operation.
It all sounds very logical, I just write this extensive log because I
couldn't find any technical doc about this case. :)

2) Creating efficient masks with camera-shake

Vector blur can only work well when there's a clear distinction between
what moves, and what doesn't move. This you can solve for example by
rendering complex scenes in multiple layers. This isn't always easy, or
just a lot of work. Especially when the camera itself moves, the mask
created by the vectorblur code becomes the entire image.
A very simple solution is to introduce a small threshold for
moving pixels, which can efficiently separate the hardly-moving pixels
from the moving ones, and thus create nice looking masks.

You can find this new option in the VectorBlur node, as 'min speed'.
This mimimum speed is in pixel units. A value of just 3 will already
clearly separate the background from foreground.
Note; to make this work OK, all vectors in an image are scaled 3 pixels
smaller, to ensure everything keeps looking coherent.

Test renders; 'Elephants Dream' scene with lotsof moving parts; rendered
without OSA, image textures, shadow or color correction.

No vectorblur:
http://www.blender.org/bf/vblur.jpg

With vectorblur, showing the alpha-saturation for mist:
http://www.blender.org/bf/vblur1.jpg

New accumulation formula:
http://www.blender.org/bf/vblur2.jpg

Same image, but now with a 3 pixel minimum speed threshold:
http://www.blender.org/bf/vblur3.jpg

Next frame, without minimum speed
http://www.blender.org/bf/vblur4.jpg

Same frame with speed threshold:
http://www.blender.org/bf/vblur5.jpg

(Only 20 steps of vectorblur were applied for clarity).

14 years agoPotential ugly bugfix in MEM_cache; the function
Ton Roosendaal [Sat, 11 Feb 2006 12:45:32 +0000 (12:45 +0000)]
Potential ugly bugfix in MEM_cache; the function

int IMB_cache_limiter_get_refcount()

Did not return a value at all. Any compiler should flag big warnings for
this btw... tsk tsk!

14 years agoApplying patch #3826
Jean-Luc Peurière [Sat, 11 Feb 2006 12:07:55 +0000 (12:07 +0000)]
Applying patch #3826

smooth and bevel shortcuts listed in menus and toolbox were incorrect.

no new functionality

14 years agoABF Fix:
Brecht Van Lommel [Sat, 11 Feb 2006 12:04:16 +0000 (12:04 +0000)]
ABF Fix:

With two adjacent quads sharing three vertices, splitting to triangles
could create duplicate triangles. This broke unwrapping of Suzanne near
the nose, where there is a sort of t-joint with quads that isn't really
a t-joint. Now works fine:
http://users.pandora.be/blendix/suzanne.png

14 years agoi have a file running into this check causing a 'hang' without
Jens Ole Wund [Fri, 10 Feb 2006 23:47:40 +0000 (23:47 +0000)]
i have a file running into this check causing a 'hang'  without
may be it's a development hick up .. still i think that error trap should be there

14 years agoAdded ability to render Zbuffer to an image.
Kent Mein [Fri, 10 Feb 2006 21:10:58 +0000 (21:10 +0000)]
Added ability to render Zbuffer to an image.
Just use SHIFT-F3 and save an image.

Basically all this does is copy the zbuffer to a new Image buffer
and pass that to the save image function.

Sample output:
http://www.cs.umn.edu/~mein/blender/kungfu_zbuf255.jpg

Also thanks to Jesterking for helping me debug dumbness... ;)
and the nice screenshot.

Kent

14 years agoInteresting commit for artists using huge textures;
Ton Roosendaal [Fri, 10 Feb 2006 18:57:52 +0000 (18:57 +0000)]
Interesting commit for artists using huge textures;

The code that generated mipmaps took a real long time to do it... on a
5k x 5k image it took here (no optim, debug compile) 32.5 sec.

Recoded the very old filtering routine, which already brought it down to
2.8 seconds. Then tested if we even need this filtering... in many cases
the images are painted or photographs, which is filtered OK already.
Without the filter, the mipmap timing went down to 0.39 second. :)

http://www.blender.org/bf/filters/index1.html

Here's an example of two 'mips' generated with or without gauss filter.
Note that aliasing in an image remains there... which can be a wanted
effect anyway.

So; added the gauss filter as option in making mipmaps. Also had to
reshuffle the buttons there in a more logical manner.
There's also disabled code in the do_versions to set 'gauss' on in older
files. Will be enabled during release time.

14 years agoUpgrade for Node type definitions: the min/max allowed values for input
Ton Roosendaal [Fri, 10 Feb 2006 13:57:30 +0000 (13:57 +0000)]
Upgrade for Node type definitions: the min/max allowed values for input
sockets were not used yet... now they're verified on read, and written
in socket stack data on adding new nodes.
Also the buttons in Nodes use these values now. Special request from
Nathan Vegdahl who seems to be messing around with my precious nodes! :)

14 years agoFaceselect mode fixes:
Brecht Van Lommel [Fri, 10 Feb 2006 13:37:06 +0000 (13:37 +0000)]
Faceselect mode fixes:
- Don't allow entering faceselect mode on a linked mesh (only checked object).
- Enable drawing of seams after ctrl+E seam marking.

14 years ago===Python API===
Ken Hughes [Fri, 10 Feb 2006 00:08:06 +0000 (00:08 +0000)]
===Python API===
Three more changes for the Mesh module:
(1) Bug fix for UV vertices ("sticky").  me->msticky was not being updated
   when vertices were added or deleted from the mesh.
(2) Vertex, edge and face .extend() methods accept zero-length sequences
   instead of throwing an exception.  (Note that not giving any argument
   is still an error).
(3) Edge and face .extend() methods ignore "invalid" edges or faces which
   have the same vertex twice instead of throwing an exception.  Cam and I
   argued about this for a while... :-)

Ken

14 years agoTesting commit for the studio; a bump-correction factor for when images
Ton Roosendaal [Thu, 9 Feb 2006 23:45:28 +0000 (23:45 +0000)]
Testing commit for the studio; a bump-correction factor for when images
get sampled on larger distance. It actually just flattens bump when the
sampled area is (much) larger than pixel size, to prevent weird things
like:

current render:
http://www.blender.org/bf/b1.jpg

distance corrected:
http://www.blender.org/bf/b2.jpg

(image based on Alexander file :)

Tested on env's dinos too... seems to work, but we'll see.

14 years agoAddition to previous commit: disabling RenderLayer "Halo" did not skip
Ton Roosendaal [Thu, 9 Feb 2006 22:56:08 +0000 (22:56 +0000)]
Addition to previous commit: disabling RenderLayer "Halo" did not skip
lamphalo rendering yet... silly me!

14 years agoTweaks in RenderLayer rendering:
Ton Roosendaal [Thu, 9 Feb 2006 22:33:49 +0000 (22:33 +0000)]
Tweaks in RenderLayer rendering:

- LampHalos can be rendered separately too. Just disable 'Solid' in a
  layer and keep 'Halo' option enabled.
- Note that disabling 'Solid' will still fill in Z values for the solid
  faces, to provide occlusion information for the Ztransp and Halo layer
  options. The latter didn't work this way until now for OSA render.

ALso note that that Ztransp+LampHalo still isn't good marriage... it
renders a bit weird, but that's an old issue. :)

14 years agomake msvc6 compile (thanks peter)
Jens Ole Wund [Thu, 9 Feb 2006 22:09:11 +0000 (22:09 +0000)]
make msvc6 compile (thanks peter)
so beat me if it does not work ;)

14 years agoPotential thread render bug/crashing:
Ton Roosendaal [Thu, 9 Feb 2006 19:58:32 +0000 (19:58 +0000)]
Potential thread render bug/crashing:
Discovered I forget to re-enable the 'imbuf load' and 'envmap' mutexes.

14 years agoFeature:
Ton Roosendaal [Thu, 9 Feb 2006 19:47:53 +0000 (19:47 +0000)]
Feature:
- Appending Images now re-assigns relative paths, to match with the file
  as currently being used

Bugfix:
- Memory error in creating preview render rects... gave no issues here,
  but i guess that's not saying anything! Hope its more stable now. :)

14 years ago...umm msvc6 projects again
Jens Ole Wund [Thu, 9 Feb 2006 19:31:50 +0000 (19:31 +0000)]
...umm msvc6 projects again

14 years agoMade exr saving respect the 'RGB' or 'RGBA' setting in render output
Ton Roosendaal [Thu, 9 Feb 2006 18:55:14 +0000 (18:55 +0000)]
Made exr saving respect the 'RGB' or 'RGBA' setting in render output
panel. Saves a whopping 25% filesize!

14 years agoThe preview-jpg option for rendering exr files was saving 32 bits jpg...
Ton Roosendaal [Thu, 9 Feb 2006 18:48:53 +0000 (18:48 +0000)]
The preview-jpg option for rendering exr files was saving 32 bits jpg...
a weird format only blender can read properly. Made it 24 bits.

Also: fixed very weird line-endings in pipeline.c after schlaile's last
commit here.

14 years agoFurther tweak of Vector Blur and alpha;
Ton Roosendaal [Thu, 9 Feb 2006 17:37:22 +0000 (17:37 +0000)]
Further tweak of Vector Blur and alpha;

- it now correctly pre-multiplies with alpha the RGB values for the
  antialised mask (alpha artefacts were visible)
- The transparent layer will add speed vectors on top of the solid layer,
  cancelling out cases where the solid layer was not moving (like in its
  own antialising.
  This works fine, for as long you don't render in a single pass trans-
  parent faces that move on top of not-moving solid faces.

14 years agoAdded "select same group" to select group menu.
Campbell Barton [Thu, 9 Feb 2006 15:14:19 +0000 (15:14 +0000)]
Added "select same group" to select group menu.

14 years agomsvc6 projects that will compile when MEM_Allocator.h is fixed
Jens Ole Wund [Thu, 9 Feb 2006 14:17:26 +0000 (14:17 +0000)]
msvc6 projects that will compile when MEM_Allocator.h is fixed

14 years agoCompositing workflow upgrade;
Ton Roosendaal [Thu, 9 Feb 2006 11:07:04 +0000 (11:07 +0000)]
Compositing workflow upgrade;

You now can set a Preview panel in the Image window, to define a sub-rect
of an image to be processed. Works like the preview in 3D Window. Just
press SHIFT+P to get it activated. Very nice speedup!

This is how it works:

- The compositor still uses the scene image size (including % setting) for
  Viewer or Composite output size
- If a preview exists, it calculates the cropped rect from its position
  in the Image window, and stores that in the Scene render data
- On composite execute, it copies only this part from the 'generator nodes',
  right now Images or Render Results. That makes the entire composite tree
  only using small rects, so it will execute fast.
- Also the render window will only display the cropped rect, and on F12
  only the cropped part is being executed
- On rendering in background mode, the cropping is ignored though.

Usability notes:

- translating or zooming view will automatically invoke a recalculation
- if you zoom in on details, the calculated rect will even become smaller
- only one Imagewindow can have this Preview Panel, to prevent conflicts of
  what the cropped area should be. Compositing is on Scene level, not local
  per image window. (Note; 3D Previews are local per window!)
- Closing the preview panel will invoke a full-size recalculation
- All passes/layers from rendering are nicely cropped, including Z and
  vectors.

The work to make the compositor do cropping was simple, but getting the
Image window displaying correctly and get all events OK was a lot of work...
indeed, we need to refactor Image Window usage once. Sorry for making the
mess even bigger now. :) I've tried not to interfere with UV edit or Paint
though... only when you're in compositing mode the panel will work.

BUG fix:

3D Preview render didn't work when multiple layers were set in the current
scene.

14 years agoadd #include <sys/time.h> to get declaration of struct timeval on
Stephen Swaney [Wed, 8 Feb 2006 23:00:34 +0000 (23:00 +0000)]
add #include <sys/time.h> to get declaration of struct timeval on
loonix for that ${BADWORD} webserver thingie.

14 years agoChanged Composit Composite.
Kent Mein [Wed, 8 Feb 2006 22:04:54 +0000 (22:04 +0000)]
Changed Composit Composite.

(Voted on #blendercoders and did some websearching and it seems like
this is more correct.)

Kent

14 years agoSeam Cutting in Faceselect Mode:
Brecht Van Lommel [Wed, 8 Feb 2006 21:01:00 +0000 (21:01 +0000)]
Seam Cutting in Faceselect Mode:

- Mark Border Seam: mark edges on the border of face selection as seam.
- Clear Seam: clears seams in selected faces.
Hotkey: Ctrl+E

- Alt+RMB Click: mark/clear edge as seam
- Alt+Shift+RMB Click: mark/clear seams along the shortest/straightest path
  from last marked seam. The cost of the path also includes some measure of
  'straightness' next to the typical distance to make things work more
  predicatble and edgeloop friendly. Note that this cuts a path from edge to
  edge, not vertex to vertex. That gives some nice control over the direction
  of the seam.

Also includes:

- Removed old LSCM code.
- Fix updates glitches with DerivedMesh/Subsurf drawing in FaceSelect mode.
  Now there's a drawMappedFacesTex instead of drawFacesTex.
- Minimize Stretch menu entry called Limit Stitch.
- Removed the lasttface global, was being set before it was used anyway, so
  might as wel return from a function.
- Moved some backbuf sampling code to drawview.c from editmesh, so it can be
  used by Faceselect and VPaint.
- Use BLI_heap in parametrizer.c.

14 years agoUpgraded max limit for faces in render. Up to now, quads were zbuffered
Ton Roosendaal [Wed, 8 Feb 2006 18:28:28 +0000 (18:28 +0000)]
Upgraded max limit for faces in render. Up to now, quads were zbuffered
as triangles, with a tag bit to denote which triangle was which part of
the quad. That was hardcoded bit 0x800000, which allows a maximum of
about 8 million quads...

I've made this a nice #define, set to be 16 times larger. So, now the
facejunkies can go up to 128 Million faces, were it not that this will eat
up a load of memory!
I only have 1 Gig in this machine. A test with 9M vertices and 7.5M quads
eats up 912 MB of memory already. If this becomes a real issue, I know
tricks how to make the vertices 20 bytes smaller, and faces 4 bytes, which
would in the above case save about 200 MB. Not much... but probably worth
the try? A much better method is of course 'bucketing' the renderdata per
tile. It's a spec of the render recode, but not a quicky to add.

Also: bug fix in curve code. There was a short counter still, crashing on
large curves with resol set to 1024 :)

14 years agoA Heap / Priority Queue ADT, will be used for Dijkstra shortest path.
Brecht Van Lommel [Wed, 8 Feb 2006 18:06:35 +0000 (18:06 +0000)]
A Heap / Priority Queue ADT, will be used for Dijkstra shortest path.

14 years agoThree fixes;
Ton Roosendaal [Wed, 8 Feb 2006 17:30:28 +0000 (17:30 +0000)]
Three fixes;

- Composit cache now gets fully freed on a render. Each output socket of a
  node stores the entire image... and while render that's a waste of memory

- Sky 'paper' render was using wrong texture coordinates

- Found missing test_break() in ztransp rendering.