## Ownership of Lego Block Architecture

Started by rcallicotte, September 03, 2009, 04:21:12 pm

#### CCC

##### September 08, 2009, 06:02:03 am #30
Quote from: Matt on September 08, 2009, 03:31:09 am
I think it would have to be non-recursive, although I'd love to be proved wrong!

An iterator function might help things a little...

Hmmmmmm.

#### Volker Harun

##### September 08, 2009, 12:17:49 pm #31
I used a linear setup with 8 'iterations' ... made the render work for 45 minutes ... any iteration beyond in that setup would make my machine very slow ... slow .... ..... slow.

Else this is a Julia-Set with c = -0.125 + 0.785156 i

#### CCC

##### September 08, 2009, 03:25:00 pm #32
Interesting. i suggested a branched noise flavor in another thread as it would be good for creating canyon networks, river systems and even cirrus clouds.

#### cyphyr

##### September 08, 2009, 04:49:22 pm #33 Last Edit: September 08, 2009, 04:59:57 pm by cyphyr
Quote from: Volker Harun on September 08, 2009, 12:17:49 pm
I used a linear setup with 8 'iterations' ... made the render work for 45 minutes ... any iteration beyond in that setup would make my machine very slow ... slow .... ..... slow.

Else this is a Julia-Set with c = -0.125 + 0.785156 i

Marvelous
Of course
It could only be you
Thought you could do it, care to share
Mandelbrot next ?? lol

Now if I could only figur out how to create a function (f ) with functions ... Ahh learning
Richard
www.richardfraser.co.uk
/|\

Ryzen 9 3900X @3.79Ghz, 64Gb (TG4 benchmark 6:20)
i7 5930K @3.5Ghz, 32Gb (TG4 benchmark 13.44)

#### FrankB

##### September 08, 2009, 05:09:01 pm #34 Last Edit: September 08, 2009, 05:50:11 pm by FrankB
For anyone wanting to get into functions: For me, the break-through understanding was that you need to build functions from their inside to the outside in TG2.

It always starts with the variable first though. Think about a simple function like sin(x).

To create sin(x), you need to "get" the x first. Once you have the x, you wrap the sine around it, so to speak.

So first you create a function node like "Get position in texture". This is a vector that has the x, the y, the z. Then you create another function node below the "get texture". You create a "x to scalar" node.
NOW, you have your x. Plug this into your sine function node and you have sin(x). If you want sin(z), just use "z to scalar" instead.

Nested functions are build form the inside to the outside too. Let's say you want exp(sin(x/2)).
1. get position in texture and "x to scalar".
2. divide scalar and a constant scalar shader with the value "2". Now you have "x/2"
3. plug this into sin scalar. Now you have sin(x/2).
4. plug this into exp scalar. Now you have exp(sin(x/2)).

Plug this into e.g. the blend shader of a surface shader and see what happens.

Not that I have ever created anything really complicated with functions yet, but a trigonometric function every now and then can really brighten my day

Cheers,
Frank

#### Walli

##### September 08, 2009, 05:19:52 pm #35
and the best thing about functions - they usually donĀ“t bite ;-) So you can experiment to your liking.

#### Matt

##### September 08, 2009, 05:22:05 pm #36
Haha, there we go. Nice one. Sorry you couldn't just code it in Python - TG3 I guess?

Matt
Just because milk is white doesn't mean that clouds are made of milk.

#### littlecannon

##### September 08, 2009, 05:25:47 pm #37
Excellent... cheers Frank, I have to give this a go...
Simon.
I just need to tweak that texture a bit more...

#### cyphyr

##### September 08, 2009, 05:40:10 pm #38
Thanks Frank

That's very clear and "Ahh !! Of course, its all starting to make sense .... a bit "

