{"id":441,"date":"2016-02-21T01:33:35","date_gmt":"2016-02-21T01:33:35","guid":{"rendered":"http:\/\/fractorium.com\/?page_id=441"},"modified":"2019-04-15T04:03:00","modified_gmt":"2019-04-15T04:03:00","slug":"buffers-2","status":"publish","type":"page","link":"http:\/\/fractorium.com\/?page_id=441","title":{"rendered":"Buffers"},"content":{"rendered":"<p>There are three main buffers that correspond to the three main processing steps the algorithm performs.<\/p>\n<h3 class=\"collapseomatic \" id=\"id69dfbbeb1563d\"  tabindex=\"0\"     >Histogram<\/h3><div id=\"target-id69dfbbeb1563d\" class=\"collapseomatic_content \">\n<p>Iteration is plotted here and the dimensions are\u00a0the\u00a0combination of several fields:<\/p>\n<pre>histwidth = (finalwidth * supersample) + (2 * gutter)\r\nhistheight = (finalheight * supersample) + (2 * gutter)\r\n<\/pre>\n<p>The gutter is to account for the extra space needed when filtering at edge pixels. It&#8217;s calculated by:<\/p>\n<pre>gutter = 10 * supersample\r\n<\/pre>\n<p>Computing the histogram bounds (camera) is much more complex. The values are based off of the following Xml fields: size, supersample, scale, zoom, center, spatial and density filter widths.<\/p>\n<p>Scale is the pixels per unit, meaning the number of raster pixels needed to represent the distance from 0 to 1 in the Cartesian plane. The higher the value, the more zoomed in the camera is. Increasing scale without a corresponding increase in the quality field will degrade image quality.<\/p>\n<p>Zoom is the amount of zoom to apply to the image. It has a similar effect to increasing scale, but does not suffer from quality loss. This will increase the number of iterations done to compensate.<\/p>\n<p>Supersample is the value to multiply the dimensions of the histogram and accumulator by to accomplish anti-aliasing.<\/p>\n<p>Center is the camera offset in on each axis. The image will move in the opposite direction of these values.<\/p>\n<\/div>\n<h3 class=\"collapseomatic \" id=\"id69dfbbeb15817\"  tabindex=\"0\"     >Density filter buffer<\/h3><div id=\"target-id69dfbbeb15817\" class=\"collapseomatic_content \">\n<p>This has the same dimensions and type as the histogram, density filter output is written here.<\/p>\n<\/div>\n<h3 class=\"collapseomatic \" id=\"id69dfbbeb158ed\"  tabindex=\"0\"     >Final image buffer<\/h3><div id=\"target-id69dfbbeb158ed\" class=\"collapseomatic_content \">\n<p>The final output is written here. The dimensions are not supersampled, and\u00a0are just the\u00a0values specified in the size field of the Xml. The type of each pixel is a 16 byte RGBA with each channel being a 32-bit float.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>There are three main buffers that correspond to the three main processing steps the algorithm performs.<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":83,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-441","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/441","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=441"}],"version-history":[{"count":20,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/441\/revisions"}],"predecessor-version":[{"id":2048,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/441\/revisions\/2048"}],"up":[{"embeddable":true,"href":"http:\/\/fractorium.com\/index.php?rest_route=\/wp\/v2\/pages\/83"}],"wp:attachment":[{"href":"http:\/\/fractorium.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}