15 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

15 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

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

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

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


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

15 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 :)

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

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

15 years agoMore things for easying the job of replacing proxy/working armatures in the scenes...
Toni Alatalo [Wed, 8 Feb 2006 16:58:12 +0000 (16:58 +0000)]
More things for easying the job of replacing proxy/working armatures in the scenes of Elephants Dream with the final ones: 1) adds removing Fakeusers from Actions to PyAPI, now with a hackish call in the Blender module. Possibility of better ways should be discussed on bf-python.           2) adds BPY Object.copyNLA(otherob) - that was simple 'cause the copy_nla function was nicely in kernel nla.c.            3) Object.convertActionToStrip(), here it gets tricky: the function to convert the active action of an object to a NLA strip was buried inside the respective function in the GUI editnla.c which had also code for reading mouse coordinates and whatnot. So I took the actual copying out of it and moved it to the kernel nla.c as a new function, bActionStrip *convert_action_to_strip (Object *ob). that code used other functions, of which find_stridechannel() was also in editnla.c but free of UI code so i moved it to kernel too. kept things with UI code in editnla.c. tried to be careful with keeping mallocs and the pointer business intact, and tested that this works and after usage Blender gives no memory warnings or anything, so seems ok - but certainly is best reviewed by ppl more active with c coding than me. hopefully this little refactor makes it possible to add this function to the menus too, which was not straightforward earlier when Matt took a look at it.

15 years agoNew:
Ton Roosendaal [Wed, 8 Feb 2006 16:51:09 +0000 (16:51 +0000)]

- ZTransp render now also delivers Z values and Speed vectors in passes
  Note that speed vectors accumulate within a pixel to store the minimum,
  so rendering ztransp on top of a non-moving plane won't give speed...
  Best results you get is by rendering it in a separate layer.

  The Z value stored is the closest visible transparent face in the pixel.


- Render to 'spare page' has been enabled again. Because of the strict
  separation of Render and UI, but especially because a 'render result' now
  can consist of unlimited images, I've not made this a Render feature.
  Instead, the render-window itself stores the 'spare' image... I also
  had to change the convention for it a bit.

  Now, instead of having two "render buffers" (which was a render feature),
  the RenderWindow will store each previous frame on a re-render. This
  storing will only start after you've pressed 'Jkey' once, but then always
  will happen for as long the rendered image is same size as previously.
  For clarity, I've also renamed the window title, to 'previous frame'.

- RenderWindow shows alpha again on Akey

- Display of the Zvalues in ImageWindow has been tweaked. White now denotes
  closest, and the color range goes from camera clip-sta to clip-end.

- Bugfix: on splitting/merging/duplicating windows, the 3D Previewrender was
  not always freed correctly, potentially causing crashes or memory leaks.

15 years agoThis script converts open and closed edge loops into polylines
Campbell Barton [Wed, 8 Feb 2006 14:38:47 +0000 (14:38 +0000)]
This script converts open and closed edge loops into polylines

 Polylines where each vert has no more then 2 edges attached to it.

15 years agoChanged MEM_freeN(nu->knotsu);
Campbell Barton [Wed, 8 Feb 2006 12:52:57 +0000 (12:52 +0000)]
Changed MEM_freeN(nu->knotsu);
if (nu->knotsu) MEM_freeN(nu->knotsu);
Python created curves have nu->knotsu set to zero and was throwing.
  Memoryblock free: attempt to free NULL pointer

15 years ago- Autosmooth now calculates smoothing based on original object-space
Ton Roosendaal [Wed, 8 Feb 2006 10:57:48 +0000 (10:57 +0000)]
- Autosmooth now calculates smoothing based on original object-space
  vertex locations, not global coordinates. This ensures consistant
  autosmoothing for each frame. Also fixes missing vectorblur for parts.

  Nice task for a dev: put autosmooth code in end of modifier stack... then
  it also shows in 3D window

