Difference between revisions of "Fractal Breakup Explained"
(Created page with "In the Surface Layer and Distribution Shader v4, altitude constraints and slope constraints create fuzzy zones where coverage is neither 0 nor 1 but rather somewhere i...")
m (JavaJones moved page Fractal Breakup and Fuzzy Zone Explained to Fractal Breakup Explained without leaving a redirect)
Latest revision as of 21:20, 11 November 2018
In the Surface Layer and Distribution Shader v4, altitude constraints and slope constraints create fuzzy zones where coverage is neither 0 nor 1 but rather somewhere in between. Fractal breakup is designed to make the fuzzy zone look more interesting by adding randomness. It borrows the idea from Terragen Classic. In Terragen Classic it would not have been possible to make interesting surface maps without this feature. The Surface Layer shader in TGD is descended from the Surface Layer in Terragen Classic which had Coverage, Altitude and Slope Constraints, and a Fractal Breakup Amount.
One way this is useful is to create natural looking snow lines, grass lines etc. Without the breakup, surfaces constraints cause a perfectly smooth fade which isn't natural for snow lines and grass lines. The breakup can give the impression that the slope and altitude values are offset by the value of the breakup shader (although the math is a bit different), and you can think of the breakup shader as a generator of randomness for this purpose. The larger the breakup amount (or the contrast in the breakup shader itself), the less it looks like a simple blend between the two surfaces.
It also affects surfaces without altitude or slope constraints if you reduce the Coverage below 1. The Coverage parameter is designed to be an indicator of the probability of the surface being there, and the breakup affects the actual value at each point. Coverage < 1 is a way to create a fuzzy zone without using altitude or slope constraints. If you set coverage to 1, you want the surface to appear everywhere (except where altitude/slope constraints apply). If you set it to 0.5 you are saying that there is reduced coverage, but the fractal breakup affects the appearance.
Fractal breakup is not a mask. It is an offset of coverage, designed to randomise the distribution of surfaces wherever the coverage is less than 1. It just so happens that if the coverage is 0.5 then fractal breakup behaves like a simple mask, but it's designed to be more useful than that. When Coverage is 1 (and there are no other constraints) you are telling the shader that the surface should appear everywhere, regardless of what the fractal breakup is doing. Fractal breakup is only supposed to randomise the opacity if coverage is less than 1 (either by the Coverage slider being less than 1 or because of altitude/slope constraints).
The breakup shader is expected to generate values between 0 and 1. The Surface Layer interprets a value of 0.5 to mean "no offset", so opacity is simply the same as Coverage. When the breakup shader is less than 0.5 the opacity is reduced, and where it is greater than 0.5 the opacity is increased. With a fractal which randomly generates values both less than and greater than 0.5 in different places, the result is a randomisation of the opacity. When the fractal breakup has very high contrast the result is that Coverage affects how much of the surface is fully opaque as opposed to fully transparent, so Coverage modifies the probability of a particular point being opaque. When the fractal breakup has low contrast it simply offsets the opacity by a small amount, so Coverage behaves more like opacity.
A shader is a program or set of instructions used in 3D computer graphics to determine the final surface properties of an object or image. This can include arbitrarily complex descriptions of light absorption and diffusion, texture mapping, reflection and refraction, shadowing, surface displacement and post-processing effects. In Terragen 2 shaders are used to construct and modify almost every element of a scene.
A parameter is an individual setting in a node parameter view which controls some aspect of the node.