Commit Graph

474 Commits

Author SHA1 Message Date
933b3166fc style cleanup: guys - set your editors to tabs! 2012-05-01 17:51:03 +00:00
9151d46d7d Tomato: initial commit of mask editing tools into SVN
- Added new dtaablock called Mask which might be re-used in any area.
  Currently editing of masks happens in clip editor and they might be used in
  compositor nodes only.
- Added new mode to clip clip editor to interact with masks.
  Implemented basic tools to create shapes, splines and points. Also implemented
  idea of UW points for feather which means feather points are have got U
  coordinate along spline (which is measured from 0 to 1) and W is it's weight
  meaning distance from main spline.
- Spline points might be parented to movie tracks.
  Interface for this isn't best yet.
- Rasterisaztion of masks happens in compositor node (Input -> Mask)
  Input image of this ode is used as reference for mask resolution.
  Currently all splines of all shapes are rasterizing independently which
  means shapes with holes are not supported.
  Also feather rasterization is not implemented.

  Rasterized was implemented by Pete Larbell, thanks!

Do not consider this is something finished, there's still lots of things to
be done (especially from interface and usability points of view).
2012-04-30 07:43:21 +00:00
502e594abb Fixed UI bug in distance, chroma, and difference nodes that caused the threshold to be limited by the falloff value. These should be independent. Cleaned up how falloff works in keying nodes. 2012-04-29 20:07:29 +00:00
343edf2722 style cleanup: function calls & whitespace. 2012-04-29 17:11:40 +00:00
e701f9b670 style cleanup: whitespace / commas 2012-04-29 15:47:02 +00:00
f88cfd9168 Code and style cleanup in own modules in BKE and also mball module
- Make sure functions are named in way BKE_<object>_<action> (same way as RNA callbacks)
- Make functions which are used by mball.c only static and remove their prototypes
  from public header file.

Further cleanup is coming.
2012-04-28 16:49:00 +00:00
b340f930ec style cleanup: changes to brace placement / newlines - for/while/if/switch 2012-04-28 06:31:57 +00:00
d7d8c668ca Fix #30803: shader node Mapping location property conflicted with based class
location property (for the node editor), now renamed to "translation".
2012-04-04 16:11:39 +00:00
ab4a2aaf4a style cleanup: follow style guide for formatting of if/for/while loops, and else if's 2012-03-24 06:38:07 +00:00
2f348d8b5d style cleanup: mainly for mesh code, also some WM function use. 2012-03-24 02:51:46 +00:00
0c50bedd9c code cleanup: remove unused externs. 2012-03-11 00:00:27 +00:00
9b8dae71a5 Cycles: support for environment texture "Mirror Ball" projection mode, next to
existing "Equirectangular". This projection is useful to create light probes
from a chrome ball placed in a real scene. It expects as input a photograph of
the chrome ball, cropped so the ball just fits inside the image boundaries.

Example setup with panorama camera and mixing two (poor quality) photographs
from different viewpoints to avoid stretching and hide the photographer:
http://www.pasteall.org/pic/28036
2012-03-08 19:52:58 +00:00
Lukas Toenne
2eb29e4788 A number of improvements for the file output node(s).
1) Old CMP_NODE_OUTPUT_FILE and CMP_NODE_OUTPUT_MULTI_FILE have been merged,
only CMP_NODE_OUTPUT_FILE remains. All functions renamed accordingly.

2) do_versions code for converting single-file output nodes into multi-file
output nodes. If a Z buffer input is used, the node is made into a multilayer
exr with two inputs. (see below). Also re-identifies multi-file output nodes
with the CMP_NODE_OUTPUT_FILE type.

3) "Global" format is stored in node now. By default this overrides any
per-socket settings.

4) Multilayer EXR output implemented. When M.EXR format is selected for node
format, all socket format details are ignored. Socket names are used for layer
names.

