Application of Texture

 

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 and Transforms as Plug-ins. As for the first  three tutorials we will be using Orbit Traps written by Damien Jones.

Texture can be applied in many ways. With UltraFractal 4 the most common method of application was the use of layers and masks, followed by specialty coloring formulas and transforms. With UltraFractal 5 these options are still available, but a wide spectrum of additional possibilities are added. Coloring classes such as Damien's Orbit Traps have a Trap texture slot which provides a wide ranging and flexible way to apply texture. This tutorial will concentrate primarily on the Trap texture slot.

In the first example the fractal formula is a classic Julia and the Trap shape is Point. If the user were to click on the browse button for Trap texture the default library  dmj5.ulb will be brought up, where a list of trap shapes can be seen. One of the oldest textures that has been used in UltraFractal is fBm, and dmj5.ulb has a trap shape version of fBm, which is the texture used for the first example. The user should note that when fBm is first "plugged in" that the default value for texture amount is 0.25. This is the default value for all the plug-ins, and is almost always FAR to large. The user is recommended to start with a texture amount of zero and then slowly increase it, otherwise the trap shape may be so distorted as to be destroyed. There is a second problem with virtually all trap shapes used as textures. If they have a size parameter, which determines the scale of the texture, it is almost never appropriate.  The default size parameter value in fBm is 1.0, which is too small to show much texture. Note that in the first example, texture amount = 0.025 (10 time smaller than the default value!) and size = 20 (twenty times larger than the default value!). Try changing these parameters back to the default values and notice the effects on the image. Here is the upr:

Tutorial_4 {
::z49hcgn2tj1SvNuNQ47Gw/HE09ooHWyObBvksbX0FNtFbydDapR2sRiUgkaTS/13hUyvScsp
K2D9gOYATyvv5BJnRcmSJNXTr+00JeeamuCI+P2qFSGta5MfvnZF6NksZhebA26NaSaUsXF9
VQqIxGO5SogpVE/vL4e3SlcQr/lbuOJ864wwF+TnYBbFfOtRzEci/vbmyLy3T0QzZ6XJRhhe
1gcNULKAi4HgEZhzo3IKI1tVaWDVpmOpm20w4r7kGw1gkEGEGvIJ7ms4k5ZzvJ+6wg0ZJZLy
mlNLONK1rmumTmnEkcT2ibSMMp81obeV0s0g4ZpznOpUIRlQtitm+CzIX0kC9aAZ+GI/Jios
0rkVBcaNuBJhVBtl1+eoJIfl4/t2KG9WKrS0q9NCpZJ6CKjvGFgSZpGUaC6b4fX1BzKfzSNR
krCDmni2Nufy4KWB0dYIpcVJaJcBHmOB5sbpCAhhbbBp7RRl4xI3TCNAVjcOwcfAXogKLCaz
rsmXvZ/VgDSW+Xl0CGO1diK8Ynvu3Dy7HeXFu1T8Lq/70g2qVf6z3/tl/pcFT/ok2oOHpgfs
cdnKsHwvf1tjNL/B87ttLjEtvlCjZpNm1lwXu0CDqgc9b8Njb9gdB/Lx8YH0V0UM6yR8Gn6A
D1FSN2B0qKztYqJeDP8whe7H77oQUaqUTcVl9RNuK7nYNujuSIQ0fJ+k4bOAvejEUbEVFYeh
0PW4dRNYUPxPXUXL42TfzJ/jbXx3B2ue+fIh9q2ZKtKQ+fg2xOqj062M3mb96BzpGTerw0Pu
zrQyK1DTVqcKmAPydCSh2e1nEOcOKN0MEeqngnHK+hqDqqxmP4MhPboNwpysZm/vEM+ZzuZA
5cytew71aUY0lhvL1mZcjxgc5KKep80Rsg0/ycHW8qF/O1OACNDkE+IAJQLKiIOj2xIgDEes
jCvslnbDVqYcgKdTDC8TFDw+R4DyB6EvreAd15TAZfj57jMuHn+uKhCfqm/5J761oes705QA
/MTvZ/Hzch52AKzw8O/4j4hJRO47kxpnAA+NHloiVc+U5wL6W5Hmm5Xv9e/LS25YydwdMRze
CHlqpcVtbKqcJXwUw7y3Ydt/wskvzCZoO5eaD0ZPBxOvYQqFvfgFPg18ogL9l53xsR8Mm4LO
IKdea6iZzGqWVs/BIxpZXj/uM3mldJSiDdBbXhfOBt7Lyn9NkHLWLhk5ugXgVqZelkbgP7pg
p0SLSTOy9P270Bt7Ar0SgvGrr3U88ZcxdVR1VxLGA89vcrN+ebZf/22iK8vsUcNI4A8HZEuS
Ct1d164IpCmKXCaA34k10KHYgZZt/nsY6ktFp21WCMbB+fsorHY1NVgHu6r2LpebxF47pqFC
c//VQ5t7tpRztNUhxLgXIhediPLOJOJJtf2okk+5jmFHGFuIsfh4ssOlbXLNGplhWWf/VsGW
vK5idaYb3XiTTPZbaulm/0apolX82O1M2Xmz3XmZj9lZsvMj9lZsvMj9lZsvMj9lZsvMj9lZ
svMj9lZsvMj9lZsvM/M7LzbiB2W13nZYmZeO8/ouyc4wiezzRy4JZrW0dh6VQ9TrhLXF3p+j
74SU285zjj22yFDo+VCHUDV+X0UihOI=
}

 