This actually illustrates my point very well. As a node structure can be created almost identically by two or more people (early yet but I guess there's only a few ways of creating a "Julia set" nodally in TG); yes I can see that one of them could copyright the node setup if they wished, but what happens if someone later who has never seen the "copyrighted" one (its identical for all intents and purposes) chooses to share it? If I go and create a "Julia Set" node setup and publish it am I in any way stealing from Volker Horn. I don't "feel" I am and I certainly wont be limited in my artistic expression but I would not want to be the cause of any harm.

Richard

www.richardfraser.co.uk
/|\

Ryzen 9 3900X @3.79Ghz, 64Gb (TG4 benchmark 6:20)
i7 5930K @3.5Ghz, 32Gb (TG4 benchmark 13.44)

#### Volker Harun

##### September 08, 2009, 06:14:22 pm #39
Hey Richard ...

I have shared a lot of knowledge and nodes. But only a few full tweaks. I like to share the starting points so anybody will be able to recreate. And may share, too.
The same will be with the procedural crater shader. I will share the basics for free and I have developed a professional setup, which makes things a lot easier for creating different craters. Well, it took me about 48 hours, to rebuild the node network and to add common functionality. For some days I am testing it, so every internal calculation works fine.

If you do not need it, feel free to modify the free version, to learn, rebuild and use it. And share it combined with your works.
If anybody else wants to save time and use presets and gets for small money the pro-version ... I would really be dissapointed, if my work would be shared, the time I spent got useless.

As stated above, there is no patent pending for software, node-compositions and so on.
If somebody is specialized in Computer Graphics and has read heaps of books about it - and this person is going to write his own book - he should not copy full paragraphs, pages or chapters of his sources (unless stated and permitted). He would cover similar topics using similar words, but would write it on his own. That is fine.

What I want is to push the people forward, to push this marvelous software, to give the efforts of Matt, Jo, Oshyan and Mr.Licence the breakthrough they deserve.
And I kindly ask anybody who will use the presets, bought over at NWDA, to respect the time and work I spent. I'll respect yours!

Volker

P.S.: Julia-nodes will be uploaded in a few minutes

#### pfrancke

##### September 08, 2009, 06:29:48 pm #40
I think for me the time has come to buy some of Walli's objects and to study Volker's upload...  thank you also for the "ground up" explanation.

As a side note, during the 80's in an effort to stifle spaghetti code (resulting mostly from uncontrolled "goto" branches), this fellow by the name of Yourdon argued all logical problems could be defined and solved in code by using three constructs.  The are sequence, decision, and iteration.  I think he made a lot of money selling structured programming.

Sometimes I think that it is the concept of how TG works that throws me so badly, having been a programmer, I want to visualize what TG is doing in programmer terms (or rather in constructs that I've grown accustomed to in a variety of different languages) and it obviously is its own animal with its own madness.

#### Matt

##### September 08, 2009, 06:38:13 pm #41
Quote from: cyphyr on September 08, 2009, 05:40:10 pm
This actually illustrates my point very well. As a node structure can be created almost identically by two or more people (early yet but I guess there's only a few ways of creating a "Julia set" nodally in TG); yes I can see that one of them could copyright the node setup if they wished, but what happens if someone later who has never seen the "copyrighted" one (its identical for all intents and purposes) chooses to share it? If I go and create a "Julia Set" node setup and publish it am I in any way stealing from Volker Horn. I don't "feel" I am and I certainly wont be limited in my artistic expression but I would not want to be the cause of any harm.

If you create something independently without seeing the other person's version, of course you are not stealing.

Yes, it can get tricky, but how is this any different from copyrighting a novel or a computer program? I think you would agree that copyright laws are useful in those cases, am I right? Node networks can get complex very quickly, and there is an almost infinite variety of settings that can be in a network with only a handful of nodes.

Matt
Just because milk is white doesn't mean that clouds are made of milk.

#### Matt

##### September 08, 2009, 06:51:35 pm #42
Quote from: pfrancke on September 08, 2009, 06:29:48 pm
As a side note, during the 80's in an effort to stifle spaghetti code (resulting mostly from uncontrolled "goto" branches), this fellow by the name of Yourdon argued all logical problems could be defined and solved in code by using three constructs.  The are sequence, decision, and iteration.  I think he made a lot of money selling structured programming.

Sometimes I think that it is the concept of how TG works that throws me so badly, having been a programmer, I want to visualize what TG is doing in programmer terms (or rather in constructs that I've grown accustomed to in a variety of different languages) and it obviously is its own animal with its own madness.

I don't want it to be so alien to programmers. That's never been my intention, although I may be guilty of complicating some things in a misguided attempt to make other things simpler or to make it more difficult to accidentally do things with unwanted side effects. When it's possible to program shaders using Python (or a C/C++ SDK, which is still a long way off), maybe it will become clearer how everything works. If the documentation is good enough, of course...  Maybe then some of the decisions I've made with the built-in shaders and function nodes will make more sense - I don't know. I look forward to seeing how other programmers interpret what I've done and to getting advice on how we could improve the built-in shaders and function nodes to make the GUI more logical. I also realise that many of these things - even while they have their own madness - would be easier to understand with better documentation.

Matt
Just because milk is white doesn't mean that clouds are made of milk.

#### cyphyr

##### September 08, 2009, 09:17:21 pm #43
Hi guys
I've listened to your explanations and understandings about copyrighting node networks. I think I'm coming to a slight change of heart. I've never wanted to stop people selling their creations in any way or to stop them claiming authorship of any discovery they have made. That was never the point My worry was that if something was copyrighted how could two (or more) people own it. If I create/discover a Mandelbrot set (err for example lol) and publish it with a copyright notice that should not preclude someone else doing the same. As long as they haven't stolen it or copied it all they have done is make their own journey of discovery.

A Possible Solution
I know this has been suggested before but now I see it in a different light. Rather than copyright maybe it would actually be cool to be able to "lock nodes", have them encrypted in some way. You could lock entire internal networks or individual nodes. Maybe a small icon on each node of a padlock. Click it and the node is locked. If the node has an internal structure then that is locked. Keep the variables on the outside so the user can make modifications. Possibly the "lock" could be linked to the users Terragen key so its only usable by that person.

This would mean there was no ambiguity about copyright. I simply could not use a file I had no right to, it just would not work!

Just an old idea, certainly not mine but worth thinking about, no?

Richard

ps: I don't think there's a need for a macro system, it would be cool but its not that necessary.

pps: thoroughly enjoying the Julia Set
www.richardfraser.co.uk