creating Plugins

Started by Balletdude, March 16, 2022, 08:54:46 AM

Previous topic - Next topic

Balletdude

Does anyone have links to tutorials etc on how to create your own plugins for terragen?

I've created some node set ups, and would like to try and convert them to a plugin rather than adding it as a clip file. partly for ease of use to see the changeable parameters easier, and partly for my self to learn something new

Hannes

That would be really cool! The only one (as far as I know), who made a plugin for TG, is Daniil. Maybe you could pm him and ask him, how he did it.

Balletdude

Thanks

They probably wouldn't be of use to anyone but me. They are just node trees using math nodes to generate landscapes, and to displace sections of terrain in specific geometric shapes like squares, hearts, diamonds ovals and circles as well as some for polar co-ordinates.

WAS

#3
You'll need to contact Matt. Plugins are made with the Terragen SDK, which is not public for some reason. 

Edit: I've wanted to tinker with it but with no documentation, if I asked Matt for it, I also feel I would be reliant on his help for anything that may come up that isn't purely code error based. And I don't want to take him away from more important stuff in development and balancing life. 

Dune

In fact a plugin is nothing more than an undisclosed set of nodes, so if you put all your nodes in a tidy way inside a container, and have some variable needing nodes outside, and make a tgc, you'll have a 'plugin'. But open-sourced. 

Balletdude

Quote from: Dune on March 17, 2022, 02:33:38 AMIn fact a plugin is nothing more than an undisclosed set of nodes, so if you put all your nodes in a tidy way inside a container, and have some variable needing nodes outside, and make a tgc, you'll have a 'plugin'. But open-sourced. 
True. I am using constant vector/scalar nodes for value inputs. I was just trying to find something so I could see the value without having to open the node to see the value or enter new ones basically.
As well as I said just to learn something new

KlausK

Quote from: Dune on March 17, 2022, 02:33:38 AMIn fact a plugin is nothing more than an undisclosed set of nodes, so if you put all your nodes in a tidy way inside a container, and have some variable needing nodes outside, and make a tgc, you'll have a 'plugin'. But open-sourced. 
That is really a VERY simplifying definition of a plugin.
By that definition you would not be able to use Classic Erosion at all. It would take forever to do what it does, literally.
I can`t imagine how big that plugin is as node network...
Why do you think it needs a SDK to make a plugin? It`s not just putting nodes in a container
It is called Software Developer Kit for a good reason.
The point is that you compile the functions you put together into a structure that is integrated deep into the program, with a usable interface.
Then a plugin makes sense - it runs faster, provides functionality in a organized way and for various usecases - for the user.

CHeers, Klaus





/ ASUS WS Mainboard / Dual XEON E5-2640v3 / 64GB RAM / NVIDIA GeForce GTX 1070 TI / Win7 Ultimate . . . still (||-:-||)

Dune

You're right, Klaus, it is of course a bit over-simplified, but I meant that for a 'basic node structure doing some interesting stuff' you don't really need to make a real plugin, which indeed undoubtedly has all sorts of calculations not possible by just math nodes.

KlausK

Yep.
The "tgc" would benefit from a "container" which would let us choose the outputs that are accessible to a user.

When you look at visual node network "programing" in 3D software - I am especially thinking of Softimage ICE back then - you could do what we are doing with tgc`s and then that extra bit: "compile" it into a container having dedicated outputs exposed. You could leave the node structure inside open to a user or make it "private" aka closed and unaccessible. This way you would not have to give the user a SDK to deal with. But you would have a few math operations inside doing their thing and only have 1 input and  1 output exposed. That would make it much easier to handle those giant networks you guys sometimes come up with. No idea if that would be easy to implement but as we have all the blue nodes at our disposal I would think it might not be such a massive undertaking to add that kind of functional node.

CHeers, Klaus
/ ASUS WS Mainboard / Dual XEON E5-2640v3 / 64GB RAM / NVIDIA GeForce GTX 1070 TI / Win7 Ultimate . . . still (||-:-||)

Balletdude

have you used blender? that allows you o group nodes specify which outputs you want visible and has in input field. that could be quite useful to have

KlausK

one more....I very often struggle to "re-think" a tgc I download from here.
It needs a lot more understanding of the inner workings of TG then the red nodes do for example.
Those are simply hardcoded compiled blue function networks with the necessary outputs exposed (also simplified ;))
TGC`s in a container would not run as fast as the red nodes but they would be little extra functions for little tasks - sort of slow red nodes.

CHeers, Klaus
/ ASUS WS Mainboard / Dual XEON E5-2640v3 / 64GB RAM / NVIDIA GeForce GTX 1070 TI / Win7 Ultimate . . . still (||-:-||)

KlausK

#11
No, I still use Softimage. It`s all I need.  I guess I am very old school in that respect ;)
But I know that more 3D apps have adopted the ICE visual node programming later on.

CHeers, Klaus
/ ASUS WS Mainboard / Dual XEON E5-2640v3 / 64GB RAM / NVIDIA GeForce GTX 1070 TI / Win7 Ultimate . . . still (||-:-||)