5) Input buffer types are used as-is when possible, i.e. stored as B/W, RGB or
RGBA. In regular file output the format dictates the number of actual channels,
so the CompBuf is typechecked to the right type first. For multilayer EXR the
number of channels is more flexible, so an input buffer will store only the
channels it actually uses.

6) The editor socket type is updated from linked sockets as an indicator of the
actual data written to files. This may not be totally accurate for regular file
output though, due to restrictions of format setting.
2012-03-01 07:56:15 +00:00
c8b53d2aaf code style cleanup, no functional changes. 2012-02-23 02:23:42 +00:00
edab2e4b3d Multi File Output Node:
* Some small UI tweaks, grey out image settings rather than hide and made it a bit more compact.
2012-02-22 14:19:39 +00:00
Lukas Toenne
3bae60d0c9 Adds a new node type for saving multiple image files from a single node.
Unlike the existing file output node this node has an arbitrary number of
possible input slots. It has a base path string that can be set to a general
base folder. Every input socket then uses its name as an extension of the base
path for file organization. This can include further subfolders on top of the
base path. Example:

Base path: '/home/user/myproject'
Input 1: 'Compo'
Input 2: 'Diffuse/'
Input 3: 'details/Normals'

would create output files
in /home/user/myproject: Compo0001.png, Compo0002.png, ...
in /home/user/myproject/Diffuse: 0001.png, 0002.png, ... (no filename base
given)
in /home/user/myproject/details: Normals0001.png, Normals0002.png, ...

Most settings for the node can be found in the sidebar (NKEY). New input sockets
can be added with the "Add Input" button. There is a list of input sockets and
below that the details for each socket can be changed, including the sub-path
and filename. Sockets can be removed here as well. By default each socket uses
the render settings file output format, but each can use its own format if
necessary.

To my knowledge this is the first node making use of such dynamic sockets in
trunk. So this is also a design test, other nodes might use this in the future.

Adding operator buttons on top of a node is a bit unwieldy atm, because all node
operators generally work on selected and/or active node(s). The operator button
would therefore either have to make sure the node is  activated before the
operator is called (block callback maybe?) OR it has to store the node name
(risky, weak reference). For now it is only used in the sidebar, where only the
active node's buttons are displayed.

