Using Slope/Lighting Formulas

 

This tutorial assumes you are already familiar with the material in  The Basics of UltraFractal 5 and Its Use of Classes,  Changing and Exploring Plug-ins, Transforms as Plug-ins, Application of Texture   and Advanced Topics  in Applying Textures. This tutorial will be using most of the plug-ins covered in the previous tutorials. For this tutorial we will use a formula class called Slope Enhanced, which is in reb5.ufm. It can also be accessed from Object formulas in reb5.ufm and from Generic Formula in standard.ufm through the fractal formula plug-in.. It has a fractal formula plug-in which can use any of the fractal formulas in the libraries. I  advise against "Slope" in standard.ulb as it has no plugins for height value and so much of the flexibility of of "slope" is lost. Similarly, I advise against using the coloring formula "Lighting" in standard.ulb as it has no options for managing colors and textures. Instead use "Lighting with Textures" in reb5.ucl. Lighting with Textures can also be accessed from Generic Coloring (Direct) in standard.ucl through the coloring algorithm plug-in.

So what is a slope formula, and how does it work? Essentially a slope formula is a poor man's raytracer.  You can think of a fractal as a 3D surface where the height of the fractal is equal to its iteration value at bailout. A raytracer colors an object based upon the angle between an incident light ray and a normal to the surface. What a slope formula does is calculate normals to the fractal surface, which are then passed to the coloring formula to determine the actual coloring. As slope formulas have evolved it was a simple extension to modify the fractal surface using a smoothing algorithm such as exponential smoothing or to base the normal calculations on some other aspect of the iterated value. These are called "height values", and slope formulas usually have multiple choices for height values.

Before UltraFractal 5 special code had to be written for each slope formula, so they were usually given names such as Slope Julia to differentiate them from the regular formulas. With UltraFractal 5 all the regular formula objects can be used, as the special code to calculate the normals is now in a hidden, linked piece of code.

Since a slope shape is a handy plug-in that can be used to modify the iterated value, they can also be used as height values, much as they are used for trap calculations in orbit trap type formulas. As with any trap shape plug-in the options of TrapShape Block and TrapShape Merge are also useable, along with the everything else in those wrappers. Slope with Shapes is a plug-in for Generic Formula which can be found in Standard.ufm. The snapshot below shows the basic parameter list:

 

 

Alternatively, the slope formulas can be accessed in two additional ways. 

  1. Directly using the Slope Enhanced ucl in reb5.ucl  The upr examples below use thr Slope Enhanced ucl.

  2. Using the Object Formula Switch Lite in reb5.ucl. This method uses the Switch Slope plug-in in reb.ulb. With this plug-in the user can switch between the Mandelbrot and Julia forms in virtually the same manner as for formulas in UF4 using the "switch" utility of UF5.

The first image below shows the use of the Slope Enhanced ucl, and the second set of images is for use of Object Formula Switch Lite.

The two images illustrate Switch Slope in its Mandelbrot and Julia Forms

 

On the coloring side the lighting formula is a direct coloring formula so that the coloring can take advantage of Color Trap plugins and other coloring special effects. The lighting formula can be accessed directly using the Lighting with Textures ucl in reb5.ucl, or by using the Lighting with Textures Direct plug-in in reb.ulb with Generic Coloring (Direct) in standard.ucl. The two images below illustrate parameter list for the two methods:

 

 

The first example is a simple case using smoothed iteration for the height values and a monochrome gradient with the default settings. This is not a particularly interesting image, but it illustrates some of the basic principles for using Slope/Lighting. The user should experiment with the effects of Light Rotation, Light Elevation and Ambient Light.

