* 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
* 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.
* 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
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.
- 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.
- 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:
http://users.pandora.be/blendix/snurgle.pnghttp://users.pandora.be/blendix/snurgle_flattened.png
You may recognize the Snurgle model by Colin Levy there.
- Set local sticky in the uv editor as default.
- Don't do live unwrap on fully selected charts or charts with no pins
selected.
- 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.
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.
propagates to related options:
In (platform)-config.py
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = '/usr/include/python${BF_PYTHON_VERSION}'
In user-config.py
BF_PYTHON_VERSION = '2.3'
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.
- python 2.3 if you want python 2.4 add the 2 following lines in
user-config.py :
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
+ 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
* This commit is all of the rewrite work done on the SCons system. For
documentation see doc/blender-scons.txt and doc/blender-scons-dev.txt.
Also http://mediawiki.blender.org/index.php/BlenderDev/SconsRefactoring
contains valuable information, along with what still needs to be done.
- linux, os x and windows compile now.
- files are compiled to BF_INSTALLDIR (see config/(platform)-config.py)
- NOTE: Jean-Luc P will commit sometime during the weekend proper
appit() for OS X. For now, copy the resulting binary to an
existing .app bundle.
- features:
- cleaner structure for better maintenance
- cleaner output during compile
- better handling of build options
- general overall speed increase
- see the wiki for more info
Cygwin, FreeBSD and Solaris systems still need work. For these systems:
1) copy a config/(platform)-config.py to ie. config/cygwin-config.py
2) set the proper defaults for your platform
3) mail me at jesterking at letwory dot net with you configuration. if
you need any modifications to the system, do send a patch, too.
I'll be giving first-aid today and tomorrow, after that it'll be all
regular development work :)
/Nathan
- Scene support in RenderLayers
You now can indicate in Compositor to use RenderLayer(s) from other scenes.
Use the new dropdown menu in the "Render Result" node. It will change the
title of the node to indicate that.
The other Scenes are rendered fully separate, creating own databases (and
octrees) after the current scene was finished. They use their own render
settings, with as exception the render output size (and optional border).
This makes the option an interesting memory saver and speedup.
Also note that the render-results of other scenes are kept in memory while
you work. So, after a render, you can tweak all composit effects.
- Render Stats
Added an 'info string' to stats, printed in renderwindow header. It gives
info now on steps "creating database", "shadow buffers", and "octree".
- Bug fixes
Added redraw event for Image window, when using compositor render.
Text objects were not rendered using background render (probably a bug
since depsgraph was added)
Dropdown buttons in Node editor were not refreshed after usage
Sometimes render window did not open, this due to wrong check for 'esc'.
Removed option that renders view-layers on F12, with mouse in 3d window.
Not only was it confusing, it's now more efficient with the Preview Panel,
which does this nicely.
* Added a user and a developer doc for the upcoming SCons commits.
These documents should get most people started after the commit
of the new scripts is a fact.
Face indicies spanning over 1 line are now supported (had a freak obj that did this)
Small optimization @% overall speedup.
- Last release before move to Mesh over NMesh.
optionally save a jpg next to it, with compression as set in buttons.
This allows quick previews or download from farms.
Button: next to the 'half' and 'zbuf' options for exr.