- BUG FIX! I noticed the last tile rendered quite slow, and even did not
  update scanlines. Found out that the main tiles processor didn't go
  to sleep when the last tile was rendered, because it detected a free
  possible thread. This caused the main thread to go into a very tight
  loop, eating up a lot of cpu and blocking the other thread.

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 22:41:17 +0000 (22:41 +0000)]
+ install blenderplayer to BF_INSTALLDIR after successful build

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 22:24:41 +0000 (22:24 +0000)]
* 'scons blenderplayer' links the blenderplayer now correctly also on win32-vc.
  If the OS X-folks can verify the linking of the blenderplayer too, we'd have
  much of the needed work done.

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 21:47:11 +0000 (21:47 +0000)]
* The only lib that needs change in more than one place (two), and I forgot
  that, of course.

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 21:24:36 +0000 (21:24 +0000)]
+ 'scons blenderplayer' builds blender AND blenderplayer now (tested on Linux
  only, but was only linking issue, so should work on other platforms too).

  NOTE: I noticed some compileflags for GE specific libs that were left out -
  I re-enabled them in the SConscripts, but I'm going to do a test build my-
  self now, so if there are problems with them on win32, I probably already
  know about them :)

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 21:12:01 +0000 (21:12 +0000)]
* use proper seperator instead of *nix-only /

15 years ago==SCons==
Nathan Letwory [Tue, 7 Feb 2006 21:04:22 +0000 (21:04 +0000)]
- remove blenderdummy.cpp from list, so that elbeem actually works

15 years agoWanted feature for curves: a render-time resolution. This option is
Ton Roosendaal [Tue, 7 Feb 2006 19:59:02 +0000 (19:59 +0000)]
Wanted feature for curves: a render-time resolution. This option is
located under the 'def resolu' button. If not zero, it assigns this
resolution to a curve on render.
Also copies with ctrl+c menu.

15 years agoAdd the WITH_OPENEXR to sconscript. I needed this for toni's latest SceneRender stuff...
Matt Ebb [Tue, 7 Feb 2006 19:04:24 +0000 (19:04 +0000)]
Add the WITH_OPENEXR to sconscript. I needed this for toni's latest SceneRender stuff to work. Strange that it worked ok on his computer without this.

15 years agoadditions to make the orange rendering preparation script work, sorry undocumented...
Toni Alatalo [Tue, 7 Feb 2006 18:33:01 +0000 (18:33 +0000)]
additions to make the orange rendering preparation script work, sorry undocumented again (we are testing this now and gotta commit to get this to other compus at studio, Stivs make a note to bug me about the doc or someone add it.. :o)

15 years agoFurther tweaking group appending...
Ton Roosendaal [Tue, 7 Feb 2006 18:32:04 +0000 (18:32 +0000)]
Further tweaking group appending...

Previous commits attempted to link objects in a group to the scene, when
appending the group. Unfortunately... a single append then also linked
objects from previously linked groups. This is still a bit messy, mostly
caused by the way how appending now is coded.

At least things work as expected now!

15 years agoOrange-reported vectorblur bug: when using autosmooth, the amount of
Ton Roosendaal [Tue, 7 Feb 2006 17:44:02 +0000 (17:44 +0000)]
Orange-reported vectorblur bug: when using autosmooth, the amount of
vertices differed on previous/next frame, causing speedvector calculus
to be skipped.
Now that worked OK, where it not that non-existing speed vectors were not
initialized zero while rendering...

Also another issue showed up with autosmooth. When using exact smooth
angles (like 30 degrees) on a model that has been spinned with exactly
30 degree steps, the autosmooth gave different results on each frame...
and only when compiled in O2 (probably thats doing bad float rounding).

Solved this by just adding 0.1 to the user defined smooth angle.

15 years agoGroup Nodes made functional: each group now can be re-used (instanced)
Ton Roosendaal [Tue, 7 Feb 2006 15:50:55 +0000 (15:50 +0000)]
Group Nodes made functional: each group now can be re-used (instanced)
with SHIFT+G. This works as well for local groups as library-linked

Also fixed that group nodes were copying internal data to the outside,
which made it impossible to use the socket-buttons to set individual
values for each group-instance.

Library-linked groups are prevented from editing. But, try to open a
group and it will give a request for 'make local'. The make local rule
is identical to other library data in blender, meaning:
- if all users of the library data are local -> the library data is
  flagged 'local', and if needed a unique name is made
- if there's mixed users (local and from other library data) it makes
  a full copy, and assigns this copy to all local users.

15 years ago* If an empty is a forcefield, scale the 3D forcefield shape with the empty drawsize
Matt Ebb [Tue, 7 Feb 2006 13:05:17 +0000 (13:05 +0000)]
* If an empty is a forcefield, scale the 3D forcefield shape with the empty drawsize

15 years agoAdded "Blur factor" button in Vector Blur node, which scales the speed
Ton Roosendaal [Tue, 7 Feb 2006 11:39:26 +0000 (11:39 +0000)]
Added "Blur factor" button in Vector Blur node, which scales the speed
vectors. It's actually shutter speed, but in this case works identical to
the old motionblur 'blur fac' button.