Tutorial_11 {
::Uc6fvjn2ti13vNKOQ43rU/fAxrn2UwJkfsr8DX3truu62+w1KdvcSROgB8WjNrxkm0/63xGS
CkQbgs3DREG/9NzY7xjnhYFJUT4f86rcc0MNnidfqULVMCfpvvrzLsIdKe6EPnUKLJVjD8RO
cyWqqA7bIFqoRMdB29fkCCPy5WiSQ16PN5mx3g88W8JQ+eh+egMj45uXflVLWDHSy1MpA7eL
J85ElsUE56IzJhM9WsvnnTGVnKjwZlcNLnUU4oVERRORRFa8Wax1XlRyzZikK1BSpKs3IPfU
wNwjxzCcyIJCs/Ik/Y0MPwzjlKQdELhMyGmhBYKPncqKMlG+MWGH7Ez4UBJDWVU0VBjKjzcN
EADo2CT57ud5jcZO9fVg5pKXn8lrXWYk8SlEjKNEyXWbvPzB3f06lJUBVxCtzuTGs+13kclF
Y60iUSOF2I887AXKlbmLN5UJqH4trvmRxuhysMpYUJf1Hfokzfa3Iu9VFtntDg1BnYY8KLoq
LlrAmiDhbuiWoJKNuHApiI85W4L0QMdCck7cAjKJcsQeGUwm3KmwcoejvzXVmfInn2gO3mXM
nsWqwPS/ZJVESPnTT/Z9J0vQjJwh0zjPhk7jn0LcIM6M4yoqEqG/n/xtnThhEID35WabOg9g
vN43cY/blcGxdA0HUs/gyC8OEjYrNLIC9FrhfYmn9INRrB0wJBcmMaIcyXuiw4ySN2niGkTW
QpR4P4Na2Y08JznDp5RBTGP1LYYmPX+CkQEdzQsNqdQx9PDXRkQGcsB6iDOQXc0B63P8woCW
1U+SCTQXScCqZgCcJ9w8Xboi3NQwi/UUwANbfDQ2fpB6/hrMRX2dmoL9ST0vztmoL5aTZhun
3bCIHyFnozisqQ21EeJt9BZYfK/RTFV2a6ul8fGFVwCd7p2G0mWbewaXutYuecaqNTbddrIg
bWMQuvCnBhVgiMpUnSjcMlATM1h3vw063wuPqJiIiKyuOu7ll/FYJ7CYq+pa8u9WpXQ4/Bm7
efwU3YIxhylIqBx71+VWRXkQ4RnvW8NQdeHDAaOpAK5x/uPMvD6UID/WbLNnycXKNPTKNmog
FRr6+b3ymQKgC+gUt7HKiCwgWxGN9Aqq1pTaQKk3sBpnob0lK6fbC6guzq6PiX/mpBGdFgiG
7VLD7uFp9yDlco/URSXciYKao+9Q0l1rYBoDajmr3CnIdvXEzEwqpjlrbDAERiZjHB9Y2mJl
TXbPLhnCj1Ul5SmA2R9HFci0t7L0dvYOBKevFSjLsB7dsot4j8Ar0XbBkA9CYaYutHZS9coR
iGCLKzqDfqFysQB2343WDbIZ6jtf5+w2aBxNiH3rQqSAWxvN1MNEUhfACDPFLkevplDJrKOm
ec5rvekpzfRdasQcd0J2NK7HB2sXf57f7wtAflT0udT5NjObAorU6niCM9BkQXX6O8TLAbM9
h7r+s5Vjr+g0+X33kTn5S7Em9pdPuPAFyKXqDs2BsNl1qWo6mDt+73Nj6+2EffvuFuGW7cQj
q8gTZE3Nj4l2n2LKFgQCvt6F1Ty7zIJUHpw5JZez8D7+GWQzJtJSSLptjRhrkP64GpAiGO+g
JUHsy+d48alAJH8aIlLp40BMaBkdsaMOgXLJJKy22eAQWyJqOcCdKk2M9EbZLWTdsSCTJi99
6fYe8yx4W9StnCeSkJTV1XzDCgg/DFac3mcndXl4sLHf93G01pqOGjOVSdVuX/F2LHZiIqJl
Zd860ZBLQogaxLmtX+0JT9nMpWu/85VW3M2C/ZBeT8qHCtwvW+0gAolzaxjXMvWMESVvzbnB
H8sdeyu4CUAMb/FiqlZM
}

 

More interesting images can be created using different trap shapes. In the following upr and image a Flower trap shape was used for the height value. A color pattern using a color trap has also been added. Experience has shown that adding some additional coloring in the Lighting formula works best if the "Height Transfer" function is set to log(). Click the arrow for height transfer (on the formula tab) so you can see the parameters. On the outside tab notice that the default "Colors" plug-in has been replaced with a color trap plugin. The user should play with the color merge parameters to see how they affect the image. Internally color trap coloring and  slope/lighting coloring behave as separate layers and can be combined in all the ways that layers can be combined on the outside tab.

Tutorial_12 {
::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
mPCUqKbEnOtbuKhH88XCGPBg+fw8uue6
}


 

The image for the Tutorial_13 upr should look familiar. The image for the Transform_2 upr in the tutorial on transforms uses the point trap shape and the radial waves transform. This combination is also used for the height value for Tutorial_13. Different coloring and the application of texture has changed the appearance somewhat, but it is still the same basic shape as was seen in the Transform_2 upr. To do it proper justice It needs to be rendered with custom anti-aliasing: Threshold = 0, Depth = 1, Subdivisions 4 (2x2) and at a resolution of at least 1024 x 768. The transfer function, as previously, has been changed to log(). Notice that the upr has two layers, and the bottom layer is a simple black layer. If the user turns the black layer off large area of transparency can be seen. This is created by the "soften edges" parameter in Slope Lighting. What this parameter does is increase the transparency as the height value approaches zero. Effectively, this allows the height value passed from the Slope formula to act as a trap, with coloring outside the trap being determined by the color of the layer below. Unclick the soften edges parameter and notice the effect on the image.

