%!PS-Adobe-2.0 %%Version: 0.1 %%Creator: troff, Plan 9 edition %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 1] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Version 3.3.2 drawing procedures for dpost. Automatically pulled in when % needed. % /inpath false def /savematrix matrix def /Dl { inpath {neg lineto pop pop} {newpath neg moveto neg lineto stroke} ifelse } bind def /De { /y1 exch 2 div def /x1 exch 2 div def /savematrix savematrix currentmatrix def neg exch x1 add exch translate x1 y1 scale 0 0 1 0 360 inpath {1 0 moveto arc savematrix setmatrix} {newpath arc savematrix setmatrix stroke} ifelse } bind def /Da { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arc} {newpath arc stroke} ifelse } bind def /DA { /dy2 exch def /dx2 exch def /dy1 exch def /dx1 exch def dy1 add neg exch dx1 add exch dx1 dx1 mul dy1 dy1 mul add sqrt dy1 dx1 neg atan dy2 neg dx2 atan inpath {arcn} {newpath arcn stroke} ifelse } bind def /Ds { /y2 exch def /x2 exch def /y1 exch def /x1 exch def /y0 exch def /x0 exch def x0 5 x1 mul add 6 div y0 5 y1 mul add -6 div x2 5 x1 mul add 6 div y2 5 y1 mul add -6 div x1 x2 add 2 div y1 y2 add -2 div inpath {curveto} {newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} ifelse } bind def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /LucidaSans-Demi f (libgraphics: Design and Implementation) 1642 1230 w 10 /LucidaSans-Italic f (Rodrigo G. L\363pez) 2469 1470 w (rgl@antares-labs.eu) 2377 1590 w (ABSTRACT) 2626 2030 w (Libgraphics) 1330 2290 w 10 /LucidaSansUnicode00 f (is) 1930 2290 w (a) 2044 2290 w (3D) 2133 2290 w (computer) 2305 2290 w (graphics) 2803 2290 w (library) 3251 2290 w (that) 3596 2290 w (provides) 3822 2290 w (a) 4273 2290 w (way) 4363 2290 w (to) 4582 2290 w (set) 1080 2410 w (up) 1265 2410 w (a) 1431 2410 w (scene,) 1527 2410 w (fill) 1876 2410 w (it) 2041 2410 w (up) 2148 2410 w (with) 2314 2410 w (a) 2560 2410 w (bunch) 2656 2410 w (of) 2997 2410 w (models) 3135 2410 w (\(with) 3528 2410 w (their) 3806 2410 w (own) 4071 2410 w (meshes) 4311 2410 w (and) 1080 2530 w (materials\),) 1303 2530 w (lights) 1857 2530 w (and) 2170 2530 w (cameras,) 2393 2530 w (and) 2870 2530 w (start) 3093 2530 w (taking) 3357 2530 w (pictures) 3703 2530 w (at) 4136 2530 w (the) 4271 2530 w (user) 4470 2530 w (request.) 1080 2650 w (It) 1562 2650 w (implements) 1680 2650 w (a) 2301 2650 w (fully) 2408 2650 w (concurrent) 2669 2650 w (retained) 3245 2650 w (mode) 3696 2650 w (software) 4021 2650 w (ren\255) 4488 2650 w (derer,) 1080 2770 w (with) 1418 2770 w (support) 1672 2770 w (for) 2099 2770 w (vertex) 2287 2770 w (and) 2639 2770 w (fragment/pixel) 2868 2770 w (shaders) 3652 2770 w (written) 4081 2770 w (in) 4470 2770 w (C) 4611 2770 w (\(not) 1080 2890 w (GPU) 1326 2890 w (ones,) 1575 2890 w (at) 1890 2890 w (least) 2035 2890 w (for) 2316 2890 w (now\),) 2508 2890 w (and) 2825 2890 w (featuring) 3057 2890 w (a) 3550 2890 w (z-buffer,) 3657 2890 w (front-) 4152 2890 w (and) 4500 2890 w (back-face) 1080 3010 w (culling,) 1598 3010 w (textures) 1988 3010 w (and) 2424 3010 w (skyboxes,) 2639 3010 w (directional) 3159 3010 w (and) 3707 3010 w (punctual) 3922 3010 w (lights,) 4378 3010 w (tangent-space normal mapping, among other things.) 1080 3130 w 10 /LucidaSans-Demi f (Introduction) 720 3490 w 10 /LucidaSansUnicode00 f (Write the intro last.) 970 3682 w 10 /LucidaSans-Demi f (1.) 720 3922 w (The scene) 873 3922 w 9 /LucidaTypewriter f (struct) 920 4128 w (Scene) 1375 4128 w ({) 920 4238 w (char) 1440 4348 w (*name;) 1765 4348 w (Entity) 1440 4458 w (ents;) 1895 4458 w (ulong) 1440 4568 w (nents;) 1830 4568 w (Cubemap) 1440 4678 w (*skybox;) 1960 4678 w (void) 1440 4898 w (\(*addent\)\(Scene*,) 1765 4898 w (Entity*\);) 2935 4898 w (void) 1440 5008 w (\(*delent\)\(Scene*,) 1765 5008 w (Entity*\);) 2935 5008 w (};) 920 5118 w 10 /LucidaSansUnicode00 f (A) 970 5334 w 10 /LucidaSans-Italic f (scene) 1073 5334 w 10 /LucidaSansUnicode00 f (is) 1374 5334 w (a) 1488 5334 w (container,) 1577 5334 w (represented) 2097 5334 w (as) 2713 5334 w (a) 2853 5334 w (graph,) 2942 5334 w (that) 3291 5334 w (hosts) 3516 5334 w (the) 3812 5334 w (entities) 4001 5334 w (that) 4392 5334 w (make) 4618 5334 w (up) 4915 5334 w (the) 720 5454 w (world.) 913 5454 w (Each) 1286 5454 w (of) 1545 5454 w (these) 1680 5454 w (entities) 1979 5454 w (has) 2373 5454 w (a) 2578 5454 w (model) 2670 5454 w (made) 3009 5454 w (out) 3313 5454 w (of) 3510 5454 w (a) 3645 5454 w (series) 3737 5454 w (of) 4058 5454 w (meshes,) 4193 5454 w (which) 4631 5454 w (in) 4949 5454 w (turn) 720 5574 w (are) 977 5574 w (made) 1184 5574 w (out) 1506 5574 w (of) 1721 5574 w (geometric) 1874 5574 w (primitives) 2415 5574 w (\(only) 2950 5574 w 10 /LucidaSans-Italic f (points) 3242 5574 w 10 /LucidaSansUnicode00 f (,) 3538 5574 w 10 /LucidaSans-Italic f (lines) 3625 5574 w 10 /LucidaSansUnicode00 f (and) 3902 5574 w 10 /LucidaSans-Italic f (triangles) 4137 5574 w 10 /LucidaSansUnicode00 f (are) 4623 5574 w (sup\255) 4831 5574 w (ported\). Each model also stores a list of materials.) 720 5694 w (August 3, 2024) 2503 7680 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /LucidaSansUnicode00 f (\255 2 \255) 2783 480 w 2196 1026 2196 882 Dl 2196 882 2556 882 Dl 2556 882 2556 1026 Dl 2556 1026 2196 1026 Dl 7 /LucidaSansUnicode00 f (Scene) 2279 968 w 2376 1026 2376 1170 Dl 2376 1170 2448 1170 Dl 2448 1242 2448 1098 Dl 2448 1098 2808 1098 Dl 2808 1098 2808 1242 Dl 2808 1242 2448 1242 Dl (Entity) 2534 1184 w 2628 1242 2628 1386 Dl 2628 1386 2700 1386 Dl 2700 1458 2700 1314 Dl 2700 1314 3060 1314 Dl 3060 1314 3060 1458 Dl 3060 1458 2700 1458 Dl (Model) 2777 1400 w 2880 1458 2880 1602 Dl 2880 1602 2952 1602 Dl 2952 1674 2988 1674 Dl 3033 1674 3069 1674 Dl 3114 1674 3150 1674 Dl 3195 1674 3231 1674 Dl 3276 1674 3312 1674 Dl 3312 1674 3312 1638 Dl 3312 1620 3312 1584 Dl 3312 1566 3312 1530 Dl 3312 1530 3276 1530 Dl 3231 1530 3195 1530 Dl 3150 1530 3114 1530 Dl 3069 1530 3033 1530 Dl 2988 1530 2952 1530 Dl 2952 1530 2952 1566 Dl 2952 1584 2952 1620 Dl 2952 1638 2952 1674 Dl (Mesh) 3043 1616 w 3132 1674 3132 1818 Dl 3132 1818 3204 1818 Dl 3204 1890 3204 1746 Dl 3204 1746 3564 1746 Dl 3564 1746 3564 1890 Dl 3564 1890 3204 1890 Dl (Primitive) 3237 1832 w 3132 1818 3132 1962 Dl 3132 1962 3132 2106 Dl 3132 2106 3204 2106 Dl 3204 2178 3204 2034 Dl 3204 2034 3564 2034 Dl 3564 2034 3564 2178 Dl 3564 2178 3204 2178 Dl (Material) 3248 2120 w 10 /LucidaSans-Demi f (Figure 1) 2219 2376 w 10 /LucidaSansUnicode00 f (: The scene graph.) 2641 2376 w 10 /LucidaSans-Demi f (1.1.) 720 2616 w (Entities) 962 2616 w 9 /LucidaTypewriter f (struct) 920 2822 w (Entity) 1375 2822 w ({) 920 2932 w (RFrame3;) 1440 3042 w (char) 1440 3152 w (*name;) 1765 3152 w (Model) 1440 3262 w (*mdl;) 1830 3262 w (Entity) 1440 3482 w (*prev,) 1895 3482 w (*next;) 2350 3482 w (};) 920 3592 w 10 /LucidaSans-Italic f (Entities) 970 3808 w 10 /LucidaSansUnicode00 f (represent physical objects in the scene.) 1355 3808 w 10 /LucidaSans-Demi f (1.2.) 720 4048 w (Models) 962 4048 w 9 /LucidaTypewriter f (struct) 920 4254 w (Model) 1375 4254 w ({) 920 4364 w (Primitive) 1440 4474 w (*prims;) 2090 4474 w (ulong) 1440 4584 w (nprims;) 1830 4584 w (Material) 1440 4694 w (*materials;) 2025 4694 w (ulong) 1440 4804 w (nmaterials;) 1830 4804 w (};) 920 4914 w 10 /LucidaSans-Demi f (1.3.) 720 5214 w (Meshes) 962 5214 w (1.4.) 720 5454 w (Primitives) 962 5454 w 9 /LucidaTypewriter f (struct) 920 5660 w (Primitive) 1375 5660 w ({) 920 5770 w (int) 1440 5880 w (type;) 1700 5880 w (Vertex) 1440 5990 w (v[3];) 1895 5990 w (Material) 1440 6100 w (*mtl;) 2025 6100 w (Point3) 1440 6210 w (tangent;) 1895 6210 w (/*) 2480 6210 w (used) 2675 6210 w (for) 3000 6210 w (normal) 3260 6210 w (mapping) 3715 6210 w (*/) 4235 6210 w (};) 920 6320 w 10 /LucidaSans-Demi f (1.5.) 720 6620 w (Materials) 962 6620 w 10 /LucidaSansUnicode00 f (August 3, 2024) 2503 7680 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /LucidaSansUnicode00 f (\255 3 \255) 2783 480 w 9 /LucidaTypewriter f (struct) 920 830 w (Material) 1375 830 w ({) 920 940 w (char) 1440 1050 w (*name;) 1765 1050 w (Color) 1440 1160 w (ambient;) 1830 1160 w (Color) 1440 1270 w (diffuse;) 1830 1270 w (Color) 1440 1380 w (specular;) 1830 1380 w (double) 1440 1490 w (shininess;) 1895 1490 w (Texture) 1440 1600 w (*diffusemap;) 1960 1600 w (Texture) 1440 1710 w (*normalmap;) 1960 1710 w (};) 920 1820 w 10 /LucidaSans-Demi f (2.) 720 2120 w (Cameras) 873 2120 w (3.) 720 2516 w (The renderer) 873 2516 w 10 /LucidaSansUnicode00 f (The) 720 2672 w 10 /LucidaSans-Italic f (renderer) 938 2672 w 10 /LucidaSansUnicode00 f (is) 1401 2672 w (the) 1518 2672 w (core) 1710 2672 w (of) 1956 2672 w (the) 2091 2672 w (library.) 2283 2672 w (It) 2662 2672 w (follows) 2766 2672 w (a) 3149 2672 w 10 /LucidaSans-Demi f (retained) 3242 2672 w (mode) 3708 2672 w 10 /LucidaSansUnicode00 f (model,) 4032 2672 w (which) 4404 2672 w (means) 4723 2672 w (that) 720 2792 w (the) 955 2792 w (user) 1154 2792 w (won) 1408 2792 w 10 /LucidaSansUnicode20 f (\031) 1608 2792 w 10 /LucidaSansUnicode00 f (t) 1640 2792 w (get) 1721 2792 w (a) 1920 2792 w (picture) 2019 2792 w (until) 2402 2792 w (the) 2665 2792 w (entire) 2864 2792 w (scene) 3189 2792 w (has) 3509 2792 w (been) 3721 2792 w (rendered.) 4002 2792 w (Thanks) 4548 2792 w (to) 4942 2792 w (this) 720 2912 w (we) 944 2912 w (can) 1122 2912 w (also) 1335 2912 w (clear) 1576 2912 w (and) 1853 2912 w (swap) 2078 2912 w (the) 2369 2912 w (framebuffers) 2569 2912 w (without) 3243 2912 w (their) 3653 2912 w (intervention,) 3923 2912 w (they) 4584 2912 w (only) 4836 2912 w (need to concern themselves with shooting and ) 720 3032 w 10 /LucidaSansUnicode20 f (\034) 3016 3032 w 10 /LucidaSansUnicode00 f (developing) 3053 3032 w 10 /LucidaSansUnicode20 f (\035) 3586 3032 w 10 /LucidaSansUnicode00 f (a camera.) 3655 3032 w (It) 720 3188 w 10 /LucidaSansUnicode20 f (\031) 786 3188 w 10 /LucidaSansUnicode00 f (s implemented as a tree of concurrent processes) 818 3188 w (connected) 3217 3188 w (by) 3749 3188 w 10 /LucidaTypewriter f (Channel) 3897 3188 w 10 /LucidaSansUnicode00 f (s) 4401 3188 w 10 /LucidaSansUnicode20 f (\024) 4452 3188 w 10 /LucidaSansUnicode00 f (as) 4552 3188 w (seen) 4691 3188 w (in) 4949 3188 w 10 /LucidaSans-Demi f (Figure) 720 3308 w (2) 1088 3308 w 10 /LucidaSansUnicode20 f (\024) 1152 3308 w 10 /LucidaSansUnicode00 f (,) 1252 3308 w (spawned) 1326 3308 w (with) 1795 3308 w (a) 2042 3308 w (call) 2139 3308 w (to) 2345 3308 w 10 /LucidaTypewriter f (initgraphics) 2485 3308 w 10 /LucidaSansUnicode00 f (,) 3349 3308 w (each) 3423 3308 w (representing) 3689 3308 w (a) 4347 3308 w (stage) 4444 3308 w (of) 4746 3308 w (the) 4885 3308 w (pipeline:) 720 3428 w (S1:) 720 3584 w (The) 970 3584 w 10 /LucidaSans-Demi f (renderer) 1234 3584 w 10 /LucidaSansUnicode00 f (process,) 1761 3584 w (the) 2250 3584 w (root) 2488 3584 w (of) 2771 3584 w (the) 2952 3584 w (tree,) 3190 3584 w (waits) 3495 3584 w (on) 3828 3584 w (a) 4035 3584 w 10 /LucidaTypewriter f (channel) 4174 3584 w 10 /LucidaSansUnicode00 f (for) 4762 3584 w (a) 4985 3584 w 10 /LucidaTypewriter f (Renderjob) 970 3704 w 10 /LucidaSansUnicode00 f (sent) 1667 3704 w (by) 1922 3704 w (another) 2086 3704 w (user) 2509 3704 w (process,) 2768 3704 w (specifying) 3223 3704 w (a) 3764 3704 w (framebuffer,) 3868 3704 w (a) 4526 3704 w (scene,) 4629 3704 w (a) 4985 3704 w (camera) 970 3824 w (and) 1362 3824 w (a) 1583 3824 w (shader) 1680 3824 w (table.) 2050 3824 w (It) 2396 3824 w (walks) 2504 3824 w (the) 2816 3824 w (scene) 3013 3824 w (and) 3331 3824 w (sends) 3553 3824 w (each) 3878 3824 w 10 /LucidaTypewriter f (Entity) 4144 3824 w 10 /LucidaSansUnicode00 f (individu\255) 4618 3824 w (ally to the entityproc.) 970 3944 w 1026 5258 1026 4898 Dl 1026 4898 1566 4898 Dl 1566 4898 1566 5258 Dl 1566 5258 1026 5258 Dl 7 /LucidaSansUnicode00 f (Renderjob) 1123 5092 w 1566 5078 1926 5078 Dl 1854 5096 1926 5078 Dl 1853 5091 1925 5078 Dl 1852 5087 1925 5078 Dl 1851 5082 1925 5078 Dl 1851 5078 1925 5078 Dl 1851 5073 1925 5077 Dl 1852 5068 1925 5077 Dl 1853 5064 1925 5077 Dl 1854 5060 1926 5078 Dl 1926 5078 432 432 De (renderer) 1997 5092 w 2358 5078 2718 5078 Dl 2646 5096 2718 5078 Dl 2645 5091 2717 5078 Dl 2644 5087 2717 5078 Dl 2643 5082 2717 5078 Dl 2643 5078 2717 5078 Dl 2643 5073 2717 5077 Dl 2644 5068 2717 5077 Dl 2645 5064 2717 5077 Dl 2646 5060 2718 5078 Dl 2718 5078 432 432 De (entityproc) 2763 5092 w 3510 4322 432 432 De (tiler) 3626 4336 w (1) 3782 4336 w 3510 4826 432 432 De (tiler) 3626 4840 w (2) 3782 4840 w 3510 5330 432 432 De 7 /LucidaSansUnicode20 f (&) 3691 5344 w 3510 5834 432 432 De 7 /LucidaSansUnicode00 f (tiler) 3627 5848 w (n) 3783 5848 w 4302 4322 432 432 De (rasterizer) 4322 4336 w (1) 4670 4336 w 4302 4826 432 432 De (rasterizer) 4322 4840 w (2) 4670 4840 w 4302 5330 432 432 De 7 /LucidaSansUnicode20 f (&) 4483 5344 w 4302 5834 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 4323 5848 w (n) 4671 5848 w 3090 4928 3569 4471 Dl 3530 4533 3569 4471 Dl 3526 4531 3569 4471 Dl 3522 4528 3568 4471 Dl 3519 4525 3569 4471 Dl 3515 4522 3569 4471 Dl 3512 4519 3568 4472 Dl 3510 4515 3569 4471 Dl 3507 4511 3568 4471 Dl 3504 4507 3568 4471 Dl 3139 5012 3519 4892 Dl 3456 4930 3519 4892 Dl 3454 4926 3519 4891 Dl 3452 4922 3519 4892 Dl 3450 4918 3519 4892 Dl 3449 4913 3519 4891 Dl 3448 4909 3520 4891 Dl 3447 4905 3519 4892 Dl 3446 4900 3519 4891 Dl 3445 4895 3519 4891 Dl 3139 5143 3519 5263 Dl 3445 5260 3519 5264 Dl 3446 5255 3519 5264 Dl 3447 5250 3519 5263 Dl 3448 5246 3520 5264 Dl 3449 5242 3519 5264 Dl 3450 5237 3519 5263 Dl 3452 5233 3519 5263 Dl 3454 5229 3519 5264 Dl 3456 5225 3519 5263 Dl 3090 5227 3569 5684 Dl 3504 5648 3568 5684 Dl 3507 5644 3568 5684 Dl 3510 5640 3569 5684 Dl 3512 5636 3568 5683 Dl 3515 5633 3569 5684 Dl 3519 5630 3569 5684 Dl 3522 5627 3568 5684 Dl 3526 5624 3569 5684 Dl 3530 5622 3569 5684 Dl 3942 4322 4302 4322 Dl 4230 4340 4302 4322 Dl 4229 4335 4301 4322 Dl 4228 4331 4301 4322 Dl 4227 4326 4301 4322 Dl 4227 4322 4301 4322 Dl 4227 4317 4301 4321 Dl 4228 4312 4301 4321 Dl 4229 4308 4301 4321 Dl 4230 4304 4302 4322 Dl 3908 4437 4335 4709 Dl 4265 4686 4335 4709 Dl 4266 4682 4335 4710 Dl 4268 4678 4334 4709 Dl 4271 4674 4335 4710 Dl 4273 4670 4335 4709 Dl 4275 4666 4334 4709 Dl 4278 4662 4335 4709 Dl 4281 4659 4335 4709 Dl 4284 4656 4335 4710 Dl 3859 4491 4383 5159 Dl 4325 5114 4383 5159 Dl 4328 5111 4383 5159 Dl 4332 5107 4384 5159 Dl 4335 5104 4384 5159 Dl 4338 5101 4384 5159 Dl 4342 5098 4384 5159 Dl 4345 5096 4383 5159 Dl 4350 5094 4384 5159 Dl 4354 5092 4384 5159 Dl 3826 4513 4417 5642 Dl 4368 5587 4417 5642 Dl 4371 5584 4417 5642 Dl 4375 5581 4417 5642 Dl 4379 5579 4417 5642 Dl 4383 5576 4417 5641 Dl 4387 5574 4417 5641 Dl 4391 5573 4416 5642 Dl 4395 5571 4416 5642 Dl 4400 5570 4417 5642 Dl 3908 4710 4335 4438 Dl 4284 4491 4335 4437 Dl 4281 4488 4335 4438 Dl 4278 4485 4335 4438 Dl 4275 4481 4334 4438 Dl 4273 4477 4335 4438 Dl 4271 4473 4335 4437 Dl 4268 4469 4334 4438 Dl 4266 4466 4335 4438 Dl 4265 4461 4335 4438 Dl 3942 4826 4302 4826 Dl 4230 4844 4302 4826 Dl 4229 4839 4301 4826 Dl 4228 4835 4301 4826 Dl 4227 4830 4301 4826 Dl 4227 4826 4301 4826 Dl 4227 4821 4301 4825 Dl 4228 4816 4301 4825 Dl 4229 4812 4301 4825 Dl 4230 4808 4302 4826 Dl 3908 4941 4335 5213 Dl 4265 5190 4335 5213 Dl 4266 5186 4335 5214 Dl 4268 5182 4334 5213 Dl 4271 5178 4335 5214 Dl 4273 5174 4335 5213 Dl 4275 5170 4334 5213 Dl 4278 5166 4335 5213 Dl 4281 5163 4335 5213 Dl 4284 5160 4335 5214 Dl 3859 4995 4383 5663 Dl 4325 5618 4383 5663 Dl 4328 5615 4383 5663 Dl 4332 5611 4384 5663 Dl 4335 5608 4384 5663 Dl 4338 5605 4384 5663 Dl 4342 5602 4384 5663 Dl 4345 5600 4383 5663 Dl 4350 5598 4384 5663 Dl 4354 5596 4384 5663 Dl 10 /LucidaSans-Demi f (Figure 2) 1562 6248 w 10 /LucidaSansUnicode00 f (: The rendering graph for a) 1984 6248 w 10 /LucidaSans-Demi f (2n) 3338 6248 w 10 /LucidaSansUnicode00 f (processor machine.) 3500 6248 w (S2:) 720 6404 w (The) 970 6404 w 10 /LucidaSans-Demi f (entityproc) 1198 6404 w 10 /LucidaSansUnicode00 f (receives) 1771 6404 w (an) 2210 6404 w (entity) 2374 6404 w (and) 2694 6404 w (splits) 2921 6404 w (its) 3228 6404 w (geometry) 3393 6404 w (equitatively) 3899 6404 w (among) 4504 6404 w (the) 4885 6404 w (tilers, sending a batch for each of them to process.) 970 6524 w (S3:) 720 6680 w (Next,) 970 6680 w (each) 1293 6680 w 10 /LucidaSans-Demi f (tiler) 1580 6680 w 10 /LucidaSansUnicode00 f (gets) 1854 6680 w (to) 2123 6680 w (work) 2284 6680 w (on) 2584 6680 w (their) 2770 6680 w (subset) 3058 6680 w (of) 3441 6680 w (the) 3602 6680 w (geometry) 3820 6680 w (\(potentially) 4342 6680 w (in) 4949 6680 w (parallel\)) 970 6800 w 10 /LucidaSansUnicode20 f (\024) 1360 6800 w 10 /LucidaSansUnicode00 f (see) 1460 6800 w 10 /LucidaSans-Demi f (Figure) 1675 6800 w (3) 2053 6800 w 10 /LucidaSansUnicode00 f (.) 2117 6800 w (They) 2233 6800 w (walk) 2518 6800 w (the) 2789 6800 w (list) 2996 6800 w (of) 3194 6800 w (primitives,) 3344 6800 w (then) 3908 6800 w (for) 4177 6800 w (each) 4368 6800 w (of) 4643 6800 w (them) 4792 6800 w (apply) 970 6920 w (the) 1281 6920 w 10 /LucidaSans-Demi f (vertex) 1485 6920 w (shader) 1856 6920 w 10 /LucidaSansUnicode00 f (to) 2257 6920 w (its) 2405 6920 w (vertices) 2572 6920 w (\(which) 2995 6920 w (expects) 3359 6920 w (clip) 3784 6920 w (space) 4006 6920 w (coordinates) 4332 6920 w (in) 4949 6920 w (return\),) 970 7040 w (perform) 1378 7040 w (frustum) 1813 7040 w (culling) 2239 7040 w (and) 2606 7040 w (clipping,) 2829 7040 w (back-face) 3292 7040 w (culling,) 3819 7040 w (and) 4218 7040 w (then) 4441 7040 w (project) 4701 7040 w (them) 970 7160 w (into) 1258 7160 w (the) 1487 7160 w (viewport) 1682 7160 w (\(screen) 2138 7160 w (space\).) 2528 7160 w (Following) 2941 7160 w (this) 3445 7160 w (step,) 3665 7160 w (they) 3945 7160 w (build) 4193 7160 w (a) 4480 7160 w (bounding) 4576 7160 w (box,) 970 7280 w (used) 1220 7280 w (to) 1485 7280 w (allocate) 1616 7280 w (each) 2022 7280 w (primitive) 2279 7280 w (into a rasterization bucket, or) 2741 7280 w 10 /LucidaSans-Demi f (tile) 4217 7280 w 10 /LucidaSansUnicode00 f (, managed by) 4383 7280 w (August 3, 2024) 2503 7680 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /LucidaSansUnicode00 f (\255 4 \255) 2783 480 w (one) 970 840 w (of) 1183 840 w (the) 1315 840 w (rasterizers;) 1504 840 w (as) 2085 840 w (illustrated) 2226 840 w (in) 2750 840 w 10 /LucidaSans-Demi f (Figure) 2876 840 w (4) 3237 840 w 10 /LucidaSansUnicode00 f (.) 3301 840 w (If) 3400 840 w (it) 3501 840 w (spans) 3602 840 w (multiple) 3919 840 w (tiles,) 4352 840 w (it) 4621 840 w (will) 4722 840 w (be) 4921 840 w (copied and sent to each of them.) 970 960 w 2070 1950 2106 1950 Dl 2142 1950 2178 1950 Dl 2214 1950 2250 1950 Dl 2286 1950 2322 1950 Dl 2358 1950 2394 1950 Dl 2430 1950 2466 1950 Dl 2502 1950 2538 1950 Dl 2574 1950 2610 1950 Dl 2646 1950 2682 1950 Dl 2718 1950 2754 1950 Dl 2790 1950 2826 1950 Dl 2862 1950 2898 1950 Dl 2934 1950 2970 1950 Dl 2970 1950 2970 1914 Dl 2970 1896 2970 1860 Dl 2970 1842 2970 1806 Dl 2970 1806 2934 1806 Dl 2898 1806 2862 1806 Dl 2826 1806 2790 1806 Dl 2754 1806 2718 1806 Dl 2682 1806 2646 1806 Dl 2610 1806 2574 1806 Dl 2538 1806 2502 1806 Dl 2466 1806 2430 1806 Dl 2394 1806 2358 1806 Dl 2322 1806 2286 1806 Dl 2250 1806 2214 1806 Dl 2178 1806 2142 1806 Dl 2106 1806 2070 1806 Dl 2070 1806 2070 1842 Dl 2070 1860 2070 1896 Dl 2070 1914 2070 1950 Dl 7 /LucidaSansUnicode00 f (tile 1) 2435 1892 w 2070 2094 2106 2094 Dl 2142 2094 2178 2094 Dl 2214 2094 2250 2094 Dl 2286 2094 2322 2094 Dl 2358 2094 2394 2094 Dl 2430 2094 2466 2094 Dl 2502 2094 2538 2094 Dl 2574 2094 2610 2094 Dl 2646 2094 2682 2094 Dl 2718 2094 2754 2094 Dl 2790 2094 2826 2094 Dl 2862 2094 2898 2094 Dl 2934 2094 2970 2094 Dl 2970 2094 2970 2058 Dl 2970 2040 2970 2004 Dl 2970 1986 2970 1950 Dl 2970 1950 2934 1950 Dl 2898 1950 2862 1950 Dl 2826 1950 2790 1950 Dl 2754 1950 2718 1950 Dl 2682 1950 2646 1950 Dl 2610 1950 2574 1950 Dl 2538 1950 2502 1950 Dl 2466 1950 2430 1950 Dl 2394 1950 2358 1950 Dl 2322 1950 2286 1950 Dl 2250 1950 2214 1950 Dl 2178 1950 2142 1950 Dl 2106 1950 2070 1950 Dl 2070 1950 2070 1986 Dl 2070 2004 2070 2040 Dl 2070 2058 2070 2094 Dl (tile 2) 2435 2036 w 2070 2238 2106 2238 Dl 2142 2238 2178 2238 Dl 2214 2238 2250 2238 Dl 2286 2238 2322 2238 Dl 2358 2238 2394 2238 Dl 2430 2238 2466 2238 Dl 2502 2238 2538 2238 Dl 2574 2238 2610 2238 Dl 2646 2238 2682 2238 Dl 2718 2238 2754 2238 Dl 2790 2238 2826 2238 Dl 2862 2238 2898 2238 Dl 2934 2238 2970 2238 Dl 2970 2238 2970 2202 Dl 2970 2184 2970 2148 Dl 2970 2130 2970 2094 Dl 2970 2094 2934 2094 Dl 2898 2094 2862 2094 Dl 2826 2094 2790 2094 Dl 2754 2094 2718 2094 Dl 2682 2094 2646 2094 Dl 2610 2094 2574 2094 Dl 2538 2094 2502 2094 Dl 2466 2094 2430 2094 Dl 2394 2094 2358 2094 Dl 2322 2094 2286 2094 Dl 2250 2094 2214 2094 Dl 2178 2094 2142 2094 Dl 2106 2094 2070 2094 Dl 2070 2094 2070 2130 Dl 2070 2148 2070 2184 Dl 2070 2202 2070 2238 Dl 7 /LucidaSansUnicode20 f (&) 2485 2180 w 2070 2382 2106 2382 Dl 2142 2382 2178 2382 Dl 2214 2382 2250 2382 Dl 2286 2382 2322 2382 Dl 2358 2382 2394 2382 Dl 2430 2382 2466 2382 Dl 2502 2382 2538 2382 Dl 2574 2382 2610 2382 Dl 2646 2382 2682 2382 Dl 2718 2382 2754 2382 Dl 2790 2382 2826 2382 Dl 2862 2382 2898 2382 Dl 2934 2382 2970 2382 Dl 2970 2382 2970 2346 Dl 2970 2328 2970 2292 Dl 2970 2274 2970 2238 Dl 2970 2238 2934 2238 Dl 2898 2238 2862 2238 Dl 2826 2238 2790 2238 Dl 2754 2238 2718 2238 Dl 2682 2238 2646 2238 Dl 2610 2238 2574 2238 Dl 2538 2238 2502 2238 Dl 2466 2238 2430 2238 Dl 2394 2238 2358 2238 Dl 2322 2238 2286 2238 Dl 2250 2238 2214 2238 Dl 2178 2238 2142 2238 Dl 2106 2238 2070 2238 Dl 2070 2238 2070 2274 Dl 2070 2292 2070 2328 Dl 2070 2346 2070 2382 Dl 7 /LucidaSansUnicode00 f (tile n) 2435 2324 w 2034 2418 2034 1770 Dl 2034 1770 3006 1770 Dl 3006 1770 3006 2418 Dl 3006 2418 2034 2418 Dl (Framebuf) 1675 1820 w 3330 1338 432 432 De (rasterizer) 3350 1352 w (1) 3698 1352 w 3330 1842 432 432 De (rasterizer) 3350 1856 w (2) 3698 1856 w 3330 2346 432 432 De 7 /LucidaSansUnicode20 f (&) 3511 2360 w 3330 2850 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 3351 2864 w (n) 3699 2864 w 2970 1878 3330 1338 Dl 2970 2022 3330 1842 Dl 2970 2166 3330 2346 Dl 2970 2310 3330 2850 Dl 10 /LucidaSans-Demi f (Figure 3) 2305 3264 w 10 /LucidaSansUnicode00 f (: Per tile rasterizers.) 2727 3264 w (S4:) 720 3420 w (Finally,) 970 3420 w (the) 1346 3420 w 10 /LucidaSans-Demi f (rasterizers) 1535 3420 w 10 /LucidaSansUnicode00 f (receive) 2128 3420 w (the) 2503 3420 w (primitive) 2692 3420 w (in) 3155 3420 w (screen) 3280 3420 w (space,) 3631 3420 w (slice) 3974 3420 w (it) 4225 3420 w (to) 4326 3420 w (fit) 4459 3420 w (their) 4597 3420 w (tile,) 4857 3420 w (and) 970 3540 w (apply) 1186 3540 w (a) 1484 3540 w (rasterization) 1575 3540 w (routine) 2222 3540 w (based) 2606 3540 w (on) 2930 3540 w (its) 3089 3540 w (type.) 3242 3540 w (For) 3518 3540 w (each) 3710 3540 w (of) 3970 3540 w (the) 4104 3540 w (pixels,) 4295 3540 w (a) 4652 3540 w 10 /LucidaSans-Demi f (depth) 4742 3540 w (test) 970 3660 w 10 /LucidaSansUnicode00 f (is) 1215 3660 w (performed,) 1343 3660 w (discarding) 1934 3660 w (fragments) 2488 3660 w (that) 3030 3660 w (are) 3269 3660 w (further) 3469 3660 w (away.) 3853 3660 w (Then) 4172 3660 w (a) 4463 3660 w 10 /LucidaSans-Demi f (fragment) 4566 3660 w (shader) 970 3780 w 10 /LucidaSansUnicode00 f (is applied and the result written to the framebuffer after blending.) 1354 3780 w 2070 4806 2106 4806 Dl 2142 4806 2178 4806 Dl 2214 4806 2250 4806 Dl 2286 4806 2322 4806 Dl 2358 4806 2394 4806 Dl 2430 4806 2466 4806 Dl 2502 4806 2538 4806 Dl 2574 4806 2610 4806 Dl 2646 4806 2682 4806 Dl 2718 4806 2754 4806 Dl 2790 4806 2826 4806 Dl 2862 4806 2898 4806 Dl 2934 4806 2970 4806 Dl 2970 4806 2970 4770 Dl 2970 4752 2970 4716 Dl 2970 4698 2970 4662 Dl 2970 4662 2934 4662 Dl 2898 4662 2862 4662 Dl 2826 4662 2790 4662 Dl 2754 4662 2718 4662 Dl 2682 4662 2646 4662 Dl 2610 4662 2574 4662 Dl 2538 4662 2502 4662 Dl 2466 4662 2430 4662 Dl 2394 4662 2358 4662 Dl 2322 4662 2286 4662 Dl 2250 4662 2214 4662 Dl 2178 4662 2142 4662 Dl 2106 4662 2070 4662 Dl 2070 4662 2070 4698 Dl 2070 4716 2070 4752 Dl 2070 4770 2070 4806 Dl 7 /LucidaSansUnicode00 f (1) 2498 4748 w 2070 4950 2106 4950 Dl 2142 4950 2178 4950 Dl 2214 4950 2250 4950 Dl 2286 4950 2322 4950 Dl 2358 4950 2394 4950 Dl 2430 4950 2466 4950 Dl 2502 4950 2538 4950 Dl 2574 4950 2610 4950 Dl 2646 4950 2682 4950 Dl 2718 4950 2754 4950 Dl 2790 4950 2826 4950 Dl 2862 4950 2898 4950 Dl 2934 4950 2970 4950 Dl 2970 4950 2970 4914 Dl 2970 4896 2970 4860 Dl 2970 4842 2970 4806 Dl 2970 4806 2934 4806 Dl 2898 4806 2862 4806 Dl 2826 4806 2790 4806 Dl 2754 4806 2718 4806 Dl 2682 4806 2646 4806 Dl 2610 4806 2574 4806 Dl 2538 4806 2502 4806 Dl 2466 4806 2430 4806 Dl 2394 4806 2358 4806 Dl 2322 4806 2286 4806 Dl 2250 4806 2214 4806 Dl 2178 4806 2142 4806 Dl 2106 4806 2070 4806 Dl 2070 4806 2070 4842 Dl 2070 4860 2070 4896 Dl 2070 4914 2070 4950 Dl (2) 2498 4892 w 2070 5094 2106 5094 Dl 2142 5094 2178 5094 Dl 2214 5094 2250 5094 Dl 2286 5094 2322 5094 Dl 2358 5094 2394 5094 Dl 2430 5094 2466 5094 Dl 2502 5094 2538 5094 Dl 2574 5094 2610 5094 Dl 2646 5094 2682 5094 Dl 2718 5094 2754 5094 Dl 2790 5094 2826 5094 Dl 2862 5094 2898 5094 Dl 2934 5094 2970 5094 Dl 2970 5094 2970 5058 Dl 2970 5040 2970 5004 Dl 2970 4986 2970 4950 Dl 2970 4950 2934 4950 Dl 2898 4950 2862 4950 Dl 2826 4950 2790 4950 Dl 2754 4950 2718 4950 Dl 2682 4950 2646 4950 Dl 2610 4950 2574 4950 Dl 2538 4950 2502 4950 Dl 2466 4950 2430 4950 Dl 2394 4950 2358 4950 Dl 2322 4950 2286 4950 Dl 2250 4950 2214 4950 Dl 2178 4950 2142 4950 Dl 2106 4950 2070 4950 Dl 2070 4950 2070 4986 Dl 2070 5004 2070 5040 Dl 2070 5058 2070 5094 Dl 7 /LucidaSansUnicode20 f (&) 2485 5036 w 2070 5238 2106 5238 Dl 2142 5238 2178 5238 Dl 2214 5238 2250 5238 Dl 2286 5238 2322 5238 Dl 2358 5238 2394 5238 Dl 2430 5238 2466 5238 Dl 2502 5238 2538 5238 Dl 2574 5238 2610 5238 Dl 2646 5238 2682 5238 Dl 2718 5238 2754 5238 Dl 2790 5238 2826 5238 Dl 2862 5238 2898 5238 Dl 2934 5238 2970 5238 Dl 2970 5238 2970 5202 Dl 2970 5184 2970 5148 Dl 2970 5130 2970 5094 Dl 2970 5094 2934 5094 Dl 2898 5094 2862 5094 Dl 2826 5094 2790 5094 Dl 2754 5094 2718 5094 Dl 2682 5094 2646 5094 Dl 2610 5094 2574 5094 Dl 2538 5094 2502 5094 Dl 2466 5094 2430 5094 Dl 2394 5094 2358 5094 Dl 2322 5094 2286 5094 Dl 2250 5094 2214 5094 Dl 2178 5094 2142 5094 Dl 2106 5094 2070 5094 Dl 2070 5094 2070 5130 Dl 2070 5148 2070 5184 Dl 2070 5202 2070 5238 Dl 7 /LucidaSansUnicode00 f (n) 2499 5180 w 2142 4986 2592 4842 Dl 2592 4842 2754 5166 Dl 2754 5166 2142 4986 Dl 2034 5274 2034 4626 Dl 2034 4626 3006 4626 Dl 3006 4626 3006 5274 Dl 3006 5274 2034 5274 Dl (Framebuf) 1675 4676 w 3330 4194 432 432 De (rasterizer) 3350 4208 w (1) 3698 4208 w 3330 4698 432 432 De (rasterizer) 3350 4712 w (2) 3698 4712 w 3330 5202 432 432 De 7 /LucidaSansUnicode20 f (&) 3511 5216 w 3330 5706 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 3351 5720 w (n) 3699 5720 w 2970 4878 3330 4698 Dl 3273 4746 3329 4698 Dl 3270 4742 3329 4698 Dl 3268 4739 3329 4698 Dl 3265 4735 3329 4698 Dl 3263 4731 3329 4698 Dl 3261 4726 3329 4698 Dl 3260 4722 3329 4698 Dl 3258 4718 3329 4698 Dl 3257 4713 3329 4698 Dl 2970 5022 3330 5202 Dl 3257 5186 3329 5201 Dl 3258 5181 3329 5201 Dl 3260 5177 3329 5201 Dl 3261 5173 3329 5201 Dl 3263 5168 3329 5201 Dl 3265 5164 3329 5201 Dl 3268 5160 3329 5201 Dl 3270 5157 3329 5201 Dl 3273 5153 3329 5201 Dl 2970 5166 3330 5706 Dl 3275 5656 3329 5705 Dl 3278 5652 3329 5705 Dl 3281 5649 3329 5705 Dl 3285 5646 3329 5705 Dl 3288 5644 3329 5705 Dl 3292 5641 3329 5705 Dl 3296 5639 3329 5705 Dl 3300 5637 3329 5705 Dl 3304 5636 3329 5705 Dl 10 /LucidaSans-Demi f (Figure 4) 2073 6120 w 10 /LucidaSansUnicode00 f (: Raster task scheduling.) 2495 6120 w 10 /LucidaSans-Demi f (4.) 720 6360 w (Frames of reference) 873 6360 w 10 /LucidaSansUnicode00 f (Frames are right-handed throughout every stage.) 970 6516 w (August 3, 2024) 2503 7680 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /LucidaSansUnicode00 f (\255 5 \255) 2783 480 w gsave newpath 3586 1386 m /inpath true def 0.7 setgray 2790 1602 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def 7 /LucidaSansUnicode00 f (p) 2703 1616 w 2797 1602 3514 1664 Dl 3441 1676 3514 1665 Dl 3441 1671 3515 1664 Dl 3440 1667 3514 1665 Dl 3440 1662 3514 1664 Dl 3441 1658 3515 1664 Dl 3441 1653 3514 1663 Dl 3441 1649 3513 1664 Dl 3443 1645 3514 1665 Dl 3444 1640 3513 1664 Dl (bx) 3543 1678 w 2797 1602 2797 882 Dl 2815 954 2797 882 Dl 2811 954 2798 882 Dl 2806 955 2797 882 Dl 2801 956 2797 882 Dl 2797 956 2797 882 Dl 2793 956 2797 882 Dl 2788 955 2797 882 Dl 2783 954 2796 882 Dl 2779 954 2797 882 Dl (by) 2685 896 w 2797 1602 2246 1890 Dl 2301 1841 2246 1889 Dl 2304 1843 2246 1889 Dl 2307 1847 2246 1889 Dl 2309 1851 2246 1889 Dl 2311 1855 2246 1889 Dl 2313 1859 2246 1889 Dl 2315 1864 2246 1889 Dl 2317 1868 2246 1889 Dl 2318 1872 2246 1889 Dl (bz) 2132 1904 w 10 /LucidaSans-Demi f (Figure 5) 1897 2088 w 10 /LucidaSansUnicode00 f (: Example right-handed rframe.) 2319 2088 w 10 /LucidaSans-Demi f (5.) 720 2328 w (Viewports) 873 2328 w 10 /LucidaSansUnicode00 f (A) 970 2484 w 10 /LucidaSans-Italic f (viewport) 1084 2484 w 10 /LucidaSansUnicode00 f (is) 1547 2484 w (a) 1673 2484 w (sort) 1774 2484 w (of) 2010 2484 w (virtual) 2154 2484 w (framebuffer,) 2505 2484 w (a) 3161 2484 w (device) 3262 2484 w (that) 3615 2484 w (lets) 3852 2484 w (users) 4071 2484 w (configure) 4378 2484 w (the) 4885 2484 w (way) 720 2604 w (they) 940 2604 w (visualize) 1183 2604 w (a) 1639 2604 w (framebuffer,) 1730 2604 w (which) 2375 2604 w (changes) 2691 2604 w (the) 3125 2604 w (resulting) 3315 2604 w 10 /LucidaSans-Italic f (image) 3779 2604 w 10 /LucidaSansUnicode00 f (\(6\)) 4076 2604 w (after) 4240 2604 w (a) 4501 2604 w (call) 4591 2604 w (to) 4790 2604 w (its) 4923 2604 w 10 /LucidaTypewriter f (draw) 720 2724 w 10 /LucidaSansUnicode00 f (or) 1067 2724 w 10 /LucidaTypewriter f (memdraw) 1228 2724 w 10 /LucidaSansUnicode00 f (methods.) 1791 2724 w (So) 2337 2724 w (far) 2511 2724 w (the) 2703 2724 w (only) 2917 2724 w (feature) 3180 2724 w (available) 3583 2724 w (is) 4065 2724 w (upscaling,) 4204 2724 w (which) 4759 2724 w (includes) 720 2844 w (user-defined) 1174 2844 w (filters) 1859 2844 w (for) 2190 2844 w (specific) 2380 2844 w (ratios,) 2798 2844 w (such) 3155 2844 w (as) 3432 2844 w (the) 3589 2844 w (family) 3795 2844 w (of) 4141 2844 w (pixel) 4289 2844 w (art) 4577 2844 w (filters) 4760 2844 w 10 /LucidaSans-Italic f (Scale[234]x) 720 2964 w 10 /LucidaSansUnicode00 f (,) 1277 2964 w (used) 1360 2964 w (for) 1644 2964 w (2x2,) 1835 2964 w (3x3) 2106 2964 w (and) 2345 2964 w (4x4) 2577 2964 w (scaling) 2816 2964 w (respectively) 3207 2964 w 10 /LucidaSans-Italic f ([REF01]) 3780 2964 w 10 /LucidaSansUnicode00 f (.) 4144 2964 w (Users) 4260 2964 w (control) 4580 2964 w (it) 4974 2964 w (with calls to the viewport) 720 3084 w 10 /LucidaSansUnicode20 f (\031) 1937 3084 w 10 /LucidaSansUnicode00 f (s) 1969 3084 w 10 /LucidaTypewriter f (setscale) 2052 3084 w 10 /LucidaSansUnicode00 f (and) 2660 3084 w 10 /LucidaTypewriter f (setscalefilter) 2872 3084 w 10 /LucidaSansUnicode00 f (methods.) 3912 3084 w 1836 4758 1836 3318 Dl 1836 3318 3996 3318 Dl 3996 3318 3996 4758 Dl 3996 4758 1836 4758 Dl 7 /LucidaSansUnicode00 f (Framebuf) 2755 4628 w gsave newpath 2916 4614 m /inpath true def 0.7 setgray 1828 3318 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def (p) 1742 3332 w 1836 3318 2556 3318 Dl 2484 3336 2556 3318 Dl 2483 3331 2555 3318 Dl 2482 3327 2555 3318 Dl 2481 3322 2555 3318 Dl 2481 3318 2555 3318 Dl 2481 3313 2555 3317 Dl 2482 3308 2555 3317 Dl 2483 3304 2555 3317 Dl 2484 3300 2556 3318 Dl (bx) 2513 3260 w 1836 3318 1836 4038 Dl 1818 3966 1836 4038 Dl 1822 3965 1835 4037 Dl 1826 3964 1835 4037 Dl 1831 3963 1835 4037 Dl 1836 3963 1836 4037 Dl 1840 3963 1836 4037 Dl 1845 3964 1836 4037 Dl 1849 3965 1836 4037 Dl 1854 3966 1836 4038 Dl (by) 1724 4052 w 10 /LucidaSans-Demi f (Figure 6) 1932 4956 w 10 /LucidaSansUnicode00 f (: Illustration of a 3:2 viewport.) 2354 4956 w 10 /LucidaSans-Demi f (References) 720 5196 w 10 /LucidaSansUnicode00 f ([REF01]https://www.scale2x.it/) 720 5388 w (August 3, 2024) 2503 7680 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Trailer done %%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic LucidaTypewriter %%Pages: 5