Commit Graph

881 Commits

Author SHA1 Message Date
f4f90e73e1 fix for writing to freed memory enabling texture node tree 2013-07-27 08:21:43 +00:00
46e911d19b fix for crash when unlinking a scene from the renderlayers, also no need for PROP_ID_SELF_CHECK here. 2013-07-23 14:09:53 +00:00
7db1d6556d code cleanup: add break statements in switch ()'s, (even at the last case). 2013-07-21 08:16:37 +00:00
a2492e0603 style cleanup: braces/indentation 2013-07-19 16:44:17 +00:00
397da50002 style cleanup: switch statements, include break statements within braces & indent.
also indent case's within the switch (we already did both of these almost everywhere)
2013-07-19 15:23:42 +00:00
97397895b4 Nodes / UI:
* Change UI string for LayerWeight node to "Layer Weight" (with the gap in between), for consistency with other nodes.
2013-07-19 12:39:58 +00:00
824ec5a388 code cleanup: case & brace placement 2013-07-19 10:40:43 +00:00
32d5b52f59 re-arrange '--help' output into more useful sections (added debug, python).
also minor style cleanup
2013-06-29 10:09:15 +00:00
8acdc0515d Fix #35847: cycles group nodes did not work well exposing inputs like normal or
texture coordinate that should automatically use the default normal or texture
coordinate appropriate for that node, rather than some fixed value specified by
the user.
2013-06-23 19:24:32 +00:00
Lukas Toenne
0c91ebfeee Fix #35703, Viewer node doesn't updates image sometimes. The viewer node was not getting correctly initialized node->id pointer to the Viewer image (thanks to Sergey for figuring that out). The original
proposal was to add another special init hack for the viewer node->id, but rather would do it right and so moved all the special init hacks for constant ID backpointers (Scene for RenderLayer, Composite,
Defocus, FileOutput and MovieClip for MovieClip, MovieDistortion and Stabilization nodes). These are now part of the local init callbacks functions of the appropriate nodes, using the new initfunc_api
callback which takes a Context pointer, so they have access to Scene.
2013-06-12 11:26:44 +00:00
9020df976c Cycles / Wavelength to RGB node:
* Added a node to convert wavelength (in nanometers, from 380nm to 780nm) to RGB values. This can be useful to match real world colors easier.

* Code cleanup:
** Moved color functions (xyz and hsv) into dedicated utility files.
** Remove svm_lerp(), use interp() instead. 

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Wavelength

Example render:
http://www.pasteall.org/pic/show.php?id=53202

This is part of my GSoC 2013. (revisions 57322, 57326, 57335 and 57367 from soc-2013-dingto).
2013-06-10 21:55:41 +00:00
Lukas Toenne
5183ba74a8 Fix for crash when assigning NULL pointer to node group node_tree property. This is generally allowed (though operators usually would prevent it). 2013-06-10 17:48:41 +00:00
cf359f6c7f Cycles / Wavelength to RGB node:
* Added a node to convert wavelength (in nanometer, from 380nm to 780nm) to RGB values. This can be useful to match real world colors easier.

Example render:
http://www.pasteall.org/pic/show.php?id=53202

ToDo:
* Move some functions into an util file, maybe a common util_color.h or so.
* Test GPU, unfortunately sm_21 doesn't work for me yet.
2013-06-09 20:46:22 +00:00
e66f3eb499 Cycles: GLSL materials now can use multiple UV maps with the attribute node. 2013-06-05 15:54:39 +00:00
Lukas Toenne
4d53729ab9 Fix #35625, crash with NULL pointer after node render. Happens when node group node_tree pointer is NULL, then the group node doesn not produce any execdata and needs to check this accordingly in the
freeexec callback.
2013-06-05 08:23:44 +00:00
Lukas Toenne
8d3cdf292c Extended max size for group node types from 200 to 400, in case users need long socket names visible. 2013-06-01 12:45:42 +00:00
9fb3d3e032 remove redundant includes from cmake and scons. 2013-05-30 02:16:22 +00:00
Lukas Toenne
2757153d02 Cleanup: Removed all NODE_OPTIONS flags from C node type definitions, these are no longer required and have no effect. Whether or not a node supports additional options buttons is now determined by the
existence of a draw callback (uifunc and/or uifuncbut).
2013-05-29 15:38:51 +00:00
225c5fee6b move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)
remove MEM_sys_types.h which was a duplicate.
2013-05-28 19:35:26 +00:00
5486016e04 Fix #35547: incomplete tooltips in node editor
Descriptions were missing since PyNodes integration.

