Dev:Ref/Requests/Compositing
目次
General
- Ram preview, to play the animation directly on the Compositor. Eibriel 9:48p, 16 Jul 2011 (EST)
- Render on play, render the 3D Render Layers every frame on play or frame scroll (similar to Auto Render). Eibriel 9:48p, 16 Jul 2011 (EST)
- Hotkey to create a noodle from the output of the selected node to the input of the viewer node. (Much like in Nuke) ooopie 6:53p, 9 Oct 2009 (EST)
- A cursor like the 3D window's 3D cursor for the creation of new nodes, or at the least the centering of new nodes inside the visible area. (Currently they seem to get created in random spots.) -- Kattkieru 7 December 2006
- I believe right now they are placed exactly (but i don't know why they all have differen 'base' points) where the mouse-cursor is located after you click on the add-menu entry. IMO the best solution would be to cling/stick the new node to the cursor (auto-drag) and let the user place it himself. --Hoehrer just like when you Add->Image in the sequencer the strip is rubberbanded to your cursor--Roger
- What if the node was created on the location on which the add node menu was opened. Currently it creates node at the last mouse location before creation. --BeBraw 11:14, 7 December 2006 (CET)
- @BeBraw: I'm with you on this one; barring a cursor that's the solution I also thought of. I'd still prefer the 3D cursor, but storing the position of the mouse before the menu opens would be fine. Also, this system shouldn't create any nodes outside the viewed portion of the space; too often I have nodes created that have to be scrolled to. Kattkieru 3:39p, 8 Dec 2006 (EST)
- I believe right now they are placed exactly (but i don't know why they all have differen 'base' points) where the mouse-cursor is located after you click on the add-menu entry. IMO the best solution would be to cling/stick the new node to the cursor (auto-drag) and let the user place it himself. --Hoehrer just like when you Add->Image in the sequencer the strip is rubberbanded to your cursor--Roger
- Add text objects as comments/discussion in the node editor window. I forget why the channel key low setting HAS to be .506 and that if I move it I must remember to check the erode output for aliasing; things like that to document the net effect and what is happening in the noodle.
- Ability to leave groups expanded (edit mode?) so i can visually see the group--Roger 23:43, 10 February 2007 (CET)
UV/Image Editor Enhancements (associated with Composite Nodes)
An image selection option in the UV/Image Editor window to show the Image output of Selected Node Image. (I am so tired of creating and threading viewer nodes all over) or have each node be able to act as a viewer node.
--Roger 23:31, 10 February 2007 (CET)
On nodes like the Image Texture node, allow an option to see the full name of the selected file... Blender chops it today and adds .nnn to the file name if it's too long for the current internal FileName tag.
--Sten Sfik 14:45, 01 January 2012 (MT)
Compositor View Modes
Editor Modes
Just like the 3D View has modes: Object, Edit, Sculpt, VertexPaint, Texture Paint, Weight Paint modes, the Image Editor Should have modes associated with compositing. The modes might include Composite Mode (normal default operation), and Roto Mode (see below), Paint Mode (see below).
--Bartrobinson 16:24, 5 February 2009 (UTC)
Roto Mode
- Allows viewing of a selected viewer in the background, while new roto splines (2D curves) can be created, edited, and animated on top
- Roto splines animated using blend shape technology, but a better, faster, more direct interface is required. Also knots need to be able to be added or removed on the fly
- Roto spline animatable feathering variable on a per knot basis. (not a pixel number, just a second spline that gets offset from the first
- Roto splines motion blurred
- Adjustable onion skinning
- Creation, editing, deletion should be just like an IPO with the drop down menu and number of users (nodes)
- Resolution independent
--Bartrobinson 16:24, 5 February 2009 (UTC)
Paint Mode
- Allows viewing of a selected viewer in the background, while painting can be done on top of it in an animated/per frame fashion.
- Painting could be loaded using the Paint (Matte) Node then manipulated or composited using other nodes. See below.
- Allow painting, cloning, selection, copy, paste, smudging, etc. (Use current set of paint tools, but probably needs enhancing)
- Record brush strokes.
--Bartrobinson 16:24, 5 February 2009 (UTC)
Groups
- Socket labling for groups & general better group handling when it comes to sockets
- A possibility to define which input and output sockets will show up in a collapsed node-group. Maybe even name them. This is especially useful if we have lot's of unused in- and output sockets that then all show up in a newly added node-groupd and we need to open the group to see what is what (keep in mind that currently the initially used connections to the outside are lost when added the group somewhere else). --Hoehrer 12:31, 2 November 2006 (CET)
- A great example of what i mean is shown here. Just picture the node-grouop in the middle after it was initially added (without connections) ... pretty confusing hu? --Hoehrer 11:48, 19 November 2006 (CET)
- Don't cut outbound threads when making the group. In 2.43RC2 if you have the last node thread to a viewer and yet another node (YAN), when you Make Group with the viewer, the thread to the YAN is cut.--Roger 23:51, 10 February 2007 (CET)
Modifications
- Realtime update whilst changing values in nodes such as Transform and Scale.
- Be able to Translate and then Blur. Right now Blur undoes the translate and blurs at original coordinates (bug?) which results in a hard edge where the displace occurs.
- Add "Absolute/Relative" toggle button to all nodes dealing in spatial units. Absolute units being floating point pixels. Relative units being normalized to image width and height represented by floating point values with the standard range of 0.0 - 1.0 but allowing for negative and 1.0+ values. Relative allows for multi-res work while swapping in and out proxies, while Absolute lets you be very specific if you need to.
- An image selection option in the UV/Image Editor window to show the Image output of Selected Node Image. (I am so tired of creating and threading viewer nodes all over) or have each node be able to act as a viewer node.--Roger 23:31, 10 February 2007 (CET)
PassIndex enhancements
- In 2.34 it is possible to set a PassIndex for an object for masking.
- Very usefull would be also indices for materials (& nodes).
- Furthermore for textures , object groups, vertex groups, multimaterials.
- I think these indices are important for glow effects etc.
- Ability to assign to several pass indices may be interesting to.
- Layer option for the IndexNode. (Index for everything on a specific layer)
--M_jack 12:51, 5 March 2007 (CET)
New Nodes
Video Sequencer Input
An input node (or option for the image input node) to input from the VSE, since the sequencer is so easy to use to splice strips and has more effects; do that work in the sequencer and then input to a noodle to do overall color correction. Otherwise, we are going to have to re-invent nodes for every plugin, which is a waste. I would like Blender use its own strengths, and I'm kind of attached to the VSE.
--Roger 23:47, 10 February 2007 (CET)
Spline Node Input
Load a spline as a mask created in the image editor in Roto Mode (See above). Could be used for garbage mattes or roto work. Resolution could be defined in absolute (X pixels x Y pixels) or relative (0.0 to 1.0 percentage of comp width and height) mode.
--Bartrobinson 15:26, 5 February 2009 (UTC)
Text Node and Picture Node Inputs
I think we need a picture node and a text node for idea/script/2D design.The picture node is diffrent from the image node ,it can be zoom to it's full size.And the text node like a text editor ,you can edit the text in the text node easily.The pic node and the text node can be grouped as a script node or design node, and each node can be move in the group freely.The group can be save as a new format or still in blender.For example, we can use the pic note and the text node to make a stand script ,and then save it as a script templet.We click the picture node ,then the blender will open the image paint window to modify the picture.we click the charactor name in the scriptnode ,the blender will open the a script node or design node with the same name.
--Sumomofan 21 March 2007
Paint Node Input
Painter node (selection node and draw node): How to make the blender image paint like the gimp or the PS? Now we can paint a image using the blender paint tools and we can give the image some effect by the blender composite nodes.but what is the difference between the blender painter and the general image editor? I think it is the selection tools,draw shap tools and the layers. we need them . we can draw the seletion in the image editor window and set the paratemer in the node window. By the way ,the selection tools and the draw shape tools can be used as the mask tools in the NLE.
--Sumomofan 21 March 2007
Afterglow Node
See the Afterglow effect thread for a more verbose description.
--Hoehrer 14:17, 13 November 2006 (CET)
Crop Node
A crop node with input sockets for image, size xy and offset xy. Right now, the top socket of a node defines the image size, and Blender scales the output to match the ultimate output format size. I would like to control that, as I go from NTSC to PC sizes, and want no distortion and want to choose which part of the window I crop. My work-around is that right now I map the input NTSC to a plane and fly a camera over it and use the Render layer input. I also use portions of high-resolution backgrounds, and would like to use the crop and scale nodes to choose the section I use, instead of the flying camera technique.
--Roger 23:31, 10 February 2007 (CET)
Depth Map Image Node
I know, this is already possible in Blender but it's a lot of work to set this up properly, especially when you need multiple maps across several unrelated scenes. As I see it, most of the work has already been done to allow for this via the new SSS material. You can see that the depth map image is being rendered in a separate "pseudo scene" or something. All we need is a node that would allow the user to set the render size of the depth map. If Blender created a seperate scene to render this image then the output socket of the node could be directly connected to a scale node for beautifully antialiased depth map images. Z-combine anti-alias routine is great for quick previews but totally inadequate for final output as it causes serious alpha channel problems. There is no substitute for an image of this type and this would be a huge time saver.
--RamboBaby 08:38, 21 May 2007 (CEST)
Antialiasing Node
A Node that can run blenders render time antialias on a image input would be great. The need for this comes from some of the render outputs, such as the z-depth map, not being antialiased. This causes major issues when using z-depth maps to mask images used in the final composite image.
--A.Vector 12:35, 27 July 2007 (CEST)
Python Node
A node which executes a chosen python script to perform programmed operations on input image data and then outputs the image data. Perhaps some connection to PIL?
--bartrobinson 11:00, 26 Sept 2007 (EST)
Video Sequencer Output
A node that creates a bar for the sequencer, or some type of output for the sequencer.
--Raschko
A Light Vector Node
A node to get a selective light vector then you'll be able to combine it with math operations to create certain shader techniques (half lambert etc...).
Adobe Color Difference Matte
A good Keyer for greenscreen http://www.bildfehler.de/fx/cdk.html
Composite Node Commandline Rendering
Rationale: Often users of blender have to open gui or create the same composite node in a different file to filter video files or image files. This feature will allow certain composite node fields to take values from commandline without having to open the Blender GUI environment, this will allow creation of reusable composite nodes.
Blender Changes:
- adding of a new node type called "CLiParamList" (CLi - CommandLine) - adding a new connection link of other nodes that can interface with CLiParamList node. The target nodes will interface to CliParamList in a connection link named "CLiParams"
Specs:
- CliParamList node will contain expandable list of "ParameterName" and "LinkToField"
ParameterName - the CommandLine Argument/Parameter to get value from LinkToField - auto-populated dropdown list that contains name of target node field to assign the value
- Composite Nodes / Blender File Project may contain more than one CLiParamList nodes
- a CliParamList node may contain the same "ParameterName" of other CliParamList nodes and point to other target node
- When connecting CLiParamList node to a target node it will auto-populate the LinkToField of available target node fields that can accept values. By default, LinkToField dropdown list will position to a blank value. If CLiParamList node have no link to any target node the LinkToField will be empty and value will be blank.
- A target composite node can be any existing Blender Composite Node that can interface their value to the commandline or allow overiding of value to a target field from CLiParamList node.
- In Gui mode, values assigned to a target node will override that of the CLiParamList node; if empty, it will take the value from the CliParamList node. The target node field value assigned in Gui mode, upon saving, will become its default value if none was specified to a ParameterName in commandline.
- In commandline mode, the CLiParamList ParameterName will override the value of the target node field. If no value or a parameter name was not specified in commandline, target field node will take the default value assigned in GUI mode.
- Target field node can be empty if 1) no parametername was specified in commandline and 2) no default value was assigned in GUI mode; blender will either quit with an error or warn and continue processing request with empty value (depending on current safe behaviour of blender).
- CLiParamList node should not directly change value of the field in a Target Node. It is the target node's chore to Query CLiParamList of matching LinkToField and value. This will allow extending it with a plugin node to be placed in between CliParamList and a Target Node in the future.
Usage:
1) User add three nodes CliParamList node, Input Image Node, and Output Composite Node 2) User connects CliParamList node to the Input Image Node (through CliParams), and Input Image Node to Output Composite Node 3) User click "New" button in CliParamList and new ParameterName and LinkToField pair is created 4) User types in the ParameterName text field of what blender should be looking for in commandline. In, example user types "MyImage". 5) At this time, the LinkToField is still blank (always blank value when changing target node and empty when not pointing to a target node), user selects appropriate target field name in the dropdown list, auto-populated upon connection to Input Image Node. In example, the target field name is "imageFileName". User selects "imageFileName" value in LinkToField dropdown list.
6) User enables "Do Composite" in Render options.
7) CommandLine Rendering: blender -b blendfile.blend -paramMyImage="pathtoimage" Any parameter specified in commandline matching ParameterName in CliParamList node will always override the default value in target node field.
8) GUI Composite Rendering: CliParamList gets the parameters in commandline when blender was activated. Any non-blank Target Node field will override CliParamList ParameterName commandline values.
Issues:
Issue#1: Commandline parameters may get too long Solution: Blender must have an option to read parameters from a text file. The parameters stored in text file will override/extend those that have been placed directly in CommandLine. This will be stored by another process/module to an global memory space of Blender that CliParamList Node will then query. see http://wiki.blender.org/index.php/Requests/OtherFeatures#CommandLine_Parameter_Input_File
-- nbjayme 8:05p, 18 Jun 2007
API - Nodes
GPU Acceleration
Nodes could be implemented in GLSL for faster previews. For nodes not implemented or not supported on the users GPU, it should fall back to CPU compositing. Probably best to only use it for previews, not final render, as computations on a GPU are not necessarily accurate or the same for different GPU's.