The third common problem with the trap shapes which have been designed to be used as textures is that some formula writers did not include a size parameter. The only practical way to use these trap shape textures is to put them inside a TrapShape Block rather than using them directly. In the next upr the texture is still fBm (also called Perlin Noise), but from mt.ulb. One of the nice things about Perlin Noise is that a number of standard functions can be used to modify the shape of the texture. In the next upr the function is cotanh. In this case texture amount = 0.0005, or 500 times smaller than the default value. Since there is no size parameter for this trap shape texture, the size is set using the size parameter in Trap Position, which is one of the plug-ins included in TrapShape Block. Size = 0.02, which is 5 times smaller than the default value. In general, size in Trap Position will be the reciprocal, as far as effects on texture density, as a size parameter included in the shape itself.

Tutorial_5 {
::2HM3Jin2tj1zvNKOU47Vq/Pg4epAJQSnV+S7Ma0Oa7sjm2jrUkDYS8WjNy2Mt5/+9ZDkk2mC
m29wKtcDb/+e/w2vnf8VIxZaM7TnfmnnmqZEk/91ahkiZrS89ekmr3iSnH6tlQ3sVjSii9Y4
dEpCFbwkJJ5UtC5/TB37askT06f7qLnFeZcY4S/zPzKsV9Z4KNVwR+/hZKvIfPRFOjq3hiCD
9KJyNkSROBJ+FRCogZ0bF5oyammWhVqzPrEXVR5ba0GhrJSUYQY8yZpXlGPbR6irivMMIZ+s
0lpzTnHnEl4Vi3wRLmFM7q0lXNzgEz3Ah5FRzTCinns48zKESwIYraLxPRN6FcpQvKiMbLJ7
BkoowrgyIccJsBJJrDqLK99AXQuD5/taGFfNmyE1afjSqWBhgyErRBgWWpJKNCiN4z1NiZ1v
ZpqI0FhBLSA/G2PpcFNn0cYIxcVB4JcBnc+ZAmXvEjyJYpnkURwaQwj8x70YeOWmHUnxs+Ur
v+VCnIpZfVizpwU3IYwZNfTrbn1O8GGsfj8zL/7kga26P95b/2q/UumqvXirU9BK4Xr20YC7
p6rXtbsZ53AfrvNskg/tSYcLtxtGS+iVWxIMSm+FxmJsuzug/QIfeA6q0YIlyR5NB1ROqLgq
sDwMm5qL2kkBHewQvDj9dUJKNWqRuay2UFX19D0K3lmJEg0fJ+kyXdk86tSiarglDFDSebl3
k1Ap6I/MRZpgbP9Nn833tivDod98/YAHMtzQqVE57A2zDUHh1sZ2VQ9yRjpEqYrgyPujLXSL
0jzUqMMU1OydASh2e1HFOeMKNpaM4UPQecsyPWbgVV26B9k+sFXROVlNz8/QQ59WdzIkzF3a
F+gVjCjGW89l2MjrMOkLXRhLlnOjlI9HG74yXtyv3sjAQ1IBBv8LJ488IkzS7YGwRKP2RlXU
zzspKNNU4mFEwTFjw/BxHVA0oeXjA86+LAZbs81ZG3CTfDTog+z87HsrXjaldvNHjwPS1bP8
YmLI7SoMDzaij3CHUE5o3JjTOhAwbOKBjm3fpcyT6aJ5Vpk2iMXzEZP4PIYnzJ3LujFaOBg1
GXyNUu1nwfZUkpZhxptxGzv/uIeTFMmeK6zLq+gKZE9b4gGco7je1iL9i0rCaKrB/H67VBO1
piTaYweK6PQGqLmBR/xs/wd48c8t97UqtZo3e/qfQkwLYfXQVk7BJtZqg4+urt3XW6IbH6Ug
FZas5e8ixBrywzAsrzzId/9ThzgL4RoM4mDf74MqiQgnninNPJdx4OrfRrcfvmxablzeWJ9H
lu+IlUHTjevFcO4+DpCD5PW4mGaOU380lr2LsSLJ8N6tG6tCD75na3z5RDpUwe6P/y12Wb6I
p537oAwfYt46G6Ry/MnwVQgvunZCHBlTVZSi20EX7Xe21UuEWQ7R2vNUW2xuUDJiwdR4bFy/
OaZFj4BruzWP3rTuAfPVpQAnF7IKv9lqjCXaUAlnTeCF24Lo5hpLjWMrd24wu5jCnlCZLg1b
Z80a8W1yF71SHfoxJJnk40rxZPsRKq55vk70JmSPJTp5EQMYTKY+BpwSoULfi00JSTnINdi0
0JSTnINdi00JSTnINdi00JSTnINdi00JSTnINdi00JST//Appv4tqOOa+Mc7AD3O+PElpHPM
v19cEM0oXtW0UwdHR9vGFoXE3Y+nzBaU6iFLijSan+iDsgGOK6P/H0c4vNE=
}

 

