From: David Gow Date: Sat, 3 May 2014 09:07:03 +0000 (+0800) Subject: Some more stuff. X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fdocuments.git;a=commitdiff_plain;h=be1e7d00d5cfc228bf63040d47471724909cf3cc;hp=b25e0294a872da1d96b6b51e1c5a79f9dbdce1c9 Some more stuff. --- diff --git a/LitReviewDavid.tex b/LitReviewDavid.tex index e84b6f5..cddf469 100644 --- a/LitReviewDavid.tex +++ b/LitReviewDavid.tex @@ -36,8 +36,29 @@ to issues with numeric precision. \section{Rendering} -As existing displays (and printers) are bit-mapped devices, one of the core problems which must be solved when -designing a document format is how it is to be \emph{rasterized} into a bitmap at a given resolution. +Computer graphics comes in two forms: bit-mapped (or raster) graphics, which is defined by an array of pixel colours, +and \emph{vector} graphics, defined by mathematical descriptions of objects. Bit-mapped graphics are well suited to photographs +and are match how cameras, printers and monitors work. However, bitmap devices do not handle zooming beyond their +``native'' resolution --- the resolution where one document pixel maps to one display pixel ---, exhibiting an artefact +called pixelation where the pixel structure becomes evident. Attempts to use interpolation to hide this effect are +never entirely successful, and sharp edges, such as those found in text and diagrams, are particularly effected. + +Vector graphics lack many of these problems: the representation is independent of the output resolution, and rather +an abstract description of what it is being rendered, typically as a combination of simple geometric shapes like lines, +arcs and ``B\'ezier curves''. +As existing displays (and printers) are bit-mapped devices, vector documents must be \emph{rasterized} into a bitmap at +a given resolution. This bitmap is then displayed or printed. The resulting bitmap is then an approximation of the vector image +at that resolution. + +This project will be based around vector graphics, as these properties make it more suited to experimenting with zoom +quality. + + +The rasterization process typically operates on an individual ``object'' or ``shape'' at a time: there are special algorithms +for rendering lines\cite{bresenham1965algorithm}, triangles\cite{giesen2013triangle}, polygons\cite{pineda1988parallel} and B\'ezier +Curves\cite{goldman_thefractal}. Typically, these are rasterized independently and composited in the bitmap domain using Porter-Duff +compositing\cite{porter1984compositing} into a single image. This allows complex images to be formed from many simple pieces, as well +as allowing for layered translucent objects, which would otherwise require the solution of some very complex constructive geometry problems. \subsection{Compositing Digital Images\cite{porter1984compositing}} diff --git a/papers.bib b/papers.bib index a37aa73..9a078cc 100644 --- a/papers.bib +++ b/papers.bib @@ -47,7 +47,30 @@ publisher={IBM Corp.} } - +% Basically my favourite thing on triangle rasterization. +% There are older ones, but this one makes sense. +@misc{giesen2013triangle, + title={Triangle rasterization in practice}, + author={Giesen, Fabien}, + year={2013}, + journal={The ryg blog}, + type={Blog}, + number={February 8}, + howpublished={\url{http://fgiesen.wordpress.com/2013/02/08/triangle-rasterization-in-practice/}} +} + +% A paper on polygon rasterization. Probably should find a nice textbook on +% this. +@article{pineda1988parallel, + title={A parallel algorthim for polygon rasterization}, + author={Pineda, Juan}, + journal={ACM Computer Graphics}, + year={1988}, + volume={22}, + number={4}, + pages={17--20}, + publisher={ACM} +} %%%%%%%%%%%%%%%%%%%%%%% % Floating-pt Precision diff --git a/references/pineda1988parallel.pdf b/references/pineda1988parallel.pdf new file mode 100644 index 0000000..cfd5ddc Binary files /dev/null and b/references/pineda1988parallel.pdf differ