Commit Graph

62 Commits

Author SHA1 Message Date
Lukas Toenne
3866712248 Enable image and alpha outputs for image nodes by default. These were made unavailable for render layer nodes with the Combined pass disabled, but the same function also disabled them for image nodes. Fix for bug #30040. 2012-02-01 07:44:19 +00:00
Lukas Toenne
28b72d09e5 Make Image and Alpha outputs in render layer node 'unavailable' when the Combined pass is not active in the render layer. Fix for bug #29999.
The internal code for render layers node is unchanged, since the buffer is created anyway. Also noticed that, while unavailable sockets and links to/from them are not displayed, they are still used in execution, which could lead to unexpected results. But that's a more general problem with the way (pseudo-)dynamic sockets are simply flagged with SOCK_UNAVAIL.
2012-01-30 08:48:11 +00:00
f99343d3b8 Cycles: Render Passes
Currently supported passes:
* Combined, Z, Normal, Object Index, Material Index, Emission, Environment,
  Diffuse/Glossy/Transmission x Direct/Indirect/Color

Not supported yet:
* UV, Vector, Mist

Only enabled for CPU devices at the moment, will do GPU tweaks tommorrow,
also for environment importance sampling.

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Passes
2012-01-25 17:23:52 +00:00
e516d1d718 Group DEM node code with the rest of the mattes, rather than the filters. Also fixes two typos in DEM node comments. 2012-01-13 16:00:24 +00:00
309f3f31e7 remove redundant trailing slashes 2012-01-12 06:11:08 +00:00
33d7c9e8ce Changes composite node group of double edge mask node from FILTER to MATTE. 2012-01-11 15:16:48 +00:00
e10fd04db0 use BLI_strncpy and BLI_snprintf when the size of the string is known.
fix for sequencer unique naming which was missed with string length update.
2012-01-11 12:33:51 +00:00
51bada696f Longer names support for all ID and other object names
This commit extends limit of ID and objects to 64 (it means 63 meaning
characters and 1 for zero-terminator). CustomData layers names are also
extended.
Changed DNA structures and all places where length constants were hardcoded.

All names which are "generating" from ID block should be limited by MAX_ID_NAME-2,
all non-id names now has got own define called MAX_NAME which should be used all
over for non-id names to make further name migration stuff easier.

All name fields in DNA now have comment with constant which corresponds to
hardcoded numeric value which should make it easier to further update this
limits or even switch to non-hardcoded values in DNA.

Special thanks to Campbell who helped figuring out some issues and helped a lot
in finding all cases where hardcoded valued were still used in code.

Both of forwards and backwards compatibility is stored with blender versions newer
than January 5, 2011. Older versions had issue with placing null-terminator to
DNA strings on file load which will lead to some unpredictable behavior or even
crashes.
2012-01-11 08:51:06 +00:00
2ef6163747 SVN maintenance. 2012-01-10 19:45:20 +00:00
eccc04c87f 2012-01-10 19:08:08 +00:00
278179e0c0 Fix #29827: 2.61 Scale and translate bugs
Scale lead to crash because of incorrect check for buffer size.
Translate bug was caused by ignoring buffer offset.
2012-01-10 14:54:51 +00:00
6278016892 Fix #29801: various compositing nodes not working correct after translate,
e.g. separate HSVA node.
2012-01-05 17:50:25 +00:00
d7d856a23d Color management: add "Color Unpremultiply" option for images and render settings.
For premultiplied alpha images, this makes any color space conversion for the image
or render output work on color without alpha multiplied in.

This is typically useful to avoid fringing when the image was or will be composited
over a light background. If the image will be composited over a black background on
the other hand, leaving this option off will give correct results.

In an ideal world, there should never be any color space conversion on images with
alpha, since it's undefined what to do then, but in practice it's useful to have
this option.

Patch by Troy Sobotka, with changes by me.
2011-12-30 14:17:11 +00:00
b9ff5840a6 Code refactoring: add unified image buffer functions for doing float => byte,
byte => float, float => float, byte => byte conversions with profile, dither
and predivide. Previously code for this was spread out too much.

