Commit Graph

6173 Commits

Author SHA1 Message Date
Chris Want
2c35988fcb Needed to add zbuf_accumulate_vecblur() to the stubs.c for correct
linking of the blenderplayer.
2006-02-07 03:37:35 +00:00
Ton Roosendaal
f45546a1d3 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:
http://www.blender.org/bf/rt0001_0030.avi
http://www.blender.org/bf/hand0001_0060.avi

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.
2006-02-06 22:11:50 +00:00
Brecht Van Lommel
4c59280ed8 ABF:
- 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.
2006-02-06 20:24:15 +00:00
Ton Roosendaal
93dee282be Sky textures were using wrong pixel-size vectors, so images got sampled
totally blurred.

Thanks plumiferos team for the poke!
2006-02-06 19:29:37 +00:00
Peter Schlaile
b5cbd1c4e6 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.
2006-02-06 19:27:24 +00:00
Ton Roosendaal
605a645e2c 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.
2006-02-06 17:45:43 +00:00
Campbell Barton
c629128773 - 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.
2006-02-06 14:23:55 +00:00
Ton Roosendaal
6f3c9c4275 Inserting keypositions for a constraint which is part of action that's
part of action strip... now is corrected for action strip offset.
2006-02-06 13:56:47 +00:00
Ton Roosendaal
1c89675a3a 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
2006-02-06 13:00:42 +00:00
Nathan Letwory
43c95ee9f2 ==SCons==
+ Add python24.dll to list of needed dlls for install
2006-02-06 12:47:11 +00:00
Nathan Letwory
bbcfb14afa ==SCons==
+ Added note about using the config files. I repeat it here: a user NEVER
  should edit config/(platform)-config.py directly. Instead, make a copy of
  config/(platform)-config.py to user-config.py, and change that instead.

  /Nathan

  PS. now I can say "I told you", and be sure I will :P
2006-02-06 06:52:24 +00:00
Chris Want
462941aaf0 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.
2006-02-06 06:34:36 +00:00
Chris Want
b8988d8c19 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/nan_definitions.mk).
2006-02-06 06:22:39 +00:00
Chris Want
7263b0f6df The writeframeserver stuff requires that the cygwin stuff links with
-lwsock32.
2006-02-06 04:25:20 +00:00
Chris Want
cd4a6b669b To aid linking, I added NAN_USE_FFMPEG_CONFIG (true/false).
If "export NAN_USE_FFMPEG_CONFIG=true" is added to user-def.mk,
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.
2006-02-06 01:49:33 +00:00
Peter Schlaile
f4d5d9080d typo 2006-02-06 00:50:21 +00:00
Peter Schlaile
8fad9e527a FFMPEG defs was initialized as an array, a string was appended 2006-02-06 00:49:25 +00:00
Peter Schlaile
d477ee95c8 quick fix quick typo 2006-02-06 00:20:31 +00:00
Peter Schlaile
f1a1aad0e9 skip_frame not available in all ffmpeg versions 2006-02-06 00:19:23 +00:00
Peter Schlaile
bec1ab6f77 Added NAN_NO_FFMPEG user option 2006-02-06 00:10:43 +00:00
Peter Schlaile
241352104f mem_in_use can be victim to C++ name mangling on some platforms... 2006-02-05 23:46:55 +00:00
Peter Schlaile
64751fba9f -lopenal slipped between ffmpeg-link on Linux 2006-02-05 23:32:17 +00:00
Peter Schlaile
38fe80f402 uint8_t changed to unsigned char (barfed on MSVC) 2006-02-05 23:08:30 +00:00
Peter Schlaile
0946b399c6 removed inline since it barfs on MSVC 2006-02-05 23:07:48 +00:00
Peter Schlaile
0313cacc2b Forgot #ifdef in sound_copy_hdaudio 2006-02-05 22:47:32 +00:00
Nathan Letwory
092e7385d9 ==SCons==
*remove double WITH_BF_FFMPEG
2006-02-05 22:11:04 +00:00
Jean-Luc Peurière
012a87eaa6 reverting default location for OpenEXR to the proper default
(the one in doc)
2006-02-05 21:16:55 +00:00
Nathan Letwory
ba97d47df4 ==SCons==
* Changing linking order of a few libs, hopefully it solves a unresolved issue.
2006-02-05 20:38:40 +00:00
Peter Schlaile
250c9de1bc 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.
2006-02-05 19:49:29 +00:00
Ton Roosendaal
3700984c99 Appending a single object with particle system, will now also expand to
append its group and objects.
2006-02-05 19:43:46 +00:00
Peter Schlaile
4e97a43d56 Adds a VFAPI-Plugin for TMPGenc to connect to the blender frameserver. 2006-02-05 19:39:12 +00:00
Peter Schlaile
680756393a - Header changes to support hdaudio, memcache limitor and framecount boost. 2006-02-05 19:36:32 +00:00
Peter Schlaile
6c29ba8494 Base library to support hdaudio-tracks (using ffmpeg only for now). 2006-02-05 19:33:17 +00:00
Peter Schlaile
90f0e37263 * 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
2006-02-05 19:30:37 +00:00
Nathan Letwory
f17bdcb2e4 ==SCons==
* Add WITH_BF_FFMPEG to scons system. Needs to be added to (platform)-config.py
  still. Otherwise defaults to  'false'.
2006-02-05 19:29:48 +00:00
Peter Schlaile
334b05741f * 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.
2006-02-05 19:23:34 +00:00
Peter Schlaile
38c4a3a209 * 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
2006-02-05 19:18:55 +00:00
Peter Schlaile
44e39005f8 * Fixes memory leak in pipeline.c
* Makes the render pipeline work in arbitrary order to support frameserver
  rendering.
2006-02-05 19:16:32 +00:00
Ken Hughes
ccedf6d833 ==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.
2006-02-05 19:15:58 +00:00
Peter Schlaile
62782a23bf FFMPEG-render support. 2006-02-05 19:14:46 +00:00
Peter Schlaile
42d67ebd4f 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...
2006-02-05 19:13:44 +00:00
Peter Schlaile
1ce9e196f7 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.
2006-02-05 19:12:25 +00:00
Peter Schlaile
4f59db9ca1 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.
2006-02-05 19:04:12 +00:00
Peter Schlaile
3cdd195e58 Adds for additional buttons for the new sequencer code to distinguish
the display of timeline, output, U/V scatter plot and Luma waveform.
2006-02-05 18:59:16 +00:00
Peter Schlaile
57d7ae0365 Adds generic memcache limitor (used by the new sequencer to cache
only a certain amount of frames).
2006-02-05 18:56:30 +00:00
Nathan Letwory
d7e5f37172 ==SCons==
* Fix typo in bullet SConscript
* win32-vc now copies all necessary files to BF_INSTALLDIR, including dlls
2006-02-05 18:48:01 +00:00
Nathan Letwory
ffcbde116e ==SCons==
* make sure PLATFORM_LINKFLAGS are used on Cygwin, too
2006-02-05 18:03:02 +00:00
Nathan Letwory
f92bf08d1e ==SCons==
* cleaning cruft away
2006-02-05 17:58:08 +00:00
Nathan Letwory
896b6288ca ==SCons==
* remove useless BF_TIFF* options. Upon closer inspection of code, only
  path to headers is needed
2006-02-05 17:50:19 +00:00
Nathan Letwory
9b36ffca12 * add proper WITH_BF_TIFF checks 2006-02-05 17:29:22 +00:00