{"id":7341,"date":"2012-03-16T07:00:44","date_gmt":"2012-03-16T05:00:44","guid":{"rendered":"http:\/\/4eyes.code66.se\/?p=7341"},"modified":"2012-03-19T10:35:10","modified_gmt":"2012-03-19T08:35:10","slug":"making-an-interesting-filterforge-filter-episode-seven","status":"publish","type":"post","link":"http:\/\/4eyes.code66.se\/?p=7341","title":{"rendered":"Making an interesting FilterForge Filter &#8211; Episode seven"},"content":{"rendered":"<p>again,<\/p>\n<p>I&#8217;m sorry for the one day late post but today we&#8217;re doing a lot of things and we will learn much new stuff, so I hope it was well worth the wait. Last time we made a real filter but realized that it was slow, dreadfully slow.Today we will use a completely different technique to achieve the same results as last episode, maybe even better with much shorter render time.<\/p>\n<p><!--more--><\/p>\n<p>We begin with setting up the basic \u00a0structure for the stone floor tiles height map as we did in the last episode, and for our test filter.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s701.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7365\" title=\"s701\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s701.jpg\" alt=\"\" width=\"634\" height=\"373\" \/><\/a><\/p>\n<p>Then we add the stone surface from our first tutorial stone filter.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s702.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7364\" title=\"s702\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s702.jpg\" alt=\"\" width=\"698\" height=\"361\" \/><\/a><\/p>\n<p>Now we add the stone height map from the second stone filter we made, remember this one? We tweak it so the height map is rather light (<em>high altitude as we want a deep mortar on this<\/em>).<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s703.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7363\" title=\"s703\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s703.jpg\" alt=\"\" width=\"637\" height=\"286\" \/><\/a><\/p>\n<p>As you can see, mix-and-match different methods is one of the great ways of making filters. We add our mortars also, and then we render one just to be sure.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s703a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7361\" title=\"s703a\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s703a.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>We add the wood from our first wood tutorial, and this is what we have when we just pulled things in.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s704.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-7362\" title=\"s704\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s704.jpg\" alt=\"\" width=\"710\" height=\"728\" \/><\/a><\/p>\n<p><em>Click for a larger picture<\/em><\/p>\n<p>So, what is this, looks the same as last episode still. We now add a <strong>Frame<\/strong> component, and feed the wood we have to the <em>Margins<\/em>, the <em>Content<\/em> to our stone tiles and inner frame to our mortar. We add a slider for the \u00a0<em>Margin Width<\/em>, so we can control the width of the wood.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s705.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7360\" title=\"s705\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s705.jpg\" alt=\"\" width=\"855\" height=\"306\" \/><\/a><\/p>\n<p>Now we make a copy of that <strong>Frame<\/strong> component and set that up for the height map, this way.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s706.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7359\" title=\"s706\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s706.jpg\" alt=\"\" width=\"318\" height=\"788\" \/><\/a><\/p>\n<p>As you saw in the previous picture, the wood \u00a0height was to dark, so we put a <strong>Gamma<\/strong> component between and lighten that up a little.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s707.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7358\" title=\"s707\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s707.jpg\" alt=\"\" width=\"788\" height=\"221\" \/><\/a><\/p>\n<p>Now we have what we did yesterday, it looks almost the same.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s708.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7357\" title=\"s708\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s708.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>Now, how about a wooden tiled \u00a0floor as well, not a gigantic wooden board? We need to see to that the wood pattern is not vertical but horizontal before we can try this.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s712.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7351\" title=\"s712\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s712.jpg\" alt=\"\" width=\"310\" height=\"343\" \/><\/a><\/p>\n<p>A sample of the wood through a fish bone weave pavement.\u00a0We add a <strong>Pavement<\/strong> component and set it up like this.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s709.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7356\" title=\"s709\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s709.jpg\" alt=\"\" width=\"848\" height=\"416\" \/><\/a><\/p>\n<p>And here it&#8217;s setup for the wood.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s710.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7355\" title=\"s710\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s710.jpg\" alt=\"\" width=\"532\" height=\"606\" \/><\/a><\/p>\n<p>But how do it compare in render time?<\/p>\n<p><em>I&#8217;ve done this on my laptop, only having a dual core i7 with hyper threading, which is a bad render machine (Xeons are much better as they can crunch full whack on all 4 threads, not as i7, that is faster when running only one thread per core.<\/em><\/p>\n<p>The filter from last episode rendered in 2 minutes and 58 seconds for a 600&#215;600 image.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s715.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7352\" title=\"s715\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s715.jpg\" alt=\"\" width=\"260\" height=\"86\" \/><\/a><\/p>\n<p>This filter with nicer wood but so far only one stone color renders in 32 seconds, same image size. That&#8217;s about six times faster.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s714.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7353\" title=\"s714\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s714.jpg\" alt=\"\" width=\"253\" height=\"116\" \/><\/a><\/p>\n<p>And this is how it looks now.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s713a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7349\" title=\"s713a\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s713a.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>But we&#8217;re not done yet, this is just the beginning. Now we make a copy of the stone surface part, rename the controls and change the default colors.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s716.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7348\" title=\"s716\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s716.jpg\" alt=\"\" width=\"743\" height=\"311\" \/><\/a><\/p>\n<p>Then we setup another Stones as the one used for the mortar, but like this (<em>we did this in the tutorial 2 remember<\/em>).<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s717.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7347\" title=\"s717\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s717.jpg\" alt=\"\" width=\"600\" height=\"397\" \/><\/a><\/p>\n<p>Now we use a Threshold to put the two different stone surfaces on different stones.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s718.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7346\" title=\"s718\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s718.jpg\" alt=\"\" width=\"785\" height=\"262\" \/><\/a><\/p>\n<p>As you can see, I lightened up the stones after I tested some different variations as this made a better random distribution.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s719.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7345\" title=\"s719\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s719.jpg\" alt=\"\" width=\"797\" height=\"392\" \/><\/a><\/p>\n<p>Now, how will ir look with two colors for the stone slabs, set to almost the same color.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s720.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7344\" title=\"s720\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s720.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>And the rendering time was not that bad either.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s721.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7343\" title=\"s721\" src=\"http:\/\/4eyes.code66.se\/wp-content\/uploads\/2012\/03\/s721.jpg\" alt=\"\" width=\"232\" height=\"92\" \/><\/a><\/p>\n<p>I think I have to call it a day here, but I&#8217;ve still got so many things to do with this filter before we can say it is in releasable state. In the next episode we will do even more than today, maybe I&#8217;ll have to cut that into two episodes.<\/p>\n<p>And no filter today as it&#8217;s still not complete and too complicated to explain.<\/p>\n<p><a href=\"http:\/\/4eyes.code66.se\/?p=7370\">Next episode<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>again, I&#8217;m sorry for the one day late post but today we&#8217;re doing a lot of things and we will learn much new stuff, so I hope it was well worth the wait. Last time we made a real filter but realized that it was slow, dreadfully slow.Today we will use a completely different technique [&hellip;]<\/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-7341","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\/7341","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=7341"}],"version-history":[{"count":6,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts\/7341\/revisions"}],"predecessor-version":[{"id":7369,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=\/wp\/v2\/posts\/7341\/revisions\/7369"}],"wp:attachment":[{"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7341"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4eyes.code66.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}