Note; the "Max Speed" button only clips speed, use this to prevent
extreme speed values. Max speed applied before the scaling happens.

15 years agoThis script sets the UV mapping and image of selected faces from adjacent unselected...
Campbell Barton [Tue, 7 Feb 2006 10:50:35 +0000 (10:50 +0000)]
This script sets the UV mapping and image of selected faces from adjacent unselected faces.

Use this script in face select mode.

Note- If you make new faces between faces that are alredy UV mapped there is currently no way to say- map from others... this script does exactly that. and can save a lot of time manually moving and welding UV coords one by one.
Its realy usefull for mapping after a scanfill too.

15 years agoworks with free verts and a bit faster
Campbell Barton [Tue, 7 Feb 2006 03:58:57 +0000 (03:58 +0000)]
works with free verts and a bit faster

15 years agoCleaning up some bad stuff from the merge in the release/ directory.
Chris Want [Tue, 7 Feb 2006 03:58:33 +0000 (03:58 +0000)]
Cleaning up some bad stuff from the merge in the release/ directory.
Somebody with good knowledge of the current state of icons should
probably check blenderbuttons for correctness. Also, splash.blend
was corrupt, so I restored the old version, but it says 2.40...

15 years agoFrom __bpydoc__
Campbell Barton [Tue, 7 Feb 2006 03:41:28 +0000 (03:41 +0000)]
From __bpydoc__

This script relaxes selected UV verts in relation to there surrounding geometry.

Use this script in face select mode.
Left Click to finish or wait until no more relaxing can be done.

15 years agoNeeded to add zbuf_accumulate_vecblur() to the stubs.c for correct
Chris Want [Tue, 7 Feb 2006 03:37:35 +0000 (03:37 +0000)]
Needed to add zbuf_accumulate_vecblur() to the stubs.c for correct
linking of the blenderplayer.

15 years agoiImage based Vector Blur
Ton Roosendaal [Mon, 6 Feb 2006 22:11:50 +0000 (22:11 +0000)]
iImage based Vector Blur

After a couple of experiments with variable blur filters, I tried
a more interesting, and who knows... original approach. :)

First watch results here:

These are the steps in producing such results:

- In preprocess, the speed vectors to previous and next frame are
  calculated. Speed vectors are screen-aligned and in pixel size.
- while rendering, these vectors get calculated per sample, and
  accumulated in the vector buffer checking for "minimum speed".
  (on start the vector buffer is initialized on max speed).

- After render:
- The entire image, all pixels, then is converted to quad polygons.
- Also the z value of the pixels is assigned to the polygons
- The vertices for the quads use averaged speed vectors (of the 4
  corner faces), using a 'minimum but non-zero' speed rule.

  This minimal speed trick works very well to prevent 'tearing' apart
  when multiple faces move in different directions in a pixel, or to
  be able to separate moving pixels clearly from non-moving ones

- So, now we have a sort of 'mask' of quad polygons. The previous steps
  guaranteed that this mask doesn't have antialias color info, and has
  speed vectors that ensure individual parts to move nicely without
  tearing effects. The Z allows multiple layers of moving masks.

- Then, in temporal buffer, faces get tagged if they move or not
- These tags then go to an anti-alias routine, which assigns alpha
  values to edge faces, based on the method we used in past to antialias
  bitmaps (still in our code, check the antialias.c in imbuf!)

- finally, the tag buffer is used to tag which z values of the original
  image have to be included (to allow blur go behind stuff).

- OK, now we're ready for accumulating! In a loop, all faces then get
  drawn (with zbuffer) with increasing influence of their speed vectors.
  The resulting image then is accumulated on top of the original with a
  decreasing weighting value.

It sounds all quite complex... but the speed is still encouraging. Above
images have 64 mblur steps, which takes about 1-3 seconds per frame.

Usage notes:

- Make sure the render-layer has passes 'Vector' and 'Z' on.
- add in Compositor the VectorBlur node, and connect the image, Z and
  speed to the inputs.
- The node allows to set amount of steps (10 steps = 10 forward, 10 back).
  and to set a maximum speed in pixels... to prevent extreme moving things
  to blur too wide.

15 years agoABF:
Brecht Van Lommel [Mon, 6 Feb 2006 20:24:15 +0000 (20:24 +0000)]

- Improved splitting of quads, which helps to avoid some degenerate triangles.
- Also improvements to choosing pins to preserve symmetry better in a few
  typical cases.

