利用者:BeBraw/NodeThoughts

提供: wiki
移動先: 案内検索

This page contains a "braindump" of node related ideas. Not all of them are originally invented by me but it doesn't hurt to put them here. If you have comments, please use the discussion page.

Node User Interface

Automatic way to bind multiple connections into one connection

Let there be nodes A and B. There are three connections, c1, c2 and c3 between them (from outputs of A to inputs of B). Currently these connections are treated as separate ones. With automatic solution, these could be treated as just one. A connection that would be created automatically, would be bolder than normal one. Also it would be clearly visually shown how the outputs/inputs are merged this connection. The main benefit of this solution is that it reduces the amount of visual clutter.

Other

  • curve node user interface doesn't scale that well
  • explore other ways for drawing of connections (only horizontal and vertical lines etc.)? Is the current system optimal considering its usage?
  • is the layout/general settings of a generic node optimal considering the usage?
  • allow zooming even further? -> explore potential of zoomable interface
  • inputs and outputs should provide tooltips
  • if a node is added now, it is created to the location of the mouse cursor. The node can be created in such a place that is not visible to the user due to this. It would be possible to alleviate this issue by either 1. by creating it location which the cursor had when the add menu was spawned or 2. by setting the newly created node to "grab" mode in which it would follow the cursor. If the user pressed enter on left mouse button, the node would be added to that place. If esc or right mouse button was pressed, the creation of the node would be cancelled.
  • merge combine/separate nodes to two "master" nodes one of each containing options of that specific node in a list (example: "Combine Node" would contain a list with all possible combine options. Inputs would be created based on selected option.)

Category option for nodes

See https://projects.blender.org/tracker/index.php?func=detail&aid=7082&group_id=9&atid=127 .

Nodes

Loop Node

Inputs: Image, Outputs: Image, Controls: StaFra, EndFra. Purpose: the node allows the user to use recursion. Loop node would pick the output of the node that is connected to its output based on StaFra and EndFra (these define loop range) and provide it to the node's input again hence allowing recursion. (Does this make sense technically?)

Routing Nodes

These nodes are designed to reduce the amount of visual clutter. -Plumiferos' Empty node?

Multiplexers

http://bebraw.googlepages.com/nto11ton.png

See http://en.wikipedia.org/wiki/Multiplexing for reference. Multiplex node would map multiple inputs to one output. Demultiplex does the inverse. This simply saves the amount of connections needed in certain cases as the user can think connections as a stream.

IPO Input Node

IPO Input node would allow the user to define curves in the IPO editor. IPO editor is excellent for this task. Further these IPO curves might have even more general use. (Driven IPOs (python?)!)

Comment Node

Sometimes it would be nice to comment a complex node setup a bit within the setup. A socketless comment node containing only text field (it should be large enough) could help in this regard.

Other stuff

  • all nodes don't work well on HDR (above 1.0) range. Some clip values to 1.0.
  • everything (values, ramps, curves etc.) is not animatable -> make every attribute an input that can be driven?
  • should show stats (amount of nodes, amount of selected nodes etc.) for nodes?
  • provide possibility to store whole node setups (not just by using groups) in similar way as scenes are stored
  • groups inside groups!
  • missing nice plugin system to allow easy extensibility!!! (C or Python based plugins?)
  • a way to bypass nodes. A bypassed node would act as if it didn't exist. Connections would skip the node. It would not be the same as removing it! Bypassed node could be shown in darker tone of color for instance.