Planetside Software Forums

Support => Terragen Support => Topic started by: nikita on July 08, 2007, 12:01:55 pm

Title: child layer inconsistency
Post by: nikita on July 08, 2007, 12:01:55 pm
Hi,

I found a problem with child layers and displacement. There's a green grass layer in my file, that grows at slopes <60° and it has a child layer: displacement.
There are several spots in my terrain that match the following conditions:
1. Their slope is below 60°.
2. After displacement, their slope is above 60°.

Now, such a spot is in the grass layer (because of 1.) and therefore, displacement is applied to it:
* slope <60° -> grass -> displacement
After displacement the slope is above 60°, therefore it's not in the grass layer:
**

Obiously, there's something wrong, cause:
slope <60° -> grass -> displacement -> slope >60° -> not(grass)
= grass -> not(grass)
TG2 stops here, so some parts of my grass layer actually don't belong to my grass layer and aren't green, despite the fact that they must be part of the gras layer because otherwise the displacement would not have been applied in the first place.

// You can continue the argument and find out that not(grass) implies not(displacement) -> slope <60° -> grass, so:
// grass <-> not(grass)
// So points that are in the grass layer are not in the grass layer and vice versa.


I know that it's a paradoxon that is not solvable. But the way it is handled in 1.8.76 contradicts my understanding of what a "child" layer does. Why is it called child layer when it completely ignores the color of it's parent?
Title: Re: child layer inconsistency
Post by: Matt on July 08, 2007, 09:09:24 pm
Colour effects occur after all displacement, so by default they will use the final displacement which may not match the displacement that comes before the surface layer is applied. You can force the displacement and colour to match each other by setting the "slope key" in the surface layer to "Terrain Normal" instead of "Final Normal". When you use "Terrain Normal" the slope is based on the normal that was calculated by the most recent Compute Terrain or Compute Normal node. (There should be no Compute Terrain or Compute Normal nodes after the Surface Layer.)

Matt
Title: Re: child layer inconsistency
Post by: nikita on July 09, 2007, 06:08:11 am
That makes sense... Thanks  :)
Title: Re: child layer inconsistency
Post by: rcallicotte on July 27, 2007, 10:27:01 pm
This doesn't make sense to me.  Could someone explain this in Node Speak?

[edit - Now this makes sense.  It's taking time.   ;D ]