From 293e16e17fb6a98c16960833a670b88c186934e0 Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Sat, 18 Feb 2012 16:11:05 -0500 Subject: [PATCH] Started updating the design docs for the new format --- .../cuberenderimgs/chunk_perspective.png | Bin 24029 -> 33395 bytes .../cuberenderimgs/chunk_perspective.svg | 5018 ++++++++++------- docs/design/cuberenderimgs/chunk_topdown.png | Bin 2286 -> 0 bytes docs/design/cuberenderimgs/chunk_topdown.svg | 1869 ------ docs/design/cuberenderimgs/chunk_width.png | Bin 37597 -> 35335 bytes docs/design/cuberenderimgs/chunk_width.svg | 2534 ++------- docs/design/designdoc.rst | 230 +- 7 files changed, 3656 insertions(+), 5995 deletions(-) delete mode 100644 docs/design/cuberenderimgs/chunk_topdown.png delete mode 100644 docs/design/cuberenderimgs/chunk_topdown.svg diff --git a/docs/design/cuberenderimgs/chunk_perspective.png b/docs/design/cuberenderimgs/chunk_perspective.png index 04b19ada6ef4077ca8d90147501eeccfedcf8b0a..1820f068ff7dc92a4c7b530ab451263f5c79c1a8 100644 GIT binary patch literal 33395 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 literal 24029 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 + fit-margin-bottom="0" + showborder="false"> image/svg+xml - + @@ -70,2035 +71,2992 @@ id="layer1" transform="translate(-64.537936,-426.50506)"> + id="g8687" + transform="translate(239,127.5)"> - - - + id="rect6901" + d="m 18.03794,366.8138 191.5,95.49999" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g9090"> + + + + - - - + id="path8853" + d="m 65.037936,589.81378 0,12" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/design/cuberenderimgs/chunk_topdown.png b/docs/design/cuberenderimgs/chunk_topdown.png deleted file mode 100644 index a082b6417311e1abadc4fc22d14ca796ed3fb4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2286 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4rT@hhU_&FAq)%*%*9TgAsieWw;%dHU|?Y2 zEbxddW?VNB(DEU}!7}@(X6*5Rg~X)w8m;aq{r=3Js4*NK8t}$t@@; zE3c@ms%dO$Ztv>u>Fw*EG-c}a8FS{&o4;`J(q+q6ty#N%!^TZpwr$_Fd(Yl|2M!)O za`f2o6DLodIeYH>g^QOiU%hty=B?Xz?%uoq;NhdkPo6$|{^I4U*Kgjwd;j6%r_W!$ ze*6C8=da&?{{A~~JoPgJ1Dmg>i(^Q|t+#h?mQVRAd;DYI6*2J(N)IkgV+vY(L&Ga_ z(K3lFk7gZ1p_voZ8e4P@pD}oCeEwJTzt3^|_s^MZDRX=E^Upi0=kA_?||m|Wx3XkbD^SBwv2zR`bJ`$pLR{FER*}}_x|g-SL?O?`pbh_bMGwc zmd_~f{T6@mVX&2168me({vP4SCKo_DSm(zJJJNAjus<=Lz3SSJ zWsB>zUb0K>wOh8m`pf3@lKghL^_Ool@A}hOX8zJ3`;V!tbfNTZ^E~PAOtwaTHglz( zi^fjdayoOqlzNGT)b|%R%=kv)vuC;n6kuUKY zYXm1S?v~C^(ms~mc<WBF4=tP+YH|y?cdmb zOuDh|)yptfd;OP*ZvH}6(wB}F@5;JZ*Ul$hQj@VK2YW~{{QmZXYg^_X;TO}E@9vWe zDG9oe=_Sq?%a?I|X>B*3f3Nw=8zyxRnS~0)qPf1DpBGpB@VK8PV3gxE$3fOxMXN3C-uF@`q(#qF}vR98?+ne6@OXV zv~T{Uvx0lCF8%)fnVQhR>N*B*q@wk^S9D7 z-tXm3#l1I{g_pf>?|-q}{_q}rj?T55|EzXRb)~zfdV}j) MPgg&ebxsLQ05pef!~g&Q diff --git a/docs/design/cuberenderimgs/chunk_topdown.svg b/docs/design/cuberenderimgs/chunk_topdown.svg deleted file mode 100644 index e21cfe4..0000000 --- a/docs/design/cuberenderimgs/chunk_topdown.svg +++ /dev/null @@ -1,1869 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/design/cuberenderimgs/chunk_width.png b/docs/design/cuberenderimgs/chunk_width.png index 7fc373070ab38a16b0589e6356491bff7a0dc8e1..14ae57e006ee346af2774631391f52af9fae108e 100644 GIT binary patch literal 35335 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∓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