Thanks to lukas for patch review!
2013-05-28 08:58:27 +00:00
44b3735078 fix error in own recent commit, also other minor changes. 2013-05-27 18:51:31 +00:00
2247465b99 style cleanup: nodes 2013-05-27 08:04:07 +00:00
d612fc0426 style cleanup: nodes 2013-05-27 07:57:17 +00:00
4a2ca34bea style cleanup 2013-05-24 10:59:57 +00:00
99b325cebf Cycles / Toon BSDF:
* Added a toon bsdf node to Cycles. This was already available as OSL only closure, but is now available inside the SVM backed as well, for CPU and GPU rendering. 
* There are 2 variations available, diffuse and glossy toon, selectable via a menu inside the node. 

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Toon

Example render & blend file:
http://www.pasteall.org/pic/show.php?id=51970
http://www.pasteall.org/blend/21579
2013-05-23 17:45:20 +00:00
f594e9b6ac Texture Nodes:
* Use node size presets as well, some nodes were too small and also too limited in max size.
2013-05-22 17:24:52 +00:00
07ee0e6f7d Shader Nodes:
* Use unified node sizes, as already was done with compositor nodes. Only Mapping node uses a custom size. This way we don't have too small nodes on creation anymore.
* Don't show Script Category for Blender Internal nodes.
2013-05-21 20:21:46 +00:00
7b36dea115 code cleanup: scons - binreloc include was copied all over the place for no reason, -pthread too. 2013-05-20 18:55:08 +00:00
6de829cb7a code cleanup: split scons includes onto multiple lines, reduce chance of include conflicts later on. 2013-05-20 18:42:28 +00:00
3758193c18 Cycles / Wireframe node:
* Added a wireframe node (Input category) to get access to Mesh wireframe data. 
The thickness can be controlled via a "Size" parameter, and is available in world units (default) and screen pixel size. 
* Only the triangulated mesh is available now, quads is for later. 

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Wireframe

Render and Example file:
http://www.pasteall.org/pic/show.php?id=51731
http://www.pasteall.org/blend/21510
2013-05-20 15:58:37 +00:00
38dc85f296 Math Node:
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
2013-05-20 14:38:47 +00:00
eaa6479ae3 Cycles: bump node changes to add a Distance input that controls the overall displacement
distance, and an Invert option to invert the bump effect.
2013-05-10 16:57:17 +00:00
5424c1fe55 Fix #35278: textures nodes Mix RGB node did not have a Use Alpha option like
the compositing node. Note the shader nodes can't have this because color
sockets there are only RGB, not RGBA.
2013-05-10 12:39:11 +00:00
d236b4d60f Cycles bump node: change the Strength value to work better, previously it would
give results that were either too weak or too strong, this makes it give more
predictable results. The downside is that it breaks backwards compatibility but
the previous behavior was almost broken.
2013-05-09 14:05:37 +00:00
3e763d7e4d Fix #35246: cycles has no simple way to combine bump and normal mapping. Now
the Bump node has a Normal input, so you can chain it after a Normal Map node.
Note that normal mapping always has to be done first because it is tied to the
particular mesh surface and tangents.
2013-05-08 13:23:13 +00:00
5455928262 Fix #35122: Blenderplayer crashes when loading level
Issue was caused by ntreeUpdateTree calling for a ntree
which is not in G.main.

This lead to issues in ntreeVerifyNodes (which is called
from ntreeUpdateTree).

Made is so ntreeUpdateTree now accepts main as an argument.
Will work for the release, later we could either solve the
TODO mentioned in ntreeUpdateTree which will eliminate need
in main there or make it so context's main is used from all
over where ntreeUpdateTree is called (currently there're
still some usages of G.main).
2013-05-07 15:28:42 +00:00
c97983c9de correction for uv template, also some doxygen comment corrections. 2013-05-05 18:41:45 +00:00
a4f40416f5 Fix material node editor not working when Blender Game is selected as render engine. 2013-04-24 15:05:40 +00:00
Lukas Toenne
c66acbf3d9 Removed the group_tree_idname property from node types. This was a bit of a hack to associate node group types to specific tree types for node group operators. Since the node group operators now work independent from this property (see r56183) that property is no longer needed and just pollutes the bNodeType struct. 2013-04-20 17:57:45 +00:00
Lukas Toenne
4f23bd8904 Fix for #35010, Node Groups don't show up anymore in Material Surface. Fixing the node tree view was a bit of a todo item after pynodes.
To make the type-dependent socket linking in this template a bit more manageable, there are now separate functions that generate "items" for a particular node type consisting of the socket index, name and possibly additional properties required (currently only node groups vs. all other types). This is still nowhere near flexible enough to be used as a generic template all node systems, but works for now.

