{"id":445,"date":"2016-02-21T01:35:19","date_gmt":"2016-02-21T01:35:19","guid":{"rendered":"http:\/\/fractorium.com\/?page_id=445"},"modified":"2020-03-01T04:26:49","modified_gmt":"2020-03-01T04:26:49","slug":"filters","status":"publish","type":"page","link":"http:\/\/fractorium.com\/?page_id=445","title":{"rendered":"Filters"},"content":{"rendered":"<p>Filtering parameters are used to specify details about the three filtering stages used to alter and improve the look of the final output image.<\/p>\n<h3 class=\"collapseomatic \" id=\"id6a09f0d679331\"  tabindex=\"0\"     >Density<\/h3><div id=\"target-id6a09f0d679331\" class=\"collapseomatic_content \">\n<p>This is sometimes referred to as\u00a0density estimation, or DE. This is a misnaming as there is no estimation taking place. Rather, a variable width Gaussian filter is applied to each log scaled histogram cell after all iteration is complete. The Xml fields\u00a0<code>estimator_minimum<\/code> and <code>estimator_radius<\/code>\u00a0specify the minimum and maximum widths that the filter can be. The <code>estimator_curve<\/code> field specifies the decay curve for how quickly the filter&#8217;s values drop off when extending outward from the pixel being filtered.<\/p>\n<\/div>\n<h3 class=\"collapseomatic \" id=\"id6a09f0d679510\"  tabindex=\"0\"     >Spatial<\/h3><div id=\"target-id6a09f0d679510\" class=\"collapseomatic_content \">\n<p>After iterating and density filtering are done, final color correction to the output image is computed. Spatial filtering is applied during this step. The Xml fields\u00a0<code>filter_shape<\/code> and <code>filter<\/code> specify the type and width of the filter. This gives very fine adjustment over what the final image looks like. Note that some filters can produce strange artifacts.<\/p>\n<\/div>\n<h3 class=\"collapseomatic \" id=\"id6a09f0d6795e8\"  tabindex=\"0\"     >Temporal<\/h3><div id=\"target-id6a09f0d6795e8\" class=\"collapseomatic_content \">\n<p>In addition to creating a still image, the algorithm can be used to create a series of still images where each represents a frame in an animation. This is done by adjusting the affine transforms slightly for each frame\u00a0and\u00a0interpolating (blending) between two different flames. Sometimes, even slight changes in the flame\u00a0parameters can cause a large change in the final output image.<\/p>\n<p>To mitigate this effect, each frame splits its render into a number of temporal samples. This does not increase the number of iterations. Instead, it breaks the total number of iterations into chunks. Each chunk renders an interpolated flame\u00a0at a specific time between the current frame and the next one to be rendered. The histogram is not cleared between temporal samples, so all iteration values are accumulated to produce a motion blurring effect. A temporal samples value of 100 &#8211; 1000 is commonly used for animation. When rendering a single frame, the number of temporal samples is always set to 1 since there is nothing to interpolate.<\/p>\n<p>Two\u00a0fields in the Xml govern how temporal filtering\u00a0is done:<\/p>\n<h4 style=\"padding-left: 30px;\">temporal_samples<\/h4>\n<p style=\"padding-left: 60px;\">The number of steps to divide each animation frame into, to achieve the motion blurring effect.<\/p>\n<h4 style=\"padding-left: 30px;\">temporal_filter_type<\/h4>\n<p style=\"padding-left: 60px;\">The type of filter used when generating the temporal steps used in each frame of an animation. Values are <code>box<\/code>, <code>gaussian<\/code> or <code>exp<\/code> with a default of <code>box<\/code>.<\/p>\n<h4 style=\"padding-left: 30px;\">temporal_filter_width<\/h4>\n<p style=\"padding-left: 60px;\">How wide the temporal filter is. The default value is 1.<\/p>\n<\/div>\n<h3 class=\"collapseomatic \" id=\"id6a09f0d6796bc\"  tabindex=\"0\"     >Interpolation<\/h3><div id=\"target-id6a09f0d6796bc\" class=\"collapseomatic_content \">\n<p>While not technically a filter, it&#8217;s listed here because it governs how frames are blended between keyframes when generating an animation sequence. The two fields which govern it are:<\/p>\n<h4 style=\"padding-left: 30px;\">interpolation<\/h4>\n<p style=\"padding-left: 60px;\">The interpolation method used for determining the time steps of each frame in between two keyframes when generating a sequence. Values are <code>linear<\/code> and <code>smooth<\/code> with a default of <code>smooth<\/code>. The only value that can be used on the first and last keyframes of a sequence is\u00a0<code>linear<\/code>.<\/p>\n<h4 style=\"padding-left: 30px;\">interpolation_type<\/h4>\n<p style=\"padding-left: 60px;\">The interpolation method used for interpolating affine transforms when generating a sequence. Values are <code>linear<\/code> or <code>log<\/code> with a default of <code>log<\/code>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Filtering parameters are used to specify details about the three filtering stages used to alter and improve the look of the final output image.<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":438,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-445","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/fractorium.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=445"}],"version-history":[{"count":22,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/445\/revisions"}],"predecessor-version":[{"id":2243,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/445\/revisions\/2243"}],"up":[{"embeddable":true,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/438"}],"wp:attachment":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}