shithub: libgraphics

Download patch

ref: 7d79c607fbc8f402b26a0032c9e29b393af801e7
parent: 8aa0dc8601656db1390617d24bc77be17f099686
author: rodri <rgl@antares-labs.eu>
date: Mon Jul 22 14:42:04 EDT 2024

doc: write about the renderer, with a little introduction.

--- a/doc/libgraphics.ms
+++ b/doc/libgraphics.ms
@@ -1,14 +1,90 @@
 .TL
-libgraphics
+libgraphics: Design and Implementation
+.DA
 .AU
 Rodrigo G. López
 rgl@antares-labs.eu
-.AB
-To be determined.
-.AE
 .SH
-Rendering graph
-.PP
+Introduction
+.LP
+.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
+back-face culling, textures and skyboxes, directional and punctual
+lights, tangent-space normal mapping, ???
+.SH
+The renderer
+.LP
+The
+.I renderer
+is the core of the library. It follows a
+.B "retained mode"
+model, which means that the user won't get a picture until the entire
+scene has been rendered.  Thanks to this we can also clear and swap
+the framebuffers without their intervention, they only need to concern
+themselves with shooting and “developing” a camera.
+.LP
+It's implemented as a tree of concurrent processes connected by
+.CW Channel s—as
+seen in
+.B "Figure 1" —,
+spawned with a call to
+.CW initgraphics ,
+each representing a stage of the pipeline:
+.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
+.CW Entity
+individually to the
+entityproc.
+.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
+Next, each
+.B tiler
+gets to work on their subset of the geometry (potentially in
+parallel)—see
+.B "Figure 2" .
+They walk the list of primitives, then for each of them
+apply the
+.B "vertex shader"
+to its vertices (which expects clip space coordinates in return),
+perform frustum culling and clipping, back-face culling, and then
+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" .
+If it spans multiple tiles, it will be copied and sent to each of
+them.
+.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
+.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.
 .PS
 .ps 7
 circlerad = 0.3
@@ -56,33 +132,10 @@
 .ps 10
 .PE
 .B "Figure 1" :
-For a
+The rendering graph for a
 .B 2n
 processor machine.
 .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
 Tile-based rendering
 .PP
 .PS
@@ -144,7 +197,6 @@
 	move
 	Rn: circle "rasterizer n"
 ] with .w at Tiles.e + (0.5,0)
-arrow dashed from Tiles.T0.e to Raster.R0.w
 arrow from Tiles.T1.e to Raster.R1.w
 arrow from Tiles.Td.e to Raster.Rd.w
 arrow from Tiles.Tn.e to Raster.Rn.w
@@ -153,11 +205,69 @@
 .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
 Frames of reference
 .PP
 Frames are right-handed throughout every stage.
 .PS
 .ps 7
-
+RFrame: [
+	pi = 3.1415926535
+	circle fill rad 0.01 at (0,0)
+	"p" at last circle.c - (0.1,0)
+	xa = -5*pi/180
+	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
+	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
+Viewports
+.PP
+.PS
+.ps 7
+View: [
+	boxwid = 3
+	boxht = 2
+	box with .nw at (-1,1)
+	"framebuffer" 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)
+	"bx" at last arrow.end + (0,0.1)
+	arrow from (-1,1) to (-1,1) - (0,1)
+	"by" at last arrow.end - (0.1,0)
+]
+.ps 10
+.PE
+.B "Figure 5" :
+Illustration of a 3:2 viewport.
binary files a/doc/libgraphics.pdf b/doc/libgraphics.pdf differ
--- a/doc/libgraphics.ps
+++ b/doc/libgraphics.ps
@@ -619,630 +619,1137 @@
 mark
 1 pagesetup
 12 /LucidaSans-Demi f
-(libgraphics) 2533 1230 w
+(libgraphics: Design and Implementation) 1642 1220 w
 10 /LucidaSans-Italic f
-(Rodrigo G. L\363pez) 2469 1470 w
-(rgl@antares-labs.eu) 2377 1590 w
-(ABSTRACT) 2626 2030 w
+(Rodrigo G. L\363pez) 2469 1480 w
+(rgl@antares-labs.eu) 2377 1620 w
+10 /LucidaSans-Demi f
+(Introduction) 720 2280 w
+10 /LucidaSans-Italic f
+(Libgraphics) 720 2436 w
 10 /LucidaSansUnicode00 f