15 years agoSky textures were using wrong pixel-size vectors, so images got sampled
Ton Roosendaal [Mon, 6 Feb 2006 19:29:37 +0000 (19:29 +0000)]
Sky textures were using wrong pixel-size vectors, so images got sampled
totally blurred.

Thanks plumiferos team for the poke!

15 years agoFixed problem spottet by Ken Hughes, that prevented FFMPEG-output with
Peter Schlaile [Mon, 6 Feb 2006 19:27:24 +0000 (19:27 +0000)]
Fixed problem spottet by Ken Hughes, that prevented FFMPEG-output with
NTSC target from working (floating point exception).
Fixes bug #3879 from the bug tracker.

15 years agoQuite weird... I recall I fixed it, then it came back again.
Ton Roosendaal [Mon, 6 Feb 2006 17:45:43 +0000 (17:45 +0000)]
Quite weird... I recall I fixed it, then it came back again.

Vertex selection (mesh edit) was using a short to calculate distances,
which can overflow with vertices outside of view.

15 years ago- Removed workarounds for Blender 2.41
Campbell Barton [Mon, 6 Feb 2006 14:23:55 +0000 (14:23 +0000)]
- Removed workarounds for Blender 2.41
- Mesh objects split by material- many 3ds objects used more then 16 per mesh. and when a face looses its image texture its tedious to set again.
- Removed a lot of unneeded variable creation.

15 years agoInserting keypositions for a constraint which is part of action that's
Ton Roosendaal [Mon, 6 Feb 2006 13:56:47 +0000 (13:56 +0000)]
Inserting keypositions for a constraint which is part of action that's
part of action strip... now is corrected for action strip offset.

15 years agoTweaked library link/append rules for groups a bit further;
Ton Roosendaal [Mon, 6 Feb 2006 13:00:42 +0000 (13:00 +0000)]
Tweaked library link/append rules for groups a bit further;

- append group: appends group + puts objects in scene
- link group: only links group, doesn't put objects in scene

- append particle system with group: appends group + objects in scene
- link particle system with group: only links group

15 years ago==SCons==
Nathan Letwory [Mon, 6 Feb 2006 12:47:11 +0000 (12:47 +0000)]

+ Add python24.dll to list of needed dlls for install

15 years ago==SCons==
Nathan Letwory [Mon, 6 Feb 2006 06:52:24 +0000 (06:52 +0000)]

+ Added note about using the config files. I repeat it here: a user NEVER
  should edit config/(platform) directly. Instead, make a copy of
  config/(platform) to, and change that instead.


  PS. now I can say "I told you", and be sure I will :P

15 years agoSupport for ffmpeg for cygwin/gcc. Off by default, enable with
Chris Want [Mon, 6 Feb 2006 06:34:36 +0000 (06:34 +0000)]
Support for ffmpeg for cygwin/gcc. Off by default, enable with
     export WITH_FFMPEG=true
(and be sure to update lib/windows). Test, test, test.

