Commit Graph

205 Commits

Author SHA1 Message Date
Campbell Barton
39e7848ca1 fix for using freed memory with animation/group/ungroup code. 2011-01-08 11:08:51 +00:00
Campbell Barton
89c9aaaa25 remove references to BKE_utildefines where its not needed.
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
2011-01-07 19:18:31 +00:00
Ton Roosendaal
2ad8175597 Todo: Material nodes
- On each re-render, the node image was cleared. Skipping this gives
  nicer pictures
- Node render was using AA, but unfortunately only 1 sample for Nodes
  is being stored. Disable AA render for now, nice speedup too.
2011-01-03 15:50:08 +00:00
Joshua Leung
32b23b2b82 Bugfix [#24163] (PART 2) Unable to animate INSIDE a group node in the
compositor

Now ungrouping grouped-nodes copies the animation back to the main
nodetree. This means that it is now possible to successfully roundtrip
group/un-group nodes and their animation data.

---

This should also be done for the Separate Armature operator... hmm...
2010-12-29 12:18:59 +00:00
Joshua Leung
92172b779e Bugfix [#24163] Unable to animate INSIDE a group node in the
compositor

This commit fixes the original bug reported here by adding some
methods to move the relevant F-Curves (and drivers) over to the new
Node-Tree's (i.e. group-node) AnimData. Animated nodes which
subsequently get grouped will still be able to animate as a result of
this commit.

TODO's:
- Ungrouping now will not yet merge the animation back (or at least
copy it)
- Buttons for nodes freshly grouped do not correctly show animated
status indicators for some reason, yet normal animation does
2010-12-29 11:51:53 +00:00
Ton Roosendaal
b2be78c0cc Bugfix #25392
Compositor: Texture node didn't use texture-nodes itself.
Now composites initialize texture nodes correctly.

Also reviewed the fix for crashing texture nodes for displace.
It appears texture nodes also are used for sculpt/paint 
brushes, in these cases it can be allowed again. But, don't
do this during rendering for now!
2010-12-27 19:26:38 +00:00
Ton Roosendaal
97197b54cf Bugfix #25309
Code cleanup to allow switching active output nodes in Compositor
made shader nodes output not set correctly.

Now you can have multiple output nodes in shaders too, and switch
on click-activate.
2010-12-20 11:08:29 +00:00
Ton Roosendaal
b8e47fd160 Bugfix #25301
Preview render for node shaders broke, caused by localizing 
materials last week, to prevent thread crashes. Fixed now.
Also added a temp fix to draw color-management corrected
node previews default. Will follow scene setting tomorrow.

Also: SSS in nodes doesn't render yet. Was issue in 2.4 too...
2010-12-19 20:12:12 +00:00
Joshua Leung
d3f9b0d05a Bugfix #25049: Compositing Nodes not Keyframable
An error seems to have been introduced to the node-tree building at some point, which means that the ID-type for data-attached node trees was incorrect (i.e. scene->nodetree->id.name = NTREE_COMPOSIT instead of ID_NT). 

This in turn meant that the ID AnimData availability poll would fail, as the ID-type could not be determined.
2010-12-07 10:15:09 +00:00
Campbell Barton
fa4bbbb249 Maintenance,
- remove some redundant declarations
- changed VertexTangent and Path structs to avoid compiler alignment padding.
2010-12-04 13:00:28 +00:00
Campbell Barton
263830f000 Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for 'const char's,.
Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-12-03 17:05:21 +00:00
Campbell Barton
cfc1b133f6 updates to patch from Dan Eicher, allow adding a NodeGroup through bpy.data.node_groups.new(name, type)
made some minor changes.
2010-12-03 03:44:39 +00:00
Ton Roosendaal
b7d0715284 Bugfix #24953
Compositor: If scene render size changed, a Texture node didn't get tagged
to re-render, using previous size instead.
2010-11-28 16:36:36 +00:00
Campbell Barton
7a62c05204 bugfix [#24403] Object.copy() duplicates armature action
now duplicating ID data wont duplicate actions by default and the user preference is used with duplicate operators.
2010-11-09 09:53:17 +00:00
Brecht Van Lommel
5d7ed88f17 Fix #24436: GLSL + Node material gives wrong color. 2010-11-02 12:18:49 +00:00
Campbell Barton
0876fce009 rename and negate DISABLE_PYTHON --> WITH_PYTHON 2010-10-31 04:11:39 +00:00
Campbell Barton
9862157087 fix for fix [#24344] crash on adding new image when composite is open and there is no Nodetree
also use const prefix in solidify modifier where possible.
2010-10-21 04:21:09 +00:00
Brecht Van Lommel
9aa2bde26b Most likely fix for #23420: viewer node: loses viewer nodes forever.
Related to another bug fixed recently, both viewer + split viewer
could be set to output to the same image. That also could make node
tree localization/sync go wrong.
2010-10-02 14:32:03 +00:00
Brecht Van Lommel
734b7b969d Fix #23932: compositing nodes with viewer and split viewer node could
crash, with two threads writing to the same image.
2010-10-01 21:56:36 +00:00
Campbell Barton
bd5a62cfcb bugfix [#23068] Image editor: Update Automatically not updating the compositor.
[#23637] Replacing an image used in the compositor crashes
       [#23343] changes in images doesn't update compositor image nodes
2010-09-13 06:08:26 +00:00
Campbell Barton
0bab23633a remove inline loops in a few places
replace with defgroup_find_name() and BLI_findstring()
2010-08-22 14:15:28 +00:00
Campbell Barton
d1759639dc - remove unused includes IMB_*, BIF_* & MEM_*
- remove MEM_guardedalloc.h from header files (include directly)
2010-08-16 05:46:10 +00:00
Brecht Van Lommel
9ce2086506 Fix #23111: file Output node not working when inside a group. 2010-08-13 10:20:40 +00:00
Campbell Barton
8c75853bb6 bugfix [#23164] Copied Scene Nodes!
copying a scene would still have nodes point back to the old scene which would crash (in some cases) or break rendering.
2010-08-05 10:50:38 +00:00
Brecht Van Lommel
3840b0c206 Fix #22869: procedural compositing buffers from texture nodes were not restored
correct between localize/merge, bugfix for #21727 only did it one way.
2010-08-04 15:51:52 +00:00
Campbell Barton
449f8ce4fe bugfix [#22859] Multi-user images cant be made into single user in texure panel.
turns out this isnt exactly a bug since support was never written for this but may as well support it.
now rna/py can do image.copy() too.
2010-07-30 06:09:23 +00:00
Campbell Barton
4596588fe8 - avoid divide by zero with node progress
- write_crash_blend() was writing to the original path.
2010-06-23 15:07:20 +00:00
Matt Ebb
6e92ddf8b3 Progress indicators for threaded jobs
Now, rather than the bit-too-alarming stop sign, threaded wmJobs 
display a progress indicator in the header. This is an optional feature
for each job type and still uses the same hardcoded ui template
(could use further work here...).

Currently implemented for:
Render - parts completed, then nodes comped
Compositor - nodes comped
Fluid Sim - frames simulated
Texture Bake - faces baked

Example: http://mke3.net/blender/devel/2.5/progress.mov
2010-05-27 08:22:16 +00:00
Campbell Barton
9db7f4122d fix for crash on loading some nodes. 2010-04-28 18:13:03 +00:00
Matt Ebb
8616d22dc3 Fix [#21727] texture in compositor quickly results in crash
Hopefully this is correct - looks like the CompBuf->node pointer was getting left
out of the per-thread copying/localisation.
2010-03-31 05:44:21 +00:00
Brecht Van Lommel
083b11f3c3 fix for mistake in own recent commit.
(commit 27690 by Campbell from render25 branch)
2010-03-23 16:17:27 +00:00
Brecht Van Lommel
9ca5243df8 workaround for compositor threading copying actions every time.
(commit 27684 by Campbell from render25 branch)
2010-03-23 15:34:07 +00:00
Campbell Barton
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
Campbell Barton
546ca400d8 removed unused includes, except for physics and particle related files 2010-03-21 13:42:25 +00:00
Brecht Van Lommel
353a078d4c Fix #21211: new indirect/environment/emit passes weren't showing up
in compositor and outliner yet.
2010-03-12 12:29:12 +00:00
Campbell Barton
42fd22531f constraints unique name length was set too long (could overrun the buffer), use sizeof() with other instances of BLI_uniquename too 2010-02-18 10:14:49 +00:00
Campbell Barton
83fd3fbb43 copy animdata and id-props when copying material node tree's to avoid double memory frees or node trees sharing animdata when they shouldnt. 2010-02-15 08:50:04 +00:00
Campbell Barton
39c3ebdc91 fix for memory leak: node animation data wasnt being free'd
also some corrections to memory debug stuff.
2010-02-13 13:38:10 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Brecht Van Lommel
ec7df03c86 Warning fixes, one actual bug found in sequencer sound wave drawing. Also
changed some malloc to MEM_mallocN while trying to track down a memory leak.
2010-02-08 13:55:31 +00:00
Matt Ebb
de56a63849 Fix [#20773] NODE ANIMATION: Animating node values broken
Now the compositing node tree will update on frame change if any of the 
nodes are animated.

This doesn't work for playback (i.e. alt a), that's better off waiting until we 
have some kind of frame caching system.
2010-01-27 05:42:17 +00:00
Matt Ebb
3e1783c715 New Compositor node: Hue Control
Was very quick to do, now re-aquainted with node editor.

http://mke3.net/blender/devel/2.5/hue_correct_node.jpg

Todo: modes for affecting hue and value on the vertical axis as well as just saturation - or if an enterprising coder wants to give it a go, let me know and 
I can help :)
2010-01-21 00:00:45 +00:00
Matt Ebb
1d3186cbcf Durian request: Added 'Color Balance' node to compositor. uses Lift/Gamma/Gain
similar to sequence editor.

--> http://mke3.net/blender/devel/2.5/color_balance_node.jpg

Also added 0 key (zero key) shortcut when mouse is over a button, to reset it to its default value.
Same as the RMB menu ->Reset to Default, except for color wheels, it only resets the hue/sat/value
components that that widget affects.

Peter/Xavier: The existing color balance code can generate NaNs (fractional power of a negative),
which causes havoc along the image pipeline. I added a check in the node code to prevent this.

Still plenty of potential for lots of better colour correction tools in the compositor, just needs time...
2010-01-20 04:19:55 +00:00
Matt Ebb
4ba5b70d2f Node editor tweaks
* Cleaned up dead code, removed all traces of socket selection

* Modified border select so it's possible to have border select on mouse tweak.
With this change, by default, click+dragging on a node will select and move it, 
but click+dragging on empty space will border select.
2010-01-06 03:00:19 +00:00
Matt Ebb
7a67b662bd * Tweaks for node editor Make Links (F key)
Testing a new method that hopefully will be faster to use than finicky socket 
selection - now just select multiple nodes and press F - available output sockets 
on the selected nodes will get automatically connected to the active node.

It works for one socket type each time, to avoid getting lots of extra connections 
when you join up, but as a shortcut you can easily press F again to connect up 
other socket types. For example, to connect a render layer node (with vector pass) 
to a vector blur node, select the render layer then the vector blur, and press F 
three times to connect up the Image, Z and Vector sockets. It now also 
preferences sockets with the same name to connect up first.

There's also another option (ctrl F) which will replace existing input links, rather 
than only connecting up links to available input sockets.


* Also changed socket link knife cut to a more convenient shortcut - Ctrl LMB tweak
2010-01-04 04:26:28 +00:00
Matt Ebb
fac65a3f4d Durian request:
Extend the 'only selected' property in the graph editor to only show curves
from selected sequence strips and nodes as well.
2009-12-17 04:55:15 +00:00
Campbell Barton
89f9d3873d bugfix [#19983] clicking onto normal input of a material node crash
actually happened when clicking on any input
2009-11-24 14:03:29 +00:00
Joshua Leung
e6d382bd53 Node Editor: Various usability and code tidyups
* Fixed a nasty bug which meant that it was impossible to set an active node. Was caused by ntreeCopyTree() getting called when compo updates were done and clearing the active flags. The active flag clearing is only really needed for the "internal_select" case which is only used for duplicating selected nodes (from Shift-D duplicate).

* Recoded click-selection code. Was a mess of old code, bad exceptions from the old code half ported, duplicate operators, unnecessary flags/modes.

* Fixed bug #19927: compositing node groups can't be access via "tab" or ungrouped via "alt+g". Was probably related to the active group not being able to be set.

* Made resizing nodes work again. Again, this was due to the active node bug.

* Made adding a new group with Ctrl-G correctly update the views
2009-11-20 04:19:57 +00:00
Matt Ebb
c0fae59c99 * Fixed nodetree animation by giving nodes unique names
Now the rna path to nodes happens via the node name, which is ensured to be unique via RNA.
As part of this, the node->username string has been removed, upon renaming the node itself it takes care of making sure it's unique (like bones, constraints, etc). There's currently no interactive rename tool, but you can do it via the datablocks editor.

- plus a few notifier tweaks, using the newer NC_NODE notifier to refresh graph editor etc.
2009-11-11 09:11:21 +00:00
Brecht Van Lommel
37e4a311b0 Math Lib
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
  conversion script instead, if they use a lot of math functions
  in new code:
  http://www.pasteall.org/9052/python
2009-11-10 20:43:45 +00:00