YOUR ACCOUNT

Login or Register to post new topics or replies
AndrewA1988
AndrewA1988
Posts: 27
Filters: 16
In addition to just having the ability to quickly drop node groups into the editor, I think it’d be nice to have some QoL updates and most importantly, new tools to help create powerful groups/custom components.

1. Double click to lock preview on groups

2. New Controls: I’d like to see grayscale options for the checkmark box, intslider, and angle controls. The following additions would also be nice:

2.1 Profile Selector: a curve control that acts as intslider when nothing is connected, and like a standard curve input when something is plugged in.

2.2 String Slider: reroutes the text that shows up in the remapping box and displays it instead of a number. Example: attached to a blend mode input, the slider shows “overlay” instead of “10.” I am guessing this is probably not possible?

2.3 Button Control: (?) this would be useful for gaining access to slaves fr om within groups.

2.4 Angle Control Changes: this would be way more useful if it were a circular slider

2.5 IntSlider changes or New IntValue Slider: an option to replace the horizontal slider with a vertical oriented value control knob thing-y. The reason I’d like this is because the value control is a lot easier to work with when it comes to large numbers, but it lacks the ability to set a lim it. This could also work as a new control type instead of an option for the intslider.

2.6 "works when connected” setting for color controls: the current “required” setting is great for source inputs, but when it comes to bomber’s depth map, the ! warning symbol actually affects the output. This setting should output pure black (0).

3. Save default values for groups


4. Group Slave Components: Access to slave components would be great. My vote would be to place slave inputs underneath the node's individual preview window, which has lots of unused space under it. Additionally, a way to create custom slaves for group nodes would be great.

5. Control Switch: a switch to switch between sets of controls. This would solve the problem of unused inputs that can occur when switching between two variant branches of nodes.

The next two items on the list are taken fr om Substance Designer. Substance Share has a ton of custom nodes created using just these two tools alone.

6. A “Pixel Processor” analogue: I’m guessing a full-fledged pixel processor graph type isn’t doable (until FF Forever), so here’s how I’m guessing it would look in FF, as a “Pixel Ops” category of nodes. This would also allow access to the result component advanced nodes fr om within groups.

6.1 Pixel Processor: assembles information from the other pixel nodes and outputs the result.

6.2 Pixel X: can output the x coordinates of the current pixel, a sel ected pixel, a range of pixels, or a random pixel.

6.3 Pixel Y: see pixel x

6.4 Image Height

6.5 Image Width

6.6 Neighborhood: define a neighborhood of pixels around the current pixel being rendered. This could have a radius slider allowing you to increase the size of the neighborhood beyond the pixels personally defined. Optionally, plug in the matrix node to automatically generate a neighborhood of equal size.

6.7 Block: split the image into blocks and process them individually

6.6 Matrix: generate a matrix (companion to the neighborhood node). Optionally, plug the neighborhood component into the matrix component to output a matrix of equal size to the neighborhood, and then manipulate the values using the matrix node.

6.7 Convolution: use the matrix nodes to perform convolution

6.8 Morphology: see above but for morphology operations

6.9 Correlation: see above.

6.10 Pixel Sort: input pixel coordinates (such as from the neighborhood node) and sort them according to certain criteria

6.11 Pixel Mapping: transform an image using a matrix

6.12 Pixel Match: finds pixels match certain characteristics(such as color, lightness, coordinates, etc) and outputs the result

6.13 Pattern Match: finds areas of pixels that match a given input pattern

6.14 Transform Pixels: flip/rotate/etc. pixels

6.15 Regions: find areas of semi-continuous color/brightness and output the results in a way in which it is easy to isolate each “region” (using slave result nodes, maybe?)

6.16 Sampler: samples pixels for the pixel processor.

6.17 Padding: Used to control whether an image is wrapped, clipped, etc. during neighborhood operations.

More info on Pixel Processor:
Pixel Processor Node

7. An “FX Map” analogue: I know we have bomber, but sometimes it’s nice to have the control that comes with building a pattern/noise fr om the ground up. In FF this could be a “Quadrant” or “Octant” node that divides space by a specified amount. You can’t actually do this (afaik) using the current components available in FF; the FX Map nodes in Substance Designer “know” wh ere they are in relation to other nodes and know wh ere a pattern has been offset to (which can cause clipping in FF using current nodes).

More info on FX Maps:
FX Maps
How FX Maps work
FX Map Node
FX Map Quadrant Node
FX Map Iterate Node