15 years agoUsing NAN_FFMPEG_CFLAGS to find the right headers, and making linking
Chris Want [Mon, 6 Feb 2006 06:22:39 +0000 (06:22 +0000)]
Using NAN_FFMPEG_CFLAGS to find the right headers, and making linking
with NAN_FFMPEG_LIBS more general (i.e., not just for linux, and
moving some of the linux linking stuff to source/

15 years agoThe writeframeserver stuff requires that the cygwin stuff links with
Chris Want [Mon, 6 Feb 2006 04:25:20 +0000 (04:25 +0000)]
The writeframeserver stuff requires that the cygwin stuff links with

15 years agoTo aid linking, I added NAN_USE_FFMPEG_CONFIG (true/false).
Chris Want [Mon, 6 Feb 2006 01:49:33 +0000 (01:49 +0000)]
To aid linking, I added NAN_USE_FFMPEG_CONFIG (true/false).
If "export NAN_USE_FFMPEG_CONFIG=true" is added to,
the system executes the ffmeg-config program to set values
for NAN_FFMPEG (--prefix), NAN_FFMPEGLIBS (--libs avcodec avformat),
and NAN_FFMPEGCFLAGS (--cflags). Only one used so far is the
NAN_FFMPEGLIBS for linking on linux (if requested to do so).
Current default is not to do this.

15 years agotypo
Peter Schlaile [Mon, 6 Feb 2006 00:50:21 +0000 (00:50 +0000)]

15 years agoFFMPEG defs was initialized as an array, a string was appended
Peter Schlaile [Mon, 6 Feb 2006 00:49:25 +0000 (00:49 +0000)]
FFMPEG defs was initialized as an array, a string was appended

15 years agoquick fix quick typo
Peter Schlaile [Mon, 6 Feb 2006 00:20:31 +0000 (00:20 +0000)]
quick fix quick typo

15 years agoskip_frame not available in all ffmpeg versions
Peter Schlaile [Mon, 6 Feb 2006 00:19:23 +0000 (00:19 +0000)]
skip_frame not available in all ffmpeg versions

15 years agoAdded NAN_NO_FFMPEG user option
Peter Schlaile [Mon, 6 Feb 2006 00:10:43 +0000 (00:10 +0000)]
Added NAN_NO_FFMPEG user option

15 years agomem_in_use can be victim to C++ name mangling on some platforms...
Peter Schlaile [Sun, 5 Feb 2006 23:46:55 +0000 (23:46 +0000)]
mem_in_use can be victim to C++ name mangling on some platforms...

15 years ago-lopenal slipped between ffmpeg-link on Linux
Peter Schlaile [Sun, 5 Feb 2006 23:32:17 +0000 (23:32 +0000)]
-lopenal slipped between ffmpeg-link on Linux

15 years agouint8_t changed to unsigned char (barfed on MSVC)
Peter Schlaile [Sun, 5 Feb 2006 23:08:30 +0000 (23:08 +0000)]
uint8_t changed to unsigned char (barfed on MSVC)

15 years agoremoved inline since it barfs on MSVC
Peter Schlaile [Sun, 5 Feb 2006 23:07:48 +0000 (23:07 +0000)]
removed inline since it barfs on MSVC

15 years agoForgot #ifdef in sound_copy_hdaudio
Peter Schlaile [Sun, 5 Feb 2006 22:47:32 +0000 (22:47 +0000)]
Forgot #ifdef in sound_copy_hdaudio

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 22:11:04 +0000 (22:11 +0000)]
*remove double WITH_BF_FFMPEG

15 years agoreverting default location for OpenEXR to the proper default
Jean-Luc Peurière [Sun, 5 Feb 2006 21:16:55 +0000 (21:16 +0000)]
reverting default location for OpenEXR to the proper default
(the one in doc)

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 20:38:40 +0000 (20:38 +0000)]
* Changing linking order of a few libs, hopefully it solves a unresolved issue.

15 years agoAdds ffmpeg-support on Linux-platforms. Since ffmpeg is installed
Peter Schlaile [Sun, 5 Feb 2006 19:49:29 +0000 (19:49 +0000)]
Adds ffmpeg-support on Linux-platforms. Since ffmpeg is installed
always statically (you have to force it to build a dynamic library) the
resulting binary is redistributable.

The code is made ffmpeg-version independent using #ifdef's.

15 years agoAppending a single object with particle system, will now also expand to
Ton Roosendaal [Sun, 5 Feb 2006 19:43:46 +0000 (19:43 +0000)]
Appending a single object with particle system, will now also expand to
append its group and objects.

15 years agoAdds a VFAPI-Plugin for TMPGenc to connect to the blender frameserver.
Peter Schlaile [Sun, 5 Feb 2006 19:39:12 +0000 (19:39 +0000)]
Adds a VFAPI-Plugin for TMPGenc to connect to the blender frameserver.

15 years ago- Header changes to support hdaudio, memcache limitor and framecount boost.
Peter Schlaile [Sun, 5 Feb 2006 19:36:32 +0000 (19:36 +0000)]
- Header changes to support hdaudio, memcache limitor and framecount boost.

15 years agoBase library to support hdaudio-tracks (using ffmpeg only for now).
Peter Schlaile [Sun, 5 Feb 2006 19:33:17 +0000 (19:33 +0000)]
Base library to support hdaudio-tracks (using ffmpeg only for now).

15 years ago* Adds configuration buttons for ffmpeg-output
Peter Schlaile [Sun, 5 Feb 2006 19:30:37 +0000 (19:30 +0000)]
* Adds configuration buttons for ffmpeg-output
* Large sequencer rewrite to support:
  - Audio-tracks, which are not completely loaded into memory (hdaudio) but
    kept on disk instead.
  - A dependency tree, that builds only the Imbufs, that are really needed
  - Cleaner sequencer code
  - Per instance data in sequencer plugins (without this, the Dynamic
    Noise Reduction plugin would be impossible)
  - A Luma Waveform display
  - A U/V scatter plot display
  - Memcache limiting in sequencer
  - Buttons changed according to the boosted framecount limit

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 19:29:48 +0000 (19:29 +0000)]
* Add WITH_BF_FFMPEG to scons system. Needs to be added to (platform)
  still. Otherwise defaults to  'false'.