-(To be determined.) 1330 2290 w
+(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
 10 /LucidaSans-Demi f
-(Rendering graph) 720 2650 w
-1026 4000 1026 3640 Dl
-1026 3640 1566 3640 Dl
-1566 3640 1566 4000 Dl
-1566 4000 1026 4000 Dl
+(The renderer) 720 3276 w
+10 /LucidaSansUnicode00 f
+(The) 720 3432 w
+10 /LucidaSans-Italic f
+(renderer) 938 3432 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
+10 /LucidaSans-Demi f
+(retained) 3242 3432 w
+(mode) 3708 3432 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
+10 /LucidaSansUnicode20 f
+(\031) 1608 3552 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
+10 /LucidaSansUnicode20 f
+(\034) 3016 3792 w
+10 /LucidaSansUnicode00 f
+(developing) 3053 3792 w
+10 /LucidaSansUnicode20 f
+(\035) 3586 3792 w
+10 /LucidaSansUnicode00 f
+(a camera.) 3655 3792 w
+(It) 720 3948 w
+10 /LucidaSansUnicode20 f
+(\031) 786 3948 w
+10 /LucidaSansUnicode00 f
+(s implemented as a tree of concurrent processes) 818 3948 w
+(connected) 3217 3948 w
+(by) 3749 3948 w
+10 /LucidaTypewriter f
+(Channel) 3897 3948 w
+10 /LucidaSansUnicode00 f
+(s) 4401 3948 w
+10 /LucidaSansUnicode20 f
+(\024) 4452 3948 w
+10 /LucidaSansUnicode00 f
+(as) 4552 3948 w
+(seen) 4691 3948 w
+(in) 4949 3948 w
+10 /LucidaSans-Demi f
+(Figure) 720 4068 w
+(1) 1088 4068 w
+10 /LucidaSansUnicode20 f
+(\024) 1152 4068 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
+10 /LucidaTypewriter f
+(initgraphics) 2485 4068 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
+10 /LucidaSans-Demi f
+(renderer) 1234 4344 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
+10 /LucidaTypewriter f
+(channel) 4174 4344 w
+10 /LucidaSansUnicode00 f
+(for) 4762 4344 w
+(a) 4985 4344 w
+10 /LucidaTypewriter f
+(Renderjob) 970 4464 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
+10 /LucidaTypewriter f
+(Entity) 3420 4584 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
+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
+10 /LucidaSans-Demi f
+(tiler) 1580 5136 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
+10 /LucidaSansUnicode20 f
+(\024) 1360 5256 w
+10 /LucidaSansUnicode00 f
+(see) 1460 5256 w
+10 /LucidaSans-Demi f
+(Figure) 1675 5256 w
+(2) 2053 5256 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
+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
+10 /LucidaSans-Demi f
+(tile) 4217 5736 w
+10 /LucidaSansUnicode00 f
+(, managed by) 4383 5736 w
+(one of the rasterizers; this is illustrated) 970 5856 w
+(in) 2922 5856 w
+10 /LucidaSans-Demi f
+(Figure) 3046 5856 w
+(3) 3405 5856 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
+10 /LucidaSans-Demi f
+(rasterizers) 1535 6132 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
+10 /LucidaSans-Demi f
+(fragment) 2867 6492 w
+(shader) 3391 6492 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
+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 3834 w
-1566 3820 1926 3820 Dl
-1854 3838 1926 3820 Dl
-1853 3833 1925 3820 Dl
-1852 3829 1925 3820 Dl
-1851 3824 1925 3820 Dl
-1851 3820 1925 3820 Dl
-1851 3815 1925 3819 Dl
-1852 3810 1925 3819 Dl
-1853 3806 1925 3819 Dl
-1854 3802 1926 3820 Dl
-1926 3820 432 432 De
-(renderer) 1997 3834 w
-2358 3820 2718 3820 Dl
-2646 3838 2718 3820 Dl
-2645 3833 2717 3820 Dl
-2644 3829 2717 3820 Dl
-2643 3824 2717 3820 Dl
-2643 3820 2717 3820 Dl
-2643 3815 2717 3819 Dl
-2644 3810 2717 3819 Dl
-2645 3806 2717 3819 Dl
-2646 3802 2718 3820 Dl
-2718 3820 432 432 De
-(entityproc) 2763 3834 w
-3510 3064 432 432 De
-(tiler) 3626 3078 w
-(1) 3782 3078 w
-3510 3568 432 432 De
-(tiler) 3626 3582 w
-(2) 3782 3582 w
-3510 4072 432 432 De
+(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 4086 w
-3510 4576 432 432 De
+(&) 3691 2078 w
+3510 2568 432 432 De
 7 /LucidaSansUnicode00 f
-(tiler) 3627 4590 w
-(n) 3783 4590 w
-4302 3064 432 432 De
-(rasterizer) 4322 3078 w
-(1) 4670 3078 w
-4302 3568 432 432 De
-(rasterizer) 4322 3582 w
-(2) 4670 3582 w
-4302 4072 432 432 De
+(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 4086 w
-4302 4576 432 432 De
+(&) 4483 2078 w
+4302 2568 432 432 De
 7 /LucidaSansUnicode00 f
-(rasterizer) 4323 4590 w
-(n) 4671 4590 w
-3090 3670 3569 3213 Dl
-3530 3275 3569 3213 Dl
-3526 3273 3569 3213 Dl
-3522 3270 3568 3213 Dl
-3519 3267 3569 3213 Dl
-3515 3264 3569 3213 Dl
-3512 3261 3568 3214 Dl
-3510 3257 3569 3213 Dl
-3507 3253 3568 3213 Dl
-3504 3249 3568 3213 Dl
-3139 3754 3519 3634 Dl
-3456 3672 3519 3634 Dl
-3454 3668 3519 3633 Dl
-3452 3664 3519 3634 Dl
-3450 3660 3519 3634 Dl
-3449 3655 3519 3633 Dl
-3448 3651 3520 3633 Dl
-3447 3647 3519 3634 Dl
-3446 3642 3519 3633 Dl
-3445 3637 3519 3633 Dl
-3139 3885 3519 4005 Dl
-3445 4002 3519 4006 Dl
-3446 3997 3519 4006 Dl
-3447 3992 3519 4005 Dl
-3448 3988 3520 4006 Dl
-3449 3984 3519 4006 Dl
-3450 3979 3519 4005 Dl
-3452 3975 3519 4005 Dl
-3454 3971 3519 4006 Dl
-3456 3967 3519 4005 Dl
-3090 3969 3569 4426 Dl
-3504 4390 3568 4426 Dl
-3507 4386 3568 4426 Dl
-3510 4382 3569 4426 Dl
-3512 4378 3568 4425 Dl
-3515 4375 3569 4426 Dl
-3519 4372 3569 4426 Dl
-3522 4369 3568 4426 Dl
-3526 4366 3569 4426 Dl
-3530 4364 3569 4426 Dl
-3942 3064 4302 3064 Dl
-4230 3082 4302 3064 Dl
-4229 3077 4301 3064 Dl
-4228 3073 4301 3064 Dl
-4227 3068 4301 3064 Dl
-4227 3064 4301 3064 Dl
-4227 3059 4301 3063 Dl
-4228 3054 4301 3063 Dl
-4229 3050 4301 3063 Dl
-4230 3046 4302 3064 Dl
-3908 3179 4335 3451 Dl
-4265 3428 4335 3451 Dl
-4266 3424 4335 3452 Dl
-4268 3420 4334 3451 Dl
-4271 3416 4335 3452 Dl
-4273 3412 4335 3451 Dl
-4275 3408 4334 3451 Dl
-4278 3404 4335 3451 Dl
-4281 3401 4335 3451 Dl
-4284 3398 4335 3452 Dl
-3859 3233 4383 3901 Dl
-4325 3856 4383 3901 Dl
-4328 3853 4383 3901 Dl
-4332 3849 4384 3901 Dl
-4335 3846 4384 3901 Dl
-4338 3843 4384 3901 Dl
-4342 3840 4384 3901 Dl
-4345 3838 4383 3901 Dl
-4350 3836 4384 3901 Dl
-4354 3834 4384 3901 Dl
-3826 3255 4417 4384 Dl
-4368 4329 4417 4384 Dl
-4371 4326 4417 4384 Dl
-4375 4323 4417 4384 Dl
-4379 4321 4417 4384 Dl
-4383 4318 4417 4383 Dl
-4387 4316 4417 4383 Dl
-4391 4315 4416 4384 Dl
-4395 4313 4416 4384 Dl
-4400 4312 4417 4384 Dl
-3908 3452 4335 3180 Dl
-4284 3233 4335 3179 Dl
-4281 3230 4335 3180 Dl
-4278 3227 4335 3180 Dl
-4275 3223 4334 3180 Dl
-4273 3219 4335 3180 Dl
-4271 3215 4335 3179 Dl
-4268 3211 4334 3180 Dl
-4266 3208 4335 3180 Dl
-4265 3203 4335 3180 Dl
-3942 3568 4302 3568 Dl
-4230 3586 4302 3568 Dl
-4229 3581 4301 3568 Dl
-4228 3577 4301 3568 Dl
-4227 3572 4301 3568 Dl
-4227 3568 4301 3568 Dl
-4227 3563 4301 3567 Dl
-4228 3558 4301 3567 Dl
-4229 3554 4301 3567 Dl
-4230 3550 4302 3568 Dl
-3908 3683 4335 3955 Dl
-4265 3932 4335 3955 Dl
-4266 3928 4335 3956 Dl
-4268 3924 4334 3955 Dl
-4271 3920 4335 3956 Dl
-4273 3916 4335 3955 Dl
-4275 3912 4334 3955 Dl
-4278 3908 4335 3955 Dl
-4281 3905 4335 3955 Dl
-4284 3902 4335 3956 Dl
-3859 3737 4383 4405 Dl
-4325 4360 4383 4405 Dl
-4328 4357 4383 4405 Dl
-4332 4353 4384 4405 Dl
-4335 4350 4384 4405 Dl
-4338 4347 4384 4405 Dl
-4342 4344 4384 4405 Dl
-4345 4342 4383 4405 Dl
-4350 4340 4384 4405 Dl
-4354 4338 4384 4405 Dl
+(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
 10 /LucidaSans-Demi f
-(Figure 1) 720 4990 w
+(Figure 1) 970 2982 w
 10 /LucidaSansUnicode00 f
-(: For a) 1142 4990 w
+(: The rendering graph for a) 1392 2982 w
 10 /LucidaSans-Demi f
-(2n) 1481 4990 w
+(2n) 2746 2982 w
 10 /LucidaSansUnicode00 f
-(processor machine.) 1643 4990 w
+(processor machine.) 2908 2982 w
 10 /LucidaSans-Demi f
-(The scene) 720 5230 w
-2196 5572 2196 5428 Dl
-2196 5428 2556 5428 Dl
-2556 5428 2556 5572 Dl
-2556 5572 2196 5572 Dl
+(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
 7 /LucidaSansUnicode00 f
-(Scene) 2279 5514 w
-2376 5572 2376 5716 Dl
-2376 5716 2448 5716 Dl
-2448 5788 2448 5644 Dl
-2448 5644 2808 5644 Dl
-2808 5644 2808 5788 Dl
-2808 5788 2448 5788 Dl
-(Entity) 2534 5730 w
-2628 5788 2628 5932 Dl
-2628 5932 2700 5932 Dl
-2700 6004 2700 5860 Dl
-2700 5860 3060 5860 Dl
-3060 5860 3060 6004 Dl
-3060 6004 2700 6004 Dl
-(Model) 2777 5946 w
-2880 6004 2880 6148 Dl
-2880 6148 2952 6148 Dl
-2952 6220 2952 6076 Dl
-2952 6076 3312 6076 Dl
-3312 6076 3312 6220 Dl
-3312 6220 2952 6220 Dl
-(Mesh) 3043 6162 w
-3132 6220 3132 6364 Dl
-3132 6364 3204 6364 Dl
-3204 6436 3204 6292 Dl
-3204 6292 3564 6292 Dl
-3564 6292 3564 6436 Dl
-3564 6436 3204 6436 Dl
-(Primitive) 3237 6378 w
-3132 6364 3132 6508 Dl
-3132 6508 3132 6652 Dl
-3132 6652 3204 6652 Dl
-3204 6724 3204 6580 Dl
-3204 6580 3564 6580 Dl
-3564 6580 3564 6724 Dl
-3564 6724 3204 6724 Dl
-(Material) 3248 6666 w
+(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
+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
+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
+7 /LucidaSansUnicode20 f
+(&) 3511 4658 w
+3330 5148 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
+10 /LucidaSansUnicode00 f
+(: Per tile rasterizers.) 1142 5562 w
+(July 22, 2024) 2556 7680 w
 cleartomark
 showpage
 saveobj restore
-%%EndPage: 1 1
-%%Page: 2 2
+%%EndPage: 2 2
+%%Page: 3 3
 /saveobj save def
 mark
-2 pagesetup
+3 pagesetup
 10 /LucidaSansUnicode00 f
-(\255 2 \255) 2783 480 w
-10 /LucidaSans-Demi f
-(Tile-based rendering) 720 840 w
-2070 1866 2106 1866 Dl
-2142 1866 2178 1866 Dl
-2214 1866 2250 1866 Dl
-2286 1866 2322 1866 Dl
-2358 1866 2394 1866 Dl
-2430 1866 2466 1866 Dl
-2502 1866 2538 1866 Dl
-2574 1866 2610 1866 Dl
-2646 1866 2682 1866 Dl
-2718 1866 2754 1866 Dl
-2790 1866 2826 1866 Dl
-2862 1866 2898 1866 Dl
-2934 1866 2970 1866 Dl
-2970 1866 2970 1830 Dl
+(\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
+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 1722 2934 1722 Dl
-2898 1722 2862 1722 Dl
-2826 1722 2790 1722 Dl
-2754 1722 2718 1722 Dl
-2682 1722 2646 1722 Dl
-2610 1722 2574 1722 Dl
-2538 1722 2502 1722 Dl
-2466 1722 2430 1722 Dl
-2394 1722 2358 1722 Dl
-2322 1722 2286 1722 Dl
-2250 1722 2214 1722 Dl
-2178 1722 2142 1722 Dl
-2106 1722 2070 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
-2070 1830 2070 1866 Dl
-7 /LucidaSansUnicode00 f
-(tile 1) 2435 1808 w
-2070 2010 2106 2010 Dl
-2142 2010 2178 2010 Dl
-2214 2010 2250 2010 Dl
-2286 2010 2322 2010 Dl
-2358 2010 2394 2010 Dl
-2430 2010 2466 2010 Dl
-2502 2010 2538 2010 Dl
-2574 2010 2610 2010 Dl
-2646 2010 2682 2010 Dl
-2718 2010 2754 2010 Dl
-2790 2010 2826 2010 Dl
-2862 2010 2898 2010 Dl
-2934 2010 2970 2010 Dl
-2970 2010 2970 1974 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 1866 2934 1866 Dl
-2898 1866 2862 1866 Dl
-2826 1866 2790 1866 Dl
-2754 1866 2718 1866 Dl
-2682 1866 2646 1866 Dl
-2610 1866 2574 1866 Dl
-2538 1866 2502 1866 Dl
-2466 1866 2430 1866 Dl
-2394 1866 2358 1866 Dl
-2322 1866 2286 1866 Dl
-2250 1866 2214 1866 Dl
-2178 1866 2142 1866 Dl
-2106 1866 2070 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
-2070 1974 2070 2010 Dl
-(tile 2) 2435 1952 w
-2070 2154 2106 2154 Dl
-2142 2154 2178 2154 Dl
-2214 2154 2250 2154 Dl
-2286 2154 2322 2154 Dl
-2358 2154 2394 2154 Dl
-2430 2154 2466 2154 Dl
-2502 2154 2538 2154 Dl
-2574 2154 2610 2154 Dl
-2646 2154 2682 2154 Dl
-2718 2154 2754 2154 Dl
-2790 2154 2826 2154 Dl
-2862 2154 2898 2154 Dl
-2934 2154 2970 2154 Dl
-2970 2154 2970 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 2010 2934 2010 Dl
-2898 2010 2862 2010 Dl
-2826 2010 2790 2010 Dl
-2754 2010 2718 2010 Dl
-2682 2010 2646 2010 Dl
-2610 2010 2574 2010 Dl
-2538 2010 2502 2010 Dl
-2466 2010 2430 2010 Dl
-2394 2010 2358 2010 Dl
-2322 2010 2286 2010 Dl
-2250 2010 2214 2010 Dl
-2178 2010 2142 2010 Dl
-2106 2010 2070 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
-2070 2118 2070 2154 Dl
-7 /LucidaSansUnicode20 f
-(&) 2485 2096 w
-2070 2298 2106 2298 Dl
-2142 2298 2178 2298 Dl
-2214 2298 2250 2298 Dl
-2286 2298 2322 2298 Dl
-2358 2298 2394 2298 Dl
-2430 2298 2466 2298 Dl
-2502 2298 2538 2298 Dl
-2574 2298 2610 2298 Dl
-2646 2298 2682 2298 Dl
-2718 2298 2754 2298 Dl
-2790 2298 2826 2298 Dl
-2862 2298 2898 2298 Dl
-2934 2298 2970 2298 Dl
-2970 2298 2970 2262 Dl
-2970 2244 2970 2208 Dl
-2970 2190 2970 2154 Dl
-2970 2154 2934 2154 Dl
-2898 2154 2862 2154 Dl
-2826 2154 2790 2154 Dl
-2754 2154 2718 2154 Dl
-2682 2154 2646 2154 Dl
-2610 2154 2574 2154 Dl
-2538 2154 2502 2154 Dl
-2466 2154 2430 2154 Dl
-2394 2154 2358 2154 Dl
-2322 2154 2286 2154 Dl
-2250 2154 2214 2154 Dl
-2178 2154 2142 2154 Dl
-2106 2154 2070 2154 Dl
-2070 2154 2070 2190 Dl
-2070 2208 2070 2244 Dl
-2070 2262 2070 2298 Dl
 7 /LucidaSansUnicode00 f
-(tile n) 2435 2240 w
-2034 2334 2034 1686 Dl
-2034 1686 3006 1686 Dl
-3006 1686 3006 2334 Dl
-3006 2334 2034 2334 Dl
-(Screen) 1774 1736 w
-3330 1254 432 432 De
-(rasterizer) 3350 1268 w
-(1) 3698 1268 w
-3330 1758 432 432 De
-(rasterizer) 3350 1772 w
-(2) 3698 1772 w
-3330 2262 432 432 De
+(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
 7 /LucidaSansUnicode20 f
-(&) 3511 2276 w
-3330 2766 432 432 De
+(&) 3511 2078 w
+3330 2568 432 432 De
 7 /LucidaSansUnicode00 f
-(rasterizer) 3351 2780 w
-(n) 3699 2780 w
-2970 1794 3330 1254 Dl
-2970 1938 3330 1758 Dl
-2970 2082 3330 2262 Dl
-2970 2226 3330 2766 Dl
+(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
 10 /LucidaSans-Demi f
-(Figure 2) 720 3180 w
+(Figure 3) 720 2982 w
 10 /LucidaSansUnicode00 f
-(: Per tile rasterizers.) 1142 3180 w
-2070 4170 2106 4170 Dl
-2142 4170 2178 4170 Dl
-2214 4170 2250 4170 Dl
-2286 4170 2322 4170 Dl
-2358 4170 2394 4170 Dl
-2430 4170 2466 4170 Dl
-2502 4170 2538 4170 Dl
-2574 4170 2610 4170 Dl
-2646 4170 2682 4170 Dl
-2718 4170 2754 4170 Dl
-2790 4170 2826 4170 Dl
-2862 4170 2898 4170 Dl
-2934 4170 2970 4170 Dl
-2970 4170 2970 4134 Dl
-2970 4116 2970 4080 Dl
-2970 4062 2970 4026 Dl
-2970 4026 2934 4026 Dl
-2898 4026 2862 4026 Dl
-2826 4026 2790 4026 Dl
-2754 4026 2718 4026 Dl
-2682 4026 2646 4026 Dl
-2610 4026 2574 4026 Dl
-2538 4026 2502 4026 Dl
-2466 4026 2430 4026 Dl
-2394 4026 2358 4026 Dl
-2322 4026 2286 4026 Dl
-2250 4026 2214 4026 Dl
-2178 4026 2142 4026 Dl
-2106 4026 2070 4026 Dl
-2070 4026 2070 4062 Dl
-2070 4080 2070 4116 Dl
-2070 4134 2070 4170 Dl
+(: 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
 7 /LucidaSansUnicode00 f
-(1) 2498 4112 w
-2070 4314 2106 4314 Dl
-2142 4314 2178 4314 Dl
-2214 4314 2250 4314 Dl
-2286 4314 2322 4314 Dl
-2358 4314 2394 4314 Dl
-2430 4314 2466 4314 Dl
-2502 4314 2538 4314 Dl
-2574 4314 2610 4314 Dl
-2646 4314 2682 4314 Dl
-2718 4314 2754 4314 Dl
-2790 4314 2826 4314 Dl
-2862 4314 2898 4314 Dl
-2934 4314 2970 4314 Dl
-2970 4314 2970 4278 Dl
-2970 4260 2970 4224 Dl
-2970 4206 2970 4170 Dl
-2970 4170 2934 4170 Dl
-2898 4170 2862 4170 Dl
-2826 4170 2790 4170 Dl
-2754 4170 2718 4170 Dl
-2682 4170 2646 4170 Dl
-2610 4170 2574 4170 Dl
-2538 4170 2502 4170 Dl
-2466 4170 2430 4170 Dl
-2394 4170 2358 4170 Dl
-2322 4170 2286 4170 Dl
-2250 4170 2214 4170 Dl
-2178 4170 2142 4170 Dl
-2106 4170 2070 4170 Dl
-2070 4170 2070 4206 Dl
-2070 4224 2070 4260 Dl
-2070 4278 2070 4314 Dl
-(2) 2498 4256 w
-2070 4458 2106 4458 Dl
-2142 4458 2178 4458 Dl
-2214 4458 2250 4458 Dl
-2286 4458 2322 4458 Dl
-2358 4458 2394 4458 Dl
-2430 4458 2466 4458 Dl
-2502 4458 2538 4458 Dl
-2574 4458 2610 4458 Dl
-2646 4458 2682 4458 Dl
-2718 4458 2754 4458 Dl
-2790 4458 2826 4458 Dl
-2862 4458 2898 4458 Dl
-2934 4458 2970 4458 Dl
-2970 4458 2970 4422 Dl
-2970 4404 2970 4368 Dl
-2970 4350 2970 4314 Dl
-2970 4314 2934 4314 Dl
-2898 4314 2862 4314 Dl
-2826 4314 2790 4314 Dl
-2754 4314 2718 4314 Dl
-2682 4314 2646 4314 Dl
-2610 4314 2574 4314 Dl
-2538 4314 2502 4314 Dl
-2466 4314 2430 4314 Dl
-2394 4314 2358 4314 Dl
-2322 4314 2286 4314 Dl
-2250 4314 2214 4314 Dl
-2178 4314 2142 4314 Dl
-2106 4314 2070 4314 Dl
-2070 4314 2070 4350 Dl
-2070 4368 2070 4404 Dl
-2070 4422 2070 4458 Dl
-7 /LucidaSansUnicode20 f
-(&) 2485 4400 w
-2070 4602 2106 4602 Dl
-2142 4602 2178 4602 Dl
-2214 4602 2250 4602 Dl
-2286 4602 2322 4602 Dl
-2358 4602 2394 4602 Dl
-2430 4602 2466 4602 Dl
-2502 4602 2538 4602 Dl
-2574 4602 2610 4602 Dl
-2646 4602 2682 4602 Dl
-2718 4602 2754 4602 Dl
-2790 4602 2826 4602 Dl
-2862 4602 2898 4602 Dl
-2934 4602 2970 4602 Dl
-2970 4602 2970 4566 Dl
-2970 4548 2970 4512 Dl
-2970 4494 2970 4458 Dl
-2970 4458 2934 4458 Dl
-2898 4458 2862 4458 Dl
-2826 4458 2790 4458 Dl
-2754 4458 2718 4458 Dl
-2682 4458 2646 4458 Dl
-2610 4458 2574 4458 Dl
-2538 4458 2502 4458 Dl
-2466 4458 2430 4458 Dl
-2394 4458 2358 4458 Dl
-2322 4458 2286 4458 Dl
-2250 4458 2214 4458 Dl
-2178 4458 2142 4458 Dl
-2106 4458 2070 4458 Dl
-2070 4458 2070 4494 Dl
-2070 4512 2070 4548 Dl
-2070 4566 2070 4602 Dl
+(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
+10 /LucidaSans-Demi f
+(Frames of reference) 720 5034 w
+10 /LucidaSansUnicode00 f
+(Frames are right-handed throughout every stage.) 970 5190 w
+gsave
+newpath
+3586 5856 m
+/inpath true def
+ 0.7 setgray
+2790 6072 14 14 De
+ gsave eofill grestore 0 setgray stroke
+grestore
+/inpath false def
 7 /LucidaSansUnicode00 f
-(n) 2499 4544 w
-2142 4350 2592 4206 Dl
-2592 4206 2754 4530 Dl
-2754 4530 2142 4350 Dl
-2034 4638 2034 3990 Dl
-2034 3990 3006 3990 Dl
-3006 3990 3006 4638 Dl
-3006 4638 2034 4638 Dl
-(Screen) 1774 4040 w
-3330 3558 432 432 De
-(rasterizer) 3350 3572 w
-(1) 3698 3572 w
-3330 4062 432 432 De
-(rasterizer) 3350 4076 w
-(2) 3698 4076 w
-3330 4566 432 432 De
-7 /LucidaSansUnicode20 f
-(&) 3511 4580 w
-3330 5070 432 432 De
+(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
+10 /LucidaSans-Demi f
+(Figure 4) 720 6558 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
+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
+1836 2352 1836 912 Dl
+1836 912 3996 912 Dl
+3996 912 3996 2352 Dl
+3996 2352 1836 2352 Dl
 7 /LucidaSansUnicode00 f
-(rasterizer) 3351 5084 w
-(n) 3699 5084 w
-2970 4098 2990 4068 Dl
-3007 4041 3027 4011 Dl
-3045 3984 3065 3954 Dl
-3083 3928 3103 3898 Dl
-3121 3871 3141 3841 Dl
-3158 3814 3178 3784 Dl
-3196 3758 3216 3728 Dl
-3234 3701 3254 3671 Dl
-3272 3644 3292 3614 Dl
-3309 3588 3329 3558 Dl
-3304 3627 3329 3558 Dl
-3300 3626 3329 3558 Dl
-3296 3624 3329 3558 Dl
-3292 3622 3329 3558 Dl
-3288 3619 3329 3558 Dl
-3285 3617 3329 3558 Dl
-3281 3614 3329 3558 Dl
-3278 3611 3329 3558 Dl
-3275 3607 3329 3558 Dl
-2970 4242 3330 4062 Dl
-3273 4110 3329 4062 Dl
-3270 4106 3329 4062 Dl
-3268 4103 3329 4062 Dl
-3265 4099 3329 4062 Dl
-3263 4095 3329 4062 Dl
-3261 4090 3329 4062 Dl
-3260 4086 3329 4062 Dl
-3258 4082 3329 4062 Dl
-3257 4077 3329 4062 Dl
-2970 4386 3330 4566 Dl
-3257 4550 3329 4565 Dl
-3258 4545 3329 4565 Dl
-3260 4541 3329 4565 Dl
-3261 4537 3329 4565 Dl
-3263 4532 3329 4565 Dl
-3265 4528 3329 4565 Dl
-3268 4524 3329 4565 Dl
-3270 4521 3329 4565 Dl
-3273 4517 3329 4565 Dl
-2970 4530 3330 5070 Dl
-3275 5020 3329 5069 Dl
-3278 5016 3329 5069 Dl
-3281 5013 3329 5069 Dl
-3285 5010 3329 5069 Dl
-3288 5008 3329 5069 Dl
-3292 5005 3329 5069 Dl
-3296 5003 3329 5069 Dl
-3300 5001 3329 5069 Dl
-3304 5000 3329 5069 Dl
+(framebuffer) 2714 2222 w
+gsave
+newpath
+2916 2208 m
+/inpath true def
+ 0.7 setgray
+1828 912 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
 10 /LucidaSans-Demi f
-(Figure 3) 720 5484 w
+(Figure 5) 720 2550 w
 10 /LucidaSansUnicode00 f
-(: Raster task scheduling.) 1142 5484 w
+(: Illustration of a 3:2 viewport.) 1142 2550 w
+(July 22, 2024) 2556 7680 w
 cleartomark
 showpage
 saveobj restore
-%%EndPage: 2 2
+%%EndPage: 4 4
 %%Trailer
 done
-%%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic
-%%Pages: 2
+%%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode00 LucidaSans-Demi LucidaSans-Italic LucidaTypewriter
+%%Pages: 4