8. A “Packer” node: A bomber companion that packs a given space (without overlap) using a variety of fit methods (such as stretch, shrink, rotate, flip, distort, squeeze, squash, etc). The packing ends when there is no more space left to fill (which would be based on fit and distance settings) or when an optionally set number of cycles is reached. This could have sliders for each fit method, letting the user dictate the max stretching, shrinking, etc that occurs, as well as a slider allowing the user to set the minimum distance between each particle.

9. “Meta-nodes” (for lack of a better word): nodes that alter/interact with other nodes, adapt to other nodes, or perform different functions based on certain factors (like the properties of the current image).

9.1 Transformer: transforms the node attached to it with a grayscale map and/or curve. This could have options allowing the user to choose what parts of the component are transformed: Function (the inner working of the component), Inputs (inputs without a control attached, and Controls (inputs with a control attached).

Example: a transformer connected to the blur component could: (optionally) alter the blur kernel (function), (optionally) alter the value of non-controlled inputs on the blur component, and (optionally) alter the values of the controls attached to it. An optional “dummy control” slave could be included that acts as a control but does not show up as one to an outside user. This would allow you to set the transformer to only affect controlled values, and use the dummy control to choose which inputs are affected by the transformer, without exposing those inputs using a real control.

9.2 Modulator: similar to a transformer (for controls only) that isn’t limited to affecting just a single component. The modulator alters the values of controls using a map/curve. Controls that you want to alter are plugged into the input of a slave component, and that slaves output is plugged into the input of the node the control is supposed to affect.

9.3 Adaptor: similar to the transformer/modulator, but geared toward allowing the value of a control to influence the output of other controls.

9.4 Convertor: changes the output of a node/control into another, using a variety of methods (such as averaging for a green to gray conversion)

9.5 Variator: a time-saver node that outputs whatever is connected to its input, while varying certain parameters (such as scale, variation, roughness etc.). Different parameters could become available based on which components are connected to it.

9.6 Transmitter: wraps whatever is in its input into a variable that can then be received by other components/groups in the filter tree.

9.7 Receiver: receives variables generated by the transmitter

9.8 Condition Checker: a special type of receiver that checks for certain built in variables, like whether or not a certain node has been used, the colors in the current image, etc.

9.9 Autoadjust: automatically performs certain operations using a "Profile graph". A profile graph would really just be a series of condition checks that dictate whether or not a certain operation is performed (if any). Profiles could be saved, shared, and reused.

9.10 RNG: generates random numbers based on a seed, with an option to
A. Provide a new set of numbers based on a different seed each time it is called
or
B. Provide a new set of numbers based on a different seed for each individual component that calls it.

9.11 Swizzle: pulls a single value from a node with multiple values (such as the receiver node)

10. New Component Categories: because custom components aren’t going to neatly fit within the current categories.

10.1 Blur/Convolution

10.2 Channels & Maps: mixes map nodes (normal, height, etc) with the channel nodes

10.3 Distortion

10.4 Effects

10.5 Fractal

10.6 Generate: anything that generates an “object,” such as a sphere, gate, etc

10.7 Layers: anything involving layers, such as blend modes/methods, frames, layer effects, collages, etc.

10.8 Lighting

10.9 Tiling: way too many tiling methods to lump them in with transforms

11. A “Placement” tools node: this would simply replicate the functionality of the placement tools in the color control. It’d be really helpful to be able to control whether something tiles, is reflected, etc.

12. Seamless Tiling Control: group components will need to be able to control whether or not they enable/disable seamless tiling.

13. Genetica’s Light/Distortion Nodes: to accompany FF's refraction node.

13.1 Shadow

13.2 Point Light

13.3 Full Light

13.4 Reflection

13.5 Transmission

13.6 Caustics

13.7 Stereogram

14. Toys!

14.1 Stroke: with options for outline/inner glow/outerglow and soft/precise

14.2 Distance Transform

14.3 Fractalize: repeatedly shrinks and layers the input over top of itself (genetica)

14.4 Fur/Fiber Generator

14.5 Value Noise: with octaves + all the standard features of a noise node, in addition to multiple smoothing methods (we could do this on our own if we get a matrix node).

14.6 Fast Fourier Transform

15. Scripting Enhancements: an update adding custom components would be as good a time as any to add scripting updates/bug fixes.

15.1 Bitmap Script

15.2 Control Script

15.3 Vector Script?

15.4 A Custom Lua Function Library
  Details E-Mail

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

33,711 Registered Users
+18 new in 30 days!

153,531 Posts
+36 new in 30 days!

15,347 Topics
+72 new in year!

Create an Account

Online Users Last minute:

20 unregistered users.