15 years ago* Add memcache limitor-support to imbufs
Peter Schlaile [Sun, 5 Feb 2006 19:23:34 +0000 (19:23 +0000)]
* Add memcache limitor-support to imbufs
* Add ffmpeg-read support in anim.c and util.c
* Makes ImBufs refcountable. You can now increase an internal refcounter
  in ImBufs (using IMB_refImBuf) which is decreased by freeImBuf.
  This makes it possible to simply pass ImBuf pointers around in the
  sequencer saving a few memcopies.

15 years ago* Adds userdef-types for memcache limitor and frameserver-rendering
Peter Schlaile [Sun, 5 Feb 2006 19:18:55 +0000 (19:18 +0000)]
* Adds userdef-types for memcache limitor and frameserver-rendering
* Boosts the blender frame limit by changing the type of the frame number
  from short to int everywhere. Without this, timelines longer than a few
  minutes are impossible to handle.
* Adds several types for ffmpeg input/output, hdaudio-tracks in sequencer

15 years ago* Fixes memory leak in pipeline.c
Peter Schlaile [Sun, 5 Feb 2006 19:16:32 +0000 (19:16 +0000)]
* Fixes memory leak in pipeline.c
* Makes the render pipeline work in arbitrary order to support frameserver

15 years ago==Python API==
Ken Hughes [Sun, 5 Feb 2006 19:15:58 +0000 (19:15 +0000)]
==Python API==
Bugfix #3849: "break" instead of "continue" caused memory corruption in
faces.extend() if an edge was given in the middle of parameter list.

15 years agoFFMPEG-render support.
Peter Schlaile [Sun, 5 Feb 2006 19:14:46 +0000 (19:14 +0000)]
FFMPEG-render support.

15 years agoEnables sequencer ipos for effect plugins and audio-tracks
Peter Schlaile [Sun, 5 Feb 2006 19:13:44 +0000 (19:13 +0000)]
Enables sequencer ipos for effect plugins and audio-tracks
to be locked to frames instead of the range from 0-100.
Comes very handy on long timelines...

15 years agoAdds support for frameserver rendering to blender. This is done by
Peter Schlaile [Sun, 5 Feb 2006 19:12:25 +0000 (19:12 +0000)]
Adds support for frameserver rendering to blender. This is done by
integrating a mini-webserver (around 300 lines of code) into blender.
Using the VFAPI-plugin in contrib/windows it enables blender to
directly feed its output into TMPGEnc, a commercial high quality MPEG-Encoder.
Since it is a mini-webserver, you can probably easily use it for other
interfacing purposes.

15 years agoAdd several usefull sequencer-plugins:
Peter Schlaile [Sun, 5 Feb 2006 19:04:12 +0000 (19:04 +0000)]
Add several usefull sequencer-plugins:
- color-correction-hsv & color-correction-yuv
  Do color correction in HSV or YUV-space, rather sophisticated but slow.
  You can control setup, gain and gamma and saturation (seperated by
  shadows, midtones and highlights).
- gamma
  a simple RGB-Gamma plugin, but very fast.
- dnr
  Dynamic Noise Reduction (plugin ported from VirtualDub).
  This helps mpeg encoding alot, by ignoring noise /movement
  below a given threshold between frames.
  It is also a lot faster than the original VirtualDub-plugin preserving
  it's quality.

15 years agoAdds for additional buttons for the new sequencer code to distinguish
Peter Schlaile [Sun, 5 Feb 2006 18:59:16 +0000 (18:59 +0000)]
Adds for additional buttons for the new sequencer code to distinguish
the display of timeline, output, U/V scatter plot and Luma waveform.

15 years agoAdds generic memcache limitor (used by the new sequencer to cache
Peter Schlaile [Sun, 5 Feb 2006 18:56:30 +0000 (18:56 +0000)]
Adds generic memcache limitor (used by the new sequencer to cache
only a certain amount of frames).

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 18:48:01 +0000 (18:48 +0000)]

* Fix typo in bullet SConscript
* win32-vc now copies all necessary files to BF_INSTALLDIR, including dlls

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 18:03:02 +0000 (18:03 +0000)]
* make sure PLATFORM_LINKFLAGS are used on Cygwin, too

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 17:58:08 +0000 (17:58 +0000)]
* cleaning cruft away

15 years ago==SCons==
Nathan Letwory [Sun, 5 Feb 2006 17:50:19 +0000 (17:50 +0000)]

* remove useless BF_TIFF* options. Upon closer inspection of code, only
  path to headers is needed