Also adds a new struct_type value to bNodeSocket, in order to distinguish
different socket types with the same data type (file inputs are SOCK_RGBA color
sockets). Would be nicer to use data type only for actual data evaluation, but
used in too many places, this works ok for now.
2012-02-22 12:24:04 +00:00
b1667911ef reduce operator lookups in the UI (could do 4 hash lookups per button). 2012-01-22 03:30:07 +00:00
24bf175d7e de-duplicate function copy-paste for node color sampling. 2012-01-12 05:46:45 +00:00
fbc4846a6e dynamicpaint had some incorrect string sizes for layers names, use BLI string functions in more places too. 2012-01-11 12:56:31 +00:00
535d27eb49 minor cleanup for string use - no functional changes
- use more logical names for strings, noticed too many strings called `str` when reviewing name patch.
- pass __func__ macro to uiBeginBlock(), quite a few names were wrong (copy/paste error).
2012-01-11 09:33:44 +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
eccc04c87f 2012-01-10 19:08:08 +00:00
Lukas Toenne
11c3bdddb2 Added comments to the workaround made in r42266 (node line drawing bug on Intel hardware). Also did the same workaround to straight line drawing (currently not in use). 2011-11-29 20:35:30 +00:00
Lukas Toenne
ba9fac0192 Fix for errors in node line drawing on some Intel hardware (bug #29427). This seems to be caused by a driver bug that breaks GL_LINE_STRIP drawing in combination with color changes inside the begin/end block. Simply replacing by GL_LINES seems to fix the problem and should not cause trouble for this small amount of drawing.
There has been a comment on the bug tracker about similar issues with drawing in logic buttons, this should be checked as well (Note on the bf-committers ML).
2011-11-29 19:50:34 +00:00
Lukas Toenne
b450d3c3b6 Fix for long-standing TODO item: Clicking on overlapping nodes would activate buttons below.
This patch adds a new CLIP_EVENTS flag for uiBlock, which will prevent the ui_but_find_mouse_over search function from looking into "lower" uiBlocks (i.e. those further back in the list). The order of block creation for nodes has also been updated to use the z-ordering (just the nodetree->nodes list).

In order for this to work, the bounding box values of the uiBlocks have to be set explicitely to fit the node size, those are usually either zero or calculated from the internal buttons.
2011-11-22 17:49:06 +00:00
470cfd4aeb 2.6 Various code cleanup:
* Removed some old code for image packing, done via Operators now.
* Removed some comments.
2011-11-22 17:43:32 +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
3442c16c09 Fix #29249: mapping node not keyable anymore, restore RNA to what it was before
Cycles change, generating RNA paths for this is a bit complicated.
2011-11-14 20:39:53 +00:00
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
db75cc4cde Nodes: add cycles shader nodes, these will only be available to render engines
that use the new shading nodes system. Documentation:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes
2011-11-08 11:38:16 +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
33accdb725 use (const char*) rather than (char*) where possible.
also removed some unused function definitons.
2011-11-05 11:04:28 +00:00
82dc05391c Fix #29139: Comp Group nodes don't retain name
Added tree node id browser to Active Node panel so name of nodetree editing in
group node can be easily changed now.
2011-11-04 13:31:15 +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
c27926896f spaces -> tabs (whitespace only changes) 2011-10-06 22:04:01 +00:00
e49688f021 use use_ prefix for boolean value. 2011-10-02 20:09:45 +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
ae0124157f Translation: reload font on enabling/disabling use international fonts. 2011-09-21 15:15:30 +00:00
84d06f252e tag & comment unused vars with /* UNUSED */ 2011-09-20 08:48:48 +00:00
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
5fdbfbaf3a replace magic numbers for flags for uiSetRoundBox(); 2011-09-11 06:41:09 +00:00
599cd56f53 minor edits / cleanup - no functional changes.
- use 'const float *' and array size in some function declarations.
- replace macros for BLI_math functions INPF, VECCOPY, VECADD etc.
- remove unused VertRen.clip struct member.
- remove static squared_dist() from 2 files, replace with BLI_math function len_squared_v3v3().
- use vertex arrays for drawing clipping background in the 3D viewport.
2011-09-11 02:50:01 +00:00
Lukas Toenne
595ed90fe3 Minor fixes for some unfounded clang warnings. 2011-09-08 07:01:29 +00:00
Lukas Toenne
fcbf3041a9 Fixed offset for socket remove buttons ('x') in node groups. 2011-09-07 10:48:33 +00:00
Lukas Toenne
71abf218f0 Fix for wrong offset of the input socket column in group node tree display. 2011-09-06 11:42:20 +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
00143a3d55 spaces -> tabs (configure you're editors right!) 2011-09-01 01:48:50 +00:00
9da70f74d3 UserPref/Node editor feature: Change the level of noodle curving.
Some people like curved lines, other hate them. This commit will let the user change the level of curving.

In UserPreferences=>Themes=>Node editor=>Noodle curving the level can be modified. Allowed range is 0-10 with the default on 5

The patch will default everything to the way blender works ATM.
File subversion has been increased otherwise older 258 files got straight lines.

The data is stored in the ThemeSpace.noodle_curving
the bezierdrawing is done in the drawnode. Also tested the Line cut tool
2011-08-04 10:05:14 +00:00
ea90544d65 Need some fun once a while:
On dragging a non-connected node on a noodle, it will insert it.
Functionality tweaks are possible, but it already feels non-intrusive.

Rules:
- Insertion only when a single noodle is intersecting with node.
- Default connects first matching socket type. 
- If no socket match, it connects the first.
2011-07-22 15:28:50 +00:00