XQKy*c 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%0A_%?r*E9bd-pIdTb^`YP8 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 literal 37597 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 X^+QI1Vg4Hi1_lOCS3j3^P6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + 24*16=384 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/designdoc.rst b/docs/design/designdoc.rst index 869ff46..9322a1f 100644 --- a/docs/design/designdoc.rst +++ b/docs/design/designdoc.rst @@ -23,42 +23,50 @@ So let's get started! Background Info =============== -The Overviewer's task is to take Minecraft worlds and render them into a set of tiles that can be displayed with a Google Maps interface. + +The Overviewer's task is to take Minecraft worlds and render them into a set of +tiles that can be displayed with a Google Maps interface. This section goes over +how Minecraft worlds work and are stored. A Minecraft world extends indefinitely along the two horizontal axes, and are -exactly 128 units high. Minecraft worlds are made of cubes, where each slot in -the world's grid has a type that determines what it is (grass, stone, ...). -This makes worlds relatively uncomplicated to render, the Overviewer simply -determines what cubes to draw and where. Since everything in Minecraft is -aligned to a strict grid, placement and rendering decisions are completely -deterministic and can be performed in an iterative fashon. +exactly 256 units high. Minecraft worlds are made of voxels (volumetric pixels), +hereby called "blocks", where each block in the world's grid has a type that +determines what it is (grass, stone, ...). This makes worlds relatively +uncomplicated to render, the Overviewer simply determines what blocks to draw +and where. Since everything in Minecraft is aligned to a strict grid, placement +and rendering decisions are completely deterministic and can be performed in an +iteratively. The coordinate system for Minecraft has three axes. The X and Z axes are the horizontal axes. They extend indefinitely towards both positive and negative infinity. (There are practical limits, but no theoretical limits). The Y axis -extends from 0 to 127, which corresponds with the world height limit. Each +extends from 0 to 255, which corresponds with the world height limit. Each block in Minecraft has a coordinate address, e.g. the block at 15,78,-35 refers to 15 along the X axis, -35 along the Z axis, and 78 units up from bedrock. -The world is divided up into *chunks*. A chunk is a 16 by 16 area of the world -that extends from bedrock to sky. In other words, a 16,128,16 "chunk" of the -world. Chunks also have an address, but in only 2 dimensions. To find the which -chunk a block is in, simply divide its X and Z coordinates by 16 and take the -floor. +The world is organized in a three-layer hierarchy. At the finest level are the +blocks (voxels). A 16x16x16 array of blocks is called a *chunk section*. A +vertical column of 16 chunk sections makes a *chunk*. A chunk is therefore a 16 +by 16 area of the world that extends from bedrock to sky. In other words, a 16 +by 256 by 16 "chunk" of the world. A 32 by 32 area of chunks is called a +*region*. Regions are stored on disk one per file. + +While blocks have a global coordinate (the ones you see in the debug output +in-game), they also have a local coordinate within a chunk section and within a +chunk. Also, chunks and regions have their own coordinates to identify +themselves. To find which chunk a block is in, simply divide its coordinates by +16 and take the floor. To find which region a chunk is in, divide the chunk +coordinates by 32 and take the floor. To find which chunk section a block is in, +take its Y coordinate and floor-divide by 16. Minecraft worlds are generated on-the-fly by the chunk. This means not all -chunks will exist. There is no pattern to which chunks are generated, the game -generates them as needed as players explore the area. - -Chunks are stored on-disk in region files. A Minecraft region is a "region" of -32 by 32 chunks. Regions have their own address, and for a particular chunk one -can find its region by dividing its coordinates by 32 and taking the floor. A -region may contain all 1024 of its chunks, or only a subset of them, since not -all chunks may exist. The absence of a region file indicates none of its chunks +chunks will exist, and not all sections within a chunk will exist. There is no +pattern to which chunks are generated, the game generates them as needed as +players explore the area. A region file may not exist if none of its chunks exist. -About the Rendering -=================== +Overviewer at a High Level +========================== Minecraft worlds are rendered in an approximated Isometric projection at an oblique angle. In the original design, the projection acts as if your eye is @@ -69,43 +77,61 @@ directions). .. image:: screenshot.png :alt: A screenshot of Overviewer output -In order to render a Minecraft world, there are a few steps that need to happen. -These steps are explained in detail in the next few sections. +The Overviewer is a sprite-based renderer. Each block corresponds to a +pre-rendered sprite (a small image). The basic idea is to iterate over the +blocks of the world and draw these sprites to the appropriate location on the +map. -1. Render each block -2. Render the chunks from the blocks -3. Render the tiles of the map from the chunks -4. Shrink and combine the tiles for the other zoom levels +These are the high-level tasks The Overviewer must preform in rendering a map: + +1. Render each block sprite from the textures +2. Scan the chunks of the world and determine which tiles need rendering +3. Render a single chunk from the blocks sprites +4. Render a single tile of the map from chunk images +5. Compose the lower-zoom tiles from the higher-zoom tiles + +The next sections will go over how these tasks work. Block Rendering =============== .. This section shows how each block is pre-rendered -The first step is rendering the blocks from the textures. Each block is "built" -from its textures into an image of a cube and cached in global variables of the -:mod:`textures` module. +The first step is rendering the block sprites from the textures. Each block is +"built" from its textures into an image of a cube and cached in a +:class:`Textures` object. -Textures come in the size 16 by 16 (higher resolution textures are resized and -the process remains the same). In order to render a cube out of this, an `affine -transformation`_ is applied to the texture in order to transform it to the top, -left, and right faces of the cube. +Textures come from a terrain.png file in the form of 16 by 16 pixel images. +(Higher resolution textures are resized and the process remains the same). In +order to draw a cube out of the textuers, an `affine transformation`_ is applied to +the images for the top and sides of the cube in order to transform it to the +appropriate perspective. + +.. note:: + + This section goes over the simple case for a regular cube, which are most of + the blocks in Minecraft. There are lots of irregular blocks that aren't + cubes (fences, torches, doors) which require custom rendering. Irregular + blocks are not covered by this design document. Each type of block has its + own function in :mod:`overviewer_core.textures` that defines how to render + it. .. image:: blockrendering/texturecubing.png :alt: A texture gets rendered into a cube .. _affine transformation: http://en.wikipedia.org/wiki/Affine_transformation -The result is an image of a cube that is 24 by 24 pixels in size. This -particular size for the cubes was chosen for an important reason: 24 is -divisible by 2 and by 4. This makes placement much easier. E.g. in order to draw -two cubes that are next to each other in the world, one is drawn exactly 12 -pixels over and 6 pixels down from the other. All placements of the cubes happen -on exact pixel boundaries and no further resolution is lost beyond the initial -transformations. +Every block sprite is exactly 24 by 24 pixels in size. This particular size for +the cubes was chosen for an important reason: 24 is divisible by 2 and by 4. +This makes placement much easier. E.g. in order to draw two cubes that are next +to each other in the world, one is drawn exactly 12 pixels over and 6 pixels +down from the other. All placements of the cubes happen on exact pixel +boundaries and no further resolution is lost beyond the initial transformations. +(This advantage will become clear in the :ref:`cubepositioning` section; all +offsets are a nice even 6, 12, or 24 pixels) -The transformation happens in two stages. First, the texture is transformed for -the top of the cube. Then the texture is transformed for the left side of the -cube, which is mirrored for the right side of the cube. +A cube sprite is built in two stages. First, the texture is transformed for the +top of the cube. Then the texture is transformed for the left side of the cube, +which is mirrored for the right side of the cube. Top Transformation ------------------ @@ -116,13 +142,13 @@ transformations: a re-size, a rotation, and a scaling; but since multiple affine transformations can be chained together simply by multiplying the transformation matrices together, only one transformation is actually done. -This can be seen in the function :func:`textures.transform_image`. It takes -these steps: +This can be seen in the function +:func:`overviewer_core.textures.transform_image`. It preforms three steps: 1. The texture is re-sized to 17 by 17 pixels. This is done because the diagonal of a square with sides 17 is approximately 24, which is the target size for the bounding box of the cube image. So when it's rotated, it will be the - correct width. + correct width. (Better to scale it now than after we rotate it) 2. The image is rotated 45 degrees about its center. @@ -171,7 +197,7 @@ right is scaled with no interpolation by a factor of 10 to show the pixels. An Entire Cube -------------- These three images, the top and two sides, are pasted into a single 24 by 24 -pixel image to get the cube, as shown. +pixel image to get the cube sprite, as shown. However, notice from the middle of the three images in the sequence below that the images as transformed don't fit together exactly. There is some overlap when @@ -180,10 +206,9 @@ put in the 24 by 24 box in which they must fit. .. image:: blockrendering/cube_parts.png :alt: How the cube parts fit together -There is one more complication. The cubes don't tessellate perfectly. This -diagram illustrates when a cube is positioned next to another. The lower cubes -are 18 pixels lower and 12 pixels to either side, which is half the width and -3/4 the height respectively. +There is one more complication. The cubes don't tessellate perfectly. A six +pixel gap is left between the lower-right border and upper-left border of blocks +in this arrangement: .. image:: blockrendering/tessellation.png :alt: Cubes don't tessellate perfectly @@ -192,104 +217,101 @@ The solution is to manually touch up those 6 pixels. 3 pixels are added on the upper left of each cube, 3 on the lower right. Therefore, they all line up perfectly! -This is done at the end of :func:`textures._build_block` +This is done at the end of :meth:`Textures.build_block` .. image:: blockrendering/pixelfix.png :alt: The 6 pixels manually added to each cube. -Other Cube Types ----------------- -Many block types are not rendered as cubes. Fences, rails, doors, torches, and -many other types of blocks have custom rendering routines. - Chunk Rendering =============== -So now that each type of cube is rendered and cached in global variables within -the :mod:`textures` module, the next step is to use the data from a chunk of -the world to arrange these cubes on an image, rendering an entire chunk. +With these cube sprites, we can draw them together to start constructing the +world. The renderer renders a single chunk section (a 16 by 16 by 16 group of +blocks) at a time. -How big is a chunk going to be? A chunk is 16 by 16 blocks across, 128 blocks -high. The diagonal of a 16 by 16 grid is 16 squares. Observe. +This section of the design doc goes over how to draw the cube sprites together +to draw an entire chunk section. -This is the top-down view of a single chunk. It is essentially a 16 by 16 grid, -extending 128 units into the page. +How big is a chunk section going to be? A chunk section is a cube of 16x16x16 +blocks. -.. image:: cuberenderimgs/chunk_topdown.png - :alt: A 16x16 square grid - -Rendered at the appropriate perspective, we'll have something like this -(continued down for 128 layers). +Rendered at the appropriate perspective, we'll have a cube made up of 4096 +smaller cubes, like this: .. image:: cuberenderimgs/chunk_perspective.png - :alt: Perspective rendering of the two top layers of a chunk. + :alt: Perspective rendering of a chunk section. -Each of those cubes shown is where one of the pre-rendered cubes gets pasted. -This happens from back to front, bottom to top, so that the chunk gets drawn -correctly. Obviously if a cube in the back is pasted on the image after the -cubes in the front, it will be drawn on top of everything. +Each of those cubes shown is where one of the pre-rendered block sprites gets +pasted; the entire thing is a chunk section. The renderer iterates over a chunk +layer-at-a-time from bottom to top, drawing the sprites. The order is important +so that the it gets drawn correctly. Obviously if a sprite in the back is pasted +on the image after the sprites in the front are drawn, it will be drawn on top +of everything instead of behind. -Cube Positioning ----------------- -A single cube is drawn in a 24 by 24 square. Before we can construct a chunk out -of individual cubes, we must figure out how to position neighboring cubes. +.. _cubepositioning: -First, to review, these are the measurements of a cube: +Block Positioning +----------------- + +A single block is a 24 by 24 pixel image. Before we can construct a chunk +section out of individual blocks, we must figure out how to position neighboring +blocks. + +First, to review, these are the measurements of a block sprite: .. image:: cubepositionimgs/cube_measurements.png - :alt: The measurements of a cube + :alt: The measurements of a block sprite -* The cube is bounded by a 24 by 24 pixel square. +* The image is bounded by a 24 by 24 pixel square. * The side vertical edges are 12 pixels high. -* The top (and bottom) face of the cube takes 12 vertical pixels (and 24 +* The top (and bottom) face of the block takes 12 vertical pixels (and 24 horizontal pixels). -* The edges of the top and bottom of the cube take up 6 vertical pixels and 12 +* The edges of the top and bottom of the block take up 6 vertical pixels and 12 horizontal pixels each. -Two cubes that are neighbors after projection to the image (diagonally +Two blocks that are neighbors after projection to the image (diagonally neighboring in the world) have a horizontal offset of 24 pixels from each other, -as shown below on the left. This is mostly trivial, since the images don't end -up overlapping at all. Two cubes in the same configuration but rotated 90 -degrees have some overlap in the image, and are only vertically offset by 12 -pixels, as shown on the right. +as shown below on the left. This is mostly trivial, since the images don't +overlap at all. Two blocks in the same configuration but rotated 90 degrees have +some overlap as shown on the right, and are only vertically offset by 12 pixels. .. image:: cubepositionimgs/cube_horizontal_offset.png - :alt: Two cubes horizontally positioned are offset by 24 pixels on the X axis. + :alt: Two blocks horizontally positioned are offset by 24 pixels on the X axis. -Now for something slightly less trivial: two cubes that are stacked on top of +Now for something slightly less intuitive: two blocks that are stacked on top of each other in the world. One is rendered lower on the vertical axis of the image, but by how much? .. image:: cubepositionimgs/cube_stacking.png - :alt: Two cubes stacked are offset in the image by 12 pixels. + :alt: Two blocks stacked are offset in the image by 12 pixels. Interestingly enough, due to the projection, this is exactly the same offset as -the situation above for diagonally neighboring cubes. The cube outlined in green -is drawn 12 pixels below the other one. Only the order that the cubes are drawn +the situation above for diagonally neighboring blocks. The block outlined in green +is drawn 12 pixels below the other one. Only the order that the blocks are drawn is different. -And finally, what about cubes that are next to each other in the world --- +And finally, what about blocks that are next to each other in the world --- diagonally next to each other in the image? .. image:: cubepositionimgs/cube_neighbors.png :alt: Cubes that are neighbors are offset by 12 on the X and 6 on the Y -The cube outlined in green is offset on the horizontal axis by half the cube +The block outlined in green is offset on the horizontal axis by half the block width, or 12 pixels. It is offset on the vertical axis by half the height of the -cube's top, or 6 pixels. For the other 3 directions this could go, the +block's top, or 6 pixels. For the other 3 directions this could go, the directions of the offsets are changed, but the amounts are the same. The size of a chunk ------------------- -Now that we know how to place cubes relative to each other, we can begin to -construct a chunk. +Now that we know how to place blocks relative to each other, we can begin to +construct a chunk section. -Since the cube images are 24 by 24 pixels, and the diagonal of the 16 by 16 grid -is 16 squares, the width of one rendered chunk will be 384 pixels. Just -considering the top layer of the chunk: +Since the block sprites are 24 by 24 pixels, and the diagonal of the 16 by 16 +grid is 16 squares, the width of one rendered chunk will be 384 pixels. Just +considering the top layer of the blocks: .. image:: cuberenderimgs/chunk_width.png :alt: Illustrating the width of a single chunk