From 2267dba0ea8f61cf4b3e51492995f8edea03dcc8 Mon Sep 17 00:00:00 2001 From: rodri Date: Tue, 23 Jul 2024 15:35:16 +0000 Subject: doc: write about the scene, the viewport. organize things better. --- doc/libgraphics.ms | 176 ++-- doc/libgraphics.pdf | Bin 30115 -> 34494 bytes doc/libgraphics.ps | 2217 ++++++++++++++++++++++++++++----------------------- 3 files changed, 1314 insertions(+), 1079 deletions(-) diff --git a/doc/libgraphics.ms b/doc/libgraphics.ms index 2fada71..f25e270 100644 --- a/doc/libgraphics.ms +++ b/doc/libgraphics.ms @@ -1,22 +1,82 @@ +.\" Figure management +.nr FI 0 1 +.de FI +.ce +\fBFigure \\n+(FI\fR: \\$1 +.. + .TL libgraphics: Design and Implementation .DA .AU Rodrigo G. López rgl@antares-labs.eu -.SH -Introduction -.LP +.AB .I Libgraphics is a 3D computer graphics library that provides a way to set up a scene, fill it up with a bunch of models (with their own meshes and materials), lights and cameras, and start taking pictures at the user request. It implements a fully concurrent retained mode software renderer, with support for vertex and fragment/pixel shaders written -in C (not GPU ones, at least for now), a z-buffer, front- and +in C (not GPU ones, at least for now), and featuring a z-buffer, front- and back-face culling, textures and skyboxes, directional and punctual -lights, tangent-space normal mapping, ??? +lights, tangent-space normal mapping, among other things. +.AE .SH +Introduction +.LP +.QP +Write the intro last. +.NH +The scene +.PP +A scene is a container, represented as a graph, that hosts the +entities that make up the world. Each of these entities has a model +made out of a series of meshes, which in turn are made out of +geometric primitives (only +.I points , +.I lines +and +.I triangles +are supported). Each model also stores a list of materials. +.PP +.PS +.ps 7 +boxwid = 0.5 +boxht = 0.2 +linewid = 0.1 +lineht = 0.2 +box "Scene" +down; line from last box.s; right; line +box "Entity" +down; line from last box.s; right; line +box "Model" +down; line from last box.s; right; line +box dashed "Mesh" +down; line from last box.s; right; line +box "Primitive" +down +line from 2nd last line.s; line; right; line +box "Material" +reset +.ps 10 +.PE +.FI "The scene graph." +.NH 2 +Entities +.NH 2 +Models +.NH 2 +Meshes +.NH 2 +Primitives +.NH 2 +Materials +.NH +Cameras +.PP + +.NH The renderer .LP The @@ -31,33 +91,33 @@ themselves with shooting and “developing” a camera. It's implemented as a tree of concurrent processes connected by .CW Channel s—as seen in -.B "Figure 1" —, +.B "Figure 2" —, spawned with a call to .CW initgraphics , each representing a stage of the pipeline: -.IP +.IP • The .B renderer process, the root of the tree, waits on a .CW channel for a .CW Renderjob -sent by another user process, specifying a scene, a camera and a -shader table. It walks the scene and sends each +sent by another user process, specifying a framebuffer, a scene, a +camera and a shader table. It walks the scene and sends each .CW Entity individually to the entityproc. -.IP +.IP • The .B entityproc receives an entity and splits its geometry equitatively among the tilers, sending a batch for each of them to process. -.IP +.IP • Next, each .B tiler gets to work on their subset of the geometry (potentially in parallel)—see -.B "Figure 2" . +.B "Figure 3" . They walk the list of primitives, then for each of them apply the .B "vertex shader" @@ -67,24 +127,20 @@ project them into the viewport (screen space). Following this step, they build a bounding box, used to allocate each primitive into a rasterization bucket, or .B tile , -managed by one of the rasterizers; this is illustrated in -.B "Figure 3" . +managed by one of the rasterizers; as illustrated in +.B "Figure 4" . If it spans multiple tiles, it will be copied and sent to each of them. -.IP +.IP • Finally, the .B rasterizers receive the primitive in screen space, slice it to fit their tile, and -apply a rasterization routine based on its type (only -.I points , -.I lines -and -.I triangles -are supported). For each of the pixels, a +apply a rasterization routine based on its type. For each of the pixels, a .B "depth test" is performed, discarding fragments that are further away. Then a .B "fragment shader" is applied and the result written to the framebuffer after blending. +.PP .PS .ps 7 circlerad = 0.3 @@ -131,13 +187,7 @@ arrow from Tiler.T1 to Raster.Rd chop arrow from Tiler.T1 to Raster.Rn chop .ps 10 .PE -.B "Figure 1" : -The rendering graph for a -.B 2n -processor machine. -.SH -Tile-based rendering -.PP +.FI "The rendering graph for a \fB2n\fR processor machine." .PS .ps 7 Tiles: [ @@ -150,7 +200,7 @@ Tiles: [ Tn: box dashed "tile n" ] box ht last [].ht+0.1 wid last [].wid+0.1 at last [] -"Screen" rjust with .se at last [].nw - (0.1,0) +"Framebuf" rjust with .se at last [].nw - (0.1,0) Raster: [ moveht = 0.1 down @@ -168,8 +218,7 @@ line from Tiles.Td.e to Raster.Rd.w line from Tiles.Tn.e to Raster.Rn.w .ps 10 .PE -.B "Figure 2" : -Per tile rasterizers. +.FI "Per tile rasterizers." .PS .ps 7 Tiles: [ @@ -185,7 +234,7 @@ line from last [].w + (0.1,-0.05) to last [].n - (-0.1,0.25) line to last [].se - (0.3,-0.1) line to 1st line box ht last [].ht+0.1 wid last [].wid+0.1 at last [] -"Screen" rjust with .se at last [].nw - (0.1,0) +"Framebuf" rjust with .se at last [].nw - (0.1,0) Raster: [ moveht = 0.1 down @@ -202,32 +251,8 @@ arrow from Tiles.Td.e to Raster.Rd.w arrow from Tiles.Tn.e to Raster.Rn.w .ps 10 .PE -.B "Figure 3" : -Raster task scheduling. -.SH -The scene -.PP -.PS -.ps 7 -boxwid = 0.5 -boxht = 0.2 -linewid = 0.1 -lineht = 0.2 -box "Scene" -down; line from last box.s; right; line -box "Entity" -down; line from last box.s; right; line -box "Model" -down; line from last box.s; right; line -box "Mesh" -down; line from last box.s; right; line -box "Primitive" -down -line from 2nd last line.s; line; right; line -box "Material" -.ps 10 -.PE -.SH +.FI "Raster task scheduling." +.NH Frames of reference .PP Frames are right-handed throughout every stage. @@ -235,31 +260,46 @@ Frames are right-handed throughout every stage. .ps 7 RFrame: [ pi = 3.1415926535 + deg = pi/180 circle fill rad 0.01 at (0,0) "p" at last circle.c - (0.1,0) - xa = -5*pi/180 + xa = -5*deg arrow from (0,0) to (cos(xa),sin(xa)) "bx" at last arrow.end + (0.1,0) arrow from (0,0) to (0,1) "by" at last arrow.end - (0.1,0) - za = -150*pi/180 + za = -150*deg arrow from (0,0) to (cos(za)+0.1,sin(za)+0.1) "bz" at last arrow.end - (0.1,0) ] .ps 10 .PE -.B "Figure 4" : -Example right-handed rframe. -.SH +.FI "Example right-handed rframe." +.NH Viewports .PP +A +.I viewport +is a sort of virtual framebuffer, a device that lets users configure +the way they visualize a framebuffer, which changes the resulting +.I image (6) +after a call to its +.CW draw +or +.CW memdraw +methods. As of now, the only feature available is upscaling, which +includes user-defined filters for specific ratios, such as the family +of pixel art filters +.I Scale[234]x , +used for 2x2, 3x3 and 4x4 scaling +.I [?] . respectively .PS .ps 7 View: [ boxwid = 3 boxht = 2 box with .nw at (-1,1) - "framebuffer" at last box.s + (0,0.2) + "Framebuf" at last box.s + (0,0.2) circle fill rad 0.01 at (-1,1) "p" at last circle.c - (0.1,0) arrow from (-1,1) to (-1,1) + (1,0) @@ -269,5 +309,9 @@ View: [ ] .ps 10 .PE -.B "Figure 5" : -Illustration of a 3:2 viewport. +.FI "Illustration of a 3:2 viewport." +.SH +References +.PP +.IP [?] +https://www.scale2x.it/ diff --git a/doc/libgraphics.pdf b/doc/libgraphics.pdf index 8bbe1aa..0651640 100644 Binary files a/doc/libgraphics.pdf and b/doc/libgraphics.pdf differ diff --git a/doc/libgraphics.ps b/doc/libgraphics.ps index 3bce2d2..2a4cceb 100644 --- a/doc/libgraphics.ps +++ b/doc/libgraphics.ps @@ -619,779 +619,763 @@ setup mark 1 pagesetup 12 /LucidaSans-Demi f -(libgraphics: Design and Implementation) 1642 1220 w +(libgraphics: Design and Implementation) 1642 1230 w 10 /LucidaSans-Italic f -(Rodrigo G. L\363pez) 2469 1480 w -(rgl@antares-labs.eu) 2377 1620 w +(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 -(Introduction) 720 2280 w +(1.) 720 3922 w +(The scene) 873 3922 w +10 /LucidaSansUnicode00 f +(A) 970 4078 w +(scene) 1072 4078 w +(is) 1381 4078 w +(a) 1494 4078 w +(container,) 1582 4078 w +(represented) 2101 4078 w +(as) 2716 4078 w +(a) 2855 4078 w +(graph,) 2944 4078 w +(that) 3293 4078 w +(hosts) 3518 4078 w +(the) 3814 4078 w +(entities) 4003 4078 w +(that) 4394 4078 w +(make) 4619 4078 w +(up) 4915 4078 w +(the) 720 4198 w +(world.) 913 4198 w +(Each) 1286 4198 w +(of) 1545 4198 w +(these) 1680 4198 w +(entities) 1979 4198 w +(has) 2373 4198 w +(a) 2578 4198 w +(model) 2670 4198 w +(made) 3009 4198 w +(out) 3313 4198 w +(of) 3510 4198 w +(a) 3645 4198 w +(series) 3737 4198 w +(of) 4058 4198 w +(meshes,) 4193 4198 w +(which) 4631 4198 w +(in) 4949 4198 w +(turn) 720 4318 w +(are) 977 4318 w +(made) 1184 4318 w +(out) 1506 4318 w +(of) 1721 4318 w +(geometric) 1874 4318 w +(primitives) 2415 4318 w +(\(only) 2950 4318 w +10 /LucidaSans-Italic f +(points) 3242 4318 w +10 /LucidaSansUnicode00 f +(,) 3538 4318 w 10 /LucidaSans-Italic f -(Libgraphics) 720 2436 w +(lines) 3625 4318 w +10 /LucidaSansUnicode00 f +(and) 3902 4318 w +10 /LucidaSans-Italic f +(triangles) 4137 4318 w +10 /LucidaSansUnicode00 f +(are) 4623 4318 w +(sup\255) 4831 4318 w +(ported\). Each model also stores a list of materials.) 720 4438 w +2196 4780 2196 4636 Dl +2196 4636 2556 4636 Dl +2556 4636 2556 4780 Dl +2556 4780 2196 4780 Dl +7 /LucidaSansUnicode00 f +(Scene) 2279 4722 w +2376 4780 2376 4924 Dl +2376 4924 2448 4924 Dl +2448 4996 2448 4852 Dl +2448 4852 2808 4852 Dl +2808 4852 2808 4996 Dl +2808 4996 2448 4996 Dl +(Entity) 2534 4938 w +2628 4996 2628 5140 Dl +2628 5140 2700 5140 Dl +2700 5212 2700 5068 Dl +2700 5068 3060 5068 Dl +3060 5068 3060 5212 Dl +3060 5212 2700 5212 Dl +(Model) 2777 5154 w +2880 5212 2880 5356 Dl +2880 5356 2952 5356 Dl +2952 5428 2988 5428 Dl +3033 5428 3069 5428 Dl +3114 5428 3150 5428 Dl +3195 5428 3231 5428 Dl +3276 5428 3312 5428 Dl +3312 5428 3312 5392 Dl +3312 5374 3312 5338 Dl +3312 5320 3312 5284 Dl +3312 5284 3276 5284 Dl +3231 5284 3195 5284 Dl +3150 5284 3114 5284 Dl +3069 5284 3033 5284 Dl +2988 5284 2952 5284 Dl +2952 5284 2952 5320 Dl +2952 5338 2952 5374 Dl +2952 5392 2952 5428 Dl +(Mesh) 3043 5370 w +3132 5428 3132 5572 Dl +3132 5572 3204 5572 Dl +3204 5644 3204 5500 Dl +3204 5500 3564 5500 Dl +3564 5500 3564 5644 Dl +3564 5644 3204 5644 Dl +(Primitive) 3237 5586 w +3132 5572 3132 5716 Dl +3132 5716 3132 5860 Dl +3132 5860 3204 5860 Dl +3204 5932 3204 5788 Dl +3204 5788 3564 5788 Dl +3564 5788 3564 5932 Dl +3564 5932 3204 5932 Dl +(Material) 3248 5874 w +10 /LucidaSans-Demi f +(Figure 1) 2219 6130 w +10 /LucidaSansUnicode00 f +(: The scene graph.) 2641 6130 w +10 /LucidaSans-Demi f +(1.1.) 720 6370 w +(Entities) 962 6370 w +(1.2.) 720 6610 w +(Models) 962 6610 w +10 /LucidaSansUnicode00 f +(July 23, 2024) 2556 7680 w +cleartomark +showpage +saveobj restore +%%EndPage: 1 1 +%%Page: 2 2 +/saveobj save def +mark +2 pagesetup 10 /LucidaSansUnicode00 f -(is) 1323 2436 w -(a) 1440 2436 w -(3D) 1532 2436 w -(computer) 1707 2436 w -(graphics) 2208 2436 w -(library) 2659 2436 w -(that) 3006 2436 w -(provides) 3234 2436 w -(a) 3687 2436 w -(way) 3779 2436 w -(to) 4000 2436 w -(set) 4135 2436 w -(up) 4316 2436 w -(a) 4478 2436 w -(scene,) 4570 2436 w -(fill) 4916 2436 w -(it) 720 2556 w -(up) 821 2556 w -(with) 980 2556 w -(a) 1219 2556 w -(bunch) 1308 2556 w -(of) 1642 2556 w -(models) 1774 2556 w -(\(with) 2161 2556 w -(their) 2433 2556 w -(own) 2692 2556 w -(meshes) 2926 2556 w -(and) 3329 2556 w -(materials\),) 3543 2556 w -(lights) 4088 2556 w -(and) 4392 2556 w -(cameras,) 4606 2556 w -(and) 720 2676 w -(start) 939 2676 w -(taking) 1199 2676 w -(pictures) 1541 2676 w -(at) 1971 2676 w -(the) 2103 2676 w -(user) 2298 2676 w -(request.) 2548 2676 w -(It) 3018 2676 w -(implements) 3124 2676 w -(a) 3733 2676 w -(fully) 3828 2676 w -(concurrent) 4077 2676 w -(retained) 4641 2676 w -(mode) 720 2796 w -(software) 1033 2796 w -(renderer,) 1488 2796 w -(with) 1976 2796 w -(support) 2221 2796 w -(for) 2639 2796 w -(vertex) 2818 2796 w -(and) 3161 2796 w -(fragment/pixel) 3380 2796 w -(shaders) 4153 2796 w -(written) 4571 2796 w -(in) 4949 2796 w -(C \(not GPU ones, at least for now\), a z-buffer, front- and back-face culling, textures) 720 2916 w -(and) 4860 2916 w -(skyboxes, directional and punctual lights, tangent-space normal mapping, ???) 720 3036 w +(\255 2 \255) 2783 480 w 10 /LucidaSans-Demi f -(The renderer) 720 3276 w +(1.3.) 720 840 w +(Meshes) 962 840 w +(1.4.) 720 1080 w +(Primitives) 962 1080 w +(1.5.) 720 1320 w +(Materials) 962 1320 w +(2.) 720 1560 w +(Cameras) 873 1560 w +(3.) 720 1956 w +(The renderer) 873 1956 w 10 /LucidaSansUnicode00 f -(The) 720 3432 w +(The) 720 2112 w 10 /LucidaSans-Italic f -(renderer) 938 3432 w +(renderer) 938 2112 w 10 /LucidaSansUnicode00 f -(is) 1401 3432 w -(the) 1518 3432 w -(core) 1710 3432 w -(of) 1956 3432 w -(the) 2091 3432 w -(library.) 2283 3432 w -(It) 2662 3432 w -(follows) 2766 3432 w -(a) 3149 3432 w +(is) 1401 2112 w +(the) 1518 2112 w +(core) 1710 2112 w +(of) 1956 2112 w +(the) 2091 2112 w +(library.) 2283 2112 w +(It) 2662 2112 w +(follows) 2766 2112 w +(a) 3149 2112 w 10 /LucidaSans-Demi f -(retained) 3242 3432 w -(mode) 3708 3432 w +(retained) 3242 2112 w +(mode) 3708 2112 w 10 /LucidaSansUnicode00 f -(model,) 4032 3432 w -(which) 4404 3432 w -(means) 4723 3432 w -(that) 720 3552 w -(the) 955 3552 w -(user) 1154 3552 w -(won) 1408 3552 w +(model,) 4032 2112 w +(which) 4404 2112 w +(means) 4723 2112 w +(that) 720 2232 w +(the) 955 2232 w +(user) 1154 2232 w +(won) 1408 2232 w 10 /LucidaSansUnicode20 f -(\031) 1608 3552 w +(\031) 1608 2232 w 10 /LucidaSansUnicode00 f -(t) 1640 3552 w -(get) 1721 3552 w -(a) 1920 3552 w -(picture) 2019 3552 w -(until) 2402 3552 w -(the) 2665 3552 w -(entire) 2864 3552 w -(scene) 3189 3552 w -(has) 3509 3552 w -(been) 3721 3552 w -(rendered.) 4002 3552 w -(Thanks) 4548 3552 w -(to) 4942 3552 w -(this) 720 3672 w -(we) 944 3672 w -(can) 1122 3672 w -(also) 1335 3672 w -(clear) 1576 3672 w -(and) 1853 3672 w -(swap) 2078 3672 w -(the) 2369 3672 w -(framebuffers) 2569 3672 w -(without) 3243 3672 w -(their) 3653 3672 w -(intervention,) 3923 3672 w -(they) 4584 3672 w -(only) 4836 3672 w -(need to concern themselves with shooting and ) 720 3792 w +(t) 1640 2232 w +(get) 1721 2232 w +(a) 1920 2232 w +(picture) 2019 2232 w +(until) 2402 2232 w +(the) 2665 2232 w +(entire) 2864 2232 w +(scene) 3189 2232 w +(has) 3509 2232 w +(been) 3721 2232 w +(rendered.) 4002 2232 w +(Thanks) 4548 2232 w +(to) 4942 2232 w +(this) 720 2352 w +(we) 944 2352 w +(can) 1122 2352 w +(also) 1335 2352 w +(clear) 1576 2352 w +(and) 1853 2352 w +(swap) 2078 2352 w +(the) 2369 2352 w +(framebuffers) 2569 2352 w +(without) 3243 2352 w +(their) 3653 2352 w +(intervention,) 3923 2352 w +(they) 4584 2352 w +(only) 4836 2352 w +(need to concern themselves with shooting and ) 720 2472 w 10 /LucidaSansUnicode20 f -(\034) 3016 3792 w +(\034) 3016 2472 w 10 /LucidaSansUnicode00 f -(developing) 3053 3792 w +(developing) 3053 2472 w 10 /LucidaSansUnicode20 f -(\035) 3586 3792 w +(\035) 3586 2472 w 10 /LucidaSansUnicode00 f -(a camera.) 3655 3792 w -(It) 720 3948 w +(a camera.) 3655 2472 w +(It) 720 2628 w 10 /LucidaSansUnicode20 f -(\031) 786 3948 w +(\031) 786 2628 w 10 /LucidaSansUnicode00 f -(s implemented as a tree of concurrent processes) 818 3948 w -(connected) 3217 3948 w -(by) 3749 3948 w +(s implemented as a tree of concurrent processes) 818 2628 w +(connected) 3217 2628 w +(by) 3749 2628 w 10 /LucidaTypewriter f -(Channel) 3897 3948 w +(Channel) 3897 2628 w 10 /LucidaSansUnicode00 f -(s) 4401 3948 w +(s) 4401 2628 w 10 /LucidaSansUnicode20 f -(\024) 4452 3948 w +(\024) 4452 2628 w 10 /LucidaSansUnicode00 f -(as) 4552 3948 w -(seen) 4691 3948 w -(in) 4949 3948 w +(as) 4552 2628 w +(seen) 4691 2628 w +(in) 4949 2628 w 10 /LucidaSans-Demi f -(Figure) 720 4068 w -(1) 1088 4068 w +(Figure) 720 2748 w +(2) 1088 2748 w 10 /LucidaSansUnicode20 f -(\024) 1152 4068 w +(\024) 1152 2748 w 10 /LucidaSansUnicode00 f -(,) 1252 4068 w -(spawned) 1326 4068 w -(with) 1795 4068 w -(a) 2042 4068 w -(call) 2139 4068 w -(to) 2345 4068 w +(,) 1252 2748 w +(spawned) 1326 2748 w +(with) 1795 2748 w +(a) 2042 2748 w +(call) 2139 2748 w +(to) 2345 2748 w 10 /LucidaTypewriter f -(initgraphics) 2485 4068 w +(initgraphics) 2485 2748 w +10 /LucidaSansUnicode00 f +(,) 3349 2748 w +(each) 3423 2748 w +(representing) 3689 2748 w +(a) 4347 2748 w +(stage) 4444 2748 w +(of) 4746 2748 w +(the) 4885 2748 w +(pipeline:) 720 2868 w +10 /LucidaSansUnicode20 f +(") 720 3024 w 10 /LucidaSansUnicode00 f -(,) 3349 4068 w -(each) 3423 4068 w -(representing) 3689 4068 w -(a) 4347 4068 w -(stage) 4444 4068 w -(of) 4746 4068 w -(the) 4885 4068 w -(pipeline:) 720 4188 w -(The) 970 4344 w +(The) 970 3024 w 10 /LucidaSans-Demi f -(renderer) 1234 4344 w +(renderer) 1234 3024 w 10 /LucidaSansUnicode00 f -(process,) 1761 4344 w -(the) 2250 4344 w -(root) 2488 4344 w -(of) 2771 4344 w -(the) 2952 4344 w -(tree,) 3190 4344 w -(waits) 3495 4344 w -(on) 3828 4344 w -(a) 4035 4344 w +(process,) 1761 3024 w +(the) 2250 3024 w +(root) 2488 3024 w +(of) 2771 3024 w +(the) 2952 3024 w +(tree,) 3190 3024 w +(waits) 3495 3024 w +(on) 3828 3024 w +(a) 4035 3024 w 10 /LucidaTypewriter f -(channel) 4174 4344 w +(channel) 4174 3024 w 10 /LucidaSansUnicode00 f -(for) 4762 4344 w -(a) 4985 4344 w +(for) 4762 3024 w +(a) 4985 3024 w 10 /LucidaTypewriter f -(Renderjob) 970 4464 w +(Renderjob) 970 3144 w 10 /LucidaSansUnicode00 f -(sent) 1670 4464 w -(by) 1928 4464 w -(another) 2095 4464 w -(user) 2520 4464 w -(process,) 2781 4464 w -(specifying) 3238 4464 w -(a) 3781 4464 w -(scene,) 3887 4464 w -(a) 4246 4464 w -(camera) 4352 4464 w -(and) 4754 4464 w -(a) 4985 4464 w -(shader) 970 4584 w -(table.) 1338 4584 w -(It) 1682 4584 w -(walks) 1788 4584 w -(the) 2098 4584 w -(scene) 2293 4584 w -(and) 2610 4584 w -(sends) 2831 4584 w -(each) 3155 4584 w +(sent) 1667 3144 w +(by) 1922 3144 w +(another) 2086 3144 w +(user) 2509 3144 w +(process,) 2768 3144 w +(specifying) 3223 3144 w +(a) 3764 3144 w +(framebuffer,) 3868 3144 w +(a) 4526 3144 w +(scene,) 4629 3144 w +(a) 4985 3144 w +(camera) 970 3264 w +(and) 1362 3264 w +(a) 1583 3264 w +(shader) 1680 3264 w +(table.) 2050 3264 w +(It) 2396 3264 w +(walks) 2504 3264 w +(the) 2816 3264 w +(scene) 3013 3264 w +(and) 3331 3264 w +(sends) 3553 3264 w +(each) 3878 3264 w 10 /LucidaTypewriter f -(Entity) 3420 4584 w +(Entity) 4144 3264 w 10 /LucidaSansUnicode00 f -(individually) 3893 4584 w -(to) 4488 4584 w -(the) 4627 4584 w -(enti\255) 4823 4584 w -(typroc.) 970 4704 w -(The) 970 4860 w -10 /LucidaSans-Demi f -(entityproc) 1198 4860 w +(individu\255) 4618 3264 w +(ally to the entityproc.) 970 3384 w +10 /LucidaSansUnicode20 f +(") 720 3540 w 10 /LucidaSansUnicode00 f -(receives) 1771 4860 w -(an) 2210 4860 w -(entity) 2374 4860 w -(and) 2694 4860 w -(splits) 2921 4860 w -(its) 3228 4860 w -(geometry) 3393 4860 w -(equitatively) 3899 4860 w -(among) 4504 4860 w -(the) 4885 4860 w -(tilers, sending a batch for each of them to process.) 970 4980 w -(Next,) 970 5136 w -(each) 1293 5136 w +(The) 970 3540 w 10 /LucidaSans-Demi f -(tiler) 1580 5136 w +(entityproc) 1198 3540 w 10 /LucidaSansUnicode00 f -(gets) 1854 5136 w -(to) 2123 5136 w -(work) 2284 5136 w -(on) 2584 5136 w -(their) 2770 5136 w -(subset) 3058 5136 w -(of) 3441 5136 w -(the) 3602 5136 w -(geometry) 3820 5136 w -(\(potentially) 4342 5136 w -(in) 4949 5136 w -(parallel\)) 970 5256 w +(receives) 1771 3540 w +(an) 2210 3540 w +(entity) 2374 3540 w +(and) 2694 3540 w +(splits) 2921 3540 w +(its) 3228 3540 w +(geometry) 3393 3540 w +(equitatively) 3899 3540 w +(among) 4504 3540 w +(the) 4885 3540 w +(tilers, sending a batch for each of them to process.) 970 3660 w 10 /LucidaSansUnicode20 f -(\024) 1360 5256 w +(") 720 3816 w 10 /LucidaSansUnicode00 f -(see) 1460 5256 w +(Next,) 970 3816 w +(each) 1293 3816 w 10 /LucidaSans-Demi f -(Figure) 1675 5256 w -(2) 2053 5256 w +(tiler) 1580 3816 w 10 /LucidaSansUnicode00 f -(.) 2117 5256 w -(They) 2233 5256 w -(walk) 2518 5256 w -(the) 2789 5256 w -(list) 2996 5256 w -(of) 3194 5256 w -(primitives,) 3344 5256 w -(then) 3908 5256 w -(for) 4177 5256 w -(each) 4368 5256 w -(of) 4643 5256 w -(them) 4792 5256 w -(apply) 970 5376 w -(the) 1281 5376 w -10 /LucidaSans-Demi f -(vertex) 1485 5376 w -(shader) 1856 5376 w +(gets) 1854 3816 w +(to) 2123 3816 w +(work) 2284 3816 w +(on) 2584 3816 w +(their) 2770 3816 w +(subset) 3058 3816 w +(of) 3441 3816 w +(the) 3602 3816 w +(geometry) 3820 3816 w +(\(potentially) 4342 3816 w +(in) 4949 3816 w +(parallel\)) 970 3936 w +10 /LucidaSansUnicode20 f +(\024) 1360 3936 w 10 /LucidaSansUnicode00 f -(to) 2257 5376 w -(its) 2405 5376 w -(vertices) 2572 5376 w -(\(which) 2995 5376 w -(expects) 3359 5376 w -(clip) 3784 5376 w -(space) 4006 5376 w -(coordinates) 4332 5376 w -(in) 4949 5376 w -(return\),) 970 5496 w -(perform) 1378 5496 w -(frustum) 1813 5496 w -(culling) 2239 5496 w -(and) 2606 5496 w -(clipping,) 2829 5496 w -(back-face) 3292 5496 w -(culling,) 3819 5496 w -(and) 4218 5496 w -(then) 4441 5496 w -(project) 4701 5496 w -(them) 970 5616 w -(into) 1258 5616 w -(the) 1487 5616 w -(viewport) 1682 5616 w -(\(screen) 2138 5616 w -(space\).) 2528 5616 w -(Following) 2941 5616 w -(this) 3445 5616 w -(step,) 3665 5616 w -(they) 3945 5616 w -(build) 4193 5616 w -(a) 4480 5616 w -(bounding) 4576 5616 w -(box,) 970 5736 w -(used) 1220 5736 w -(to) 1485 5736 w -(allocate) 1616 5736 w -(each) 2022 5736 w -(primitive) 2279 5736 w -(into a rasterization bucket, or) 2741 5736 w +(see) 1460 3936 w 10 /LucidaSans-Demi f -(tile) 4217 5736 w +(Figure) 1675 3936 w +(3) 2053 3936 w 10 /LucidaSansUnicode00 f -(, managed by) 4383 5736 w -(one of the rasterizers; this is illustrated) 970 5856 w -(in) 2922 5856 w +(.) 2117 3936 w +(They) 2233 3936 w +(walk) 2518 3936 w +(the) 2789 3936 w +(list) 2996 3936 w +(of) 3194 3936 w +(primitives,) 3344 3936 w +(then) 3908 3936 w +(for) 4177 3936 w +(each) 4368 3936 w +(of) 4643 3936 w +(them) 4792 3936 w +(apply) 970 4056 w +(the) 1281 4056 w 10 /LucidaSans-Demi f -(Figure) 3046 5856 w -(3) 3405 5856 w +(vertex) 1485 4056 w +(shader) 1856 4056 w 10 /LucidaSansUnicode00 f -(.) 3469 5856 w -(If) 3566 5856 w -(it) 3665 5856 w -(spans) 3764 5856 w -(multiple) 4079 5856 w -(tiles,) 4510 5856 w -(it) 4777 5856 w -(will) 4876 5856 w -(be copied and sent to each of them.) 970 5976 w -(Finally,) 970 6132 w -(the) 1346 6132 w +(to) 2257 4056 w +(its) 2405 4056 w +(vertices) 2572 4056 w +(\(which) 2995 4056 w +(expects) 3359 4056 w +(clip) 3784 4056 w +(space) 4006 4056 w +(coordinates) 4332 4056 w +(in) 4949 4056 w +(return\),) 970 4176 w +(perform) 1378 4176 w +(frustum) 1813 4176 w +(culling) 2239 4176 w +(and) 2606 4176 w +(clipping,) 2829 4176 w +(back-face) 3292 4176 w +(culling,) 3819 4176 w +(and) 4218 4176 w +(then) 4441 4176 w +(project) 4701 4176 w +(them) 970 4296 w +(into) 1258 4296 w +(the) 1487 4296 w +(viewport) 1682 4296 w +(\(screen) 2138 4296 w +(space\).) 2528 4296 w +(Following) 2941 4296 w +(this) 3445 4296 w +(step,) 3665 4296 w +(they) 3945 4296 w +(build) 4193 4296 w +(a) 4480 4296 w +(bounding) 4576 4296 w +(box,) 970 4416 w +(used) 1220 4416 w +(to) 1485 4416 w +(allocate) 1616 4416 w +(each) 2022 4416 w +(primitive) 2279 4416 w +(into a rasterization bucket, or) 2741 4416 w 10 /LucidaSans-Demi f -(rasterizers) 1535 6132 w +(tile) 4217 4416 w 10 /LucidaSansUnicode00 f -(receive) 2128 6132 w -(the) 2503 6132 w -(primitive) 2692 6132 w -(in) 3155 6132 w -(screen) 3280 6132 w -(space,) 3631 6132 w -(slice) 3974 6132 w -(it) 4225 6132 w -(to) 4326 6132 w -(fit) 4459 6132 w -(their) 4597 6132 w -(tile,) 4857 6132 w -(and) 970 6252 w -(apply) 1187 6252 w -(a) 1486 6252 w -(rasterization) 1578 6252 w -(routine) 2226 6252 w -(based) 2611 6252 w -(on) 2936 6252 w -(its) 3096 6252 w -(type) 3250 6252 w -(\(only) 3495 6252 w -10 /LucidaSans-Italic f -(points) 3769 6252 w -10 /LucidaSansUnicode00 f -(,) 4065 6252 w -10 /LucidaSans-Italic f -(lines) 4134 6252 w -10 /LucidaSansUnicode00 f -(and) 4393 6252 w -10 /LucidaSans-Italic f -(triangles) 4610 6252 w -10 /LucidaSansUnicode00 f -(are) 970 6372 w -(supported\).) 1160 6372 w -(For) 1760 6372 w -(each) 1954 6372 w -(of) 2216 6372 w -(the) 2352 6372 w -(pixels,) 2545 6372 w -(a) 2904 6372 w -10 /LucidaSans-Demi f -(depth) 2997 6372 w -(test) 3333 6372 w -10 /LucidaSansUnicode00 f -(is) 3569 6372 w -(performed,) 3687 6372 w -(discarding) 4268 6372 w -(frag\255) 4812 6372 w -(ments) 970 6492 w -(that) 1319 6492 w -(are) 1560 6492 w -(further) 1762 6492 w -(away.) 2148 6492 w -(Then) 2469 6492 w -(a) 2762 6492 w +(, managed by) 4383 4416 w +(one) 970 4536 w +(of) 1183 4536 w +(the) 1315 4536 w +(rasterizers;) 1504 4536 w +(as) 2085 4536 w +(illustrated) 2226 4536 w +(in) 2750 4536 w 10 /LucidaSans-Demi f -(fragment) 2867 6492 w -(shader) 3391 6492 w +(Figure) 2876 4536 w +(4) 3237 4536 w 10 /LucidaSansUnicode00 f -(is) 3793 6492 w -(applied) 3923 6492 w -(and) 4331 6492 w -(the) 4560 6492 w -(result) 4764 6492 w -(written to the framebuffer.) 970 6612 w -(July 22, 2024) 2556 7680 w -cleartomark -showpage -saveobj restore -%%EndPage: 1 1 -%%Page: 2 2 -/saveobj save def -mark -2 pagesetup +(.) 3301 4536 w +(If) 3400 4536 w +(it) 3501 4536 w +(spans) 3602 4536 w +(multiple) 3919 4536 w +(tiles,) 4352 4536 w +(it) 4621 4536 w +(will) 4722 4536 w +(be) 4921 4536 w +(copied and sent to each of them.) 970 4656 w +10 /LucidaSansUnicode20 f +(") 720 4812 w 10 /LucidaSansUnicode00 f -(\255 2 \255) 2783 480 w -1026 1992 1026 1632 Dl -1026 1632 1566 1632 Dl -1566 1632 1566 1992 Dl -1566 1992 1026 1992 Dl -7 /LucidaSansUnicode00 f -(Renderjob) 1123 1826 w -1566 1812 1926 1812 Dl -1854 1830 1926 1812 Dl -1853 1825 1925 1812 Dl -1852 1821 1925 1812 Dl -1851 1816 1925 1812 Dl -1851 1812 1925 1812 Dl -1851 1807 1925 1811 Dl -1852 1802 1925 1811 Dl -1853 1798 1925 1811 Dl -1854 1794 1926 1812 Dl -1926 1812 432 432 De -(renderer) 1997 1826 w -2358 1812 2718 1812 Dl -2646 1830 2718 1812 Dl -2645 1825 2717 1812 Dl -2644 1821 2717 1812 Dl -2643 1816 2717 1812 Dl -2643 1812 2717 1812 Dl -2643 1807 2717 1811 Dl -2644 1802 2717 1811 Dl -2645 1798 2717 1811 Dl -2646 1794 2718 1812 Dl -2718 1812 432 432 De -(entityproc) 2763 1826 w -3510 1056 432 432 De -(tiler) 3626 1070 w -(1) 3782 1070 w -3510 1560 432 432 De -(tiler) 3626 1574 w -(2) 3782 1574 w -3510 2064 432 432 De -7 /LucidaSansUnicode20 f -(&) 3691 2078 w -3510 2568 432 432 De -7 /LucidaSansUnicode00 f -(tiler) 3627 2582 w -(n) 3783 2582 w -4302 1056 432 432 De -(rasterizer) 4322 1070 w -(1) 4670 1070 w -4302 1560 432 432 De -(rasterizer) 4322 1574 w -(2) 4670 1574 w -4302 2064 432 432 De -7 /LucidaSansUnicode20 f -(&) 4483 2078 w -4302 2568 432 432 De -7 /LucidaSansUnicode00 f -(rasterizer) 4323 2582 w -(n) 4671 2582 w -3090 1662 3569 1205 Dl -3530 1267 3569 1205 Dl -3526 1265 3569 1205 Dl -3522 1262 3568 1205 Dl -3519 1259 3569 1205 Dl -3515 1256 3569 1205 Dl -3512 1253 3568 1206 Dl -3510 1249 3569 1205 Dl -3507 1245 3568 1205 Dl -3504 1241 3568 1205 Dl -3139 1746 3519 1626 Dl -3456 1664 3519 1626 Dl -3454 1660 3519 1625 Dl -3452 1656 3519 1626 Dl -3450 1652 3519 1626 Dl -3449 1647 3519 1625 Dl -3448 1643 3520 1625 Dl -3447 1639 3519 1626 Dl -3446 1634 3519 1625 Dl -3445 1629 3519 1625 Dl -3139 1877 3519 1997 Dl -3445 1994 3519 1998 Dl -3446 1989 3519 1998 Dl -3447 1984 3519 1997 Dl -3448 1980 3520 1998 Dl -3449 1976 3519 1998 Dl -3450 1971 3519 1997 Dl -3452 1967 3519 1997 Dl -3454 1963 3519 1998 Dl -3456 1959 3519 1997 Dl -3090 1961 3569 2418 Dl -3504 2382 3568 2418 Dl -3507 2378 3568 2418 Dl -3510 2374 3569 2418 Dl -3512 2370 3568 2417 Dl -3515 2367 3569 2418 Dl -3519 2364 3569 2418 Dl -3522 2361 3568 2418 Dl -3526 2358 3569 2418 Dl -3530 2356 3569 2418 Dl -3942 1056 4302 1056 Dl -4230 1074 4302 1056 Dl -4229 1069 4301 1056 Dl -4228 1065 4301 1056 Dl -4227 1060 4301 1056 Dl -4227 1056 4301 1056 Dl -4227 1051 4301 1055 Dl -4228 1046 4301 1055 Dl -4229 1042 4301 1055 Dl -4230 1038 4302 1056 Dl -3908 1171 4335 1443 Dl -4265 1420 4335 1443 Dl -4266 1416 4335 1444 Dl -4268 1412 4334 1443 Dl -4271 1408 4335 1444 Dl -4273 1404 4335 1443 Dl -4275 1400 4334 1443 Dl -4278 1396 4335 1443 Dl -4281 1393 4335 1443 Dl -4284 1390 4335 1444 Dl -3859 1225 4383 1893 Dl -4325 1848 4383 1893 Dl -4328 1845 4383 1893 Dl -4332 1841 4384 1893 Dl -4335 1838 4384 1893 Dl -4338 1835 4384 1893 Dl -4342 1832 4384 1893 Dl -4345 1830 4383 1893 Dl -4350 1828 4384 1893 Dl -4354 1826 4384 1893 Dl -3826 1247 4417 2376 Dl -4368 2321 4417 2376 Dl -4371 2318 4417 2376 Dl -4375 2315 4417 2376 Dl -4379 2313 4417 2376 Dl -4383 2310 4417 2375 Dl -4387 2308 4417 2375 Dl -4391 2307 4416 2376 Dl -4395 2305 4416 2376 Dl -4400 2304 4417 2376 Dl -3908 1444 4335 1172 Dl -4284 1225 4335 1171 Dl -4281 1222 4335 1172 Dl -4278 1219 4335 1172 Dl -4275 1215 4334 1172 Dl -4273 1211 4335 1172 Dl -4271 1207 4335 1171 Dl -4268 1203 4334 1172 Dl -4266 1200 4335 1172 Dl -4265 1195 4335 1172 Dl -3942 1560 4302 1560 Dl -4230 1578 4302 1560 Dl -4229 1573 4301 1560 Dl -4228 1569 4301 1560 Dl -4227 1564 4301 1560 Dl -4227 1560 4301 1560 Dl -4227 1555 4301 1559 Dl -4228 1550 4301 1559 Dl -4229 1546 4301 1559 Dl -4230 1542 4302 1560 Dl -3908 1675 4335 1947 Dl -4265 1924 4335 1947 Dl -4266 1920 4335 1948 Dl -4268 1916 4334 1947 Dl -4271 1912 4335 1948 Dl -4273 1908 4335 1947 Dl -4275 1904 4334 1947 Dl -4278 1900 4335 1947 Dl -4281 1897 4335 1947 Dl -4284 1894 4335 1948 Dl -3859 1729 4383 2397 Dl -4325 2352 4383 2397 Dl -4328 2349 4383 2397 Dl -4332 2345 4384 2397 Dl -4335 2342 4384 2397 Dl -4338 2339 4384 2397 Dl -4342 2336 4384 2397 Dl -4345 2334 4383 2397 Dl -4350 2332 4384 2397 Dl -4354 2330 4384 2397 Dl +(Finally,) 970 4812 w +(the) 1346 4812 w 10 /LucidaSans-Demi f -(Figure 1) 970 2982 w +(rasterizers) 1535 4812 w 10 /LucidaSansUnicode00 f -(: The rendering graph for a) 1392 2982 w +(receive) 2128 4812 w +(the) 2503 4812 w +(primitive) 2692 4812 w +(in) 3155 4812 w +(screen) 3280 4812 w +(space,) 3631 4812 w +(slice) 3974 4812 w +(it) 4225 4812 w +(to) 4326 4812 w +(fit) 4459 4812 w +(their) 4597 4812 w +(tile,) 4857 4812 w +(and) 970 4932 w +(apply) 1186 4932 w +(a) 1484 4932 w +(rasterization) 1575 4932 w +(routine) 2222 4932 w +(based) 2606 4932 w +(on) 2930 4932 w +(its) 3089 4932 w +(type.) 3242 4932 w +(For) 3518 4932 w +(each) 3710 4932 w +(of) 3970 4932 w +(the) 4104 4932 w +(pixels,) 4295 4932 w +(a) 4652 4932 w 10 /LucidaSans-Demi f -(2n) 2746 2982 w +(depth) 4742 4932 w +(test) 970 5052 w 10 /LucidaSansUnicode00 f -(processor machine.) 2908 2982 w +(is) 1215 5052 w +(performed,) 1343 5052 w +(discarding) 1934 5052 w +(fragments) 2488 5052 w +(that) 3030 5052 w +(are) 3269 5052 w +(further) 3469 5052 w +(away.) 3853 5052 w +(Then) 4172 5052 w +(a) 4463 5052 w 10 /LucidaSans-Demi f -(Tile-based rendering) 720 3222 w -2070 4248 2106 4248 Dl -2142 4248 2178 4248 Dl -2214 4248 2250 4248 Dl -2286 4248 2322 4248 Dl -2358 4248 2394 4248 Dl -2430 4248 2466 4248 Dl -2502 4248 2538 4248 Dl -2574 4248 2610 4248 Dl -2646 4248 2682 4248 Dl -2718 4248 2754 4248 Dl -2790 4248 2826 4248 Dl -2862 4248 2898 4248 Dl -2934 4248 2970 4248 Dl -2970 4248 2970 4212 Dl -2970 4194 2970 4158 Dl -2970 4140 2970 4104 Dl -2970 4104 2934 4104 Dl -2898 4104 2862 4104 Dl -2826 4104 2790 4104 Dl -2754 4104 2718 4104 Dl -2682 4104 2646 4104 Dl -2610 4104 2574 4104 Dl -2538 4104 2502 4104 Dl -2466 4104 2430 4104 Dl -2394 4104 2358 4104 Dl -2322 4104 2286 4104 Dl -2250 4104 2214 4104 Dl -2178 4104 2142 4104 Dl -2106 4104 2070 4104 Dl -2070 4104 2070 4140 Dl -2070 4158 2070 4194 Dl -2070 4212 2070 4248 Dl +(fragment) 4566 5052 w +(shader) 970 5172 w +10 /LucidaSansUnicode00 f +(is applied and the result written to the framebuffer after blending.) 1354 5172 w +1026 6522 1026 6162 Dl +1026 6162 1566 6162 Dl +1566 6162 1566 6522 Dl +1566 6522 1026 6522 Dl 7 /LucidaSansUnicode00 f -(tile 1) 2435 4190 w -2070 4392 2106 4392 Dl -2142 4392 2178 4392 Dl -2214 4392 2250 4392 Dl -2286 4392 2322 4392 Dl -2358 4392 2394 4392 Dl -2430 4392 2466 4392 Dl -2502 4392 2538 4392 Dl -2574 4392 2610 4392 Dl -2646 4392 2682 4392 Dl -2718 4392 2754 4392 Dl -2790 4392 2826 4392 Dl -2862 4392 2898 4392 Dl -2934 4392 2970 4392 Dl -2970 4392 2970 4356 Dl -2970 4338 2970 4302 Dl -2970 4284 2970 4248 Dl -2970 4248 2934 4248 Dl -2898 4248 2862 4248 Dl -2826 4248 2790 4248 Dl -2754 4248 2718 4248 Dl -2682 4248 2646 4248 Dl -2610 4248 2574 4248 Dl -2538 4248 2502 4248 Dl -2466 4248 2430 4248 Dl -2394 4248 2358 4248 Dl -2322 4248 2286 4248 Dl -2250 4248 2214 4248 Dl -2178 4248 2142 4248 Dl -2106 4248 2070 4248 Dl -2070 4248 2070 4284 Dl -2070 4302 2070 4338 Dl -2070 4356 2070 4392 Dl -(tile 2) 2435 4334 w -2070 4536 2106 4536 Dl -2142 4536 2178 4536 Dl -2214 4536 2250 4536 Dl -2286 4536 2322 4536 Dl -2358 4536 2394 4536 Dl -2430 4536 2466 4536 Dl -2502 4536 2538 4536 Dl -2574 4536 2610 4536 Dl -2646 4536 2682 4536 Dl -2718 4536 2754 4536 Dl -2790 4536 2826 4536 Dl -2862 4536 2898 4536 Dl -2934 4536 2970 4536 Dl -2970 4536 2970 4500 Dl -2970 4482 2970 4446 Dl -2970 4428 2970 4392 Dl -2970 4392 2934 4392 Dl -2898 4392 2862 4392 Dl -2826 4392 2790 4392 Dl -2754 4392 2718 4392 Dl -2682 4392 2646 4392 Dl -2610 4392 2574 4392 Dl -2538 4392 2502 4392 Dl -2466 4392 2430 4392 Dl -2394 4392 2358 4392 Dl -2322 4392 2286 4392 Dl -2250 4392 2214 4392 Dl -2178 4392 2142 4392 Dl -2106 4392 2070 4392 Dl -2070 4392 2070 4428 Dl -2070 4446 2070 4482 Dl -2070 4500 2070 4536 Dl +(Renderjob) 1123 6356 w +1566 6342 1926 6342 Dl +1854 6360 1926 6342 Dl +1853 6355 1925 6342 Dl +1852 6351 1925 6342 Dl +1851 6346 1925 6342 Dl +1851 6342 1925 6342 Dl +1851 6337 1925 6341 Dl +1852 6332 1925 6341 Dl +1853 6328 1925 6341 Dl +1854 6324 1926 6342 Dl +1926 6342 432 432 De +(renderer) 1997 6356 w +2358 6342 2718 6342 Dl +2646 6360 2718 6342 Dl +2645 6355 2717 6342 Dl +2644 6351 2717 6342 Dl +2643 6346 2717 6342 Dl +2643 6342 2717 6342 Dl +2643 6337 2717 6341 Dl +2644 6332 2717 6341 Dl +2645 6328 2717 6341 Dl +2646 6324 2718 6342 Dl +2718 6342 432 432 De +(entityproc) 2763 6356 w +3510 5586 432 432 De +(tiler) 3626 5600 w +(1) 3782 5600 w +3510 6090 432 432 De +(tiler) 3626 6104 w +(2) 3782 6104 w +3510 6594 432 432 De 7 /LucidaSansUnicode20 f -(&) 2485 4478 w -2070 4680 2106 4680 Dl -2142 4680 2178 4680 Dl -2214 4680 2250 4680 Dl -2286 4680 2322 4680 Dl -2358 4680 2394 4680 Dl -2430 4680 2466 4680 Dl -2502 4680 2538 4680 Dl -2574 4680 2610 4680 Dl -2646 4680 2682 4680 Dl -2718 4680 2754 4680 Dl -2790 4680 2826 4680 Dl -2862 4680 2898 4680 Dl -2934 4680 2970 4680 Dl -2970 4680 2970 4644 Dl -2970 4626 2970 4590 Dl -2970 4572 2970 4536 Dl -2970 4536 2934 4536 Dl -2898 4536 2862 4536 Dl -2826 4536 2790 4536 Dl -2754 4536 2718 4536 Dl -2682 4536 2646 4536 Dl -2610 4536 2574 4536 Dl -2538 4536 2502 4536 Dl -2466 4536 2430 4536 Dl -2394 4536 2358 4536 Dl -2322 4536 2286 4536 Dl -2250 4536 2214 4536 Dl -2178 4536 2142 4536 Dl -2106 4536 2070 4536 Dl -2070 4536 2070 4572 Dl -2070 4590 2070 4626 Dl -2070 4644 2070 4680 Dl +(&) 3691 6608 w +3510 7098 432 432 De 7 /LucidaSansUnicode00 f -(tile n) 2435 4622 w -2034 4716 2034 4068 Dl -2034 4068 3006 4068 Dl -3006 4068 3006 4716 Dl -3006 4716 2034 4716 Dl -(Screen) 1774 4118 w -3330 3636 432 432 De -(rasterizer) 3350 3650 w -(1) 3698 3650 w -3330 4140 432 432 De -(rasterizer) 3350 4154 w -(2) 3698 4154 w -3330 4644 432 432 De +(tiler) 3627 7112 w +(n) 3783 7112 w +4302 5586 432 432 De +(rasterizer) 4322 5600 w +(1) 4670 5600 w +4302 6090 432 432 De +(rasterizer) 4322 6104 w +(2) 4670 6104 w +4302 6594 432 432 De 7 /LucidaSansUnicode20 f -(&) 3511 4658 w -3330 5148 432 432 De +(&) 4483 6608 w +4302 7098 432 432 De 7 /LucidaSansUnicode00 f -(rasterizer) 3351 5162 w -(n) 3699 5162 w -2970 4176 3330 3636 Dl -2970 4320 3330 4140 Dl -2970 4464 3330 4644 Dl -2970 4608 3330 5148 Dl -10 /LucidaSans-Demi f -(Figure 2) 720 5562 w +(rasterizer) 4323 7112 w +(n) 4671 7112 w +3090 6192 3569 5735 Dl +3530 5797 3569 5735 Dl +3526 5795 3569 5735 Dl +3522 5792 3568 5735 Dl +3519 5789 3569 5735 Dl +3515 5786 3569 5735 Dl +3512 5783 3568 5736 Dl +3510 5779 3569 5735 Dl +3507 5775 3568 5735 Dl +3504 5771 3568 5735 Dl +3139 6276 3519 6156 Dl +3456 6194 3519 6156 Dl +3454 6190 3519 6155 Dl +3452 6186 3519 6156 Dl +3450 6182 3519 6156 Dl +3449 6177 3519 6155 Dl +3448 6173 3520 6155 Dl +3447 6169 3519 6156 Dl +3446 6164 3519 6155 Dl +3445 6159 3519 6155 Dl +3139 6407 3519 6527 Dl +3445 6524 3519 6528 Dl +3446 6519 3519 6528 Dl +3447 6514 3519 6527 Dl +3448 6510 3520 6528 Dl +3449 6506 3519 6528 Dl +3450 6501 3519 6527 Dl +3452 6497 3519 6527 Dl +3454 6493 3519 6528 Dl +3456 6489 3519 6527 Dl +3090 6491 3569 6948 Dl +3504 6912 3568 6948 Dl +3507 6908 3568 6948 Dl +3510 6904 3569 6948 Dl +3512 6900 3568 6947 Dl +3515 6897 3569 6948 Dl +3519 6894 3569 6948 Dl +3522 6891 3568 6948 Dl +3526 6888 3569 6948 Dl +3530 6886 3569 6948 Dl +3942 5586 4302 5586 Dl +4230 5604 4302 5586 Dl +4229 5599 4301 5586 Dl +4228 5595 4301 5586 Dl +4227 5590 4301 5586 Dl +4227 5586 4301 5586 Dl +4227 5581 4301 5585 Dl +4228 5576 4301 5585 Dl +4229 5572 4301 5585 Dl +4230 5568 4302 5586 Dl +3908 5701 4335 5973 Dl +4265 5950 4335 5973 Dl +4266 5946 4335 5974 Dl +4268 5942 4334 5973 Dl +4271 5938 4335 5974 Dl +4273 5934 4335 5973 Dl +4275 5930 4334 5973 Dl +4278 5926 4335 5973 Dl +4281 5923 4335 5973 Dl +4284 5920 4335 5974 Dl +3859 5755 4383 6423 Dl +4325 6378 4383 6423 Dl +4328 6375 4383 6423 Dl +4332 6371 4384 6423 Dl +4335 6368 4384 6423 Dl +4338 6365 4384 6423 Dl +4342 6362 4384 6423 Dl +4345 6360 4383 6423 Dl +4350 6358 4384 6423 Dl +4354 6356 4384 6423 Dl +3826 5777 4417 6906 Dl +4368 6851 4417 6906 Dl +4371 6848 4417 6906 Dl +4375 6845 4417 6906 Dl +4379 6843 4417 6906 Dl +4383 6840 4417 6905 Dl +4387 6838 4417 6905 Dl +4391 6837 4416 6906 Dl +4395 6835 4416 6906 Dl +4400 6834 4417 6906 Dl +3908 5974 4335 5702 Dl +4284 5755 4335 5701 Dl +4281 5752 4335 5702 Dl +4278 5749 4335 5702 Dl +4275 5745 4334 5702 Dl +4273 5741 4335 5702 Dl +4271 5737 4335 5701 Dl +4268 5733 4334 5702 Dl +4266 5730 4335 5702 Dl +4265 5725 4335 5702 Dl +3942 6090 4302 6090 Dl +4230 6108 4302 6090 Dl +4229 6103 4301 6090 Dl +4228 6099 4301 6090 Dl +4227 6094 4301 6090 Dl +4227 6090 4301 6090 Dl +4227 6085 4301 6089 Dl +4228 6080 4301 6089 Dl +4229 6076 4301 6089 Dl +4230 6072 4302 6090 Dl +3908 6205 4335 6477 Dl +4265 6454 4335 6477 Dl +4266 6450 4335 6478 Dl +4268 6446 4334 6477 Dl +4271 6442 4335 6478 Dl +4273 6438 4335 6477 Dl +4275 6434 4334 6477 Dl +4278 6430 4335 6477 Dl +4281 6427 4335 6477 Dl +4284 6424 4335 6478 Dl +3859 6259 4383 6927 Dl +4325 6882 4383 6927 Dl +4328 6879 4383 6927 Dl +4332 6875 4384 6927 Dl +4335 6872 4384 6927 Dl +4338 6869 4384 6927 Dl +4342 6866 4384 6927 Dl +4345 6864 4383 6927 Dl +4350 6862 4384 6927 Dl +4354 6860 4384 6927 Dl 10 /LucidaSansUnicode00 f -(: Per tile rasterizers.) 1142 5562 w -(July 22, 2024) 2556 7680 w +(July 23, 2024) 2556 7680 w cleartomark showpage saveobj restore @@ -1402,296 +1386,419 @@ mark 3 pagesetup 10 /LucidaSansUnicode00 f (\255 3 \255) 2783 480 w -2070 1668 2106 1668 Dl -2142 1668 2178 1668 Dl -2214 1668 2250 1668 Dl -2286 1668 2322 1668 Dl -2358 1668 2394 1668 Dl -2430 1668 2466 1668 Dl -2502 1668 2538 1668 Dl -2574 1668 2610 1668 Dl -2646 1668 2682 1668 Dl -2718 1668 2754 1668 Dl -2790 1668 2826 1668 Dl -2862 1668 2898 1668 Dl -2934 1668 2970 1668 Dl -2970 1668 2970 1632 Dl -2970 1614 2970 1578 Dl -2970 1560 2970 1524 Dl -2970 1524 2934 1524 Dl -2898 1524 2862 1524 Dl -2826 1524 2790 1524 Dl -2754 1524 2718 1524 Dl -2682 1524 2646 1524 Dl -2610 1524 2574 1524 Dl -2538 1524 2502 1524 Dl -2466 1524 2430 1524 Dl -2394 1524 2358 1524 Dl -2322 1524 2286 1524 Dl -2250 1524 2214 1524 Dl -2178 1524 2142 1524 Dl -2106 1524 2070 1524 Dl -2070 1524 2070 1560 Dl -2070 1578 2070 1614 Dl -2070 1632 2070 1668 Dl +10 /LucidaSans-Demi f +(Figure 2) 1437 840 w +10 /LucidaSansUnicode00 f +(: The rendering graph for a) 1859 840 w +10 /LucidaSans-Demi f +(2n) 3213 840 w +10 /LucidaSansUnicode00 f +(processor machine.) 3375 840 w +2070 1830 2106 1830 Dl +2142 1830 2178 1830 Dl +2214 1830 2250 1830 Dl +2286 1830 2322 1830 Dl +2358 1830 2394 1830 Dl +2430 1830 2466 1830 Dl +2502 1830 2538 1830 Dl +2574 1830 2610 1830 Dl +2646 1830 2682 1830 Dl +2718 1830 2754 1830 Dl +2790 1830 2826 1830 Dl +2862 1830 2898 1830 Dl +2934 1830 2970 1830 Dl +2970 1830 2970 1794 Dl +2970 1776 2970 1740 Dl +2970 1722 2970 1686 Dl +2970 1686 2934 1686 Dl +2898 1686 2862 1686 Dl +2826 1686 2790 1686 Dl +2754 1686 2718 1686 Dl +2682 1686 2646 1686 Dl +2610 1686 2574 1686 Dl +2538 1686 2502 1686 Dl +2466 1686 2430 1686 Dl +2394 1686 2358 1686 Dl +2322 1686 2286 1686 Dl +2250 1686 2214 1686 Dl +2178 1686 2142 1686 Dl +2106 1686 2070 1686 Dl +2070 1686 2070 1722 Dl +2070 1740 2070 1776 Dl +2070 1794 2070 1830 Dl 7 /LucidaSansUnicode00 f -(1) 2498 1610 w -2070 1812 2106 1812 Dl -2142 1812 2178 1812 Dl -2214 1812 2250 1812 Dl -2286 1812 2322 1812 Dl -2358 1812 2394 1812 Dl -2430 1812 2466 1812 Dl -2502 1812 2538 1812 Dl -2574 1812 2610 1812 Dl -2646 1812 2682 1812 Dl -2718 1812 2754 1812 Dl -2790 1812 2826 1812 Dl -2862 1812 2898 1812 Dl -2934 1812 2970 1812 Dl -2970 1812 2970 1776 Dl -2970 1758 2970 1722 Dl -2970 1704 2970 1668 Dl -2970 1668 2934 1668 Dl -2898 1668 2862 1668 Dl -2826 1668 2790 1668 Dl -2754 1668 2718 1668 Dl -2682 1668 2646 1668 Dl -2610 1668 2574 1668 Dl -2538 1668 2502 1668 Dl -2466 1668 2430 1668 Dl -2394 1668 2358 1668 Dl -2322 1668 2286 1668 Dl -2250 1668 2214 1668 Dl -2178 1668 2142 1668 Dl -2106 1668 2070 1668 Dl -2070 1668 2070 1704 Dl -2070 1722 2070 1758 Dl -2070 1776 2070 1812 Dl -(2) 2498 1754 w -2070 1956 2106 1956 Dl -2142 1956 2178 1956 Dl -2214 1956 2250 1956 Dl -2286 1956 2322 1956 Dl -2358 1956 2394 1956 Dl -2430 1956 2466 1956 Dl -2502 1956 2538 1956 Dl -2574 1956 2610 1956 Dl -2646 1956 2682 1956 Dl -2718 1956 2754 1956 Dl -2790 1956 2826 1956 Dl -2862 1956 2898 1956 Dl -2934 1956 2970 1956 Dl -2970 1956 2970 1920 Dl -2970 1902 2970 1866 Dl -2970 1848 2970 1812 Dl -2970 1812 2934 1812 Dl -2898 1812 2862 1812 Dl -2826 1812 2790 1812 Dl -2754 1812 2718 1812 Dl -2682 1812 2646 1812 Dl -2610 1812 2574 1812 Dl -2538 1812 2502 1812 Dl -2466 1812 2430 1812 Dl -2394 1812 2358 1812 Dl -2322 1812 2286 1812 Dl -2250 1812 2214 1812 Dl -2178 1812 2142 1812 Dl -2106 1812 2070 1812 Dl -2070 1812 2070 1848 Dl -2070 1866 2070 1902 Dl -2070 1920 2070 1956 Dl +(tile 1) 2435 1772 w +2070 1974 2106 1974 Dl +2142 1974 2178 1974 Dl +2214 1974 2250 1974 Dl +2286 1974 2322 1974 Dl +2358 1974 2394 1974 Dl +2430 1974 2466 1974 Dl +2502 1974 2538 1974 Dl +2574 1974 2610 1974 Dl +2646 1974 2682 1974 Dl +2718 1974 2754 1974 Dl +2790 1974 2826 1974 Dl +2862 1974 2898 1974 Dl +2934 1974 2970 1974 Dl +2970 1974 2970 1938 Dl +2970 1920 2970 1884 Dl +2970 1866 2970 1830 Dl +2970 1830 2934 1830 Dl +2898 1830 2862 1830 Dl +2826 1830 2790 1830 Dl +2754 1830 2718 1830 Dl +2682 1830 2646 1830 Dl +2610 1830 2574 1830 Dl +2538 1830 2502 1830 Dl +2466 1830 2430 1830 Dl +2394 1830 2358 1830 Dl +2322 1830 2286 1830 Dl +2250 1830 2214 1830 Dl +2178 1830 2142 1830 Dl +2106 1830 2070 1830 Dl +2070 1830 2070 1866 Dl +2070 1884 2070 1920 Dl +2070 1938 2070 1974 Dl +(tile 2) 2435 1916 w +2070 2118 2106 2118 Dl +2142 2118 2178 2118 Dl +2214 2118 2250 2118 Dl +2286 2118 2322 2118 Dl +2358 2118 2394 2118 Dl +2430 2118 2466 2118 Dl +2502 2118 2538 2118 Dl +2574 2118 2610 2118 Dl +2646 2118 2682 2118 Dl +2718 2118 2754 2118 Dl +2790 2118 2826 2118 Dl +2862 2118 2898 2118 Dl +2934 2118 2970 2118 Dl +2970 2118 2970 2082 Dl +2970 2064 2970 2028 Dl +2970 2010 2970 1974 Dl +2970 1974 2934 1974 Dl +2898 1974 2862 1974 Dl +2826 1974 2790 1974 Dl +2754 1974 2718 1974 Dl +2682 1974 2646 1974 Dl +2610 1974 2574 1974 Dl +2538 1974 2502 1974 Dl +2466 1974 2430 1974 Dl +2394 1974 2358 1974 Dl +2322 1974 2286 1974 Dl +2250 1974 2214 1974 Dl +2178 1974 2142 1974 Dl +2106 1974 2070 1974 Dl +2070 1974 2070 2010 Dl +2070 2028 2070 2064 Dl +2070 2082 2070 2118 Dl 7 /LucidaSansUnicode20 f -(&) 2485 1898 w -2070 2100 2106 2100 Dl -2142 2100 2178 2100 Dl -2214 2100 2250 2100 Dl -2286 2100 2322 2100 Dl -2358 2100 2394 2100 Dl -2430 2100 2466 2100 Dl -2502 2100 2538 2100 Dl -2574 2100 2610 2100 Dl -2646 2100 2682 2100 Dl -2718 2100 2754 2100 Dl -2790 2100 2826 2100 Dl -2862 2100 2898 2100 Dl -2934 2100 2970 2100 Dl -2970 2100 2970 2064 Dl -2970 2046 2970 2010 Dl -2970 1992 2970 1956 Dl -2970 1956 2934 1956 Dl -2898 1956 2862 1956 Dl -2826 1956 2790 1956 Dl -2754 1956 2718 1956 Dl -2682 1956 2646 1956 Dl -2610 1956 2574 1956 Dl -2538 1956 2502 1956 Dl -2466 1956 2430 1956 Dl -2394 1956 2358 1956 Dl -2322 1956 2286 1956 Dl -2250 1956 2214 1956 Dl -2178 1956 2142 1956 Dl -2106 1956 2070 1956 Dl -2070 1956 2070 1992 Dl -2070 2010 2070 2046 Dl -2070 2064 2070 2100 Dl +(&) 2485 2060 w +2070 2262 2106 2262 Dl +2142 2262 2178 2262 Dl +2214 2262 2250 2262 Dl +2286 2262 2322 2262 Dl +2358 2262 2394 2262 Dl +2430 2262 2466 2262 Dl +2502 2262 2538 2262 Dl +2574 2262 2610 2262 Dl +2646 2262 2682 2262 Dl +2718 2262 2754 2262 Dl +2790 2262 2826 2262 Dl +2862 2262 2898 2262 Dl +2934 2262 2970 2262 Dl +2970 2262 2970 2226 Dl +2970 2208 2970 2172 Dl +2970 2154 2970 2118 Dl +2970 2118 2934 2118 Dl +2898 2118 2862 2118 Dl +2826 2118 2790 2118 Dl +2754 2118 2718 2118 Dl +2682 2118 2646 2118 Dl +2610 2118 2574 2118 Dl +2538 2118 2502 2118 Dl +2466 2118 2430 2118 Dl +2394 2118 2358 2118 Dl +2322 2118 2286 2118 Dl +2250 2118 2214 2118 Dl +2178 2118 2142 2118 Dl +2106 2118 2070 2118 Dl +2070 2118 2070 2154 Dl +2070 2172 2070 2208 Dl +2070 2226 2070 2262 Dl 7 /LucidaSansUnicode00 f -(n) 2499 2042 w -2142 1848 2592 1704 Dl -2592 1704 2754 2028 Dl -2754 2028 2142 1848 Dl -2034 2136 2034 1488 Dl -2034 1488 3006 1488 Dl -3006 1488 3006 2136 Dl -3006 2136 2034 2136 Dl -(Screen) 1774 1538 w -3330 1056 432 432 De -(rasterizer) 3350 1070 w -(1) 3698 1070 w -3330 1560 432 432 De -(rasterizer) 3350 1574 w -(2) 3698 1574 w -3330 2064 432 432 De +(tile n) 2435 2204 w +2034 2298 2034 1650 Dl +2034 1650 3006 1650 Dl +3006 1650 3006 2298 Dl +3006 2298 2034 2298 Dl +(Framebuf) 1675 1700 w +3330 1218 432 432 De +(rasterizer) 3350 1232 w +(1) 3698 1232 w +3330 1722 432 432 De +(rasterizer) 3350 1736 w +(2) 3698 1736 w +3330 2226 432 432 De 7 /LucidaSansUnicode20 f -(&) 3511 2078 w -3330 2568 432 432 De +(&) 3511 2240 w +3330 2730 432 432 De 7 /LucidaSansUnicode00 f -(rasterizer) 3351 2582 w -(n) 3699 2582 w -2970 1740 3330 1560 Dl -3273 1608 3329 1560 Dl -3270 1604 3329 1560 Dl -3268 1601 3329 1560 Dl -3265 1597 3329 1560 Dl -3263 1593 3329 1560 Dl -3261 1588 3329 1560 Dl -3260 1584 3329 1560 Dl -3258 1580 3329 1560 Dl -3257 1575 3329 1560 Dl -2970 1884 3330 2064 Dl -3257 2048 3329 2063 Dl -3258 2043 3329 2063 Dl -3260 2039 3329 2063 Dl -3261 2035 3329 2063 Dl -3263 2030 3329 2063 Dl -3265 2026 3329 2063 Dl -3268 2022 3329 2063 Dl -3270 2019 3329 2063 Dl -3273 2015 3329 2063 Dl -2970 2028 3330 2568 Dl -3275 2518 3329 2567 Dl -3278 2514 3329 2567 Dl -3281 2511 3329 2567 Dl -3285 2508 3329 2567 Dl -3288 2506 3329 2567 Dl -3292 2503 3329 2567 Dl -3296 2501 3329 2567 Dl -3300 2499 3329 2567 Dl -3304 2498 3329 2567 Dl +(rasterizer) 3351 2744 w +(n) 3699 2744 w +2970 1758 3330 1218 Dl +2970 1902 3330 1722 Dl +2970 2046 3330 2226 Dl +2970 2190 3330 2730 Dl 10 /LucidaSans-Demi f -(Figure 3) 720 2982 w +(Figure 3) 2180 3144 w 10 /LucidaSansUnicode00 f -(: Raster task scheduling.) 1142 2982 w -10 /LucidaSans-Demi f -(The scene) 720 3222 w -2196 3564 2196 3420 Dl -2196 3420 2556 3420 Dl -2556 3420 2556 3564 Dl -2556 3564 2196 3564 Dl +(: Per tile rasterizers.) 2602 3144 w +2070 4134 2106 4134 Dl +2142 4134 2178 4134 Dl +2214 4134 2250 4134 Dl +2286 4134 2322 4134 Dl +2358 4134 2394 4134 Dl +2430 4134 2466 4134 Dl +2502 4134 2538 4134 Dl +2574 4134 2610 4134 Dl +2646 4134 2682 4134 Dl +2718 4134 2754 4134 Dl +2790 4134 2826 4134 Dl +2862 4134 2898 4134 Dl +2934 4134 2970 4134 Dl +2970 4134 2970 4098 Dl +2970 4080 2970 4044 Dl +2970 4026 2970 3990 Dl +2970 3990 2934 3990 Dl +2898 3990 2862 3990 Dl +2826 3990 2790 3990 Dl +2754 3990 2718 3990 Dl +2682 3990 2646 3990 Dl +2610 3990 2574 3990 Dl +2538 3990 2502 3990 Dl +2466 3990 2430 3990 Dl +2394 3990 2358 3990 Dl +2322 3990 2286 3990 Dl +2250 3990 2214 3990 Dl +2178 3990 2142 3990 Dl +2106 3990 2070 3990 Dl +2070 3990 2070 4026 Dl +2070 4044 2070 4080 Dl +2070 4098 2070 4134 Dl +7 /LucidaSansUnicode00 f +(1) 2498 4076 w +2070 4278 2106 4278 Dl +2142 4278 2178 4278 Dl +2214 4278 2250 4278 Dl +2286 4278 2322 4278 Dl +2358 4278 2394 4278 Dl +2430 4278 2466 4278 Dl +2502 4278 2538 4278 Dl +2574 4278 2610 4278 Dl +2646 4278 2682 4278 Dl +2718 4278 2754 4278 Dl +2790 4278 2826 4278 Dl +2862 4278 2898 4278 Dl +2934 4278 2970 4278 Dl +2970 4278 2970 4242 Dl +2970 4224 2970 4188 Dl +2970 4170 2970 4134 Dl +2970 4134 2934 4134 Dl +2898 4134 2862 4134 Dl +2826 4134 2790 4134 Dl +2754 4134 2718 4134 Dl +2682 4134 2646 4134 Dl +2610 4134 2574 4134 Dl +2538 4134 2502 4134 Dl +2466 4134 2430 4134 Dl +2394 4134 2358 4134 Dl +2322 4134 2286 4134 Dl +2250 4134 2214 4134 Dl +2178 4134 2142 4134 Dl +2106 4134 2070 4134 Dl +2070 4134 2070 4170 Dl +2070 4188 2070 4224 Dl +2070 4242 2070 4278 Dl +(2) 2498 4220 w +2070 4422 2106 4422 Dl +2142 4422 2178 4422 Dl +2214 4422 2250 4422 Dl +2286 4422 2322 4422 Dl +2358 4422 2394 4422 Dl +2430 4422 2466 4422 Dl +2502 4422 2538 4422 Dl +2574 4422 2610 4422 Dl +2646 4422 2682 4422 Dl +2718 4422 2754 4422 Dl +2790 4422 2826 4422 Dl +2862 4422 2898 4422 Dl +2934 4422 2970 4422 Dl +2970 4422 2970 4386 Dl +2970 4368 2970 4332 Dl +2970 4314 2970 4278 Dl +2970 4278 2934 4278 Dl +2898 4278 2862 4278 Dl +2826 4278 2790 4278 Dl +2754 4278 2718 4278 Dl +2682 4278 2646 4278 Dl +2610 4278 2574 4278 Dl +2538 4278 2502 4278 Dl +2466 4278 2430 4278 Dl +2394 4278 2358 4278 Dl +2322 4278 2286 4278 Dl +2250 4278 2214 4278 Dl +2178 4278 2142 4278 Dl +2106 4278 2070 4278 Dl +2070 4278 2070 4314 Dl +2070 4332 2070 4368 Dl +2070 4386 2070 4422 Dl +7 /LucidaSansUnicode20 f +(&) 2485 4364 w +2070 4566 2106 4566 Dl +2142 4566 2178 4566 Dl +2214 4566 2250 4566 Dl +2286 4566 2322 4566 Dl +2358 4566 2394 4566 Dl +2430 4566 2466 4566 Dl +2502 4566 2538 4566 Dl +2574 4566 2610 4566 Dl +2646 4566 2682 4566 Dl +2718 4566 2754 4566 Dl +2790 4566 2826 4566 Dl +2862 4566 2898 4566 Dl +2934 4566 2970 4566 Dl +2970 4566 2970 4530 Dl +2970 4512 2970 4476 Dl +2970 4458 2970 4422 Dl +2970 4422 2934 4422 Dl +2898 4422 2862 4422 Dl +2826 4422 2790 4422 Dl +2754 4422 2718 4422 Dl +2682 4422 2646 4422 Dl +2610 4422 2574 4422 Dl +2538 4422 2502 4422 Dl +2466 4422 2430 4422 Dl +2394 4422 2358 4422 Dl +2322 4422 2286 4422 Dl +2250 4422 2214 4422 Dl +2178 4422 2142 4422 Dl +2106 4422 2070 4422 Dl +2070 4422 2070 4458 Dl +2070 4476 2070 4512 Dl +2070 4530 2070 4566 Dl +7 /LucidaSansUnicode00 f +(n) 2499 4508 w +2142 4314 2592 4170 Dl +2592 4170 2754 4494 Dl +2754 4494 2142 4314 Dl +2034 4602 2034 3954 Dl +2034 3954 3006 3954 Dl +3006 3954 3006 4602 Dl +3006 4602 2034 4602 Dl +(Framebuf) 1675 4004 w +3330 3522 432 432 De +(rasterizer) 3350 3536 w +(1) 3698 3536 w +3330 4026 432 432 De +(rasterizer) 3350 4040 w +(2) 3698 4040 w +3330 4530 432 432 De +7 /LucidaSansUnicode20 f +(&) 3511 4544 w +3330 5034 432 432 De 7 /LucidaSansUnicode00 f -(Scene) 2279 3506 w -2376 3564 2376 3708 Dl -2376 3708 2448 3708 Dl -2448 3780 2448 3636 Dl -2448 3636 2808 3636 Dl -2808 3636 2808 3780 Dl -2808 3780 2448 3780 Dl -(Entity) 2534 3722 w -2628 3780 2628 3924 Dl -2628 3924 2700 3924 Dl -2700 3996 2700 3852 Dl -2700 3852 3060 3852 Dl -3060 3852 3060 3996 Dl -3060 3996 2700 3996 Dl -(Model) 2777 3938 w -2880 3996 2880 4140 Dl -2880 4140 2952 4140 Dl -2952 4212 2952 4068 Dl -2952 4068 3312 4068 Dl -3312 4068 3312 4212 Dl -3312 4212 2952 4212 Dl -(Mesh) 3043 4154 w -3132 4212 3132 4356 Dl -3132 4356 3204 4356 Dl -3204 4428 3204 4284 Dl -3204 4284 3564 4284 Dl -3564 4284 3564 4428 Dl -3564 4428 3204 4428 Dl -(Primitive) 3237 4370 w -3132 4356 3132 4500 Dl -3132 4500 3132 4644 Dl -3132 4644 3204 4644 Dl -3204 4716 3204 4572 Dl -3204 4572 3564 4572 Dl -3564 4572 3564 4716 Dl -3564 4716 3204 4716 Dl -(Material) 3248 4658 w +(rasterizer) 3351 5048 w +(n) 3699 5048 w +2970 4206 3330 4026 Dl +3273 4074 3329 4026 Dl +3270 4070 3329 4026 Dl +3268 4067 3329 4026 Dl +3265 4063 3329 4026 Dl +3263 4059 3329 4026 Dl +3261 4054 3329 4026 Dl +3260 4050 3329 4026 Dl +3258 4046 3329 4026 Dl +3257 4041 3329 4026 Dl +2970 4350 3330 4530 Dl +3257 4514 3329 4529 Dl +3258 4509 3329 4529 Dl +3260 4505 3329 4529 Dl +3261 4501 3329 4529 Dl +3263 4496 3329 4529 Dl +3265 4492 3329 4529 Dl +3268 4488 3329 4529 Dl +3270 4485 3329 4529 Dl +3273 4481 3329 4529 Dl +2970 4494 3330 5034 Dl +3275 4984 3329 5033 Dl +3278 4980 3329 5033 Dl +3281 4977 3329 5033 Dl +3285 4974 3329 5033 Dl +3288 4972 3329 5033 Dl +3292 4969 3329 5033 Dl +3296 4967 3329 5033 Dl +3300 4965 3329 5033 Dl +3304 4964 3329 5033 Dl 10 /LucidaSans-Demi f -(Frames of reference) 720 5034 w +(Figure 4) 2073 5448 w 10 /LucidaSansUnicode00 f -(Frames are right-handed throughout every stage.) 970 5190 w +(: Raster task scheduling.) 2495 5448 w +10 /LucidaSans-Demi f +(4.) 720 5688 w +(Frames of reference) 873 5688 w +10 /LucidaSansUnicode00 f +(Frames are right-handed throughout every stage.) 970 5844 w gsave newpath -3586 5856 m +3586 6510 m /inpath true def 0.7 setgray -2790 6072 14 14 De +2790 6726 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def 7 /LucidaSansUnicode00 f -(p) 2703 6086 w -2797 6072 3514 6134 Dl -3441 6146 3514 6135 Dl -3441 6141 3515 6134 Dl -3440 6137 3514 6135 Dl -3440 6132 3514 6134 Dl -3441 6128 3515 6134 Dl -3441 6123 3514 6133 Dl -3441 6119 3513 6134 Dl -3443 6115 3514 6135 Dl -3444 6110 3513 6134 Dl -(bx) 3543 6148 w -2797 6072 2797 5352 Dl -2815 5424 2797 5352 Dl -2811 5424 2798 5352 Dl -2806 5425 2797 5352 Dl -2801 5426 2797 5352 Dl -2797 5426 2797 5352 Dl -2793 5426 2797 5352 Dl -2788 5425 2797 5352 Dl -2783 5424 2796 5352 Dl -2779 5424 2797 5352 Dl -(by) 2685 5366 w -2797 6072 2246 6360 Dl -2301 6311 2246 6359 Dl -2304 6313 2246 6359 Dl -2307 6317 2246 6359 Dl -2309 6321 2246 6359 Dl -2311 6325 2246 6359 Dl -2313 6329 2246 6359 Dl -2315 6334 2246 6359 Dl -2317 6338 2246 6359 Dl -2318 6342 2246 6359 Dl -(bz) 2132 6374 w +(p) 2703 6740 w +2797 6726 3514 6788 Dl +3441 6800 3514 6789 Dl +3441 6795 3515 6788 Dl +3440 6791 3514 6789 Dl +3440 6786 3514 6788 Dl +3441 6782 3515 6788 Dl +3441 6777 3514 6787 Dl +3441 6773 3513 6788 Dl +3443 6769 3514 6789 Dl +3444 6764 3513 6788 Dl +(bx) 3543 6802 w +2797 6726 2797 6006 Dl +2815 6078 2797 6006 Dl +2811 6078 2798 6006 Dl +2806 6079 2797 6006 Dl +2801 6080 2797 6006 Dl +2797 6080 2797 6006 Dl +2793 6080 2797 6006 Dl +2788 6079 2797 6006 Dl +2783 6078 2796 6006 Dl +2779 6078 2797 6006 Dl +(by) 2685 6020 w +2797 6726 2246 7014 Dl +2301 6965 2246 7013 Dl +2304 6967 2246 7013 Dl +2307 6971 2246 7013 Dl +2309 6975 2246 7013 Dl +2311 6979 2246 7013 Dl +2313 6983 2246 7013 Dl +2315 6988 2246 7013 Dl +2317 6992 2246 7013 Dl +2318 6996 2246 7013 Dl +(bz) 2132 7028 w 10 /LucidaSans-Demi f -(Figure 4) 720 6558 w +(Figure 5) 1897 7212 w 10 /LucidaSansUnicode00 f -(: Example right-handed rframe.) 1142 6558 w -10 /LucidaSans-Demi f -(Viewports) 720 6798 w -10 /LucidaSansUnicode00 f -(July 22, 2024) 2556 7680 w +(: Example right-handed rframe.) 2319 7212 w +(July 23, 2024) 2556 7680 w cleartomark showpage saveobj restore @@ -1702,49 +1809,133 @@ mark 4 pagesetup 10 /LucidaSansUnicode00 f (\255 4 \255) 2783 480 w -1836 2352 1836 912 Dl -1836 912 3996 912 Dl -3996 912 3996 2352 Dl -3996 2352 1836 2352 Dl +10 /LucidaSans-Demi f +(5.) 720 840 w +(Viewports) 873 840 w +10 /LucidaSansUnicode00 f +(A) 970 996 w +10 /LucidaSans-Italic f +(viewport) 1084 996 w +10 /LucidaSansUnicode00 f +(is) 1547 996 w +(a) 1673 996 w +(sort) 1774 996 w +(of) 2010 996 w +(virtual) 2154 996 w +(framebuffer,) 2505 996 w +(a) 3161 996 w +(device) 3262 996 w +(that) 3615 996 w +(lets) 3852 996 w +(users) 4071 996 w +(configure) 4378 996 w +(the) 4885 996 w +(way) 720 1116 w +(they) 940 1116 w +(visualize) 1183 1116 w +(a) 1639 1116 w +(framebuffer,) 1730 1116 w +(which) 2375 1116 w +(changes) 2691 1116 w +(the) 3125 1116 w +(resulting) 3315 1116 w +10 /LucidaSans-Italic f +(image) 3779 1116 w +10 /LucidaSansUnicode00 f +(\(6\)) 4076 1116 w +(after) 4240 1116 w +(a) 4501 1116 w +(call) 4591 1116 w +(to) 4790 1116 w +(its) 4923 1116 w +10 /LucidaTypewriter f +(draw) 720 1236 w +10 /LucidaSansUnicode00 f +(or) 1046 1236 w +10 /LucidaTypewriter f +(memdraw) 1187 1236 w +10 /LucidaSansUnicode00 f +(methods.) 1730 1236 w +(As) 2256 1236 w +(of) 2415 1236 w +(now,) 2552 1236 w +(the) 2823 1236 w +(only) 3017 1236 w +(feature) 3260 1236 w +(available) 3643 1236 w +(is) 4105 1236 w +(upscaling,) 4224 1236 w +(which) 4759 1236 w +(includes) 720 1356 w +(user-defined) 1174 1356 w +(filters) 1859 1356 w +(for) 2190 1356 w +(specific) 2380 1356 w +(ratios,) 2798 1356 w +(such) 3155 1356 w +(as) 3432 1356 w +(the) 3589 1356 w +(family) 3795 1356 w +(of) 4141 1356 w +(pixel) 4289 1356 w +(art) 4577 1356 w +(filters) 4760 1356 w +10 /LucidaSans-Italic f +(Scale[234]x) 720 1476 w +10 /LucidaSansUnicode00 f +(, used for 2x2, 3x3 and 4x4 scaling respectively) 1277 1476 w +10 /LucidaSans-Italic f +([?]) 3621 1476 w +10 /LucidaSansUnicode00 f +(.) 3733 1476 w +1836 3150 1836 1710 Dl +1836 1710 3996 1710 Dl +3996 1710 3996 3150 Dl +3996 3150 1836 3150 Dl 7 /LucidaSansUnicode00 f -(framebuffer) 2714 2222 w +(Framebuf) 2755 3020 w gsave newpath -2916 2208 m +2916 3006 m /inpath true def 0.7 setgray -1828 912 14 14 De +1828 1710 14 14 De gsave eofill grestore 0 setgray stroke grestore /inpath false def -(p) 1742 926 w -1836 912 2556 912 Dl -2484 930 2556 912 Dl -2483 925 2555 912 Dl -2482 921 2555 912 Dl -2481 916 2555 912 Dl -2481 912 2555 912 Dl -2481 907 2555 911 Dl -2482 902 2555 911 Dl -2483 898 2555 911 Dl -2484 894 2556 912 Dl -(bx) 2513 854 w -1836 912 1836 1632 Dl -1818 1560 1836 1632 Dl -1822 1559 1835 1631 Dl -1826 1558 1835 1631 Dl -1831 1557 1835 1631 Dl -1836 1557 1836 1631 Dl -1840 1557 1836 1631 Dl -1845 1558 1836 1631 Dl -1849 1559 1836 1631 Dl -1854 1560 1836 1632 Dl -(by) 1724 1646 w +(p) 1742 1724 w +1836 1710 2556 1710 Dl +2484 1728 2556 1710 Dl +2483 1723 2555 1710 Dl +2482 1719 2555 1710 Dl +2481 1714 2555 1710 Dl +2481 1710 2555 1710 Dl +2481 1705 2555 1709 Dl +2482 1700 2555 1709 Dl +2483 1696 2555 1709 Dl +2484 1692 2556 1710 Dl +(bx) 2513 1652 w +1836 1710 1836 2430 Dl +1818 2358 1836 2430 Dl +1822 2357 1835 2429 Dl +1826 2356 1835 2429 Dl +1831 2355 1835 2429 Dl +1836 2355 1836 2429 Dl +1840 2355 1836 2429 Dl +1845 2356 1836 2429 Dl +1849 2357 1836 2429 Dl +1854 2358 1836 2430 Dl +(by) 1724 2444 w +10 /LucidaSans-Demi f +(Figure 6) 1932 3348 w +10 /LucidaSansUnicode00 f +(: Illustration of a 3:2 viewport.) 2354 3348 w 10 /LucidaSans-Demi f -(Figure 5) 720 2550 w +(References) 720 3588 w 10 /LucidaSansUnicode00 f -(: Illustration of a 3:2 viewport.) 1142 2550 w -(July 22, 2024) 2556 7680 w +([?]) 720 3780 w +(https://www.scale2x.it/) 970 3780 w +(July 23, 2024) 2556 7680 w cleartomark showpage saveobj restore -- cgit v1.2.3