Texture has been applied using the TrapShape Block technique that was covered in previous tutorials. In this case trap shape block was used so that Trap Transfer Bias, which will be covered in more detail in the next tutorial, can also be used. "Cut at Zero" is checked for Trap Transfer Bias. This has the effect of setting all negative texture values to zero. Uncheck Cut at Zero and observe the effect. Notice that the distance bias value in Trap Transfer Bias has been set to -0.4. What this does is reset the cut value to -0.4. Try changing the value of the distance bias to see the effects. When Cut at Zero is unchecked, an new parameter is visible, called "No Negative Values". This is also in Trap Transfer, but has a very different effect on texture. Instead of setting negative values to zero, it takes the absolute value of the negative values, producing a very different effect on the texture. Try checking No Negative Values to see the effect on the texture.

Tutorial_13 {
::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
6QEECiX06qMfVzwrArWuKK2J/h/PdL1IeC==
}

 

The upr Tutorial_14 and the corresponding image have some elements in common with the Tutorial_8 image in Advanced Topics in Applying Textures. The texture mapping is a little different, but the repeating star texture should be visible. It was created using the same TrapShape Block combination as was used in the Tutorial_8 upr, which the user should be able to see by looking at the bottom layer. The upper layer demonstrates that, although Slope formulas are intended for use with Lighting formulas, they will still work with other standard coloring formulas. In this case Exponential Smoothing was used to color the upper layer. This helps facilitate using the fractal formula with any coloring method as could be done with UltraFractal 4.

Tutorial_14 {
::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
}

 

The last upr and image is an exercise in relatively subtle coloring and texturing. To do it proper justice It needs to be rendered with custom anti-aliasing: Threshold = 0, Depth = 1, Subdivisions 4 (2x2) and at a resolution of at least 1024 x 768. 

The bottom layer is fairly simple. In the Slope formula the height function is sqr() and the height pre-scale is 2.0. In the Lighting formula  the texture plug-in is Modified Perlin Textures with convolution turned on. The texture amount is high, being set to 1.5. One major point of difference from the previous uprs in this tutorial is that "Use Fixed Iteration" is checked and "Iter number" is set to 5. With just the bottom layer turned on, try checking and unchecking Use Fixed Iteration to see the effect on the texture. Also try varying the Iter number.

For the upper layer, in the Slope formula, the height function is cuberoot(). Texture and coloring is managed in the Lighting formula with the use of the Soften edges parameter and the application of the Worley Colors plug-in. With the plug-in in place new parameters for managing color are visible under "color merge" near the bottom of the parameters list. The Worley Colors and the colors from Slope/Lighting are managed internally as two separate layer which are merged using the "color merge" parameters.

Some transparency has been set on the internal Slope/Lighting layer using Soften edges. Further color management is done under the color merge section with the merge mode, merge order and merge opacity. Also note "Make image transparent by"  settings. These apply to the colors layer created by the Worley Colors plug-in. For this upr "Luminance value" is checked. Try unchecking it and you will see the other options. Notice the change in the image. The user should experiment with the Soften edges settings and the color merge settings to see the effects on the image.

Tutorial_15 {
::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
}

 

The next two uprs involve effects that do not use texture shape (a.k.a. trap shape). Instead they use the "colors" plug-in under Images and Coloring. The first one uses Worley Colors. There is an option in Lighting with Textures called "Tile method" which has options of "none", "fixed iteration" and "cabs(z)" Each of them affects how the coloring (and also texture) is mapped onto the image. The image below uses the default value of "none". This option performs very poorly for some height values (a.k.a. trap shapes) used in the slope formula. The other tiling options can be of use. As an exercise the user should locate "pattern size" within Worley Colors. Decrease the value from 0.1 to 0.001. Now go back to the Tile Method and change it to "fixed iteration". The value for "Iter number" should be 1. Try increasing the "Iter number" in steps up to a value of 10 and observe the effects. Now change the pattern size to 0.01 and the Tile method to "cabs(z). and the "cabs limit" to 1.0. Observe the effect.  Now go back to the original upr and vary the "Fuzz power" to see the effects.

ColorTrapShapeBlock2 {
::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
0B==
}

 

The next upr and image use the ColorTrapShape Block wrapper. This wrapper includes slots for Trap Position, Trap Shape and Null Transfer. In addition it has a special coloring method that allows the user to use either the external gradient for coloring or an internal gradient. There are plug-in options for the internal coloring to select different sets of colors to use. The user can also change any of the colors to design their own internal gradient. For this example we use Monnier's S.F.B.M. II Texture. This is a trap shape texture, and is different from the ColorTrap plug-in that has a similar name. We could have used the Monnier ColorTrap plug-in instead of our current choice, and except for the actual coloring the results would be the same. ColorTrapShape Block has a much more flexible coloring method, and so it gives superior results. It also works with any trap shape. This dramatically expands the coloring options.

ColorTrapShapeBlock {
::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
DgMJ8mdM5J08Z7by1zNYmzgyF6fB3Mp4xC==
}