{"id":2368,"date":"2015-11-23T23:11:27","date_gmt":"2015-11-23T23:11:27","guid":{"rendered":"http:\/\/www.amzsaki.com\/?page_id=2368"},"modified":"2020-09-01T03:06:16","modified_gmt":"2020-09-01T03:06:16","slug":"synthesis-of-textures-and-bump-maps-of-tiled-surfaces-part-iii","status":"publish","type":"page","link":"https:\/\/www.amzsaki.com\/?page_id=2368","title":{"rendered":"Synthesis of textures and bump maps of tiled surfaces \u2013 Part III"},"content":{"rendered":"<p><a href=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/blue_tile_localnoise01_RENDERED.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-2393\" src=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/blue_tile_localnoise01_RENDERED-1024x912.jpg\" alt=\"Image converted using ifftoany\" width=\"850\" height=\"557\" \/><\/a><\/p>\n<h1><strong>Making more noise &#8211; Of marble and wood<\/strong><\/h1>\n<p style=\"text-align: justify;\">The noise function thus far does an excellent job of creating random patterns that smoothly vary across the tiles. However, the output of Equation (1) a few sections earlier can be further modified to give other natural looking textures like marble or wood. Thus, once the value of noise was calculated using Equation (1), a further modification can be done such that<\/p>\n<pre><span style=\"color: #ffffff;\">noiseValue=0.5+cos(noiseX+noiseValue*parameterA)*0.5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0(2)<\/span><\/pre>\n<p style=\"text-align: justify;\">In essence, Equation (2) \u2018corrupts\u2019 a smoothly-varying cosine function with noise, creating wavy patterns. The final noise value will have low frequency noise for low values of parameterA and high frequency for higher values of parameterA. The table below illustrates this<\/p>\n<p><strong>Table 2 Cosine modulated noise<\/strong><\/p>\n<p style=\"text-align: justify;\">\u00a0[table id=2 \/]<\/p>\n<p style=\"text-align: justify;\">With a judicious use of color, the above can be translated into texture that resembles marble, as shown in Figure 15, for example a marble-like surface with medium grey veining and a pinkish-white field.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-2381\" src=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED-1024x912.jpg\" alt=\"Image converted using ifftoany\" width=\"625\" height=\"557\" srcset=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED-1024x912.jpg 1024w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED-300x267.jpg 300w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED-624x556.jpg 624w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/grey_marble_tile_localnoise01_RENDERED.jpg 1717w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><strong>Figure 15 Marble-like texture map using a modulated cosine noise<\/strong><\/p>\n<p style=\"text-align: justify;\">The texture and bump maps used in rendering Figure 15 were as follows, while the input file is included right below the figure.<\/p>\n<p style=\"text-align: justify;\">\u00a0<a href=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure16.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2383\" src=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure16-1024x512.jpg\" alt=\"figure16\" width=\"625\" height=\"313\" srcset=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure16-1024x512.jpg 1024w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure16-300x150.jpg 300w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure16-624x312.jpg 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><strong>Figure 16 Texture maps for a marble-like appearance<\/strong><\/p>\n<pre><span style=\"color: #ffffff;\">outputFileName \/Users\/amzs\/Desktop\/grey_marble_tile_localnoise01.tif\ntextureWidth 2048\ntextureHeight 2048\ntiledAreaWidth 10.0\ntiledAreaLength 10.0\ntileWidth 1.0\ntileLength 0.6\ngroutWidth 0.02\ntileColorGlobalColorType variable\ntileColorGlobalColorNoiseType perlin\ntileColorGlobalColor 1.0 1.0 1.0 1.0\ntileColorGlobalColorLowSide 1.0 1.0 1.0 1.0\ntileColorGlobalColorHighSide 1.0 1.0 1.0 1.0\ntileColorGlobalNoiseXMin 0.0 \ntileColorGlobalNoiseYMin 0.0 \ntileColorGlobalNoiseXMax 10.0 \ntileColorGlobalNoiseYMax 10.0\ngroutColorColorType variable\ngroutColorColorNoiseType random\ngroutColorColor 0.8 0.8 0.8 1.0\ngroutColorColorLowSide 0.6 0.6 0.6 1.0\ngroutColorColorHighSide 0.9 0.9 0.9 1.0\ntileColorLocalColorType variable\ntileColorLocalColorNoiseType cosineModulated\ntileColorLocalColor 0.9 0.9 0.9 1.0\ntileColorLocalColorLowSide 0.68 0.68 0.68 1.0\ntileColorLocalColorHighSide 1.0 0.94 0.88 1.0\ntileColorLocalNoiseXMin 0.0 \ntileColorLocalNoiseYMin 0.0 \ntileColorLocalNoiseXMax 50.0 \ntileColorLocalNoiseYMax 50.0 \ntileColorLocalOctaves 16\ntileColorLocalPersistence 0.5\ntileColorLocalParameterA 4.0\ntileBumpNoiseAlternateColorType variable\ntileBumpNoiseAlternateColorNoiseType perlin \ntileBumpNoiseAlternateColor 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateColorLowSide 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateColorHighSide 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateNoiseXMin 0.0\ntileBumpNoiseAlternateNoiseYMin 0.0\ntileBumpNoiseAlternateNoiseXMax 8.0\ntileBumpNoiseAlternateNoiseYMax 8.0\ntileBumpNoiseAlternateOctaves 2\ntileBumpNoiseAlternatePersistence 0.25\nrandomTileOrientation false\nrandomTileNoiseStartPoint true\ngenerateBumpMap true\ntileBumpNoiseAlternate true\nuseTileXOffset\ntileXOffset 0.51\nblurFinalImage true<\/span><\/pre>\n<p style=\"text-align: justify;\">If a different function is used to alter the noise value obtained from Perlin noise, we can go from marble to wood, one line difference, I promise. Consider Equation 3, which alters the noise output in a different way<\/p>\n<pre><span style=\"color: #ffffff;\">noiseValue = noiseValue *parameterA-(int)( noiseValue *parameterA)\u00a0\u00a0\u00a0\u00a0 (3)<\/span><\/pre>\n<p style=\"text-align: justify;\">In essence this statement computes the difference between a scaled noise value (scaled by parameterA) and it\u2019s rounded-down integer value, generating visible bands resembling the grain and figure of certain woods (oak comes to mind).<\/p>\n<p style=\"text-align: justify;\">By further thresholding the noise value, a two-tone wood grain can be achieved, as shown in Table 3.<\/p>\n<p><strong>Table 3 Parameters for wood-like grain<\/strong><\/p>\n<p>[table id=3 \/]<\/p>\n<p style=\"text-align: justify;\">Generating texture and bump maps using the wood-like grain noise can result in relatively convincing tiles like the one shown below in Figure 17, resembling the recently ubiquitously trendy wood-grained porcelain tiles. The texture and bump maps used in the rendering were as shown in Figure 18 and the input file used in generating the texture and bump maps is included below the figures.<\/p>\n<p><a href=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-2390\" src=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED-1024x902.jpg\" alt=\"Image converted using ifftoany\" width=\"625\" height=\"551\" srcset=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED-1024x902.jpg 1024w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED-300x264.jpg 300w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED-624x550.jpg 624w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/woodtiles01_RENDERED.jpg 1731w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><strong>Figure 17 Wood-grained tiles<\/strong><\/p>\n<p><a href=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure18.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2392\" src=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure18-1024x512.jpg\" alt=\"figure18\" width=\"625\" height=\"313\" srcset=\"https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure18-1024x512.jpg 1024w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure18-300x150.jpg 300w, https:\/\/www.amzsaki.com\/wp-content\/uploads\/2015\/11\/figure18-624x312.jpg 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><strong>Figure 18 Texture and bump maps for wood-grained tiles<\/strong><\/p>\n<pre><span style=\"color: #ffffff;\">outputFileName \/Users\/amzs\/Desktop\/woodtiles01.tif\ntextureWidth 2048\ntextureHeight 2048\ntiledAreaWidth 10.0\ntiledAreaLength 10.0\ntileWidth 2.0\ntileLength 0.4\ngroutWidth 0.02\ntileXOffset 1.01\ntileColorGlobalColorType variable\ntileColorGlobalColorNoiseType perlin\ntileColorGlobalColor 1.0 1.0 1.0 1.0\ntileColorGlobalColorLowSide 1.0 1.0 0.93725490196078 1.0\ntileColorGlobalColorHighSide 1.0 0.97254901960784 0.89019607843137 1.0\ntileColorGlobalNoiseXMin 0.0 \ntileColorGlobalNoiseYMin 0.0 \ntileColorGlobalNoiseXMax 10.0 \ntileColorGlobalNoiseYMax 10.0 \ntileColorLocalColorType variable\ntileColorLocalColorNoiseType wood\ntileColorLocalColor 0.3359375 0.18359375 0.0546875 1.0\ntileColorLocalColorLowSide 0.27734375 0.13671875 0.01953125 1.0\ntileColorLocalColorHighSide 0.65625 0.3984375 0.1796875 1.0\ntileColorLocalNoiseXMin 0.0 \ntileColorLocalNoiseYMin 0.0 \ntileColorLocalNoiseXMax 10.0 \ntileColorLocalNoiseYMax 50.0 \ntileColorLocalOctaves 2 \ntileColorLocalPersistence 0.25 \ntileColorLocalParameterA 20.0 \ntileBumpNoiseAlternateColorType variable\ntileBumpNoiseAlternateColorNoiseType perlin \ntileBumpNoiseAlternateColor 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateColorLowSide 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateColorHighSide 1.0 1.0 1.0 1.0\ntileBumpNoiseAlternateNoiseXMin 0.0\ntileBumpNoiseAlternateNoiseYMin 0.0\ntileBumpNoiseAlternateNoiseXMax 2.0\ntileBumpNoiseAlternateNoiseYMax 2.0\ntileBumpNoiseAlternateOctaves 2\ntileBumpNoiseAlternatePersistence 0.25\ntileDiscolorationMapColorType variable\ntileDiscolorationMapColorNoiseType perlin\ntileDiscolorationMapColor 1.0 1.0 1.0 1.0\ntileDiscolorationMapColorLowSide 1.0 1.0 1.0 1.0\ntileDiscolorationMapColorHighSide 1.0 1.0 1.0 1.0\ntileDiscolorationMapNoiseXMin 1.0\ntileDiscolorationMapNoiseYMin 1.0 \ntileDiscolorationMapNoiseXMax 1.5\ntileDiscolorationMapNoiseYMax 1.5\ntileDiscolorationMapOctaves 16\ntileDiscolorationMapPersistence 1.0\ntileDiscolorationMapThresholdLower 0.5\ntileDiscolorationMapThresholdUpper 1.0\ntileDiscolorationMapThresholdPercentReduction 20.0\ntileDiscolorationMapGenerate true\ngroutColorColorType variable\ngroutColorColorNoiseType random\ngroutColorColor 0.5 0.5 0.5 1.0\ngroutColorColorLowSide 0.4 0.4 0.4 1.0\ngroutColorColorHighSide 0.6 0.6 0.6 1.0\nrandomTileOrientation false\nrandomTileNoiseStartPoint true\nuseTileXOffset\ngenerateBumpMap true\ntileBumpNoiseAlternate true\nblurFinalImage false<\/span><\/pre>\n<p style=\"text-align: justify;\">These few examples are only scratching the surface what can be done with noise. Particularly, if noise at various scales is layered over each other or used to alter some other aspects of texture and bump map image synthesis. So, go ahead and experiment, the wonderful world of noise awaits you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making more noise &#8211; Of marble and wood The noise function thus far does an excellent job of creating random<\/p>\n<p><a href=\"https:\/\/www.amzsaki.com\/?page_id=2368\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\">Synthesis of textures and bump maps of tiled surfaces \u2013 Part III<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":298,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2368","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/pages\/2368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2368"}],"version-history":[{"count":13,"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/pages\/2368\/revisions"}],"predecessor-version":[{"id":3339,"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/pages\/2368\/revisions\/3339"}],"up":[{"embeddable":true,"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=\/wp\/v2\/pages\/298"}],"wp:attachment":[{"href":"https:\/\/www.amzsaki.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}