Commit Graph

549 Commits

Author SHA1 Message Date
Lukas Toenne
a85f595721 Fix for #28886, compositor cache regression bug.
The problem was that all outputs got tagged indiscriminately (esp. hidden render layer sockets), leading to full recalculation every time. This was caused by erroneous tagging of bNodeStacks with hasinput/hasoutput flags. This patch restores the old behaviour of tagging all non-static stacks as input values and all outputs that are connected to some input. Only difference is in node groups, where the hasoutput flag is no longer abused for tagging internal buffers, here the is_copy flag is used instead.
2011-10-12 12:55:32 +00:00
Miika Hamalainen
e8bb972f3c Merge with trunk r40782 2011-10-04 11:42:44 +00:00
Bastien Montagne
6ad5e2ef1f Fix [#28436] ID mask creates 'feather' around ID even with AA turned off.
Perhaps not the ideal solution, but it works, is easy to undo if/when we have a better one, and I’m pretty sure it won’t break anything...
2011-10-02 12:57:49 +00:00
Campbell Barton
018fa1540e whitespace edits, make formatting for functions consustent at least within the file. 2011-09-28 05:53:40 +00:00
Campbell Barton
58587a3881 replace strncpy with BLI_strncpy, in some cases strncpy was being misused since it doesnt ensure \0 termination.
also dont call CTX_data_scene() twice when checking for function arguments.
2011-09-26 18:51:10 +00:00
Campbell Barton
274b9c8fb8 whitespace cleanup 2011-09-25 12:31:21 +00:00
Campbell Barton
86d528afa7 comment some unused vars / assignments. 2011-09-22 03:14:50 +00:00
Campbell Barton
4b449aefea remove support for irix 2011-09-21 08:40:30 +00:00
Miika Hamalainen
15cb47bf91 Merge with trunk r40409 2011-09-20 17:51:04 +00:00
Campbell Barton
84d06f252e tag & comment unused vars with /* UNUSED */ 2011-09-20 08:48:48 +00:00
Campbell Barton
6791052832 tidy up
- quiet some warnings
- set some functions static
- replace materialbyname with generic BLI_findstring call
2011-09-20 04:38:59 +00:00
Campbell Barton
2222f536f8 use replace 0 with NULL for pointers, set some functions static
also fixed own errors in recent static check commit.
2011-09-16 08:20:21 +00:00
Campbell Barton
4bd0a2ba2d replace VECCOPY -> copy_v3_v3, added copy_v*_v*_short too for typesafe copying, some parts of the code are copying float -> short normals without scaling. fix coming next. 2011-09-12 04:14:12 +00:00
Campbell Barton
2827ee26e5 fix for ntreeGPUMaterialNodes(), using uninitialized exec pointer.
also commented some set-but-unused variables.
2011-09-12 00:00:21 +00:00
Miika Hamalainen
9de082dbf4 Dynamic Paint:
* Enabled modifier "Apply" button since it can now be used to apply displacement or output layers to the mesh.
* Default surface output names are now unique in case canvas has multiple surfaces of same type.
* Merged "face aligned" and "non-closed" brush options to a single "Project" toggle, available for "Proximity" brushes.
* Added more icons to user interface selections.
* Increased default proximity distance.
* Set proximity falloff ramp to only affect alpha by default.
* Removed some no longer required render ext. functions.
* Fix: geometry node vertex alpha didn't work unless "Vertex Color Paint/Light" was enabled from material.
2011-09-10 08:55:44 +00:00
Lukas Toenne
3dccd96ac7 Fixed potential issue in mirrored loop node sockets. These are currently not used, but clang pointed this out. 2011-09-08 07:05:27 +00:00
Lukas Toenne
939a733659 Shader node tree exec data cannot use the exec->nodetree before it is initialized. 2011-09-08 06:14:03 +00:00
Lukas Toenne
7db716599c Fix for crash when duplicating image or render layer nodes.
These nodes use cached buffers (in sock->cache), which need to be cleared when duplicating the node, otherwise the buffer will be freed twice.
2011-09-07 12:46:30 +00:00
Lukas Toenne
68582612aa Code for setting/getting/freeing executable nodes in compositor was still using the plain nodetree->nodes list, which is not dependency sorted any more. This caused missing updates for viewers and other nodes. Instead this code now uses the execution data generated before, which has a correctly sorted list of bNodeExecData. 2011-09-07 10:26:22 +00:00
Lukas Toenne
beb6ac217b Initialize the exec data in for composite with the node tree pointer. Doesn't matter now since composites are not executed in parallel, but just to be safe. 2011-09-07 10:09:24 +00:00
Lukas Toenne
6d18b1800a Another fix for value nodes, those need full template definitions for their output sockets, since they use their range limits for buttons. 2011-09-07 07:29:29 +00:00
Lukas Toenne
5279076628 Fix for value node limits.
The value input nodes (like rgb input nodes) use the output value out their first socket for the button value. This needs explicitly set range limits to allow meaningful user input.
2011-09-07 06:17:28 +00:00
Sergey Sharybin
53671577a4 Fixed potential crash in NodeTagIDChanged. Discovered after merge trunk
into tomato where there were no check for tree before calling this function.
Old design worked fine with this.

Mark some arguments as UNUSED.
2011-09-06 18:15:34 +00:00
Lukas Toenne
884fc84793 Fix for multiple parallel group node executions.
This would previously break because begin/end functions for each tree type still have some checks of the ntree->execdata pointer in them, despite the intended use of execdata instances instead of trees themselves for execution data storage. This is an artifact of the old execution system that required these checks to be made in the functions to avoid multiple execution of top-level trees. Now these functions take an additional argument, so group nodes can prevent them from setting and checking the nodetree->execdata pointers.
2011-09-06 16:32:51 +00:00
Lukas Toenne
82f7a5e3a2 Fix for #28517, group nodes losing all links from older files.
The reason was that group nodes tried to reconstruct sockets from the template lists, which are empty. Now the verification function checks if there are any sockets in the template lists, which are always empty for group nodes.
2011-09-06 08:28:06 +00:00
Guillermo S. Romero
271f069b85 SVN maintenance. 2011-09-05 22:04:30 +00:00
Lukas Toenne
8e0fe8bff7 Merged the particles-2010 branch with node improvements into trunk.
This branch adds mostly organizational improvements to the node system by renaming the node folders and files. A couple of internal features have been added too.
Detailed information can be found on the wiki page:

http://wiki.blender.org/index.php/User:Phonybone/Particles2010
2011-09-05 21:01:50 +00:00
Miika Hamalainen
c5106fd097 Merge with trunk r39589 2011-08-21 19:37:19 +00:00
Sergey Sharybin
36f20f162c Fix #28154: linux3-config.py doesn't exist
Change OURPLATFORM from "linux<major_version>" to simple "linux".
Since new policy for linux kernel versions that major version in
platform doesn't make much sense for building rules so the same
rules could be used for both of linux2 and linux3 now/

Tested on both of linux2 and linux3 systems.
2011-08-21 13:31:46 +00:00
Miika Hamalainen
36802232d7 Dynamic Paint:
* Forgot to change node socket ids.
* Fixed "shrink" effect artifacts on wetmap.

There was a typo in previous commit message. Should be "alpha support for vertex color rendering".
2011-07-24 17:40:02 +00:00
Miika Hamalainen
6ed039642a Dynamic Paint:
* Added alpha support renderer for vertex colors. You can now easily render Dynamic Paint produced vertex colors by checking "Vertex Color" in material options.
* Added "Vertex Alpha" socket for "Geometry" material node.
* Fixed vertex surface color output issues.
2011-07-24 17:03:33 +00:00
Jeroen Bakker
4024b14b43 fix for [#28012] Mat ID messy with shader nodes
Issue was that the Shader tree execution changed the ShaderInput.
Changes are that the UI is updated that only the main material will have the pass_index this is displayed in the "render pipeline options" panel.
When the material is not a node material the pass_index will be shown at the "options" panel

To test enable nodes on the material
Add a new input material
change the pass_index of the material (render pipeline options)
Enable RenderPass material ID and use the compositor to read out the material pass

Jeroen
2011-07-19 08:31:53 +00:00
Campbell Barton
410c5e3cd2 cmake source definitions:
remove missing includes and use more strict formatting.
2011-07-16 23:01:14 +00:00
Jeroen Bakker
a557773f46 Bokeh blur in the blur node is wronlgy calculated.
when using the node on a single white pixel on black background, the output should look like as the bokeh image.
being a round image, but it looked like a donut.

the make_gausstab used dist/rad and bokeh used (dist/rad)*2 - 1
I changed it to reflect the correct bokeh circular image
2011-07-12 19:21:38 +00:00
Jeroen Bakker
b724c7f27e Add delete with reconnect feature.
this will reconnect nodes as if the deleted node is muted.
Operation is added to the space_node node menu and to the keymap as CTRL-X

to test this just add some nodes to the space_node
select one or multiple nodes and press CTRL-X

It should reconnect the nodes as they were muted

limitations:
1. it performs a delete and reconnect per node. It does not evaluate all selected nodes as one whole
2. mute only supports Value, Vector and Color data types, so does this feature
3. not usable for nodes where input and output does not match (like colorToBW)

Where reconnect could not be preformed the links will be removed from the model.

Undo works with this delete with reconnect.
2011-07-12 18:59:54 +00:00
Campbell Barton
65d1e27ff5 fix for using uninitialized value in gpu_shader_material 2011-07-09 19:16:32 +00:00
Ton Roosendaal
03b81a5c80 Ergh! first compile and test then commit! 2011-07-06 12:22:36 +00:00
Ton Roosendaal
9f25b85168 Making Blender compile for C90 standard, var declared after code :)
Also cleaned a line of code that was horribly spread over 4 lines.
2011-07-06 11:44:27 +00:00
Brecht Van Lommel
5470326c3b Fix #27875: different texture nodes result after decompose/compose. 2011-07-06 09:58:29 +00:00
Jeroen Bakker
830fe8af84 Updated the indent, sorry! 2011-07-04 19:22:37 +00:00
Jeroen Bakker
c4491f558b Current situation
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done.

In blender movies this feature is known to be implemented, but until now it never got integrated into trunk.
Proposal

With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index.

In the compositor the ID Mask node can be used to extract the information out of the Render pass.
Impact
User interface

On the properties-space the next changes will be done

    Scene⇒Render layer⇒Passes⇒Material index will be added
    Material⇒Options⇒Pass index will be added

DNA

    Material struct will get an new field called “index”. this will be a short-type.
    Material struct the field pad will be removed.
    A new Render-layer pass will be added (bit 1«18)

RNA

    Material RNA is updated (based on “pass index” from object)
    Render layer RNA is updated (based on IndexOB)

Blender internal renderer

The Blender internal renderer will process the render pass as a copy of the Object index.
Blender compositor

The render layer input will get a new output socket called “IndexMA”
Usage

An example on how to use material index can be found at:

https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend

This is also example of a commit message longer than the commit itself :)
2011-07-04 18:14:41 +00:00
Campbell Barton
33e554799b Minor warning cleanup & fix
- comment/remove assignments from values to themselves.
- add case break statements (no functional change but some source code checkers notice).
- fix python errors when the sculpt brush is None.
2011-06-27 03:36:14 +00:00
Campbell Barton
f31bae0aab fixed possible use of uninitialized variable. 2011-06-19 01:23:50 +00:00
Lukas Toenne
55c488abf0 Fix for GLSL material node inside groups. These were using the GPULink point from the input stack argument, but this only exists for directly linked nodes. If a node is linked directly to a group socket, which is not linked externally, the stack argument is actually the external group input. 2011-06-09 16:05:34 +00:00
Campbell Barton
d4ae38cc6c fix for own mistake & fix some comments. 2011-06-09 13:46:34 +00:00
Ton Roosendaal
43ec34f054 Bugfix #27601
Revision for previous fix; fast gaussian now survives on images
with a dimension smaller than 3 pixels!

Thanks Bastien Montagne for patch.
2011-06-08 16:08:57 +00:00
Ton Roosendaal
17becc751d Bugfix #27601
Scaling in compostior down to 1 pixel size crashed gaussian blur.
2011-06-08 15:17:38 +00:00
Campbell Barton
8ae4476fc4 getting useful results out of the round compo node was tricky, use the second value to determine how much to round by (can be used like a posterize filter) 2011-06-07 08:16:42 +00:00
Campbell Barton
044ae5e3c8 error pointed out by Jeroen Bakker with the math nodes round function. was incorrectly using the output rather then the input. 2011-06-07 07:57:26 +00:00
Lukas Toenne
cc7a154fac Material nodes were checking the nodestack->hasinput flag to determin whether the original material settings or the node input data would be used. This causes trouble when the input data is not the direct input constant of the node nor a direct link in the same tree (i.e. a group socket). Just checks if sockets are linked now (not very nice, but not hackier than the rest of that node).
Fixes bug #27511.
2011-05-31 17:54:48 +00:00