From 7f82a5e91ab79f2e1605cca4b3b9aa4451783216 Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Thu, 6 Oct 2011 23:15:18 -0400 Subject: [PATCH] wrote chunk rendering section of the design docs --- .../cube_horizontal_offset.png | Bin 0 -> 16204 bytes .../cube_horizontal_offset.svg | 286 ++ .../cubepositionimgs/cube_measurements.png | Bin 0 -> 12122 bytes .../cubepositionimgs/cube_measurements.svg | 418 ++ .../cubepositionimgs/cube_neighbors.png | Bin 0 -> 8207 bytes .../cubepositionimgs/cube_neighbors.svg | 207 + .../design/cubepositionimgs/cube_stacking.png | Bin 0 -> 13312 bytes .../design/cubepositionimgs/cube_stacking.svg | 183 + docs/design/cuberenderimgs/chunk_height.png | Bin 0 -> 77870 bytes docs/design/cuberenderimgs/chunk_height.svg | 4240 +++++++++++++++++ .../cuberenderimgs/chunk_perspective.png | Bin 0 -> 43566 bytes .../cuberenderimgs/chunk_perspective.svg | 2104 ++++++++ docs/design/cuberenderimgs/chunk_topdown.png | Bin 0 -> 4199 bytes docs/design/cuberenderimgs/chunk_topdown.svg | 1869 ++++++++ docs/design/cuberenderimgs/chunk_width.png | Bin 0 -> 52924 bytes docs/design/cuberenderimgs/chunk_width.svg | 2210 +++++++++ docs/design/cuberenderimgs/cube_stack128.png | Bin 0 -> 29797 bytes docs/design/cuberenderimgs/cube_stack128.svg | 490 ++ docs/design/designdoc.rst | 141 +- 19 files changed, 12147 insertions(+), 1 deletion(-) create mode 100644 docs/design/cubepositionimgs/cube_horizontal_offset.png create mode 100644 docs/design/cubepositionimgs/cube_horizontal_offset.svg create mode 100644 docs/design/cubepositionimgs/cube_measurements.png create mode 100644 docs/design/cubepositionimgs/cube_measurements.svg create mode 100644 docs/design/cubepositionimgs/cube_neighbors.png create mode 100644 docs/design/cubepositionimgs/cube_neighbors.svg create mode 100644 docs/design/cubepositionimgs/cube_stacking.png create mode 100644 docs/design/cubepositionimgs/cube_stacking.svg create mode 100644 docs/design/cuberenderimgs/chunk_height.png create mode 100644 docs/design/cuberenderimgs/chunk_height.svg create mode 100644 docs/design/cuberenderimgs/chunk_perspective.png create mode 100644 docs/design/cuberenderimgs/chunk_perspective.svg create mode 100644 docs/design/cuberenderimgs/chunk_topdown.png create mode 100644 docs/design/cuberenderimgs/chunk_topdown.svg create mode 100644 docs/design/cuberenderimgs/chunk_width.png create mode 100644 docs/design/cuberenderimgs/chunk_width.svg create mode 100644 docs/design/cuberenderimgs/cube_stack128.png create mode 100644 docs/design/cuberenderimgs/cube_stack128.svg diff --git a/docs/design/cubepositionimgs/cube_horizontal_offset.png b/docs/design/cubepositionimgs/cube_horizontal_offset.png new file mode 100644 index 0000000000000000000000000000000000000000..74893d38e4c8353df7da140c67068285ed4de31c GIT binary patch literal 16204 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 literal 0 HcmV?d00001 diff --git a/docs/design/cubepositionimgs/cube_horizontal_offset.svg b/docs/design/cubepositionimgs/cube_horizontal_offset.svg new file mode 100644 index 0000000..c3790fc --- /dev/null +++ b/docs/design/cubepositionimgs/cube_horizontal_offset.svg @@ -0,0 +1,286 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + 24 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + + + + + + + + diff --git a/docs/design/cubepositionimgs/cube_measurements.png b/docs/design/cubepositionimgs/cube_measurements.png new file mode 100644 index 0000000000000000000000000000000000000000..973a10e8f053d998f8e69b3c1302034cfcf8ba0f GIT binary patch literal 12122 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 + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + 24 + 24 + + + + + + + + + 6 + 12 + 6 + + + + + + + + + + + + + + + + + + 12 + + + + + 12 + + + 12 + + + + + 12 + + + + diff --git a/docs/design/cubepositionimgs/cube_neighbors.png b/docs/design/cubepositionimgs/cube_neighbors.png new file mode 100644 index 0000000000000000000000000000000000000000..fd69adf4acce0ce8d301f1ee495e4289c1dc8a44 GIT binary patch literal 8207 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 literal 0 HcmV?d00001 diff --git a/docs/design/cubepositionimgs/cube_neighbors.svg b/docs/design/cubepositionimgs/cube_neighbors.svg new file mode 100644 index 0000000..e376fd5 --- /dev/null +++ b/docs/design/cubepositionimgs/cube_neighbors.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + 12 + + 6 + + diff --git a/docs/design/cubepositionimgs/cube_stacking.png b/docs/design/cubepositionimgs/cube_stacking.png new file mode 100644 index 0000000000000000000000000000000000000000..ae0fbaa25691c420b941b5dd4e6b92bf8bf7a01f GIT binary patch literal 13312 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 MboFyt=akR{07o8X + + + + + + + + + + + image/svg+xml + + + + + + + 12 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/cuberenderimgs/chunk_height.png b/docs/design/cuberenderimgs/chunk_height.png new file mode 100644 index 0000000000000000000000000000000000000000..f56b28260b3ca4ae0888d8b5067436f51a686629 GIT binary patch literal 77870 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�-?}56 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 SD;XFV7(8A5T-G@yGywn`!pKGd literal 0 HcmV?d00001 diff --git a/docs/design/cuberenderimgs/chunk_height.svg b/docs/design/cuberenderimgs/chunk_height.svg new file mode 100644 index 0000000..8908f1e --- /dev/null +++ b/docs/design/cuberenderimgs/chunk_height.svg @@ -0,0 +1,4240 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 1524 + + 1680 + + + + + + 1704 + + diff --git a/docs/design/cuberenderimgs/chunk_perspective.png b/docs/design/cuberenderimgs/chunk_perspective.png new file mode 100644 index 0000000000000000000000000000000000000000..8139928c4158eda471ffa4d5d6fc0201b8d0a091 GIT binary patch literal 43566 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 if5k2;nOOjc=2&`!WUw1_n=8KbLh*2~7aE5JiLl literal 0 HcmV?d00001 diff --git a/docs/design/cuberenderimgs/chunk_perspective.svg b/docs/design/cuberenderimgs/chunk_perspective.svg new file mode 100644 index 0000000..c6baf79 --- /dev/null +++ b/docs/design/cuberenderimgs/chunk_perspective.svg @@ -0,0 +1,2104 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/cuberenderimgs/chunk_topdown.png b/docs/design/cuberenderimgs/chunk_topdown.png new file mode 100644 index 0000000000000000000000000000000000000000..33bb83f8c43ad2e1742d74b858a7faf1b1338c0c GIT binary patch literal 4199 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

F5$zTa2)?fT{W|Bo-kJMJec)Ydc1 z(XML@Zm?(66aW48Nc!ddzHip6ls&qy`RzKxb;kE%zoi?>1A%9pN&j}- zuy}!XQ(i|D9<*}_ltXDy3k*y4=Ib@Gxn?huiJO&_1Ag9)&J{>ZlQz9 zNqD3F>-EOXM)AtOjd?cZ-+kQq>+fCueey4=>zDlI_dcq>q3_1?dkWvgg?8VVedOQY z19K0|O!}|*z%60+jsHR)nh&rh)vJF9`%=wS&Y0csz2mR#-NjY?5BwX&JD&%B6!@U= zL2%=L_6KoE>hT|0K4dj17kvBOSGpyapxl!J}&%S%+U-|3<3!hy7AYfqa b_*cF8LN>pP$GU|K3=9mOu6{1-oD!M<=`{+H literal 0 HcmV?d00001 diff --git a/docs/design/cuberenderimgs/chunk_topdown.svg b/docs/design/cuberenderimgs/chunk_topdown.svg new file mode 100644 index 0000000..e21cfe4 --- /dev/null +++ b/docs/design/cuberenderimgs/chunk_topdown.svg @@ -0,0 +1,1869 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/cuberenderimgs/chunk_width.png b/docs/design/cuberenderimgs/chunk_width.png new file mode 100644 index 0000000000000000000000000000000000000000..e27bcc8be10ad369d3bd50cc53dbd214490891b8 GIT binary patch literal 52924 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 z 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

udHN#5nW-`ILV}m?S?G1k7Km)PSzFU zK6>QHihbJ@{<=oDpGn)S8MZofZRF-C-r6gXb_n%@;EIa;@9 zKiA=?wP9D&Hm@w(9Xr>){-0`V1oJ{rU%O9sHAj;JNV!HABlisR+2;Anw&mVF)ugb( zY__kctKoyV2~p?f*?I>r^9ghbTyo_~h^3v~K9eiU6~4ytE65#?ncnc1+d+5l<9Pl= zhW5h`V-5>k^mi$-Zn(!_#q?vYp;?<@8sFu|+Ad%63JVM8#@GKX^>=h^oHJ)mOwjr` z+cXoYW+`heEw1DJ^65Q>SJubNyR-3busXYs~Y!MOHi&=2ugh%t)G-km- zM@Po)t}d>uoXIC!?En9{oM0ev!Zdx_{Q3O}^SK#77mA%ab*jS5p-iw^T`yhtQbdu z3kw{Xo3Cc+o;`iK7_{p5wsHEoEsBfIE}XGlP9mAJXX8$Wy0*=;9D|jloL%bMviZVU zujV${RD5_Kc#h!$%K;+>cSakw^`b^C6|QUMWQ*^7J)!i?jg1wrudRKe|4!HAz0(>{ zjqKRWb~0`A%w46gmu1}6dYO81lIpy;3Gc#Ox)xp7lzMta-rZeZXJ?sCooSr@%Qi1D zQSol+_1IMk99d;$+tfMl$F978e@UJ0EnSaX)tYiX(1E(2zFhYIU3)5MHuJJv*OFIP zG>g7(%DK46)j>NszW%T2(&fufHz`~=(kUET&TX;&nrGegy#=ZdK@-W#`6O1Yc(H2z zYep4@8SKxwZp1KfRvq6h2dPW=<*o`c7%|i^JdkKmXNZWgU!NsdefH~px5XDNTttp0 zM@B{-y%&1#wDWE5O^dvKygRfZPjU5%vy)~o^`0K5mT*s_%L&xF*j4&^RTXHa1+(#;4qMO*|Di#DOe)c-_pU~7C)r7g>KPHR^$3_q}^ zaQfaA9w*FlZ@IjD`Et|Iq=g?JAO9_~;nTb2FHRkcfKMMGurj}M8Un_QJRm|R_4F6=0L++@e<`9x$Bs410_ zqT)Hp<>SYXSsH$hLYA#-oZI=jG`d0-yYW{2c-Y=-$NDnu=clJ4qN1*0tEaL!1~k89 zUAc6@f`+_ZFV#W?Sd3<$Ex8_B&Z?7eujcF3@RY4lp^GniOq@7zIpdclr|y?4iW*LD z&@EWoV9UN>*}RRFKPv22SA$bTp(bfghwD|g8EX{iRF;l)dZzu#`J4g+;de7?TE9QcLWoy3L-pi0heyTaDxI=8oGtN;J= z`TVZqr4};tbWiZfT4~(-S@AAz+Qo|(r;D^*Jq+p%1uk}zW4wHg@p4||wv3BT-$9M@}%>h3NHB8@`Oq3)cF~&<}rZMcnmM2g6M(UdWzLz4Nrbm zPVJiU?7pDe;=&f~_A?tRKc}tYD3|Qov15l<@qwbEA{(b`TeGio`A1f5S6Y?99i*L7 zSXel9-X`!CRP~41tvbfWo1GN3b#=c^S$N{qsi1ASx5HlANSS6WIdbHPM)L7K)zHw| zxaf%um5bM2xxdJj`{(ZW`#x8$-Obag#`%Ae%!Yyvi3VwgKetsAj2Vu+kZf+BKVKIX zy0Z?crsOkPFedDI-M#vhtIy|R|DgJIK3SQ2r6;E8#d?|FDQMOM=fmUavPQYui@Ht) zOlfyJF=fXNi_~jtBB$Tkmv&ZaRs8;ayZL53^5>heeZt>guh-AJ?d9#A`QpODRVtoY z$NOYc>x&P7j%4=o_YY4>N}5vm_*kq`$~%=BTc&5eb#->OKc7tAq`+}yQ>r&;naaG| zDUoHKeFbi9oi(j@C7Cd#k)+ zV&)j7oDlHx^({4j9QNle>&m0iCqT`lsI_5Ri=UqZjkz()O+TU8_44IQubiAUMfYpJ z2Ub<>lIaR_0nJ7o5%xbJ*4-MlHB0sUeEaz5j;%3_i}%O-PI~ z+$V2DZ_8O2wKZ$yyU7dv?S7_s919g`1+CLa>X`^y_w^v{()WKHGdmbpFegmRX3fzO z-|&I$z3It^1s0ADF7*NzIT&Og{Bim{*U+rfFpc~2&P+(H{BpEgeEXfM*K5^5 zx3S&WTV3w(SX5Lr@jwIPlqpkOdJIc%Z_EAh@woiOC7!}t0~fo!xVLxrtl6`rFWh*2 zZLM=u)GVWd2M$ukX*{ALA_*54x&Am`|8KFHipq-O=jV7c?i4>im-ytw#3>UdIJo!A zg6uYW(oAn}l$(y#5SR;?Gjc&mYphv8U6?6DiK z8NMB;wA!I4=&QEqg2|;PFBb3eoxsj7XR~f8LxA|XrVZ+hK5Pls?}Vv#{=N13;VH$* zDlgBki`^~uTGuZsB*cZ8jVHi0Fr@n1o5(z+p9h=SGY>Q{Zn~MXOgev0pk>XE4eK^u zUl;2Qomxyj# zadN#9hE8U)&tBPATm5r-eBDLUZ_m!o2KBEuDR6vwv-!N%y{R8ULziA%9UdGNHA_fZ zdbQ6Si@@tUR;}7~+eI{U@&~~tx&Es4tO4g=+h$$C^(>;a(8!mcuj6(-M^pDuPkt6judg7 zWmmf^C?q80;f^>bwckRUHf=JJva8vlz)Y3lkN;gGV&F4eq-7Zn>6>)p3T+L?Z+VA1o*yemBhH0C`x!fUHp53P>-xI6%XjVw zJ8%p%BOxO4!*t!MRa>&IYI*tkh9)H?**Gn;To915`Q|?M3*D#c|E>x;vW)o$r`0Ek z$`*TQldI5{Wsdr#d#nYwz8;N8bShcl;#0hPx51l}zrMbnFU;cj_S)Lnd#bF9c?_4i(Fh? zCn|7c^-7t(c)5Ij*yqomo29}b1FfbR7aTx+Hz6S*uUxa+{0y5`KDw^|M2YSB$$Q%w zM0SLw?`()|JUIEQr3{}sk3gWF;9d3wtPK$i>=Mbw63K>%RW*^*o*w0ESAKe7p>y@Q z`S$g3p;v>hi8@F_zkM6s;aH( zesg~0CnhEqD@DnFIbfC8v()I=J+=+P2OJqnJ2ONCMO(A^Wd0TiJ}$7BW8mac>GH*( zA&g-WDUwP5@l*qVU#m~>FSABg|x(IZQK;yom^fe3&ydOPX97E=8 zirHPJ8x$Nowffyo_GWhewBvoUpt>A%G?1XMursf;nalZkwxHpgAK(nv#wY8=$;nyr z;(}u7-(O#Ij`zvF>9_xvpuhLaq(ac;!mGn{Q~&+>S$Dqj^|iJ0f+uXhTPA(_^l8v# zls6ig*(Xe#*ci4pN)bA18UI*F(C*I%XOoNz3o4$Rm}vj+<8k@&`S$g7Rt2$7@U0XEVA;^&a~TYUeEV zo~~rOT<5N3!X%Z@8O+b_Z8DjC_R8jTe^q_`^@j>ipE{LsV?!dSu3hdoS0uhQVr%p? zPEO8Kdn!L`%>|vQrm3uacyh~oZFU`V^Xrf~)^%(6X8smgqRswhlCDQc;MeN+uOH?F z>}Rq2weZu9O|ZU@4F|&{hCOeDHr-^H$J5@CS@%rPD1Nz4EK}LV*fytpz8U2~`?pWX zWCfkn@TpJMx}^8D*rq8{L`?1M_QfdP-j*w!nv!y2k;Wy^)h6l>pFe$i@x(-B@Y+}F zvOPX0L|hBGBQ|Pt?l+J9XA{1)V=r^UO78>5iWqlW!JY7ri=mT2j6s8CgP6k{aG$}g z(&^jH^!b&q8qUtK{JhC3p~|x2g92#KZd-)TmBsG-Pru)<|9*w>^r=&yc8f2OUOQoD z_=#=#_umO_`1tsEcvRaV@yg1|lK+3dpBC#rs+@9qn(kt&(pMt4-+n7%?fF-ww|bR) zidDn<*!L5cGjdeDJO21oPu6^J<}9149p07_;~JQ8XGdX**=)~ADxmS-SFs(Y0Y$~d zpyGVh!Gr}J9UYrL1hzHl)$%!OB{4`bSID2!`r%*5xZA8r{dKX0%sEjGL0RQR7a3+T zcQAe6PR`*=*0J;HuMeE|)I24!ZkFM;ACuhWt6dzCk&&Q@*spWT z?>X+T`#a@eGkfs+dwZ`YAMaze`L-^0_k~5S+^GkfSS4($w*2~ZTL1BrlaoFC{lnvH zJ|1m2uBx;qW~Y$(y^7?IA0HpD4+;Hhze#7mt4lnq&5HR3$BZPByPe-#ey>t}nr?I&s62|y$eZ*Fepb#CKv^z-AJZC$=D@!y}HQzlGUaBjA_|Mwj()8{t* zxjoZ3J?cQDgsILBmK@23^$dT+&jn8??p$FKQ~aQ%@m1WU#|J@&|NdfjU}~r=$csG3 zJmJBw%BfrYKkXAcr+YeZk;c4NmzH)fUUZ}?T(zbs^w4ze)h+8!Dh5}7f45e~y6nvJ zt=4647Jz03n-oBuKdm#2lT&Acn$IUso}Bt^Q;GV+>uaO8-^kkfk7Ggq_0NH!mGQTN zC-^exfR?8}W;j!I>_K6v+gASuP!Uk^LtamD_G_U{KMT}y!*_OM*2!g>NXZv)&osMu zuaxVOaza&=W7b8k$g;9;s!q>@Hgtm)bGC$?c=YJe6wtjN#j_V_Y{|K4w6@{v*N-(J zOFMK~Hylz;NZ!#9D-RtL=9g<^Z>V4>W)NZi!RU|+Ydgz{xEk&cUhb#*{Z29e&RK=0 zL2H#0E`XQkUfPg&xceP=IYc%0O=o^vm(o{PG^eS&OlL3;{Z!KubL7FDvbd*08!pBi zShqf5ojGIs;fDq5k|dJ9KDcvi7yG%%rRN1N7Rq0@<5-|7XuBdgCic3~u|*Qe@lrf( zdM8hw{Bp1QJ!l~3K(H*evE5EDM^l)RKDf|%%`~5zUi=LgC z>9+fB-Oa7{oTg2i*7oL2&etCwPnRckf(~kPXlCP;;kWs4Kp(W#pyJz`n`$mw%%1Gu z!Y`4$Rw7xR`G?54Ad!_WU$_M4@?V#+2-kx;>6mKD;|Dq2!7K^#b1GAkX2{*wP4ToY ze^;}r{QbS3cXyR)-`rbm&XDl^-QA39Yi3TGJGb|C{(jlY%E}q0*LXNKpTwHhVUQ*BAQxdxsefr-EZj!Ywv$?uC{rqLn%+mLFcMD&y-Co6_V`X*g z{l=|MX`64ZaBOB<5xMzU>qKSuf4@N6AY&sUZcOR87J6`fs9w)Tv!0Fq4{aEKO3l$u zSYO2WcnZ6?Az%C9oqY<6F1vhTX)s}6W%y=vOw8z5(4j9s#8V>UBBG+Ao?lrRygMb* zZhQLqd7JG2{ZPJ92s#Wb@&CWSOI=D{eR+Ag`usfG*^VypEg7$-9+JpDEfLL}uGzJ< zU|oZ*$|CNEvzVX1YVMW*4Q99RXvtA(Xe$tF{o7}_t-~-(-KYP(!lLh~k#V~!KR;W( zyYzL~h27=($II{6K7ViV#UU*&Sm|OKfIIa zo0YghpFOz2DAN~xLhZ0-%5jF8(-PIp4rdK)|FK3+i!bH8X&k$|O!vj*<^Cu4)&AbI z{xipo4T*>AYzrP7IB@9Dp`Lli(ZlpU;E*Y z4lb=OCamXVHYqdAW4Lf4bf>*cfBnNpN4wWgnKDJC_V3s0=S$w+`dV^-U#&OjbV1P# z|79%-5+2MnPB%If)276IAeUj&gF9_GE-u|W8w#5g7wu9%@UXyQjyAuN6?cMG@|*aA zdH;SNo7!PFxufayn(NKBl*WJ}+^{~J~jx${_j3J??l*K^O zL91aV!!&`3GUqG{*2Vtl0!3m$jgw1yXNJ@qp-IdM=E-k-k3}>a*#7(3Ev~<>=Ha2% zw|wo79~y)odVfSBnm>WFA+=y#!`_psJ;Gk#*x_3q)Ul$YW7%QNlzN66Cnc(98%~p2 zr`htd@PNeYGZMEM9^_g`uUIa8F*@deMJOXUg+6?7Of|*$fykz2hBAX=_Y!-ShJL=% z)Mj|C)o`2Of!PfAT7wVVd&YEZCDe-J`5h}}bfg{9O!?2eLH5Aif@>w%{}~h8^<_w@op;wqn-uFwLHgc|99_88$KY zGzTA;R>1hUMHs4FDtzgm=MQ2Oe{&uXJ9cAt&&DrV^KPXY9NT4l%#1mLCBd+PN2zK$ zx5RQQNGoN|goi?#oqd3V0gJ1g5YM*A zC}}A!5`Pe*c$%sNY9If^aFUB*e zJ$tzxC^Ez!ym|T4|ImYnO_>VV8_qE-WBxJWwD@zc*7cz5#HXGk5U445wz;@9$Gjou z*bS~@5tkE=r}d;7A1h;e!Ixmx@XTe)9B+x|UTxr9UT}y{aH`-%dqx$e8>|n!kKJhR z*_igP@2JG<(-OB?6XY7iAL=-N6cRT$ca;I+;}B^*#cIKGOa8rO*q6|=Hl@dO{hNI~ z8)r)-?`GV?u)M`oeGz}BM$X#_7IP9Ff}4GFvW}~!=pWpfx>NK()Ug{{$0E4jXG + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 24 + + + + + 24 + + + + 24*16=384 + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/cuberenderimgs/cube_stack128.png b/docs/design/cuberenderimgs/cube_stack128.png new file mode 100644 index 0000000000000000000000000000000000000000..03c8c3a2d684fd920c64a50e92879c9aaf615340 GIT binary patch literal 29797 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 + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Y Offset + + 0 + 12 + 24 + Block # + + 0 + 1 + 2 + 127 + 126 + 125 + 1500 + 1512 + 1524 + 12*128=1536 + + + + + + diff --git a/docs/design/designdoc.rst b/docs/design/designdoc.rst index 941d746..3546caa 100644 --- a/docs/design/designdoc.rst +++ b/docs/design/designdoc.rst @@ -15,6 +15,10 @@ Overviewer development. So let's get started! +.. note:: + + This page is still under construction + .. contents:: Background Info @@ -195,10 +199,145 @@ This is done at the end of :func:`textures._build_block` 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 =============== -.. This goes over the rendering of a chunk + +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. + +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 is the top-down view of a single chunk. It is essentially a 16 by 16 grid, +extending 128 units into the page. + +.. 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). + +.. image:: cuberenderimgs/chunk_perspective.png + :alt: Perspective rendering of the two top layers of a chunk. + +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. + +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. + +First, to review, these are the measurements of a cube: + +.. image:: cubepositionimgs/cube_measurements.png + :alt: The measurements of a cube + +* The cube 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 + horizontal pixels). + +* The edges of the top and bottom of the cube take up 6 vertical pixels and 12 + horizontal pixels each. + +Two cubes 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, and are only vertically offset by 12 pixels, as shown +on the right. + +.. image:: cubepositionimgs/cube_horizontal_offset.png + :alt: Two cubes 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 +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. + +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 +is changed. + +And finally, what about cubes that are next to each other in the world, or +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 +width, or 12 pixels. It is offset on the vertical axis by half the width of the +cube'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. + +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: + +.. image:: cuberenderimgs/chunk_width.png + :alt: Illustrating the width of a single chunk + +Since cubes next to each other in the same "diagonal row" are offset by 24 +pixels, this is trivially calculated. + +The height is a bit more tricky to calculate. Let's start by calculating the +height of a single stack of 128 cubes. + +If the top of a stack of cubes is at Y value 0, the 128th cube down must be +drawn (128-1)*12=1524 pixels below. However, that's not the end of the story. +The bottom cube has a height of 24 pixels, so the height of a rendered stack of +128 cube is 1548 pixels. + +.. image:: cuberenderimgs/cube_stack128.png + :alt: A stack of 128 cubes takes 1560 vertical pixels to draw. + +You can also calculate this by looking at the sides of the cubes, which don't +overlap at all. They are 12 pixels each, times 128 cubes in the stack, gives +1536 pixels. Add in the 6 pixels for the top cube and the 6 pixels for the +bottom cube to get the total height of 1548 pixels. + +So what about the entire chunk? Let's take a look at the top and bottom few +layers of a chunk. + +.. image:: cuberenderimgs/chunk_height.png + :alt: The highest and lowest positioned cubes in a chunk + +Let's let the red cubes represent the stack from above. The one on the top we'll +define as position 0, with our vertical axis running positively downward (as is +the case in a lot of imaging library coordinate systems) Therefore, the bottom +red cube is at vertical offset 1524 below. + +The green cube at the bottom most tip is the cube with the lowest vertical +placement on the image, so its offset plus 24 pixels for its height will be the +chunk height. Since cubes in that configuration are 12 pixels lower, add 15*12 +pixels to get the offset of the lowest green cube: 1704. + +So the total size of a chunk in pixels is 384 wide by 1704 tall. That's pretty +tall! + +.. note:: + + The original code had an incorrect height for a chunk, but it turns out not + to matter, since the chunk image will either have some blank space or be + slightly cut off. Now that chunks are rendered directly to tiles, it matters + even less, but this is still important for calculating some later things. Tile Rendering ==============