07/12/2013

Information about Composite Nodes

It's been a while since I started making this, and it hasn't been easy. I've wrote that the engine would have "composite nodes", or that is a system of windows, each representing a function, that can be connected in order to modify something. Combining them you can get various results, without the need for a single line of code.

I started work on this a few weeks ago with the intention just to lay in a basis for it, since this is not the main feature of the program. And that's what I did. The system works to a point right now, and adding new nodes isn't hard, but programming their functions is. But the hardest thing with this is connecting them and getting the right results. The way the user connects the nodes is simple. You just drag the mouse from one output into an input in a different node. But programming this is very, very hard. Since I cannot see the results now, and try out if the system works, as I still haven't figured out how to connect these, I cannot give you an example of how this thing works, only how it looks.
In this image there are four nodes, two of which are the same, but one is minimized. I will explain what this system should do:
The first node (left most) is the Image File node. It is used to load an image into working memory and manipulate it. It is one of the key nodes, since the file can then be used in many purposes. 
The second, and the minimized nodes are the same, and they represent the Colorize node. This node receives the image in the input, and returns the image with a changed hue in the output. The user can also select the intensity the hue is changed.
The third node is the Viewer node. This is the most versatile node as it will display whatever the input receives. That means anything from images, text, 3D, and others, except for sound, for which an another node is used.

The line drawn from the Image File node to the mouse is my script draw_spline_cubic, which can be downloaded from this page on my blog. It is used to connect two nodes together. One node can have multiple inputs/outputs depending on its function, and every input/output can have multiple other nodes connected into it. So for example, you can have one Image File node, two Colorize nodes, and two viewers. Connecting the image to both Colorize nodes, then each Colorize node to it's Viewer, will give you the same image in two colours. You can also connect two same nodes to get a different effect, or two Image File nodes to blend the two images together (however this will require a mixer tool to determine the amounts).

This system won't be worked upon now, but if anyone wishes to work on it, you can send me a PM either on GMC, or on the PM page here, describing your intentions, since I won't be sending this to just anyone! However you will be obligated to send me back your version of this system if you add/modify something. Credit will not be needed, since we will both profit, you in receiving this, and me for getting your modified file. If I add something also, you will receive the new file. Should someone manage to work out the connecting system, he/she will be credited for it, and will receive beta copies and the finished version of the engine, free of charge. 

No comments:

Post a Comment