15 years ago* add proper WITH_BF_TIFF checks
Nathan Letwory [Sun, 5 Feb 2006 17:29:22 +0000 (17:29 +0000)]
* add proper WITH_BF_TIFF checks

15 years ago+ add check for cygwin to continue parsing of SCons scripts
Nathan Letwory [Sun, 5 Feb 2006 17:14:52 +0000 (17:14 +0000)]
+ add check for cygwin to continue parsing of SCons scripts

15 years ago* option propagation also for darwin :)
Nathan Letwory [Sun, 5 Feb 2006 16:25:38 +0000 (16:25 +0000)]
* option propagation also for darwin :)

15 years agoPrevious commit broke faces.extend() and edges.extend() for single edges
Ken Hughes [Sun, 5 Feb 2006 15:43:47 +0000 (15:43 +0000)]
Previous commit broke faces.extend() and edges.extend() for single edges
and faces.

15 years agoAngle Based Flattening:
Brecht Van Lommel [Sun, 5 Feb 2006 15:32:19 +0000 (15:32 +0000)]
Angle Based Flattening:

- There's an option to enabled ABF in the UV Calculation panel.
- ABF works with seams, pinning, live transform etc. UI wise it's pretty
  much the same as LSCM.

- ABF favors low angular distortion over area distortion, much like LSCM.
  It does however not have the tendency to "collapse" under high stretch,
  which basically means that it will be able to handle complex charts
  without pinning.
- ABF does however have on serious drawback: it is sensitive to degenerate
  geometry, especially very small angles. I'm working on this, but it seems
  to be quite difficult to improve the situation. There's still a bunch of
  ideas left to try, but I'll just commit this now as is. If ABF fails, it
  will fall back to LSCM, and there will be a warning print in the console.

- This implementation has the matrix tricks from ABF++ also. The second part
  of ABF++, simplification before unwrap, is being worked on. The current
- ABF is about 3-4 times slower than LSCM, which was to be expected. For
  live transform however, once the initial computation is done, it's just as
  snappy as the new LSCM code.

Results are quite nice though:

You may recognize the Snurgle model by Colin Levy there.

15 years agoUpdated blenderbuttons (non-sticky now shows icon in the uv editor).
Brecht Van Lommel [Sun, 5 Feb 2006 14:21:09 +0000 (14:21 +0000)]
Updated blenderbuttons (non-sticky now shows icon in the uv editor).
Also have datatoc.c add a new line at the end of the file, seems this
was added directly to blenderbuttons.c to fix a warning before.

15 years agoUV Editor Tweaks:
Brecht Van Lommel [Sun, 5 Feb 2006 14:12:45 +0000 (14:12 +0000)]
UV Editor Tweaks:

- Set local sticky in the uv editor as default.
- Don't do live unwrap on fully selected charts or charts with no pins
- Fixed bug with live unwrap not respecting transform cancel in some cases.
- "View Home" didn't work without an image.
- Move UV Calculation settings (cube size, cylinder radius, ..) into the scene
  toolsettings, instead of global variables
- Remove the name LSCM from the UI (and python docs on seams), and replace it
  with 'Unwrap', with upcoming ABF this didn't make sense anymore.
- Move the Old/New LSCM switch into the UV Calculation panel. New LSCM is the
  default now. Also renamed LSCM there to "Conformal".
- Made some room in the UV Calculation panel by removing the buttons to execute
  the UV calculation, only leaving the settings.

Fill Holes:

- LSCM now has an option to fill holes in the chart before unwrapping. This on
  by default, and enables two things:
  - Prevent internal overlaps (e.g. eyes, mouth) for LSCM unwrapping.
  - Allow the internal boundaries to move freely during stretch minimize.
- The possibility to switch it off is there because it is not always possible
  to define which the outer boundary is. For example with an open cylinder
  where there are two identical holes.

15 years ago* reflect WITH_BF_INTERNATIONAL changes into (platform) files too
Nathan Letwory [Sun, 5 Feb 2006 12:27:49 +0000 (12:27 +0000)]
* reflect WITH_BF_INTERNATIONAL changes into (platform) files too

Nathan Letwory [Sun, 5 Feb 2006 12:24:52 +0000 (12:24 +0000)]
* typo in adding BF_OPENAL_LIBPATH, resulting in it not being added at all

15 years ago- removed redundant code
Nathan Letwory [Sun, 5 Feb 2006 12:08:32 +0000 (12:08 +0000)]
- removed redundant code

