%!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 24, 2024) 2471 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 24, 2024) 2471 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 10 /LucidaSans-Demi f (3.1.) 720 3668 w (renderer) 962 3668 w 10 /LucidaSansUnicode00 f (The) 970 3824 w 10 /LucidaSans-Demi f (renderer) 1234 3824 w 10 /LucidaSansUnicode00 f (process,) 1761 3824 w (the) 2250 3824 w (root) 2488 3824 w (of) 2771 3824 w (the) 2952 3824 w (tree,) 3190 3824 w (waits) 3495 3824 w (on) 3828 3824 w (a) 4035 3824 w 10 /LucidaTypewriter f (channel) 4174 3824 w 10 /LucidaSansUnicode00 f (for) 4762 3824 w (a) 4985 3824 w 10 /LucidaTypewriter f (Renderjob) 720 3944 w 10 /LucidaSansUnicode00 f (sent) 1405 3944 w (by) 1648 3944 w (another) 1800 3944 w (user) 2210 3944 w (process,) 2456 3944 w (specifying) 2898 3944 w (a) 3426 3944 w (framebuffer,) 3517 3944 w (a) 4163 3944 w (scene,) 4254 3944 w (a) 4598 3944 w (camera) 4689 3944 w (and) 720 4064 w (a) 936 4064 w (shader) 1027 4064 w (table.) 1391 4064 w (It) 1731 4064 w (walks) 1833 4064 w (the) 2139 4064 w (scene) 2330 4064 w (and) 2642 4064 w (sends) 2858 4064 w (each) 3177 4064 w 10 /LucidaTypewriter f (Entity) 3437 4064 w 10 /LucidaSansUnicode00 f (individually) 3905 4064 w (to) 4496 4064 w (the) 4631 4064 w (enti\255) 4823 4064 w (typroc.) 720 4184 w 1026 5498 1026 5138 Dl 1026 5138 1566 5138 Dl 1566 5138 1566 5498 Dl 1566 5498 1026 5498 Dl 7 /LucidaSansUnicode00 f (Renderjob) 1123 5332 w 1566 5318 1926 5318 Dl 1854 5336 1926 5318 Dl 1853 5331 1925 5318 Dl 1852 5327 1925 5318 Dl 1851 5322 1925 5318 Dl 1851 5318 1925 5318 Dl 1851 5313 1925 5317 Dl 1852 5308 1925 5317 Dl 1853 5304 1925 5317 Dl 1854 5300 1926 5318 Dl 1926 5318 432 432 De (renderer) 1997 5332 w 2358 5318 2718 5318 Dl 2646 5336 2718 5318 Dl 2645 5331 2717 5318 Dl 2644 5327 2717 5318 Dl 2643 5322 2717 5318 Dl 2643 5318 2717 5318 Dl 2643 5313 2717 5317 Dl 2644 5308 2717 5317 Dl 2645 5304 2717 5317 Dl 2646 5300 2718 5318 Dl 2718 5318 432 432 De (entityproc) 2763 5332 w 3510 4562 432 432 De (tiler) 3626 4576 w (1) 3782 4576 w 3510 5066 432 432 De (tiler) 3626 5080 w (2) 3782 5080 w 3510 5570 432 432 De 7 /LucidaSansUnicode20 f (&) 3691 5584 w 3510 6074 432 432 De 7 /LucidaSansUnicode00 f (tiler) 3627 6088 w (n) 3783 6088 w 4302 4562 432 432 De (rasterizer) 4322 4576 w (1) 4670 4576 w 4302 5066 432 432 De (rasterizer) 4322 5080 w (2) 4670 5080 w 4302 5570 432 432 De 7 /LucidaSansUnicode20 f (&) 4483 5584 w 4302 6074 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 4323 6088 w (n) 4671 6088 w 3090 5168 3569 4711 Dl 3530 4773 3569 4711 Dl 3526 4771 3569 4711 Dl 3522 4768 3568 4711 Dl 3519 4765 3569 4711 Dl 3515 4762 3569 4711 Dl 3512 4759 3568 4712 Dl 3510 4755 3569 4711 Dl 3507 4751 3568 4711 Dl 3504 4747 3568 4711 Dl 3139 5252 3519 5132 Dl 3456 5170 3519 5132 Dl 3454 5166 3519 5131 Dl 3452 5162 3519 5132 Dl 3450 5158 3519 5132 Dl 3449 5153 3519 5131 Dl 3448 5149 3520 5131 Dl 3447 5145 3519 5132 Dl 3446 5140 3519 5131 Dl 3445 5135 3519 5131 Dl 3139 5383 3519 5503 Dl 3445 5500 3519 5504 Dl 3446 5495 3519 5504 Dl 3447 5490 3519 5503 Dl 3448 5486 3520 5504 Dl 3449 5482 3519 5504 Dl 3450 5477 3519 5503 Dl 3452 5473 3519 5503 Dl 3454 5469 3519 5504 Dl 3456 5465 3519 5503 Dl 3090 5467 3569 5924 Dl 3504 5888 3568 5924 Dl 3507 5884 3568 5924 Dl 3510 5880 3569 5924 Dl 3512 5876 3568 5923 Dl 3515 5873 3569 5924 Dl 3519 5870 3569 5924 Dl 3522 5867 3568 5924 Dl 3526 5864 3569 5924 Dl 3530 5862 3569 5924 Dl 3942 4562 4302 4562 Dl 4230 4580 4302 4562 Dl 4229 4575 4301 4562 Dl 4228 4571 4301 4562 Dl 4227 4566 4301 4562 Dl 4227 4562 4301 4562 Dl 4227 4557 4301 4561 Dl 4228 4552 4301 4561 Dl 4229 4548 4301 4561 Dl 4230 4544 4302 4562 Dl 3908 4677 4335 4949 Dl 4265 4926 4335 4949 Dl 4266 4922 4335 4950 Dl 4268 4918 4334 4949 Dl 4271 4914 4335 4950 Dl 4273 4910 4335 4949 Dl 4275 4906 4334 4949 Dl 4278 4902 4335 4949 Dl 4281 4899 4335 4949 Dl 4284 4896 4335 4950 Dl 3859 4731 4383 5399 Dl 4325 5354 4383 5399 Dl 4328 5351 4383 5399 Dl 4332 5347 4384 5399 Dl 4335 5344 4384 5399 Dl 4338 5341 4384 5399 Dl 4342 5338 4384 5399 Dl 4345 5336 4383 5399 Dl 4350 5334 4384 5399 Dl 4354 5332 4384 5399 Dl 3826 4753 4417 5882 Dl 4368 5827 4417 5882 Dl 4371 5824 4417 5882 Dl 4375 5821 4417 5882 Dl 4379 5819 4417 5882 Dl 4383 5816 4417 5881 Dl 4387 5814 4417 5881 Dl 4391 5813 4416 5882 Dl 4395 5811 4416 5882 Dl 4400 5810 4417 5882 Dl 3908 4950 4335 4678 Dl 4284 4731 4335 4677 Dl 4281 4728 4335 4678 Dl 4278 4725 4335 4678 Dl 4275 4721 4334 4678 Dl 4273 4717 4335 4678 Dl 4271 4713 4335 4677 Dl 4268 4709 4334 4678 Dl 4266 4706 4335 4678 Dl 4265 4701 4335 4678 Dl 3942 5066 4302 5066 Dl 4230 5084 4302 5066 Dl 4229 5079 4301 5066 Dl 4228 5075 4301 5066 Dl 4227 5070 4301 5066 Dl 4227 5066 4301 5066 Dl 4227 5061 4301 5065 Dl 4228 5056 4301 5065 Dl 4229 5052 4301 5065 Dl 4230 5048 4302 5066 Dl 3908 5181 4335 5453 Dl 4265 5430 4335 5453 Dl 4266 5426 4335 5454 Dl 4268 5422 4334 5453 Dl 4271 5418 4335 5454 Dl 4273 5414 4335 5453 Dl 4275 5410 4334 5453 Dl 4278 5406 4335 5453 Dl 4281 5403 4335 5453 Dl 4284 5400 4335 5454 Dl 3859 5235 4383 5903 Dl 4325 5858 4383 5903 Dl 4328 5855 4383 5903 Dl 4332 5851 4384 5903 Dl 4335 5848 4384 5903 Dl 4338 5845 4384 5903 Dl 4342 5842 4384 5903 Dl 4345 5840 4383 5903 Dl 4350 5838 4384 5903 Dl 4354 5836 4384 5903 Dl 10 /LucidaSans-Demi f (Figure 2) 1437 6488 w 10 /LucidaSansUnicode00 f (: The rendering graph for a) 1859 6488 w 10 /LucidaSans-Demi f (2n) 3213 6488 w 10 /LucidaSansUnicode00 f (processor machine.) 3375 6488 w 10 /LucidaSans-Demi f (3.2.) 720 6728 w (entityproc) 962 6728 w 10 /LucidaSansUnicode00 f (The) 970 6884 w 10 /LucidaSans-Demi f (entityproc) 1198 6884 w 10 /LucidaSansUnicode00 f (receives) 1771 6884 w (an) 2210 6884 w (entity) 2374 6884 w (and) 2694 6884 w (splits) 2921 6884 w (its) 3228 6884 w (geometry) 3393 6884 w (equitatively) 3899 6884 w (among) 4504 6884 w (the) 4885 6884 w (tilers, sending a batch for each of them to process.) 720 7004 w (August 24, 2024) 2471 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 10 /LucidaSans-Demi f (3.3.) 720 840 w (tilers) 962 840 w 10 /LucidaSansUnicode00 f (Next,) 970 996 w (each) 1293 996 w 10 /LucidaSans-Demi f (tiler) 1580 996 w 10 /LucidaSansUnicode00 f (gets) 1854 996 w (to) 2123 996 w (work) 2284 996 w (on) 2584 996 w (their) 2770 996 w (subset) 3058 996 w (of) 3441 996 w (the) 3602 996 w (geometry,) 3821 996 w (potentially) 4375 996 w (in) 4949 996 w (parallel) 720 1116 w 10 /LucidaSansUnicode20 f (\024) 1077 1116 w 10 /LucidaSansUnicode00 f (see) 1177 1116 w 10 /LucidaSans-Demi f (Figure) 1376 1116 w (3) 1738 1116 w 10 /LucidaSansUnicode00 f (.) 1802 1116 w (They) 1902 1116 w (walk) 2171 1116 w (the) 2426 1116 w (list) 2617 1116 w (of) 2799 1116 w (primitives,) 2933 1116 w (then) 3481 1116 w (for) 3734 1116 w (each) 3909 1116 w (of) 4169 1116 w (them) 4303 1116 w (apply) 4587 1116 w (the) 4885 1116 w 10 /LucidaSans-Demi f (vertex) 720 1236 w (shader) 1084 1236 w 10 /LucidaSansUnicode00 f (to) 1478 1236 w (its) 1618 1236 w (vertices) 1777 1236 w (\(which) 2192 1236 w (expects) 2548 1236 w (clip) 2965 1236 w (space) 3179 1236 w (coordinates) 3497 1236 w (in) 4107 1236 w (return\),) 4241 1236 w (perform) 4648 1236 w (frustum) 720 1356 w (culling) 1139 1356 w (and) 1499 1356 w (clipping,) 1715 1356 w (back-face) 2171 1356 w (culling,) 2691 1356 w (and) 3083 1356 w (then) 3299 1356 w (project) 3552 1356 w (them) 3927 1356 w (into) 4210 1356 w (the) 4434 1356 w (viewport) 4624 1356 w (to) 720 1476 w (obtain) 869 1476 w (their) 1227 1476 w (screen) 1503 1476 w (space) 1871 1476 w (coordinates.) 2198 1476 w (Following) 2880 1476 w (this) 3395 1476 w (step,) 3625 1476 w (they) 3915 1476 w (build) 4173 1476 w (a) 4470 1476 w (bounding) 4576 1476 w (box,) 720 1596 w (used) 973 1596 w (to) 1241 1596 w (allocate) 1375 1596 w (each) 1783 1596 w (primitive) 2042 1596 w (into) 2506 1596 w (a) 2730 1596 w (rasterization) 2820 1596 w (bucket,) 3466 1596 w (or) 3860 1596 w 10 /LucidaSans-Demi f (tile) 3997 1596 w 10 /LucidaSansUnicode00 f (,) 4163 1596 w (managed) 4230 1596 w (by) 4711 1596 w (one) 4861 1596 w (of) 720 1716 w (the) 859 1716 w (rasterizers;) 1055 1716 w (as) 1643 1716 w (illustrated) 1790 1716 w (in) 2320 1716 w 10 /LucidaSans-Demi f (Figure) 2452 1716 w (4) 2819 1716 w 10 /LucidaSansUnicode00 f (.) 2883 1716 w (If) 2988 1716 w (it) 3095 1716 w (spans) 3202 1716 w (multiple) 3526 1716 w (tiles,) 3966 1716 w (it) 4242 1716 w (will) 4350 1716 w (be) 4556 1716 w (copied) 4717 1716 w (and sent to each of them.) 720 1836 w 2070 2826 2106 2826 Dl 2142 2826 2178 2826 Dl 2214 2826 2250 2826 Dl 2286 2826 2322 2826 Dl 2358 2826 2394 2826 Dl 2430 2826 2466 2826 Dl 2502 2826 2538 2826 Dl 2574 2826 2610 2826 Dl 2646 2826 2682 2826 Dl 2718 2826 2754 2826 Dl 2790 2826 2826 2826 Dl 2862 2826 2898 2826 Dl 2934 2826 2970 2826 Dl 2970 2826 2970 2790 Dl 2970 2772 2970 2736 Dl 2970 2718 2970 2682 Dl 2970 2682 2934 2682 Dl 2898 2682 2862 2682 Dl 2826 2682 2790 2682 Dl 2754 2682 2718 2682 Dl 2682 2682 2646 2682 Dl 2610 2682 2574 2682 Dl 2538 2682 2502 2682 Dl 2466 2682 2430 2682 Dl 2394 2682 2358 2682 Dl 2322 2682 2286 2682 Dl 2250 2682 2214 2682 Dl 2178 2682 2142 2682 Dl 2106 2682 2070 2682 Dl 2070 2682 2070 2718 Dl 2070 2736 2070 2772 Dl 2070 2790 2070 2826 Dl 7 /LucidaSansUnicode00 f (tile 1) 2435 2768 w 2070 2970 2106 2970 Dl 2142 2970 2178 2970 Dl 2214 2970 2250 2970 Dl 2286 2970 2322 2970 Dl 2358 2970 2394 2970 Dl 2430 2970 2466 2970 Dl 2502 2970 2538 2970 Dl 2574 2970 2610 2970 Dl 2646 2970 2682 2970 Dl 2718 2970 2754 2970 Dl 2790 2970 2826 2970 Dl 2862 2970 2898 2970 Dl 2934 2970 2970 2970 Dl 2970 2970 2970 2934 Dl 2970 2916 2970 2880 Dl 2970 2862 2970 2826 Dl 2970 2826 2934 2826 Dl 2898 2826 2862 2826 Dl 2826 2826 2790 2826 Dl 2754 2826 2718 2826 Dl 2682 2826 2646 2826 Dl 2610 2826 2574 2826 Dl 2538 2826 2502 2826 Dl 2466 2826 2430 2826 Dl 2394 2826 2358 2826 Dl 2322 2826 2286 2826 Dl 2250 2826 2214 2826 Dl 2178 2826 2142 2826 Dl 2106 2826 2070 2826 Dl 2070 2826 2070 2862 Dl 2070 2880 2070 2916 Dl 2070 2934 2070 2970 Dl (tile 2) 2435 2912 w 2070 3114 2106 3114 Dl 2142 3114 2178 3114 Dl 2214 3114 2250 3114 Dl 2286 3114 2322 3114 Dl 2358 3114 2394 3114 Dl 2430 3114 2466 3114 Dl 2502 3114 2538 3114 Dl 2574 3114 2610 3114 Dl 2646 3114 2682 3114 Dl 2718 3114 2754 3114 Dl 2790 3114 2826 3114 Dl 2862 3114 2898 3114 Dl 2934 3114 2970 3114 Dl 2970 3114 2970 3078 Dl 2970 3060 2970 3024 Dl 2970 3006 2970 2970 Dl 2970 2970 2934 2970 Dl 2898 2970 2862 2970 Dl 2826 2970 2790 2970 Dl 2754 2970 2718 2970 Dl 2682 2970 2646 2970 Dl 2610 2970 2574 2970 Dl 2538 2970 2502 2970 Dl 2466 2970 2430 2970 Dl 2394 2970 2358 2970 Dl 2322 2970 2286 2970 Dl 2250 2970 2214 2970 Dl 2178 2970 2142 2970 Dl 2106 2970 2070 2970 Dl 2070 2970 2070 3006 Dl 2070 3024 2070 3060 Dl 2070 3078 2070 3114 Dl 7 /LucidaSansUnicode20 f (&) 2485 3056 w 2070 3258 2106 3258 Dl 2142 3258 2178 3258 Dl 2214 3258 2250 3258 Dl 2286 3258 2322 3258 Dl 2358 3258 2394 3258 Dl 2430 3258 2466 3258 Dl 2502 3258 2538 3258 Dl 2574 3258 2610 3258 Dl 2646 3258 2682 3258 Dl 2718 3258 2754 3258 Dl 2790 3258 2826 3258 Dl 2862 3258 2898 3258 Dl 2934 3258 2970 3258 Dl 2970 3258 2970 3222 Dl 2970 3204 2970 3168 Dl 2970 3150 2970 3114 Dl 2970 3114 2934 3114 Dl 2898 3114 2862 3114 Dl 2826 3114 2790 3114 Dl 2754 3114 2718 3114 Dl 2682 3114 2646 3114 Dl 2610 3114 2574 3114 Dl 2538 3114 2502 3114 Dl 2466 3114 2430 3114 Dl 2394 3114 2358 3114 Dl 2322 3114 2286 3114 Dl 2250 3114 2214 3114 Dl 2178 3114 2142 3114 Dl 2106 3114 2070 3114 Dl 2070 3114 2070 3150 Dl 2070 3168 2070 3204 Dl 2070 3222 2070 3258 Dl 7 /LucidaSansUnicode00 f (tile n) 2435 3200 w 2034 3294 2034 2646 Dl 2034 2646 3006 2646 Dl 3006 2646 3006 3294 Dl 3006 3294 2034 3294 Dl (Framebuf) 1675 2696 w 3330 2214 432 432 De (rasterizer) 3350 2228 w (1) 3698 2228 w 3330 2718 432 432 De (rasterizer) 3350 2732 w (2) 3698 2732 w 3330 3222 432 432 De 7 /LucidaSansUnicode20 f (&) 3511 3236 w 3330 3726 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 3351 3740 w (n) 3699 3740 w 2970 2754 3330 2214 Dl 2970 2898 3330 2718 Dl 2970 3042 3330 3222 Dl 2970 3186 3330 3726 Dl 10 /LucidaSans-Demi f (Figure 3) 2180 4140 w 10 /LucidaSansUnicode00 f (: Per tile rasterizers.) 2602 4140 w 10 /LucidaSans-Demi f (3.4.) 720 4380 w (rasterizers) 962 4380 w 10 /LucidaSansUnicode00 f (Finally,) 970 4536 w (the) 1346 4536 w 10 /LucidaSans-Demi f (rasterizers) 1535 4536 w 10 /LucidaSansUnicode00 f (receive) 2128 4536 w (the) 2503 4536 w (primitive) 2692 4536 w (in) 3155 4536 w (screen) 3280 4536 w (space,) 3631 4536 w (slice) 3974 4536 w (it) 4225 4536 w (to) 4326 4536 w (fit) 4459 4536 w (their) 4597 4536 w (tile,) 4857 4536 w (and) 720 4656 w (apply) 937 4656 w (a) 1236 4656 w (rasterization) 1328 4656 w (routine) 1976 4656 w (based) 2361 4656 w (on) 2686 4656 w (its) 2846 4656 w (type.) 3000 4656 w (For) 3277 4656 w (each) 3470 4656 w (of) 3731 4656 w (the) 3866 4656 w (pixels,) 4058 4656 w (a) 4416 4656 w 10 /LucidaSans-Demi f (depth) 4508 4656 w (test) 4842 4656 w 10 /LucidaSansUnicode00 f (is) 720 4776 w (performed,) 845 4776 w (discarding) 1433 4776 w (fragments) 1984 4776 w (that) 2523 4776 w (are) 2759 4776 w (further) 2956 4776 w (away.) 3337 4776 w (Then) 3653 4776 w (a) 3941 4776 w 10 /LucidaSans-Demi f (fragment) 4042 4776 w (shader) 4562 4776 w 10 /LucidaSansUnicode00 f (is) 4960 4776 w (applied and the result written to the framebuffer after blending.) 720 4896 w (August 24, 2024) 2471 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 2070 1710 2106 1710 Dl 2142 1710 2178 1710 Dl 2214 1710 2250 1710 Dl 2286 1710 2322 1710 Dl 2358 1710 2394 1710 Dl 2430 1710 2466 1710 Dl 2502 1710 2538 1710 Dl 2574 1710 2610 1710 Dl 2646 1710 2682 1710 Dl 2718 1710 2754 1710 Dl 2790 1710 2826 1710 Dl 2862 1710 2898 1710 Dl 2934 1710 2970 1710 Dl 2970 1710 2970 1674 Dl 2970 1656 2970 1620 Dl 2970 1602 2970 1566 Dl 2970 1566 2934 1566 Dl 2898 1566 2862 1566 Dl 2826 1566 2790 1566 Dl 2754 1566 2718 1566 Dl 2682 1566 2646 1566 Dl 2610 1566 2574 1566 Dl 2538 1566 2502 1566 Dl 2466 1566 2430 1566 Dl 2394 1566 2358 1566 Dl 2322 1566 2286 1566 Dl 2250 1566 2214 1566 Dl 2178 1566 2142 1566 Dl 2106 1566 2070 1566 Dl 2070 1566 2070 1602 Dl 2070 1620 2070 1656 Dl 2070 1674 2070 1710 Dl 7 /LucidaSansUnicode00 f (1) 2498 1652 w 2070 1854 2106 1854 Dl 2142 1854 2178 1854 Dl 2214 1854 2250 1854 Dl 2286 1854 2322 1854 Dl 2358 1854 2394 1854 Dl 2430 1854 2466 1854 Dl 2502 1854 2538 1854 Dl 2574 1854 2610 1854 Dl 2646 1854 2682 1854 Dl 2718 1854 2754 1854 Dl 2790 1854 2826 1854 Dl 2862 1854 2898 1854 Dl 2934 1854 2970 1854 Dl 2970 1854 2970 1818 Dl 2970 1800 2970 1764 Dl 2970 1746 2970 1710 Dl 2970 1710 2934 1710 Dl 2898 1710 2862 1710 Dl 2826 1710 2790 1710 Dl 2754 1710 2718 1710 Dl 2682 1710 2646 1710 Dl 2610 1710 2574 1710 Dl 2538 1710 2502 1710 Dl 2466 1710 2430 1710 Dl 2394 1710 2358 1710 Dl 2322 1710 2286 1710 Dl 2250 1710 2214 1710 Dl 2178 1710 2142 1710 Dl 2106 1710 2070 1710 Dl 2070 1710 2070 1746 Dl 2070 1764 2070 1800 Dl 2070 1818 2070 1854 Dl (2) 2498 1796 w 2070 1998 2106 1998 Dl 2142 1998 2178 1998 Dl 2214 1998 2250 1998 Dl 2286 1998 2322 1998 Dl 2358 1998 2394 1998 Dl 2430 1998 2466 1998 Dl 2502 1998 2538 1998 Dl 2574 1998 2610 1998 Dl 2646 1998 2682 1998 Dl 2718 1998 2754 1998 Dl 2790 1998 2826 1998 Dl 2862 1998 2898 1998 Dl 2934 1998 2970 1998 Dl 2970 1998 2970 1962 Dl 2970 1944 2970 1908 Dl 2970 1890 2970 1854 Dl 2970 1854 2934 1854 Dl 2898 1854 2862 1854 Dl 2826 1854 2790 1854 Dl 2754 1854 2718 1854 Dl 2682 1854 2646 1854 Dl 2610 1854 2574 1854 Dl 2538 1854 2502 1854 Dl 2466 1854 2430 1854 Dl 2394 1854 2358 1854 Dl 2322 1854 2286 1854 Dl 2250 1854 2214 1854 Dl 2178 1854 2142 1854 Dl 2106 1854 2070 1854 Dl 2070 1854 2070 1890 Dl 2070 1908 2070 1944 Dl 2070 1962 2070 1998 Dl 7 /LucidaSansUnicode20 f (&) 2485 1940 w 2070 2142 2106 2142 Dl 2142 2142 2178 2142 Dl 2214 2142 2250 2142 Dl 2286 2142 2322 2142 Dl 2358 2142 2394 2142 Dl 2430 2142 2466 2142 Dl 2502 2142 2538 2142 Dl 2574 2142 2610 2142 Dl 2646 2142 2682 2142 Dl 2718 2142 2754 2142 Dl 2790 2142 2826 2142 Dl 2862 2142 2898 2142 Dl 2934 2142 2970 2142 Dl 2970 2142 2970 2106 Dl 2970 2088 2970 2052 Dl 2970 2034 2970 1998 Dl 2970 1998 2934 1998 Dl 2898 1998 2862 1998 Dl 2826 1998 2790 1998 Dl 2754 1998 2718 1998 Dl 2682 1998 2646 1998 Dl 2610 1998 2574 1998 Dl 2538 1998 2502 1998 Dl 2466 1998 2430 1998 Dl 2394 1998 2358 1998 Dl 2322 1998 2286 1998 Dl 2250 1998 2214 1998 Dl 2178 1998 2142 1998 Dl 2106 1998 2070 1998 Dl 2070 1998 2070 2034 Dl 2070 2052 2070 2088 Dl 2070 2106 2070 2142 Dl 7 /LucidaSansUnicode00 f (n) 2499 2084 w 2142 1890 2592 1746 Dl 2592 1746 2754 2070 Dl 2754 2070 2142 1890 Dl 2034 2178 2034 1530 Dl 2034 1530 3006 1530 Dl 3006 1530 3006 2178 Dl 3006 2178 2034 2178 Dl (Framebuf) 1675 1580 w 3330 1098 432 432 De (rasterizer) 3350 1112 w (1) 3698 1112 w 3330 1602 432 432 De (rasterizer) 3350 1616 w (2) 3698 1616 w 3330 2106 432 432 De 7 /LucidaSansUnicode20 f (&) 3511 2120 w 3330 2610 432 432 De 7 /LucidaSansUnicode00 f (rasterizer) 3351 2624 w (n) 3699 2624 w 2970 1782 3330 1602 Dl 3273 1650 3329 1602 Dl 3270 1646 3329 1602 Dl 3268 1643 3329 1602 Dl 3265 1639 3329 1602 Dl 3263 1635 3329 1602 Dl 3261 1630 3329 1602 Dl 3260 1626 3329 1602 Dl 3258 1622 3329 1602 Dl 3257 1617 3329 1602 Dl 2970 1926 3330 2106 Dl 3257 2090 3329 2105 Dl 3258 2085 3329 2105 Dl 3260 2081 3329 2105 Dl 3261 2077 3329 2105 Dl 3263 2072 3329 2105 Dl 3265 2068 3329 2105 Dl 3268 2064 3329 2105 Dl 3270 2061 3329 2105 Dl 3273 2057 3329 2105 Dl 2970 2070 3330 2610 Dl 3275 2560 3329 2609 Dl 3278 2556 3329 2609 Dl 3281 2553 3329 2609 Dl 3285 2550 3329 2609 Dl 3288 2548 3329 2609 Dl 3292 2545 3329 2609 Dl 3296 2543 3329 2609 Dl 3300 2541 3329 2609 Dl 3304 2540 3329 2609 Dl 10 /LucidaSans-Demi f (Figure 4) 2073 3024 w 10 /LucidaSansUnicode00 f (: Raster task scheduling.) 2495 3024 w 10 /LucidaSans-Demi f (4.) 720 3264 w (Frames of reference) 873 3264 w 10 /LucidaSansUnicode00 f (Frames are right-handed throughout every stage.) 970 3420 w gsave newpath 3586 4086 m /inpath true def 0.7 setgray 2790 4302 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def 7 /LucidaSansUnicode00 f (p) 2703 4316 w 2797 4302 3514 4364 Dl 3441 4376 3514 4365 Dl 3441 4371 3515 4364 Dl 3440 4367 3514 4365 Dl 3440 4362 3514 4364 Dl 3441 4358 3515 4364 Dl 3441 4353 3514 4363 Dl 3441 4349 3513 4364 Dl 3443 4345 3514 4365 Dl 3444 4340 3513 4364 Dl (bx) 3543 4378 w 2797 4302 2797 3582 Dl 2815 3654 2797 3582 Dl 2811 3654 2798 3582 Dl 2806 3655 2797 3582 Dl 2801 3656 2797 3582 Dl 2797 3656 2797 3582 Dl 2793 3656 2797 3582 Dl 2788 3655 2797 3582 Dl 2783 3654 2796 3582 Dl 2779 3654 2797 3582 Dl (by) 2685 3596 w 2797 4302 2246 4590 Dl 2301 4541 2246 4589 Dl 2304 4543 2246 4589 Dl 2307 4547 2246 4589 Dl 2309 4551 2246 4589 Dl 2311 4555 2246 4589 Dl 2313 4559 2246 4589 Dl 2315 4564 2246 4589 Dl 2317 4568 2246 4589 Dl 2318 4572 2246 4589 Dl (bz) 2132 4604 w 10 /LucidaSans-Demi f (Figure 5) 1897 4788 w 10 /LucidaSansUnicode00 f (: Example right-handed rframe.) 2319 4788 w 10 /LucidaSans-Demi f (5.) 720 5028 w (Viewports) 873 5028 w 10 /LucidaSansUnicode00 f (A) 970 5184 w 10 /LucidaSans-Italic f (viewport) 1084 5184 w 10 /LucidaSansUnicode00 f (is) 1547 5184 w (a) 1673 5184 w (sort) 1774 5184 w (of) 2010 5184 w (virtual) 2154 5184 w (framebuffer,) 2505 5184 w (a) 3161 5184 w (device) 3262 5184 w (that) 3615 5184 w (lets) 3852 5184 w (users) 4071 5184 w (configure) 4378 5184 w (the) 4885 5184 w (way) 720 5304 w (they) 940 5304 w (visualize) 1183 5304 w (a) 1639 5304 w (framebuffer,) 1730 5304 w (which) 2375 5304 w (changes) 2691 5304 w (the) 3125 5304 w (resulting) 3315 5304 w 10 /LucidaSans-Italic f (image) 3779 5304 w 10 /LucidaSansUnicode00 f (\(6\)) 4076 5304 w (after) 4240 5304 w (a) 4501 5304 w (call) 4591 5304 w (to) 4790 5304 w (its) 4923 5304 w 10 /LucidaTypewriter f (draw) 720 5424 w 10 /LucidaSansUnicode00 f (or) 1067 5424 w 10 /LucidaTypewriter f (memdraw) 1228 5424 w 10 /LucidaSansUnicode00 f (methods.) 1791 5424 w (So) 2337 5424 w (far) 2511 5424 w (the) 2703 5424 w (only) 2917 5424 w (feature) 3180 5424 w (available) 3583 5424 w (is) 4065 5424 w (upscaling,) 4204 5424 w (which) 4759 5424 w (includes) 720 5544 w (user-defined) 1174 5544 w (filters) 1859 5544 w (for) 2190 5544 w (specific) 2380 5544 w (ratios,) 2798 5544 w (such) 3155 5544 w (as) 3432 5544 w (the) 3589 5544 w (family) 3795 5544 w (of) 4141 5544 w (pixel) 4289 5544 w (art) 4577 5544 w (filters) 4760 5544 w 10 /LucidaSans-Italic f (Scale[234]x) 720 5664 w 10 /LucidaSansUnicode00 f (,) 1277 5664 w (used) 1360 5664 w (for) 1644 5664 w (2x2,) 1835 5664 w (3x3) 2106 5664 w (and) 2345 5664 w (4x4) 2577 5664 w (scaling) 2816 5664 w (respectively) 3207 5664 w 10 /LucidaSans-Italic f ([REF01]) 3780 5664 w 10 /LucidaSansUnicode00 f (.) 4144 5664 w (Users) 4260 5664 w (control) 4580 5664 w (it) 4974 5664 w (with calls to the viewport) 720 5784 w 10 /LucidaSansUnicode20 f (\031) 1937 5784 w 10 /LucidaSansUnicode00 f (s) 1969 5784 w 10 /LucidaTypewriter f (setscale) 2052 5784 w 10 /LucidaSansUnicode00 f (and) 2660 5784 w 10 /LucidaTypewriter f (setscalefilter) 2872 5784 w 10 /LucidaSansUnicode00 f (methods.) 3912 5784 w (August 24, 2024) 2471 7680 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /LucidaSansUnicode00 f (\255 6 \255) 2783 480 w 1836 2394 1836 954 Dl 1836 954 3996 954 Dl 3996 954 3996 2394 Dl 3996 2394 1836 2394 Dl 7 /LucidaSansUnicode00 f (Framebuf) 2755 2264 w gsave newpath 2916 2250 m /inpath true def 0.7 setgray 1828 954 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def (p) 1742 968 w 1836 954 2556 954 Dl 2484 972 2556 954 Dl 2483 967 2555 954 Dl 2482 963 2555 954 Dl 2481 958 2555 954 Dl 2481 954 2555 954 Dl 2481 949 2555 953 Dl 2482 944 2555 953 Dl 2483 940 2555 953 Dl 2484 936 2556 954 Dl (bx) 2513 896 w 1836 954 1836 1674 Dl 1818 1602 1836 1674 Dl 1822 1601 1835 1673 Dl 1826 1600 1835 1673 Dl 1831 1599 1835 1673 Dl 1836 1599 1836 1673 Dl 1840 1599 1836 1673 Dl 1845 1600 1836 1673 Dl 1849 1601 1836 1673 Dl 1854 1602 1836 1674 Dl (by) 1724 1688 w 10 /LucidaSans-Demi f (Figure 6) 1932 2592 w 10 /LucidaSansUnicode00 f (: Illustration of a 3:2 viewport.) 2354 2592 w 10 /LucidaSans-Demi f (References) 720 2832 w 10 /LucidaSansUnicode00 f ([REF01]https://www.scale2x.it/) 720 3024 w (August 24, 2024) 2471 7680 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Trailer done %%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic LucidaTypewriter %%Pages: 6