Age | Commit message (Collapse) | Author |
|
remove MEM_sys_types.h which was a duplicate.
|
|
unused defines and correct include guards.
|
|
include conflicts later on.
|
|
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
|
|
Such mapping only worked foe compositor output node
(with some issues btw) and failed dramatically for
nodes like previews and viewers.
For now let's behave the same way as border+crop
worked in 2.66 for until proper feature support
is ready (which could take some time).
Fixes #35313: object and ID anti-aliased masks get messed up
when using border render + crop
|
|
Issue was caused by file output node actually,
The thing here is, compositor output does have fixed
resolution and we could predict how to map coordinates
for border and cropping in that case.
But viewers and file output nodes are currently totally
depending on an input resolution. Could not see how
border could be applied reliably in this cases.
Disabling border option for file output node, so
now it shall behave the same way as it was before.
Discovered issues when using cropping to render border,
namely there's an offset in viewer nodes and previews,
but this is separate issue i guess (file output seems
to work fine). Will revisit this issue in next days.
|
|
for activating viewer nodes was completely overridden during renders. Changed this so viewer nodes are active only if both of these are true:
1) the node is tagged for recalc OR compo is in render mode
2) it is the currently active viewer (so only one viewer ever writes to the buffer)
|
|
|
|
Issue was caused by too hight value used for size,
which came from infinite Z-buffer point.
Solved the crash by clamoing maximal gaussian table
radius to 30K, which seems to be reasonable.
|
|
previous
versions when the Z values were the same, Also was inconsistent between full sample
on/off.
|
|
A group without an output node in compositor would leave the original Node instance in the graph with outgoing connections. This causes trouble because the Node is expected to be a NodeOperation. Now group nodes always get disconnected and if no output node is present will use the default group output values (which is slightly less confusing than using input values from connected nodes).
|
|
|
|
reason, quiet float/double warning.
|
|
The design changes coming with pynodes for the node editor allow editing multiple node groups or pinning. This is great for working on different node groups without switching between them all the time, but it causes a problem for viewer nodes: these nodes all write to the same Image data by design, causing access conflicts and in some cases memory corruption. This was not a problem before pynodes because the editor would only allow 1 edited node group at any time. With the new flexibility of node editors this restriction is gone.
In order to avoid concurrent write access to the viewer image buffer and resolve the ambiguity this patch adds an "active viewer key" to the scene->nodetree (added in bNodeTree instead of Scene due to otherwise circular DNA includes). This key identifies a specific node tree/group instance, which enables the compositor to selectively enable only 1 viewer node.
The active viewer key is switched when opening/closing node groups (push/pop on the snode->treepath stack) or when selecting a viewer node. This way only the "last edited" viewer will be active.
Eventually it would be nicer if each viewer had its own buffer per node space so one could actually compare viewers without switching. But that is a major redesign of viewer nodes and images, not a quick fix for bcon4 ...
|
|
|
|
cleanup.
|
|
|
|
|
|
wrong socket index to map the operation socket to the UI node socket.
|
|
Fix for 34494 Blender 2.65 regression test error - compo_map_uv_cubes.blend - stripe/artifact between cubes
Hue and saturation node has an early break when saturarion is 0. When this happened the input 1 color needed to be used. This behaviour was not merged.
When no FSAA is used in the ZCombine. a mask will be created, this mask will be antialiased and based on this mask the colors between the two images are blended. This was also behaviour that was not merged correctly. Now it is back making much better z-combines.
Hope nobody uses these gabs as a work around.
- At Mind -
Jeroen & Monique
|
|
even if nothing is attached to input.
They'll use black image with render resolution
as a background if nothing is attached to mask input.
Was a request from 4K ToS project.
|
|
- pass string size to BLI_timestr() to avoid possible buffer overrun.
- quiet warning for mingw.
- include guards for windows utf conversion funcs.
- fix for mistage in edge-angle-selection check.
- some style cleanup.
|
|
but the root of the issue was that nested node groups (groups inside other groups) were ungrouped ("inlined") repeatedly. This lead to preview operations being added to the same group more than once, and the redundant preview operations (beside working on the same preview buffer) did not get their correct resolution set. This in turn would then lead to previews writing beyond allocated size and causing corrupted memory + crash.
Simple fix: don't expand node groups more than once.
|
|
- remove unused defines.
- quiet some shadow warnings.
- bevel, ifdef out some asserts that are too common.
- style
|
|
|
|
|
|
This keeps old behavior and could be nice. However, it'll
make compositing slower (doing final compo after editing
tree). This is easy to hide preview in this case, and also
i hope to implement percentage rendering soon.
|
|
for estimating the required preview rect size instead of assuming a square, to avoid wasted space. Note that this does not work for newly added nodes until they have first been evaluated and a preview image has been generated (same behavior as before pynodes merge and associated preview changes).
|
|
|
|
The render layer operations need their RenderData pointer set. This was done for all connected output operations, but not for the preview operation which uses the image color layer. In case the image output is unconnected this leads to NULL pointer access.
|
|
This commit simply implements mapping from centered cropped canvas
to a full-frame coordinates, so operations like alpha-overing render
result on top of image will be properly aligned.
|
|
|
|
Make it so compositor output node wouldn't be calculated
when Render Result image is not visible on the screen.
This makes compositor tree editing more friendly and
faster.
Also, if there's no viewer image visible on the screen
viewer nodes wouldn't be handled.
Final rendering keeps unchanged for now.
This solves issues when for performance artists are
disconnecting compo output node before tweaking values
in compositor and forgets to attach compo output
node before sending file to the farm.
|
|
This makes compositing as fast as it's possible in this case.
The only thing is border render+crop will still give funcy
results. This is the next thing to be solved in compositor.
|
|
operation. It was writing outside of allocated memory in case of (0, 0) size buffers, with the usual unpredictable results.
|
|
MuteNode for unspecified nodes in the COM_Converter. Not sure why i removed this in the first place, but it means that reroute nodes are not properly replaced in composites. It worked for preview and viewer composite because the reroute nodes are replaced there already by the node tree localization ... this needs to be cleaned up.
|
|
pixel defines.
caused nasty looking errors with DOF.
|
|
Pretty much straightforward change, made in the same way as
texture input node.
Shall not be any regressions or crashes when mixing usage
of 2.66 and current trunk.
|
|
linker errors on windows (undefined NODE_INSTANCE_KEY_BASE).
|
|
|
|
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.
=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.
Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].
=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].
The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.
[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
|
|
This commit hopefully fixes that regression.
|
|
|
|
This would help figuring out time spent on compositing, helpful for
render farms.
|
|
This node and operations are not useful in background mode anyway,
but calculating them could be really time-consuming especially
when working on 4K frames.
|
|
This will print memory usage, mapped memory usage, memory peak,
compositing tree name and number of finished tiles to stdout
when blender is rendering in background mode.
This makes compositor a less blackbox and should help trouble
shooting issues happening during 4K ToS project.
|
|
Issue was caused by calling ensureDelta from initexecution, which will
read pixels from an input and it could read from non-initialized
operations.
Issue was originally introduced in svn rev54235 which added ensureDelta
to translate's initExecution, but since rev54349 this call seems to be
doing nothing.
|
|
Issue was caused by the fix for #33650 which changed way to check whether
operation resolution is set or not from checking dimensions are zero to
setResolution was ever called.
Such change lead to conflict with MixBase operation (used for Mix node) which
uses temporary zero resolution to check whether input socket resolution is
known. This leads to zero resolution setting to that branch of tree. After this
resolution will never set to it's actual value.
For now solved by changing logic how MixBase operation detects resolution.
Namely instead of using trick with temporary zero resolution and calling
determineResolution for all inputs, and then call base class's method to
determine resolution just once again, check whether input socket is connected
and if so use it's resolution.
Shall not be regressions for real-life trees, but keeping an eye on this and
doing more tests is for sure welcome.
|
|
Viewer operations shall be aware of border as well, otherwise
CPU would be busy for a while full compo isn't done for just
a small preview image in a node.
|
|
This adds border option to compositor, which affects on
a backdrop and viewer nodes, which is useful for faster
previews and tweaks.
Final compositing still happens for the whole frame, but
if it'll be needed it's not so difficult to support it
as well.
To use border there's Ctrl-B shortcut in the compositor
editor, which i used to define region you want to restrict
compositing to. There's also "Viewer Border" option in
the N-panel in case you'll want to disable border
compositing.
Some areas could be cleaned a bit, like ideally it shall
not be viewer image clearing in viewer_border_update RNA
callback, but currently it's not so much clear how to
make it the same fast as simple memset and glue it
somehow to compositor. Will think of nicer solution a
bit later.
|