15 years agopackaging in bundle of the Os X binary. result in the bin of build dir
Jean-Luc Peurière [Sun, 5 Feb 2006 11:28:28 +0000 (11:28 +0000)]
packaging in bundle of the Os X binary. result in the bin of build dir

Important note, the install target install only the binary not the
packaged bunde for the moment

15 years ago- remove Xmu and Xext from linking line for linux2, as they are not needed
Nathan Letwory [Sun, 5 Feb 2006 11:11:44 +0000 (11:11 +0000)]
- remove Xmu and Xext from linking line for linux2, as they are not needed
+ WITH_BF_OPENAL actually enables or disables use of OpenAL
+ WITH_BF_OPENEXR removes openexr libs from linking if disabled

15 years ago==Python API==
Ken Hughes [Sun, 5 Feb 2006 07:19:37 +0000 (07:19 +0000)]
==Python API==
A couple of bug fixes and enhancements:
(1) Setting the UV attributes of a mesh face will create texture faces if
    they are not already defined.  Previously this threw an exception.
(2) Setting the image attribute of a mesh face will also set the TEX bit
    of the face.mode flag
(3) When "sticky" vertices are created with mesh.vertexUV, the color is
    set to white instead of black.
(4) Bugfix #3872: copying the mode attribute of one mesh to another would
    sometimes result in an exception due to unexpected bits being set. I
    still don't know how these other bits are being set, but this patch will
    stop the complaint if they are set.

15 years ago+ WITH_BF_OPENAL=0 should now actually not need OpenAL stuff
Nathan Letwory [Sun, 5 Feb 2006 01:09:40 +0000 (01:09 +0000)]
+ WITH_BF_OPENAL=0 should now actually not need OpenAL stuff
* BF_PROFILE_FLAGS to list form

15 years ago* argh, sleep deprivation getting upper-hand - I accidently left an Exit()
Nathan Letwory [Sun, 5 Feb 2006 00:53:47 +0000 (00:53 +0000)]
* argh, sleep deprivation getting upper-hand - I accidently left an Exit()
  call lying around, causing SCons never to build anything :)

15 years ago* Use better option propagation everywhere
Nathan Letwory [Sun, 5 Feb 2006 00:47:34 +0000 (00:47 +0000)]
* Use better option propagation everywhere

  lukep, I didn't touch yet, because you're still
  working on it. But if you could see and make similar changes as
  I did to the rest.

15 years ago* Added safeguards around a few list.remove(x) calls, to prevent SCons
Nathan Letwory [Sun, 5 Feb 2006 00:23:43 +0000 (00:23 +0000)]
* Added safeguards around a few list.remove(x) calls, to prevent SCons
  from barfing if a CVS directory was not found (ie when cvs export
  was used).

15 years ago* Made options evaluate differently, so setting one option properly
Nathan Letwory [Sun, 5 Feb 2006 00:03:51 +0000 (00:03 +0000)]
* Made options evaluate differently, so setting one option properly
  propagates to related options:

  In (platform)
    BF_PYTHON_INC = '/usr/include/python${BF_PYTHON_VERSION}'


  This will now have BF_PYTHON_INC evaluate actually to
  '/usr/include/python2.3' and not to '/usr/include/python2.4' as with
  the old way. Reported by Chris Want.

  Todo: also use in other platform configurations.

15 years agomore sensible defaults for new scons on Os X :
Jean-Luc Peurière [Sat, 4 Feb 2006 22:16:01 +0000 (22:16 +0000)]
more sensible defaults for new scons on Os X :

- python 2.3   if you want python 2.4 add the 2 following lines in
              BF_PYTHON = '2.3'
              BF_PYTHON = '/library.Frameworks/Python.framework/Versions/'

- disabled libtiff by default. new scons force lib linking &  it shouldnt
  will work on that
- added SystemStubs lib that 10.4 require in some circumstances.
  10.3 users may have to remove it with this line :
              LLIBS = 'stdc++'

additional notes :

OpenEXR libs and includes are searched in /usr/local
use by preference gcc3.3 gcc4 need some new libs i will commit shortly
you get in final an unpackaged binary. take a previous blender app  and use
show package content command to navigate to Contents/MacOs. replace the
binary there by new one, and voila, you have a working new app.

will commit shortly the automatic packager

15 years ago==SCons==
Nathan Letwory [Sat, 4 Feb 2006 16:36:37 +0000 (16:36 +0000)]
+ BF_BUILDINFO=1 (by default) for build info in splash
- remove redundant renderconverter include dir
* check for win32-vc instead of only win32, so MingW compile goes ok