Multiple trap shape textures can be applied by using TrapShape Merge. For success in using this wrapper there is a define procedure that should be folllowed.  It is strongly recommended that if several trap shape textures are used that each one be applied individually, either by themselves, or within a TrapShape Block so that the texture parameters for the shape can be optimized, especially including size and texture amount. There will be only one texture amount to apply to all the textures together, but individual optimization will provide guidance as to the final value to use. Also, consider how Trap Position works. If for shape #1 you set the size to 0.1, that size carries through to shape #2. If shape #2 uses a size of 0.03, you might want to start with a size of 0.3 in Trap Position for the second shape, as 0.1 x 0.3 = 0.03. My experience is that adjustments to texture amount and size are often necessary, and there is one further place to make adjustments. There is a trap transfer plug-in for each shape in TrapShape Merge. I have often found that replacing the default Null Transfer with Trap Transfer and making further adjustments is  helpful. In the upr that follows, which uses Popcorn Texture and Voroni Texture,  the two textures don't blend all that well, so that adjustments to Trap Transfer had to be made to get an interesting looking texture. 

Tutorial_6 {
::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
2hvZwO8NA2hvhwO8hH7wHasDfDgd4bIsDfgxO8NA2hP4YH+mD7wHIsDfYxO8NA2hvBxO8BG7
wHasDfwxOCmH2RAgYHBacDbgWYHB6jdEYUsjAoxOCgH7IwMYHBmB7IwAYHBGC7IAesjAoxOC
MA2RghwOCAG7IwAYHBgjdEYOsjAgwOCgF7IwAYHBGE7IAYsjAoxOCAH7IceYHhAidEqxNsha
hdEqP2RoRxOChG7IEesjQzgdEaGsjQDgdEaIsjQ4xOChG7I0AYHhGC7IEYsjQDgdECO2Ro5w
OCBC7IEWsjQDgdEaQsjQgxOChG7IEcsjo5hdEBI2RkG3wGpF2Rk+YHRGF7ICasjI4xOiMD2R
kZwOiMA2RkhwOigH7ICasjIDgdEZIsjIgxOiMA2RE4YHRmD7ICIsjIYxOiMA2RkBxOiAG7IC
asjIwxOcsnH3hj9ggHtZSyk2lat1ZDO0Wv9pWbA2oatHE+odw4gm7Ut2DSf0NWPnxshwPaVc
W7+r2Dyf09wi5uryaPIAC06ekWojrZWbXtKI682vatHkBpbp05sh1aPIES3I7khQGUxquVFE
zaHrVJRnz2B7g9/n7eE/LgLIkZJrub32ZG7at2Dii0K5jagict2Xtu+c2U/sHkIp/JyOApXH
VXxcQSezVoLZSOW658ZSen4avNlbPIVSHGKIK2jlcsCxBwSOtv83sTic+hn3etxzbi/iKe+W
Rz2ok9HsNKdyeqevNUc0Qt+r5bz4PW87Vpb7BStGRMVBVuo9XlLqG0Rjm44hYNZqoQ+5tp5d
qc02u6MgN5NcyPXHb9909lZ8Fyf912dKnFHb3SrF17LKkjbvyrXcyte+EpLlSzXz/Rs9i2zY
M1LwNyr/gyW0fYinvTYg7931bWctn7eVzLOpxRrkjQp30z5+ML55tVFHyX/Wbn7/fNZu1cZz
kjDL9O3KWViglj+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cof
zh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh
+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+N
H63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH6
3cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63cofzh+NH63c
ofzh+N3/T73cvBU5oda9zp1CWeyHtHV9fbbm7yvuuP9UM4yVsDiiuND22dfRj6HdO+BBBEHa
/h/0ZLpzeSmR3fCoI9o9
}

 

There are some very interesting wrappers and a special transform that can be used to expand the possibilities of how to apply textures. These will be the subject of Tutorial 5.