There should be no functional changes, this is so the predivide/table/dither
patches can work correctly.
2011-12-28 13:29:33 +00:00
Dalai Felinto
5272d76faa patch [#29676] ALPHA OVER: Fix associated alpha over situation to fix [#29675] patch by Troy Sobotka
note: if alpha is negative the code will still produce non-optimal results.
This is a separate issue though, the patch fix the premul assumption that
alpha can be zero and rgb still be valid.
2011-12-21 23:59:57 +00:00
af7288c407 minor edit - weight_to_rgb() and ramp_blend() now take a float vector rather than 3 float pointers.
also make particle draw use a float vec.
2011-11-26 03:13:54 +00:00
743d2f8c0f rename image type defines to be less ambiguous, also set BMP as not supporting alpha (it reads but cant write) 2011-11-22 00:35:26 +00:00
0e2c8cdcdd move image settings into their own structure so the interface can be shared where image saving settings are needed.
currently file out node and render output share this struct & UI.
2011-11-21 20:19:58 +00:00
Lukas Toenne
d1af9fae37 Fix for crasher when node group tree datablocks are missing. 2011-11-20 16:57:50 +00:00
6673c76e78 Muting node patch: second part. Also fix [#27636] Muting shading nodes is ignored
Now, compositing, shading and texture nodes have a consistent muting system, with default behaving as previous (for compo), and which can be optionaly customized by each node.
Shader nodes are also GLSL muted.

However, Cycles is currently unaware of muted nodes, will try to address this…
2011-11-20 16:38:23 +00:00
ca7d391de8 Muting node patch: first part
This allows node type init code to have access to the nodetree type object (needed to allow generic muting node initialization). Huge and boring edits...
2011-11-20 16:13:27 +00:00
f1eb66aa68 share code for fluidsim, ocean & dynamic paint file paths.
- use BLI_join_dirfile for joining all paths (no need to ensure slash is appended).
- paths from linked library files now supported.
2011-11-20 14:38:11 +00:00
539c94a051 Camera: some code refactoring, use an intermediate CameraParams struct instead
of long list of variables everywhere. Intention is to also let 3d view use this
eventually, instead of duplicating code.
2011-11-18 15:52:00 +00:00
49ccf975f2 minor cleanup
- use NULL rather then 0 for pointers
- use static functions where possible
- add own includes to ensure func's and their declarations don't get out of sync.
2011-11-14 16:05:44 +00:00
fea58943ec Moving all node angle-type values to radians. This also fixes [#29151] rotate node wrong input (mixing up radians and degrees).
Warning!

Angles in nodes have just been moved to consistant Radians values (ANGLE subtype of RNA Float property). You will still see them as degrees in the GUI, though, unless you chose otherwise in Scene properties, Units panel.

Conversion from degrees to radians for old files is obviously done at loading time, but if you use a mixed pipeline of trunk and releases, be carefull!

Loading a 2.60.4 file (or higher) into any previous version of Blender, your angles in nodes will have odd values (well, radians interpreted as degrees)!

And if you save such file in a pre-2.60.4 version, the angle node values will be converted again when loaded in Blender 2.60.4 or higher...

This affects following nodes:
* Compo: Rotate, Defocus, ChromaMatte, Glare and DirectionalBlur
* Shader: Mapping
And all future code using the TexMapping struct’s rotation part (its rot memember is now in radians).
2011-11-13 18:03:27 +00:00
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
094c9799f9 quiet -Wdouble-promotion warnings 2011-11-11 12:00:08 +00:00
bc5ec4e69c Fixed/restored translation of node classes (in foreach_nodeclass funcs) 2011-11-09 15:00:11 +00:00
23dfb8a156 Code cleanup and small fixes:
- Assume all areas are using valid MovieClipUser when using functions from movieclip.c
- Set active scene clip to movie-related nodes in compositor rather than checking
  if there's only one clip in datablocks
- Fixed users count issue when solving camera motion
2011-11-08 06:11:23 +00:00
be23090aae Nodes: add foreach_nodeclass iterator over node classes, use for node add menu. 2011-11-07 22:14:48 +00:00
f3407e7d60 Textures/Shaders: extend TexMapping to include projection options, and add a
ColorMapping struct for color manipulation of textures. These will be the
standard built-in texture node options for manipulating the incoming texture
coordinate and outgoing color.
2011-11-07 17:35:20 +00:00
7b43abb90e Camera tracking integration
===========================

Rest of changes from camera tracking gsoc project.

This commit includes:

- New compositor nodes:
  * Movie Clip input node
  * Movie Undistortion node
  * Transformation node
  * 2D stabilization node

- Slight changes in existing node to prevent code duplication
2011-11-07 12:56:05 +00:00
e122dc0748 Removing a wrong node_type_storage (checked and confirmed by lukas_t). 2011-11-07 09:33:49 +00:00
3d1e45c414 replace macros with bli math functions for nodes 2011-11-06 16:23:28 +00:00
Lukas Toenne
b05ee8b65f Fix for bug #29046, the factor buffer input was not used correctly in curve nodes.
Curve Map exec function (for RGB curves) used a broken test condition for constant factor=1.0f eval. This must take the factor buffer into account, checking the factor vec for default value is not sufficient. These kinds of test should use a function interface, there are probably a lot more bugs like this hidden in the code.
2011-11-06 15:40:00 +00:00
ec3b0c6a96 misc macro --> bli math lib functions 2011-11-06 15:17:43 +00:00
9884129117 Code refactoring: split camera functions from object.c into new camera.c. 2011-11-05 13:00:39 +00:00
62f2218554 macro formatting & remve some unused code. 2011-11-05 05:44:52 +00:00
2e1b935e2b Changes to node sockets default values to deal better with artists workflow
(in most cases it needed to do extra tweaks to values which was annoying).

Patch by Sebastian König.
2011-11-04 12:50:29 +00:00
3717059511 Comments and other text editing:
* Renamed one of the two "File is Saved" entries, as having two
entries with the same name in the Datablocks viewer was confusing
* Edited the tooltip text for "speed" option for dupliframes to
clarify what it does (or what it's supposed to do)
2011-11-04 08:08:47 +00:00
61a2dfe89d Change default values for mix node.
Discussed with plenty of artists on De Balie and this values makes much more sense.
2011-10-30 14:53:26 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
19f79f73a8 BLI_utildefine minor edits
- removed AVG2, was only used once.
- remove unused LONGCOPY define.
- removed BLI_STRUCT_OFFSET, was only used once, replce with offsetof
- formatting edits, split some macros over multiple lines.
2011-10-22 03:39:13 +00:00
74017cb020 header cleanup and typo's 2011-10-22 01:53:35 +00:00
Lukas Toenne
0d7bd0f9b6 Adds an update flag to the bNode struct (similar to bNodeTree->update).
This prevents access to non-existent typeinfo during type initialization,
when node types have been removed and such nodes are deleted from older files.
All blenkernel functions now only set the node->update flag instead of directly
calling the update function.  All operators, etc. calling blenkernel functions
to modify nodes should make a ntreeUpdate call afterward (they already did that
anyway).

Editor/RNA/renderer/etc. high-level functions still can do immediate updates by
using nodeUpdate and nodeUpdateID (replacing NodeTagChanged/NodeTagIDChanged
respectively). These old functions were previously used only for setting
compositor node needexec flags and clearing cached data, but have become generic
update functions that require type-specific functionality (i.e. a valid typeinfo
struct).
2011-10-19 17:08:35 +00:00
Lukas Toenne
89dd5e933f Fix for #28876, alpha over with empty image node gives black result.
The image node output is the default value when no image is selected. In pre-2.60 this was always initialized to 0 alpha, the defaults written in the node socket templates were completely ignored for outputs (except for value and RGB input nodes, which use these as button values). Now the stack values are initialized with the template defaults, which are all 0 by default. This patch changes alpha to 0 for image and render layer outputs too.
2011-10-12 13:07:30 +00:00
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
018fa1540e whitespace edits, make formatting for functions consustent at least within the file. 2011-09-28 05:53:40 +00:00
274b9c8fb8 whitespace cleanup 2011-09-25 12:31:21 +00:00
86d528afa7 comment some unused vars / assignments. 2011-09-22 03:14:50 +00:00