In order to make this usable as a generic tool we will have to devise a way of storing, comparing, applying node settings *outside of actual node instances*. Then each node needs to tell how sockets are generated based on these properties. For the current nodes this would be far too complicated ...
2013-04-18 11:36:11 +00:00
638b084f82 Cycles Hair: Strand Minimum Pixel Size
Code is added to restrict the pixel size of strands in cycles. It works best with ribbon primitives and a preset for these is included. It uses distance dependent expansion of the strands and then stochastic strand removal to give a fading. To prevent a slowdown for triangle mesh objects in the BVH an extra visibility flag has been added. It is also only applied for camera rays.

The strand width settings are also changed, so that the particle size is not included in the width calculation. Instead there is a separate particle system parameter for width scaling.
2013-04-15 21:38:31 +00:00
a305452275 Paint refactoring commit, non-disruptive (in theory :p)
* Fix precision overflow issue with overlay previews,
* Expose alpha mask mapping to UI (still not functional but coming soon).
* More overlay refactoring:

Overlay now does minimal checking for texture refresh.
Instead, we now have invalidation flags to set an aspect of the brush
overlay as invalid. This is necessary because this way we will be able to
separate and preview different brush attributes on the overlays, using
different textures:

These attributes/aspects are:

Primary texture (main texture for sculpt, vertex, imapaint)
Secondary texture (mask/alpha texture for imapaint)
Cursor texture (cursor texture. It involves brush strength and curves)

Modified the relevant RNA property update functions and C update callback
functions to call the relevant cursor invalidation functions instead
of checking every frame for multiple properties.

Properties that affect this are:

Image changes, if image is used by current brush,
Texture slot changes, similarly
Curve changes,
Object mode change invalidates the cursor
Paint tool change invalidates the cursor.

These changes give slightly more invalidation cases than simply
comparing the relevant properties each frame, but these do not occur in
performance critical moments and it's a much more elegant system than
adding more variables to check per frame each time we add something on
the system.
2013-04-12 17:21:31 +00:00
1c35203249 2D stabilization default filter to bilinear 2013-04-08 11:26:56 +00:00
Lukas Toenne
17dcd1ea2d Exposed the bNodeSocket->limit value in RNA, so it can be redefined by pynodes. All sockets will have strict n-to-1 connectivity by default, which is fine for data sockets, but things like geometry nodes with a more data-flow based connectivity for certain socket types will need to change this. 2013-04-08 08:59:30 +00:00
2ed2226ee7 Node UI:
* After PyNodes merge, many node sockets had sliders, instead of the arrow buttons (as the PROP_FACTOR subtype now actually was used). Change those back now, after artists feedback.
2013-04-06 12:07:42 +00:00
93ac968db3 code cleanup: include order 2013-04-05 17:56:54 +00:00
9472fddc4b fix for referencing freed memory when rendering materials (could crash material preview). 2013-04-04 14:07:10 +00:00
03b07a719f code cleanup: unused functions 2013-04-03 15:04:24 +00:00
Lukas Toenne
bb4ab6a007 Fix #33628, Segmentation fault after pasting a closed group of nodes into an open group. Finally now there is a proper check for pasting nodes into groups. It uses the poll_instance callback of node types to determine if a node can be added into a specific node tree. Currently this is only implemented for group nodes and does a recursive check to avoid pasting a node group into itself (on any level, also nested groups). 2013-04-03 09:10:29 +00:00
Lukas Toenne
3092b24ef2 Fix for missing integer 'type' of the virtual extension socket in group nodes. This could lead to crash in node groups when trying to undefined stack values of the extension socket. type just needs to be set to SOCK_CUSTOM==-1, so the BI execution knows not to look for a stack entry. 2013-04-03 07:56:36 +00:00