{"id":7174,"date":"2012-03-03T11:53:16","date_gmt":"2012-03-03T09:53:16","guid":{"rendered":"http:\/\/4eyes.code66.se\/?p=7174"},"modified":"2012-03-05T10:40:28","modified_gmt":"2012-03-05T08:40:28","slug":"making-an-interesting-filterforge-filter-episode-one","status":"publish","type":"post","link":"http:\/\/4eyes.code66.se\/?p=7174","title":{"rendered":"Making an interesting FilterForge Filter &#8211; Episode one"},"content":{"rendered":"<p>Hello,<\/p>\n<p>I&#8217;ve promised several times that I would make a new <a title=\"FilterForge\" href=\"http:\/\/www.filterforge.com\/?affiliateid=200100725\" target=\"_blank\">FilterForge<\/a> tutorial, last time was to the Bald Wizards Club, and here we are. This is the first step.<\/p>\n<p><!--more--><\/p>\n<p>So, first we start our FilterForge. I will be using version 2.0 as 3.0 have some weird crashes in the filter editor still which will just make me angry if I crash when I&#8217;m making the filter. What I&#8217;ve set out to do is a floor texture filter with stone slabs and wood frames around. As this is a filter made from several different pieces, we make one at a time, and I start with some wood.<\/p>\n<p>We click Edit filter and crate a new, this is what you will see.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s001.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7197\" title=\"s001\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s001.jpg\" alt=\"\" width=\"646\" height=\"470\" \/><\/a><\/p>\n<p style=\"text-align: left;\"><em>Click for larger.<\/em><\/p>\n<p style=\"text-align: left;\">We now create a <strong>3-Color Gradient<\/strong>, and set it up like this with a repeat around 10, might change that and the <em>Transition<\/em> to Noise.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s002.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7196\" title=\"s002\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s002.jpg\" alt=\"\" width=\"559\" height=\"303\" \/><\/a><\/p>\n<p>Now we add three color controls, ole for each of the colors to get some good wood colors.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s003.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7195\" title=\"s003\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s003.jpg\" alt=\"\" width=\"465\" height=\"253\" \/><\/a><\/p>\n<p>We then create a <strong>Perlin Noise<\/strong> that we set up this way, just to see that it looks the way we want it.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s004.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7194\" title=\"s004\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s004.jpg\" alt=\"\" width=\"568\" height=\"323\" \/><\/a><\/p>\n<p>Then its time to add some control over the noise. We create one slider that we call <em>Grain<\/em>, and connect it to the Roughness of the <strong>Perlin Noise<\/strong>. We check the Use Remapping checkbox, which will show a little number box on the connecting line.<\/p>\n<p><strong>Tip:<br \/>\n<\/strong><em>When\u00a0setting up remapping limits, set the slider Value to minimum, then change the minimum value in the remapping edit until you see what you say is the lowest effect you want. Then set the Value to max, and lower the maximum setting in the remapper until you hit the max point. This will save you a lot of fiddling and trying to figure you why the filter makes such bad textures when you use randomizer for example.<\/em><\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s005.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7193\" title=\"s005\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s005.jpg\" alt=\"\" width=\"632\" height=\"175\" \/><\/a><\/p>\n<p>After we added Grain, and a another slider for Contrast using the same technique, we&#8217;re ready to continue. We now add an <strong>Elevation Gradient<\/strong>.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s006.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7192\" title=\"s006\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s006.jpg\" alt=\"\" width=\"251\" height=\"182\" \/><\/a><\/p>\n<p>We connect out <strong>Perlin Noise<\/strong> to the Elevation input and the <strong>3-Color Gradient<\/strong> to the Gradient Input, and look, we got something looking like wood.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s007.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7191\" title=\"s007\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s007.jpg\" alt=\"\" width=\"481\" height=\"288\" \/><\/a><\/p>\n<p><em>Click for larger.<\/em><\/p>\n<p>Now we could say done, but this would be a rather flat and dull looking wood. If we look at the Result component, we could attach the output the the Source and be done, but I have a better idea.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s008.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7189\" title=\"s008\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s008.jpg\" alt=\"\" width=\"303\" height=\"326\" \/><\/a><\/p>\n<p>We change the Result component to Surface. Now we can add a height map to it.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s009.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7190\" title=\"s009\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s009.jpg\" alt=\"\" width=\"605\" height=\"288\" \/><\/a><\/p>\n<p>We start with making some scratches for the height map. We add a <strong>Blocks<\/strong> component and set it up like this.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s010.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7188\" title=\"s010\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s010.jpg\" alt=\"\" width=\"570\" height=\"383\" \/><\/a><\/p>\n<p>No we add a <strong>Wave<\/strong> component and set it up like this.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s011.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7187\" title=\"s011\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s011.jpg\" alt=\"\" width=\"568\" height=\"329\" \/><\/a><\/p>\n<p>And now, some magic, we connect the wave to the Profile of the blocks. We now add a <strong>Noise Distortion<\/strong>, set up like this.<a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s012.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7186\" title=\"s012\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s012.jpg\" alt=\"\" width=\"561\" height=\"273\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>We then feed it from the\u00a0<strong>Blocks<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<div><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s013.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7185\" title=\"s013\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s013.jpg\" alt=\"\" width=\"505\" height=\"285\" \/><\/a><\/div>\n<p>What next? We add a <strong>Round<\/strong> component and connect a slider to Granularity. We do the slider setting so we got something in both ends, trimming the range. Then we connect one of our first components the Perlin Noise to this one.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s016.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7182\" title=\"s016\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s016.jpg\" alt=\"\" width=\"711\" height=\"174\" \/><\/a><\/p>\n<p>We add a <strong>Desaturate<\/strong> after the <strong>Round<\/strong>, just in case we decide to feed the Granularity with something else that is not grey scale.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s017.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7181\" title=\"s017\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s017.jpg\" alt=\"\" width=\"215\" height=\"193\" \/><\/a><\/p>\n<p>We now add a slight <strong>Blur<\/strong> to this, hooking it up to the Desaturated Round output.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s018.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7180\" title=\"s018\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s018.jpg\" alt=\"\" width=\"542\" height=\"237\" \/><\/a><\/p>\n<p>We now add a <strong>Threshold<\/strong> component, and add a slider to the High Value, setting the range between light and dark grey. We feed the output from the Noise Distortion as Source, and the Blur to the Low input.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s019.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7204\" title=\"s019\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s019.jpg\" alt=\"\" width=\"745\" height=\"214\" \/><\/a><\/p>\n<p>W now connect this to the Height map of the <strong>Result<\/strong> component , and the wood we made before to the Surface Color. We call the filter Wood Tutorial and save it.<\/p>\n<p>So, what does the result look like? These are nor set in tiling mode.<\/p>\n<p>Here is the diffuse map (what the wood would have looked like without a height map added.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/Diffuse-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7199\" title=\"Diffuse-1\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/Diffuse-1.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>And here is the generated bump map.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/bump-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7198\" title=\"bump-1\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/bump-1.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>And here is a texture with height added in the rendering process.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/texture-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7200\" title=\"texture-1\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/texture-1.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>And here is the zipped filter for you to dissect.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/Wood-Tutorial.ffxml_.zip\">Wood-Tutorial.ffxml<\/a><\/p>\n<p>I hope you like this tutorial. Soon we will do part two, a stone \u00a0floor texture filter, the first of two.<\/p>\n<p><a title=\"Next episode\" href=\"http:\/\/4eyes.code66.se\/?p=7210\">Next episode<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, I&#8217;ve promised several times that I would make a new FilterForge tutorial, last time was to the Bald Wizards Club, and here we are. This is the first step.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[13,70],"class_list":["post-7174","post","type-post","status-publish","format-standard","hentry","category-tools-of-the-trade","tag-filterforge","tag-tutorial"],"_links":{"self":[{"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts\/7174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7174"}],"version-history":[{"count":10,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts\/7174\/revisions"}],"predecessor-version":[{"id":7207,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts\/7174\/revisions\/7207"}],"wp:attachment":[{"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7174"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}