Commits

Jason McKesson committed c8e77a0

Tut15: Added most of the images.

  • Participants
  • Parent commits 067b3d3

Comments (0)

Files changed (18)

File Documents/Texturing/Checkerboard.txt

+16 16 2 1
+. c #FFFFFF
+O c #000000
+....OOOO....OOOO
+....OOOO....OOOO
+....OOOO....OOOO
+....OOOO....OOOO
+OOOO....OOOO....
+OOOO....OOOO....
+OOOO....OOOO....
+OOOO....OOOO....
+....OOOO....OOOO
+....OOOO....OOOO
+....OOOO....OOOO
+....OOOO....OOOO
+OOOO....OOOO....
+OOOO....OOOO....
+OOOO....OOOO....
+OOOO....OOOO....

File Documents/Texturing/DiagonalDiagram.svg

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="350px" width="350px" >
+	<style type="text/css" ><![CDATA[.sample_box
+{
+	stroke: #4B4;
+	stroke-width: 4px;
+	fill: none;
+}
+
+.color_0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+.color_1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+.grid
+{
+	stroke: #888;
+	stroke-width: 1.5px;
+	fill: none;
+}
+
+.frag_area
+{
+	stroke-opacity: 0.7;
+	stroke-width: 7px;
+	stroke-linejoin: round;
+	stroke: red;
+	fill: none;
+}
+
+.sample_pt
+{
+	fill: goldenrod;
+	stroke: none;
+}]]></style>
+	<defs />
+	<rect y="0" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<path d="M 0 21.875 h 350 M 0 43.75 h 350 M 0 65.625 h 350 M 0 87.5 h 350 M 0 109.375 h 350 M 0 131.25 h 350 M 0 153.125 h 350 M 0 175 h 350 M 0 196.875 h 350 M 0 218.75 h 350 M 0 240.625 h 350 M 0 262.5 h 350 M 0 284.375 h 350 M 0 306.25 h 350 M 0 328.125 h 350 M 21.875 0 v 350 M 43.75 0 v 350 M 65.625 0 v 350 M 87.5 0 v 350 M 109.375 0 v 350 M 131.25 0 v 350 M 153.125 0 v 350 M 175 0 v 350 M 196.875 0 v 350 M 218.75 0 v 350 M 240.625 0 v 350 M 262.5 0 v 350 M 284.375 0 v 350 M 306.25 0 v 350 M 328.125 0 v 350" class="grid" />
+	<path d="M 72.1875 312.8125 L 37.1875 277.8125 L 277.8125 37.1875 L 312.8125 72.1875 Z" class="frag_area" />
+	<circle r="5.46875" cy="175" cx="175" class="sample_pt" />
+</svg>

File Documents/Texturing/GenDiagonalDiagram.lua

+require "SvgWriter"
+require "vmath"
+require "Viewport"
+require "SubImage"
+require "GridAxis"
+require "PixelImage"
+require "_utils"
+
+-- Sizing
+local imageSize = vmath.vec2(350, 350);
+
+local subImages = SubImage.SubImage(1, 1, imageSize.x, imageSize.y, 0, 50);
+
+local coordSize = 6;
+local coordWidth = coordSize * (imageSize.x / imageSize.y);
+
+--image
+local image = PixelImage.PixelImage("Checkerboard.txt")
+
+local pixelSize = image:Size();
+pixelSize = pixelSize / 2;
+pixelSize.y = pixelSize.y;
+
+local vp = Viewport.Viewport(imageSize, pixelSize, image:Size())
+local trans2 = Viewport.Transform2D()
+vp:SetTransform(trans2);
+
+--styles
+local styleLib = SvgWriter.StyleLibrary();
+image:Style(styleLib);
+styleLib:AddStyle(nil, "grid",
+	SvgWriter.Style():stroke("#888"):stroke_width("1.5px"):fill("none"));
+styleLib:AddStyle(nil, "frag_area",
+	SvgWriter.Style():stroke("red"):stroke_width("7px"):stroke_opacity(0.7)
+	:stroke_linejoin("round"):fill("none"));
+styleLib:AddStyle(nil, "sample_box",
+	SvgWriter.Style():stroke("#4B4"):stroke_width("4px"):fill("none"));
+styleLib:AddStyle(nil, "sample_pt",
+	SvgWriter.Style():stroke("none"):fill("goldenrod"));
+	
+--Sample point.
+local texCoord = vmath.vec2(0.5, 0.5)
+local samplePt = texCoord * image:Size();
+
+local lowLeftPt = samplePt - vmath.vec2(5.5, 5.5)
+local upRightPt = samplePt + vmath.vec2(5.5, 5.5)
+
+local offset = vmath.vec2(0.8, -0.8)
+
+local pts =
+{
+	lowLeftPt + offset,
+	lowLeftPt - offset,
+	upRightPt - offset,
+	upRightPt + offset,
+}
+pts = vp:Transform(pts);
+
+local pathSampleArea = SvgWriter:Path();
+pathSampleArea
+	:M(pts[1])
+	:L(pts[2])
+	:L(pts[3])
+	:L(pts[4])
+	:Z()
+
+local sampleTopLeft;
+
+for i, pt in ipairs(pts) do
+	if(sampleTopLeft) then
+		sampleTopLeft.x = math.min(sampleTopLeft.x, pt.x)
+		sampleTopLeft.y = math.min(sampleTopLeft.y, pt.y)
+	else
+		sampleTopLeft = vmath.vec2(pt);
+	end
+end
+
+local sampleSize;
+
+for i, pt in ipairs(pts) do
+	if(sampleSize) then
+		sampleSize.x = math.max(sampleSize.x, pt.x - sampleTopLeft.x)
+		sampleSize.y = math.max(sampleSize.y, pt.y - sampleTopLeft.y)
+	else
+		sampleSize = vmath.vec2(pt) - sampleTopLeft;
+	end
+end
+
+samplePt = vp:Transform(samplePt);
+
+local ptRadius = vp:Length(0.25)
+
+local writer = SvgWriter.SvgWriter(ConstructSVGName(arg[0]), subImages:SvgSize());
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+	writer:EndDefinitions();
+	
+	image:Draw(writer, vmath.vec2(0, 0), subImages:Size(), {"grid"});
+	
+	writer:Path(pathSampleArea, {"frag_area"})
+	
+	writer:Circle(samplePt, ptRadius, {"sample_pt"})
+writer:Close();
+
+local writer = SvgWriter.SvgWriter("Mipmap" .. ConstructSVGName(arg[0]), subImages:SvgSize());
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+	writer:EndDefinitions();
+	
+	image:Draw(writer, vmath.vec2(0, 0), subImages:Size(), {"grid"});
+	
+	image:DrawPixelRect(writer, vmath.vec2(0, 0), subImages:Size(),
+		vmath.vec2(2, 2), vmath.vec2(12, 12),
+		{"sample_box"})
+	
+	writer:Path(pathSampleArea, {"frag_area"})
+	
+	writer:Circle(samplePt, ptRadius, {"sample_pt"})
+writer:Close();

File Documents/Texturing/GenLargeMinificDiag.lua

+require "SvgWriter"
+require "vmath"
+require "Viewport"
+require "SubImage"
+require "GridAxis"
+require "PixelImage"
+require "_utils"
+
+-- Sizing
+local imageSize = vmath.vec2(300, 300);
+
+local subImages = SubImage.SubImage(1, 1, imageSize.x, imageSize.y, 0, 50);
+
+local coordSize = 6;
+local coordWidth = coordSize * (imageSize.x / imageSize.y);
+
+--image
+local image = PixelImage.PixelImage("HighMipmap.txt")
+
+local pixelSize = image:Size();
+pixelSize = pixelSize / 2;
+pixelSize.y = pixelSize.y;
+
+local vp = Viewport.Viewport(imageSize, pixelSize, image:Size())
+local trans2 = Viewport.Transform2D()
+vp:SetTransform(trans2);
+
+--styles
+local styleLib = SvgWriter.StyleLibrary();
+image:Style(styleLib);
+styleLib:AddStyle(nil, "grid",
+	SvgWriter.Style():stroke("#888"):stroke_width("1.5px"):fill("none"));
+styleLib:AddStyle(nil, "frag_area",
+	SvgWriter.Style():stroke("red"):stroke_width("7px"):stroke_opacity(0.7)
+	:stroke_linejoin("round"):fill("none"));
+styleLib:AddStyle(nil, "sample_box",
+	SvgWriter.Style():stroke("#4B4"):stroke_width("4px"):fill("none"));
+styleLib:AddStyle(nil, "sample_pt",
+	SvgWriter.Style():stroke("none"):fill("goldenrod"));
+	
+--Sample point.
+local texCoord = vmath.vec2(0.57125, 0.60625)
+local samplePt = texCoord * image:Size();
+local sampleRect = {PixelImage.RectForSamplePt(image, samplePt)}
+
+local pts =
+{
+	samplePt - vmath.vec2(2.1, 2.1),
+	samplePt + vmath.vec2(2.1, 2.1),
+}
+pts = vp:Transform(pts);
+
+local pathSampleArea = SvgWriter:Path();
+pathSampleArea
+	:M(pts[1])
+	:L{pts[1].x, pts[2].y}
+	:L(pts[2])
+	:L{pts[2].x, pts[1].y}
+	:Z()
+
+samplePt = vp:Transform(samplePt);
+
+local ptRadius = vp:Length(0.1)
+
+local writer = SvgWriter.SvgWriter(ConstructSVGName(arg[0]), {subImages:Size().x .."px", subImages:Size().y .. "px"});
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+	writer:EndDefinitions();
+	
+	image:Draw(writer, vmath.vec2(0, 0), subImages:Size(), {"grid"});
+	image:DrawPixelRect(writer, vmath.vec2(0, 0), subImages:Size(),
+		sampleRect[1], sampleRect[2],
+		{"sample_box"})
+	
+	writer:Path(pathSampleArea, {"frag_area"})
+	
+	writer:Circle(samplePt, ptRadius, {"sample_pt"})
+writer:Close();

File Documents/Texturing/GenMipmapDiagram.lua

+require "SvgWriter"
+require "vmath"
+require "Viewport"
+require "SubImage"
+require "GridAxis"
+require "PixelImage"
+require "_utils"
+
+-- Sizing
+local imageSize = vmath.vec2(250, 250);
+
+local highImage = vmath.vec2(1, 1)
+local lowImage = vmath.vec2(2, 1)
+
+local subImages = SubImage.SubImage(2, 1, imageSize.x, imageSize.y, 25, 50);
+
+--image
+local imageHigh = PixelImage.PixelImage("HighMipmap.txt")
+local imageLow = PixelImage.PixelImage("LowMipmap.txt")
+
+local pixelSize = imageHigh:Size();
+pixelSize = pixelSize / 2;
+pixelSize.y = pixelSize.y;
+
+local vpHigh = Viewport.Viewport(imageSize, pixelSize, imageHigh:Size())
+local trans2 = Viewport.Transform2D()
+vpHigh:SetTransform(trans2);
+
+pixelSize = imageLow:Size();
+pixelSize = pixelSize / 2;
+pixelSize.y = pixelSize.y;
+
+local vpLow = Viewport.Viewport(imageSize, pixelSize, imageLow:Size())
+local trans2 = Viewport.Transform2D()
+vpLow:SetTransform(trans2);
+
+--styles
+local styleLib = SvgWriter.StyleLibrary();
+imageHigh:Style(styleLib, "_high");
+imageLow:Style(styleLib, "_low");
+styleLib:AddStyle(nil, "grid",
+	SvgWriter.Style():stroke("#888"):stroke_width("1.5px"):fill("none"));
+styleLib:AddStyle(nil, "frag_area",
+	SvgWriter.Style():stroke("red"):stroke_width("7px"):stroke_opacity(0.7)
+	:stroke_linejoin("round"):fill("none"));
+styleLib:AddStyle(nil, "sample_box",
+	SvgWriter.Style():stroke("#4B4"):stroke_width("4px"):fill("none"));
+styleLib:AddStyle(nil, "sample_pt",
+	SvgWriter.Style():stroke("none"):fill("goldenrod"));
+	
+--Sample point.
+local texCoord = vmath.vec2(0.57125, 0.60625)
+local samplePtHigh = texCoord * imageHigh:Size();
+local sampleRectHigh = {imageHigh:RectForSamplePt(samplePtHigh)}
+
+local samplePtLow = texCoord * imageLow:Size();
+local sampleRectLow = {imageLow:RectForSamplePt(samplePtLow)}
+
+local ptsHigh =
+{
+	samplePtHigh - vmath.vec2(2.1, 2.1),
+	samplePtHigh + vmath.vec2(2.1, 2.1),
+}
+ptsHigh = subImages:Transform(highImage, vpHigh:Transform(ptsHigh));
+
+local ptsLow =
+{
+	samplePtLow - vmath.vec2(1.05, 1.05),
+	samplePtLow + vmath.vec2(1.05, 1.05),
+}
+ptsLow = subImages:Transform(lowImage, vpLow:Transform(ptsLow));
+
+local pathSampleAreaHigh = SvgWriter:Path();
+pathSampleAreaHigh
+	:M(ptsLow[1])
+	:L{ptsLow[1].x, ptsLow[2].y}
+	:L(ptsLow[2])
+	:L{ptsLow[2].x, ptsLow[1].y}
+	:Z()
+
+samplePtHigh = subImages:Transform(highImage, vpHigh:Transform(samplePtHigh));
+
+local pathSampleAreaLow = SvgWriter:Path();
+pathSampleAreaLow
+	:M(ptsHigh[1])
+	:L{ptsHigh[1].x, ptsHigh[2].y}
+	:L(ptsHigh[2])
+	:L{ptsHigh[2].x, ptsHigh[1].y}
+	:Z()
+
+samplePtLow = subImages:Transform(lowImage, vpLow:Transform(samplePtLow));
+
+local ptRadius = vpHigh:Length(0.15)
+
+local writer = SvgWriter.SvgWriter(ConstructSVGName(arg[0]), subImages:SvgSize());
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+	writer:EndDefinitions();
+	
+	imageHigh:Draw(writer, subImages:Offset(highImage),
+		subImages:SubSize(), {"grid"});
+	imageLow:Draw(writer, subImages:Offset(lowImage),
+		subImages:SubSize(), {"grid"});
+
+	imageHigh:DrawPixelRect(writer, subImages:Offset(highImage), subImages:SubSize(),
+		sampleRectHigh[1], sampleRectHigh[2],
+		{"sample_box"})
+	
+	imageLow:DrawPixelRect(writer, subImages:Offset(lowImage), subImages:SubSize(),
+		sampleRectLow[1], sampleRectLow[2],
+		{"sample_box"})
+	
+	writer:Path(pathSampleAreaHigh, {"frag_area"})
+	writer:Path(pathSampleAreaLow, {"frag_area"})
+	
+	writer:Circle(samplePtHigh, ptRadius, {"sample_pt"})
+	writer:Circle(samplePtLow, ptRadius, {"sample_pt"})
+writer:Close();

File Documents/Texturing/GenNearestSampleDiag.lua

 	SvgWriter.Style():stroke("red"):stroke_width("7px"):stroke_opacity(0.7)
 	:stroke_linejoin("round"):fill("none"));
 styleLib:AddStyle(nil, "sample_pt",
-	SvgWriter.Style():stroke("none"):fill("green"));
+	SvgWriter.Style():stroke("none"):fill("goldenrod"));
 	
 --Sample point.
 local samplePt = vmath.vec2(1.75, 1.75);

File Documents/Texturing/GenParallelogramDiag.lua

+require "SvgWriter"
+require "vmath"
+require "Viewport"
+require "SubImage"
+require "GridAxis"
+require "PixelImage"
+require "_utils"
+
+-- Sizing
+local imageSize = vmath.vec2(350, 350);
+
+local subImages = SubImage.SubImage(1, 1, imageSize.x, imageSize.y, 0, 50);
+
+local coordSize = 6;
+local coordWidth = coordSize * (imageSize.x / imageSize.y);
+
+--image
+local image = PixelImage.PixelImage("Parallelogram.txt")
+
+local pixelSize = image:Size();
+pixelSize = pixelSize / 2;
+pixelSize.y = pixelSize.y;
+
+local vp = Viewport.Viewport(imageSize, pixelSize, image:Size())
+local trans2 = Viewport.Transform2D()
+vp:SetTransform(trans2);
+
+--styles
+local styleLib = SvgWriter.StyleLibrary();
+image:Style(styleLib);
+styleLib:AddStyle(nil, "grid",
+	SvgWriter.Style():stroke("#888"):stroke_width("1.5px"):fill("none"));
+styleLib:AddStyle(nil, "frag_area",
+	SvgWriter.Style():stroke("red"):stroke_width("7px"):stroke_opacity(0.7)
+	:stroke_linejoin("round"):fill("none"));
+styleLib:AddStyle(nil, "sample_box",
+	SvgWriter.Style():stroke("#4B4"):stroke_width("4px"):fill("none"));
+styleLib:AddStyle(nil, "sample_pt",
+	SvgWriter.Style():stroke("none"):fill("goldenrod"));
+	
+--Sample point.
+local texCoord = vmath.vec2(0.395, 0.385)
+local samplePt = texCoord * image:Size();
+
+local lowLeftPt = samplePt - vmath.vec2(5.5, 5.5)
+local upRightPt = samplePt + vmath.vec2(5.5, 5.5)
+
+local pts =
+{
+	vmath.vec2(1.2, 1.7),
+	vmath.vec2(1.8, 4.3),
+	vmath.vec2(5.3, 4.4),
+	vmath.vec2(4.3, 1.8),
+}
+pts = vp:Transform(pts);
+
+local pathSampleArea = SvgWriter:Path();
+pathSampleArea
+	:M(pts[1])
+	:L(pts[2])
+	:L(pts[3])
+	:L(pts[4])
+	:Z()
+
+samplePt = vp:Transform(samplePt);
+
+local ptRadius = vp:Length(0.25)
+
+local sampleBoxes =
+{
+	{vmath.vec2(1, 5), vmath.vec2(1, 1)},
+	{vmath.vec2(4, 5), vmath.vec2(1, 1)},
+	{vmath.vec2(4, 4), vmath.vec2(1, 1)},
+	{vmath.vec2(2, 4), vmath.vec2(2, 2)},
+}
+
+
+local writer = SvgWriter.SvgWriter(ConstructSVGName(arg[0]), {subImages:Size().x .."px", subImages:Size().y .. "px"});
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+	writer:EndDefinitions();
+	
+	image:Draw(writer, vmath.vec2(0, 0), subImages:Size(), {"grid"});
+	
+	for i, box in ipairs(sampleBoxes) do
+		image:DrawPixelRect(writer, vmath.vec2(0, 0), subImages:Size(),
+			box[1], box[2],
+			{"sample_box"})
+	end
+	
+	writer:Path(pathSampleArea, {"frag_area"})
+	
+	writer:Circle(samplePt, ptRadius, {"sample_pt"})
+writer:Close();

File Documents/Texturing/HighMipmap.txt

+8 8 2 1
+. c #FFFFFF
+O c #000000
+OOOO....
+OOOO....
+OOOO....
+OOOO....
+....OOOO
+....OOOO
+....OOOO
+....OOOO

File Documents/Texturing/LargeMinificDiag.svg

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="300px" width="300px" >
+	<style type="text/css" ><![CDATA[.color_1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+.grid
+{
+	stroke: #888;
+	stroke-width: 1.5px;
+	fill: none;
+}
+
+.frag_area
+{
+	stroke-opacity: 0.7;
+	stroke-width: 7px;
+	stroke-linejoin: round;
+	stroke: red;
+	fill: none;
+}
+
+.sample_box
+{
+	stroke: #4B4;
+	stroke-width: 4px;
+	fill: none;
+}
+
+.color_0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+.sample_pt
+{
+	fill: goldenrod;
+	stroke: none;
+}]]></style>
+	<defs />
+	<rect y="0" x="0" height="37.5" width="37.5" class="color_0" />
+	<rect y="0" x="37.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="0" x="75" height="37.5" width="37.5" class="color_0" />
+	<rect y="0" x="112.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="0" x="150" height="37.5" width="37.5" class="color_1" />
+	<rect y="0" x="187.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="0" x="225" height="37.5" width="37.5" class="color_1" />
+	<rect y="0" x="262.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="37.5" x="0" height="37.5" width="37.5" class="color_0" />
+	<rect y="37.5" x="37.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="37.5" x="75" height="37.5" width="37.5" class="color_0" />
+	<rect y="37.5" x="112.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="37.5" x="150" height="37.5" width="37.5" class="color_1" />
+	<rect y="37.5" x="187.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="37.5" x="225" height="37.5" width="37.5" class="color_1" />
+	<rect y="37.5" x="262.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="75" x="0" height="37.5" width="37.5" class="color_0" />
+	<rect y="75" x="37.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="75" x="75" height="37.5" width="37.5" class="color_0" />
+	<rect y="75" x="112.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="75" x="150" height="37.5" width="37.5" class="color_1" />
+	<rect y="75" x="187.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="75" x="225" height="37.5" width="37.5" class="color_1" />
+	<rect y="75" x="262.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="112.5" x="0" height="37.5" width="37.5" class="color_0" />
+	<rect y="112.5" x="37.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="112.5" x="75" height="37.5" width="37.5" class="color_0" />
+	<rect y="112.5" x="112.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="112.5" x="150" height="37.5" width="37.5" class="color_1" />
+	<rect y="112.5" x="187.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="112.5" x="225" height="37.5" width="37.5" class="color_1" />
+	<rect y="112.5" x="262.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="150" x="0" height="37.5" width="37.5" class="color_1" />
+	<rect y="150" x="37.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="150" x="75" height="37.5" width="37.5" class="color_1" />
+	<rect y="150" x="112.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="150" x="150" height="37.5" width="37.5" class="color_0" />
+	<rect y="150" x="187.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="150" x="225" height="37.5" width="37.5" class="color_0" />
+	<rect y="150" x="262.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="187.5" x="0" height="37.5" width="37.5" class="color_1" />
+	<rect y="187.5" x="37.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="187.5" x="75" height="37.5" width="37.5" class="color_1" />
+	<rect y="187.5" x="112.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="187.5" x="150" height="37.5" width="37.5" class="color_0" />
+	<rect y="187.5" x="187.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="187.5" x="225" height="37.5" width="37.5" class="color_0" />
+	<rect y="187.5" x="262.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="225" x="0" height="37.5" width="37.5" class="color_1" />
+	<rect y="225" x="37.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="225" x="75" height="37.5" width="37.5" class="color_1" />
+	<rect y="225" x="112.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="225" x="150" height="37.5" width="37.5" class="color_0" />
+	<rect y="225" x="187.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="225" x="225" height="37.5" width="37.5" class="color_0" />
+	<rect y="225" x="262.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="262.5" x="0" height="37.5" width="37.5" class="color_1" />
+	<rect y="262.5" x="37.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="262.5" x="75" height="37.5" width="37.5" class="color_1" />
+	<rect y="262.5" x="112.5" height="37.5" width="37.5" class="color_1" />
+	<rect y="262.5" x="150" height="37.5" width="37.5" class="color_0" />
+	<rect y="262.5" x="187.5" height="37.5" width="37.5" class="color_0" />
+	<rect y="262.5" x="225" height="37.5" width="37.5" class="color_0" />
+	<rect y="262.5" x="262.5" height="37.5" width="37.5" class="color_0" />
+	<path d="M 0 37.5 h 300 M 0 75 h 300 M 0 112.5 h 300 M 0 150 h 300 M 0 187.5 h 300 M 0 225 h 300 M 0 262.5 h 300 M 37.5 0 v 300 M 75 0 v 300 M 112.5 0 v 300 M 150 0 v 300 M 187.5 0 v 300 M 225 0 v 300 M 262.5 0 v 300" class="grid" />
+	<rect y="75" x="150" height="75" width="75" class="sample_box" />
+	<path d="M 92.625 196.875 L 92.625 39.375 L 250.125 39.375 L 250.125 196.875 Z" class="frag_area" />
+	<circle r="3.75" cy="118.125" cx="171.375" class="sample_pt" />
+</svg>

File Documents/Texturing/LowMipmap.txt

+4 4 2 1
+. c #FFFFFF
+O c #000000
+OO..
+OO..
+..OO
+..OO

File Documents/Texturing/MipmapDiagonalDiagram.svg

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="350px" width="350px" >
+	<style type="text/css" ><![CDATA[.sample_box
+{
+	stroke: #4B4;
+	stroke-width: 4px;
+	fill: none;
+}
+
+.color_0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+.color_1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+.grid
+{
+	stroke: #888;
+	stroke-width: 1.5px;
+	fill: none;
+}
+
+.frag_area
+{
+	stroke-opacity: 0.7;
+	stroke-width: 7px;
+	stroke-linejoin: round;
+	stroke: red;
+	fill: none;
+}
+
+.sample_pt
+{
+	fill: goldenrod;
+	stroke: none;
+}]]></style>
+	<defs />
+	<rect y="0" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="0" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="0" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="21.875" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="21.875" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="43.75" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="43.75" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="65.625" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="65.625" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="87.5" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="87.5" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="109.375" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="109.375" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="131.25" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="131.25" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="153.125" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="153.125" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="175" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="175" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="196.875" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="196.875" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="218.75" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="218.75" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="0" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="21.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="43.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="65.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="87.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="109.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="131.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="153.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="175" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="196.875" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="218.75" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="240.625" height="21.875" width="21.875" class="color_1" />
+	<rect y="240.625" x="262.5" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="284.375" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="306.25" height="21.875" width="21.875" class="color_0" />
+	<rect y="240.625" x="328.125" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="262.5" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="262.5" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="284.375" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="284.375" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="306.25" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="306.25" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="0" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="21.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="43.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="65.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="87.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="109.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="131.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="153.125" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="175" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="196.875" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="218.75" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="240.625" height="21.875" width="21.875" class="color_0" />
+	<rect y="328.125" x="262.5" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="284.375" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="306.25" height="21.875" width="21.875" class="color_1" />
+	<rect y="328.125" x="328.125" height="21.875" width="21.875" class="color_1" />
+	<path d="M 0 21.875 h 350 M 0 43.75 h 350 M 0 65.625 h 350 M 0 87.5 h 350 M 0 109.375 h 350 M 0 131.25 h 350 M 0 153.125 h 350 M 0 175 h 350 M 0 196.875 h 350 M 0 218.75 h 350 M 0 240.625 h 350 M 0 262.5 h 350 M 0 284.375 h 350 M 0 306.25 h 350 M 0 328.125 h 350 M 21.875 0 v 350 M 43.75 0 v 350 M 65.625 0 v 350 M 87.5 0 v 350 M 109.375 0 v 350 M 131.25 0 v 350 M 153.125 0 v 350 M 175 0 v 350 M 196.875 0 v 350 M 218.75 0 v 350 M 240.625 0 v 350 M 262.5 0 v 350 M 284.375 0 v 350 M 306.25 0 v 350 M 328.125 0 v 350" class="grid" />
+	<rect y="43.75" x="43.75" height="262.5" width="262.5" class="sample_box" />
+	<path d="M 72.1875 312.8125 L 37.1875 277.8125 L 277.8125 37.1875 L 312.8125 72.1875 Z" class="frag_area" />
+	<circle r="5.46875" cy="175" cx="175" class="sample_pt" />
+</svg>

File Documents/Texturing/MipmapDiagram.svg

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="250px" width="525px" >
+	<style type="text/css" ><![CDATA[.grid
+{
+	stroke: #888;
+	stroke-width: 1.5px;
+	fill: none;
+}
+
+.sample_pt
+{
+	fill: goldenrod;
+	stroke: none;
+}
+
+.frag_area
+{
+	stroke-opacity: 0.7;
+	stroke-width: 7px;
+	stroke-linejoin: round;
+	stroke: red;
+	fill: none;
+}
+
+._high0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+._high1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+.sample_box
+{
+	stroke: #4B4;
+	stroke-width: 4px;
+	fill: none;
+}
+
+._low1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+._low0
+{
+	fill: #000000;
+	stroke: none;
+}]]></style>
+	<defs />
+	<rect y="0" x="0" height="31.25" width="31.25" class="_high0" />
+	<rect y="0" x="31.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="0" x="62.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="0" x="93.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="0" x="125" height="31.25" width="31.25" class="_high1" />
+	<rect y="0" x="156.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="0" x="187.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="0" x="218.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="31.25" x="0" height="31.25" width="31.25" class="_high0" />
+	<rect y="31.25" x="31.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="31.25" x="62.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="31.25" x="93.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="31.25" x="125" height="31.25" width="31.25" class="_high1" />
+	<rect y="31.25" x="156.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="31.25" x="187.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="31.25" x="218.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="62.5" x="0" height="31.25" width="31.25" class="_high0" />
+	<rect y="62.5" x="31.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="62.5" x="62.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="62.5" x="93.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="62.5" x="125" height="31.25" width="31.25" class="_high1" />
+	<rect y="62.5" x="156.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="62.5" x="187.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="62.5" x="218.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="93.75" x="0" height="31.25" width="31.25" class="_high0" />
+	<rect y="93.75" x="31.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="93.75" x="62.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="93.75" x="93.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="93.75" x="125" height="31.25" width="31.25" class="_high1" />
+	<rect y="93.75" x="156.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="93.75" x="187.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="93.75" x="218.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="125" x="0" height="31.25" width="31.25" class="_high1" />
+	<rect y="125" x="31.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="125" x="62.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="125" x="93.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="125" x="125" height="31.25" width="31.25" class="_high0" />
+	<rect y="125" x="156.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="125" x="187.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="125" x="218.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="156.25" x="0" height="31.25" width="31.25" class="_high1" />
+	<rect y="156.25" x="31.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="156.25" x="62.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="156.25" x="93.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="156.25" x="125" height="31.25" width="31.25" class="_high0" />
+	<rect y="156.25" x="156.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="156.25" x="187.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="156.25" x="218.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="187.5" x="0" height="31.25" width="31.25" class="_high1" />
+	<rect y="187.5" x="31.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="187.5" x="62.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="187.5" x="93.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="187.5" x="125" height="31.25" width="31.25" class="_high0" />
+	<rect y="187.5" x="156.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="187.5" x="187.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="187.5" x="218.75" height="31.25" width="31.25" class="_high0" />
+	<rect y="218.75" x="0" height="31.25" width="31.25" class="_high1" />
+	<rect y="218.75" x="31.25" height="31.25" width="31.25" class="_high1" />
+	<rect y="218.75" x="62.5" height="31.25" width="31.25" class="_high1" />
+	<rect y="218.75" x="93.75" height="31.25" width="31.25" class="_high1" />
+	<rect y="218.75" x="125" height="31.25" width="31.25" class="_high0" />
+	<rect y="218.75" x="156.25" height="31.25" width="31.25" class="_high0" />
+	<rect y="218.75" x="187.5" height="31.25" width="31.25" class="_high0" />
+	<rect y="218.75" x="218.75" height="31.25" width="31.25" class="_high0" />
+	<path d="M 0 31.25 h 250 M 0 62.5 h 250 M 0 93.75 h 250 M 0 125 h 250 M 0 156.25 h 250 M 0 187.5 h 250 M 0 218.75 h 250 M 31.25 0 v 250 M 62.5 0 v 250 M 93.75 0 v 250 M 125 0 v 250 M 156.25 0 v 250 M 187.5 0 v 250 M 218.75 0 v 250" class="grid" />
+	<rect y="0" x="275" height="62.5" width="62.5" class="_low0" />
+	<rect y="0" x="337.5" height="62.5" width="62.5" class="_low0" />
+	<rect y="0" x="400" height="62.5" width="62.5" class="_low1" />
+	<rect y="0" x="462.5" height="62.5" width="62.5" class="_low1" />
+	<rect y="62.5" x="275" height="62.5" width="62.5" class="_low0" />
+	<rect y="62.5" x="337.5" height="62.5" width="62.5" class="_low0" />
+	<rect y="62.5" x="400" height="62.5" width="62.5" class="_low1" />
+	<rect y="62.5" x="462.5" height="62.5" width="62.5" class="_low1" />
+	<rect y="125" x="275" height="62.5" width="62.5" class="_low1" />
+	<rect y="125" x="337.5" height="62.5" width="62.5" class="_low1" />
+	<rect y="125" x="400" height="62.5" width="62.5" class="_low0" />
+	<rect y="125" x="462.5" height="62.5" width="62.5" class="_low0" />
+	<rect y="187.5" x="275" height="62.5" width="62.5" class="_low1" />
+	<rect y="187.5" x="337.5" height="62.5" width="62.5" class="_low1" />
+	<rect y="187.5" x="400" height="62.5" width="62.5" class="_low0" />
+	<rect y="187.5" x="462.5" height="62.5" width="62.5" class="_low0" />
+	<path d="M 275 62.5 h 250 M 275 125 h 250 M 275 187.5 h 250 M 337.5 0 v 250 M 400 0 v 250 M 462.5 0 v 250" class="grid" />
+	<rect y="62.5" x="125" height="62.5" width="62.5" class="sample_box" />
+	<rect y="62.5" x="337.5" height="125" width="125" class="sample_box" />
+	<path d="M 352.1875 164.0625 L 352.1875 32.8125 L 483.4375 32.8125 L 483.4375 164.0625 Z" class="frag_area" />
+	<path d="M 77.1875 164.0625 L 77.1875 32.8125 L 208.4375 32.8125 L 208.4375 164.0625 Z" class="frag_area" />
+	<circle r="4.6875" cy="98.4375" cx="142.8125" class="sample_pt" />
+	<circle r="4.6875" cy="98.4375" cx="417.8125" class="sample_pt" />
+</svg>

File Documents/Texturing/NearestSampleDiag.svg

 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="400px" width="400px" >
-	<style type="text/css" ><![CDATA[.color_0
-{
-	fill: #000000;
-	stroke: none;
-}
-
-.color_1
-{
-	fill: #FFFFFF;
-	stroke: none;
-}
-
-.grid
+	<style type="text/css" ><![CDATA[.grid
 {
 	stroke: #888;
 	stroke-width: 1.5px;
 
 .sample_pt
 {
-	fill: green;
+	fill: goldenrod;
+	stroke: none;
+}
+
+.color_0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+.color_1
+{
+	fill: #FFFFFF;
 	stroke: none;
 }]]></style>
 	<defs />

File Documents/Texturing/Parallelogram.txt

+8 8 2 1
+. c #FFFFFF
+O c #000000
+..OO..OO
+..OO..OO
+OO..OO..
+OO..OO..
+..OO..OO
+..OO..OO
+OO..OO..
+OO..OO..

File Documents/Texturing/ParallelogramDiag.svg

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="350px" width="350px" >
+	<style type="text/css" ><![CDATA[.frag_area
+{
+	stroke-opacity: 0.7;
+	stroke-width: 7px;
+	stroke-linejoin: round;
+	stroke: red;
+	fill: none;
+}
+
+.sample_box
+{
+	stroke: #4B4;
+	stroke-width: 4px;
+	fill: none;
+}
+
+.color_0
+{
+	fill: #000000;
+	stroke: none;
+}
+
+.color_1
+{
+	fill: #FFFFFF;
+	stroke: none;
+}
+
+.grid
+{
+	stroke: #888;
+	stroke-width: 1.5px;
+	fill: none;
+}
+
+.sample_pt
+{
+	fill: goldenrod;
+	stroke: none;
+}]]></style>
+	<defs />
+	<rect y="0" x="0" height="43.75" width="43.75" class="color_1" />
+	<rect y="0" x="43.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="0" x="87.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="0" x="131.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="0" x="175" height="43.75" width="43.75" class="color_1" />
+	<rect y="0" x="218.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="0" x="262.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="0" x="306.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="43.75" x="0" height="43.75" width="43.75" class="color_1" />
+	<rect y="43.75" x="43.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="43.75" x="87.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="43.75" x="131.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="43.75" x="175" height="43.75" width="43.75" class="color_1" />
+	<rect y="43.75" x="218.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="43.75" x="262.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="43.75" x="306.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="87.5" x="0" height="43.75" width="43.75" class="color_0" />
+	<rect y="87.5" x="43.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="87.5" x="87.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="87.5" x="131.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="87.5" x="175" height="43.75" width="43.75" class="color_0" />
+	<rect y="87.5" x="218.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="87.5" x="262.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="87.5" x="306.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="131.25" x="0" height="43.75" width="43.75" class="color_0" />
+	<rect y="131.25" x="43.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="131.25" x="87.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="131.25" x="131.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="131.25" x="175" height="43.75" width="43.75" class="color_0" />
+	<rect y="131.25" x="218.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="131.25" x="262.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="131.25" x="306.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="175" x="0" height="43.75" width="43.75" class="color_1" />
+	<rect y="175" x="43.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="175" x="87.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="175" x="131.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="175" x="175" height="43.75" width="43.75" class="color_1" />
+	<rect y="175" x="218.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="175" x="262.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="175" x="306.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="218.75" x="0" height="43.75" width="43.75" class="color_1" />
+	<rect y="218.75" x="43.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="218.75" x="87.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="218.75" x="131.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="218.75" x="175" height="43.75" width="43.75" class="color_1" />
+	<rect y="218.75" x="218.75" height="43.75" width="43.75" class="color_1" />
+	<rect y="218.75" x="262.5" height="43.75" width="43.75" class="color_0" />
+	<rect y="218.75" x="306.25" height="43.75" width="43.75" class="color_0" />
+	<rect y="262.5" x="0" height="43.75" width="43.75" class="color_0" />
+	<rect y="262.5" x="43.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="262.5" x="87.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="262.5" x="131.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="262.5" x="175" height="43.75" width="43.75" class="color_0" />
+	<rect y="262.5" x="218.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="262.5" x="262.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="262.5" x="306.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="306.25" x="0" height="43.75" width="43.75" class="color_0" />
+	<rect y="306.25" x="43.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="306.25" x="87.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="306.25" x="131.25" height="43.75" width="43.75" class="color_1" />
+	<rect y="306.25" x="175" height="43.75" width="43.75" class="color_0" />
+	<rect y="306.25" x="218.75" height="43.75" width="43.75" class="color_0" />
+	<rect y="306.25" x="262.5" height="43.75" width="43.75" class="color_1" />
+	<rect y="306.25" x="306.25" height="43.75" width="43.75" class="color_1" />
+	<path d="M 0 43.75 h 350 M 0 87.5 h 350 M 0 131.25 h 350 M 0 175 h 350 M 0 218.75 h 350 M 0 262.5 h 350 M 0 306.25 h 350 M 43.75 0 v 350 M 87.5 0 v 350 M 131.25 0 v 350 M 175 0 v 350 M 218.75 0 v 350 M 262.5 0 v 350 M 306.25 0 v 350" class="grid" />
+	<rect y="218.75" x="43.75" height="43.75" width="43.75" class="sample_box" />
+	<rect y="218.75" x="175" height="43.75" width="43.75" class="sample_box" />
+	<rect y="175" x="175" height="43.75" width="43.75" class="sample_box" />
+	<rect y="175" x="87.5" height="87.5" width="87.5" class="sample_box" />
+	<path d="M 52.5 275.625 L 78.75 161.875 L 231.875 157.5 L 188.125 271.25 Z" class="frag_area" />
+	<circle r="10.9375" cy="215.25" cx="138.25" class="sample_pt" />
+</svg>

File Documents/Texturing/Tutorial 15.xml

             figure, in the space of the texture, is the area of the texture that is being mapped to
             the screen pixel. With a perfect texture accessing system, the total color of that area
             would be the value we get from the GLSL <function>texture</function> function.</para>
-        <!--TODO: Diagram of the checkerboard texture, at the pixel level with a grid.
-This should also have a region that represents the pixel area mapped from the surface.
-And it should have a point representing the texture coordinate.-->
-        <para>The problem happens because a fragment area mapped into the texture's space may cover
-            some white area and some black area. Since nearest only picks a single texel, which is
-            either black or white, it does not accurately represent the mapped area of the
-            fragment.</para>
+        <figure>
+            <title>Nearest Sampling</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="NearestSampleDiag.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
+        <para>The dot represents the texture coordinate's location on the texture. The square is the
+            area that the fragment covers. The problem happens because a fragment area mapped into
+            the texture's space may cover some white area and some black area. Since nearest only
+            picks a single texel, which is either black or white, it does not accurately represent
+            the mapped area of the fragment.</para>
         <para>One obvious way to smooth out the differences is to do exactly that. Instead of
             picking a single sample for each texture coordinate, pick the nearest 4 samples and then
             interpolate the values based on how close they each are to the texture coordinate. To do
             given texture coordinate, we take either the nearest texel value, or the nearest 4
             texels and interpolate. The problem is that, for distant areas of our surface, the
             texture space area covered by our fragment is much larger than 4 texels across.</para>
-        <!--TODO: Diagram of the fragment area in texture space. There should be a texture coordinate location.-->
+        <figure>
+            <title>Large Minification Sampling</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="LargeMinificDiag.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
+        <para>The inner square represents the nearest texels, while the outer square represents the
+            entire fragment mapped area. We can see that the value we get with nearest sampling will
+            be pure white, since the four nearest values are white. But the value we should get
+            based on the covered area is some shade of gray.</para>
         <para>In order to accurately represent this area of the texture, we would need to sample
             from more than just 4 texels. The GPU would be capable of detecting the fragment area
             and sampling enough values from the texture to be representative. But this would be
         <para>What if, instead of having to sample more texels, we had a number of smaller versions
             of our texture? The smaller versions effectively pre-compute groups of texels. That way,
             we could just sample 4 texels from a texture that is close enough to the size of our
-            pixel area.</para>
-        <!--TODO: Diagram from above, with another version that uses a mipmap that has only ~4 texels within the area.-->
+            fragment area.</para>
+        <figure>
+            <title>Mipmapped Minification Sampling</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="MipmapDiagram.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
         <para>These smaller versions of an image are called <glossterm>mipmaps</glossterm>; they are
             also sometimes called mipmap levels. Previously, it was said that textures can store
-            multiple images. The additional images, for many texture types, are mipmaps.</para>
+            multiple images. The additional images, for many texture types, are mipmaps. By
+            performing linear sampling against a lower mipmap level, we get a gray value that, while
+            not the exact color the coverage area suggests, is much closer to what we should get
+            than linear filtering on the large mipmap.</para>
         <para>In OpenGL, mipmaps are numbered starting from 0. The 0 image is the largest mipmap,
             what is usually considered the main texture image. When people speak of a texture having
             a certain size, they mean the resolution of mipmap level 0. Each mipmap is half as small
             mipmap) would have just as many mipmap levels as a 128x128 texture. The mipmap level 4
             of the 128x16 texture would be 8x1; the next mipmap would be 4x1.</para>
         <note>
-            <para>It is perfectly legal to have texture sizes that are not powers of two. For them,
-                mipmap sizes are rounded down. So a 129x129 texture's mipmap 1 will be 64x64.</para>
+            <para>It is also perfectly legal to have texture sizes that are not powers of two. For
+                them, mipmap sizes are rounded down. So a 129x129 texture's mipmap 1 will be
+                64x64.</para>
         </note>
         <para>The DDS image format is one of the few image formats that actually supports storing
             all of the mipmaps for a texture in the same file. Most image formats only allow one
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, pImageSet->GetMipmapCount() - 1);
 glBindTexture(GL_TEXTURE_2D, 0);</programlisting>
         </example>
-        <para>Because the file contains multiple mipmaps, we must load each one in turn. The GLImg
-            library considers each mipmap to be its own image. The
+        <para>Because the file contains multiple mipmaps, we must load each one in turn. The GL
+            Image library considers each mipmap to be its own image. The
                 <function>GetDimensions</function> member of
                 <classname>glimg::SingleImage</classname> returns the size of the particular
             mipmap.</para>
         <para>Pixels that are along this diagonal should be mostly black. As they get farther and
             farther away, the fragment area becomes more and more distorted length-wise, relative to
             the texel area:</para>
-        <!--TODO: Diagram of the fragment area on the checkerboard.
-Pick a spot for the texture coordinate, but the area should be along the diagonal-->
+        <figure>
+            <title>Long Fragment Area</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="DiagonalDiagram.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
         <para>With perfect filtering, we should get a value that is mostly black. But instead, we
-            get grey. The reason has to do with the specifics of mipmapping and mipmap
-            selection.</para>
+            get a much lighter shade of grey. The reason has to do with the specifics of mipmapping
+            and mipmap selection.</para>
         <para>Mipmaps are pre-filtered versions of the main texture. The problem is that they are
             filtered in both directions equally. This is fine if the fragment area is square, but
             for oblong shapes, mipmap selection becomes more problematic. The particular algorithm
-            used is very conservative. It selects the smallest mipmap level possible for the pixel
-            area. So long, thin areas, in terms of the values fetched by the texture function, will
-            be no different from larger areas.</para>
-        <!--TODO: Diagram from above, but with a large square representing the actual mipmap filtering area.-->
+            used is very conservative. It selects the smallest mipmap level possible for the
+            fragment area. So long, thin areas, in terms of the values fetched by the texture
+            function, will be no different from larger areas.</para>
+        <figure>
+            <title>Long Fragment with Sample Area</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="MipmapDiagonalDiagram.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
         <para>The large square represents the effective filtering box, while the smaller area is the
-            one that we are actually sampling from. So mipmap filtering can often combine texel
-            values from outside of the pixel area.</para>
+            one that we are actually sampling from. Mipmap filtering can often combine texel values
+            from outside of the sample area, and in this particularly degenerate case, it pulls in
+            texel values from very far outside of the sample area.</para>
         <para>This happens when the filter box is not a square. A square filter box is said to be
             isotropic: uniform in all directions. Therefore, a non-square filter box is anisotropic.
             Filtering that takes into account the anisotropic nature of a particular filter box is
             naturally called <glossterm>anisotropic filtering.</glossterm></para>
-        <para>The OpenGL specification is very particular about most things. It explains the details
-            of which mipmap is selected as well as how closeness is defined for linear interpolation
-            between mipmaps. But for anisotropic filtering, the specification is very loose as to
-            exactly how it works.</para>
+        <para>The OpenGL specification is usually very particular about most things. It explains the
+            details of which mipmap is selected as well as how closeness is defined for linear
+            interpolation between mipmaps. But for anisotropic filtering, the specification is very
+            loose as to exactly how it works.</para>
         <para>The general idea is this. The implementation will take some number of samples that
             approximates the shape of the filter box in the texture. It will select from mipmaps,
             but only when those mipmaps represent a closer filtered version of area being sampled.
             Here is an example:</para>
-        <!--TODO: Diagram of a parallelogram filter box over the texture.
-There should be some boxes representing the samples taken. Some should be inside the filter box.
-There should be four inside called A, B, C and D-->
+        <figure>
+            <title>Parallelogram Sample Area</title>
+            <mediaobject>
+                <imageobject>
+                    <imagedata fileref="ParallelogramDiag.svg"/>
+                </imageobject>
+            </mediaobject>
+        </figure>
         <para>Some of the samples that are entirely within the sample area can use smaller mipmaps
-            to reduce the number of samples actually taken. For example, the labeled samples could
-            be collated into a single sample accessed from a smaller mipmap.</para>
+            to reduce the number of samples actually taken. The above image only needs four samples
+            to approximate the sample area: the three small boxes, and the larger box in the
+            center.</para>
         <para>All of the sample values will be averaged together based on a weighting algorithm that
             best represents that sample's contribution to the filter box. Again, this is all very
             generally; the specific algorithms are implementation dependent.</para>
                 foremost, this means that this enumerator is not part of the OpenGL
                 Specification.</para>
             <para>An OpenGL extension is a modification of OpenGL exposed by a particular
-                implementation. Extensions are published, so that users will be able to use them
-                correctly. Because different implementations of OpenGL will implement different
+                implementation. Extensions have published documents that explain how they change the
+                standard GL specification; this allows users to be able to use them correctly.
+                Because different implementations of OpenGL will implement different sets of
                 extensions, there is a mechanism for querying whether an extension is implemented.
                 This allows user code to detect the availability of certain hardware features and
                 use them or not as needed.</para>
                 the GeForce 256 (not the GeForce 250GT; the original GeForce), way back in 1999.
                 Virtually all GPUs since then have implemented anisotropic filtering and exposed it
                 through this extension. That is why the tutorial does not bother to check for the
-                presence of this extension.</para>
+                presence of this extension; if your hardware can run these tutorials, then it
+                exposes the extension.</para>
             <para>If it is so ubiquitous, why has the ARB not adopted the functionality into core
                 OpenGL? Why must anisotropic filtering be an extension that is de facto guaranteed
                 but not fully part of OpenGL? This is because OpenGL must be Open.</para>

File Documents/Tools/PixelImage.lua

 	writer:Path(path, gridStyles, gridId);
 end
 
+function ImageMembers:DrawPixelRect(writer, topLeft, widthHeight,
+									pixelTopLeft, pixelWidthHeight,
+									style, id)
+	pixelWidthHeight = pixelWidthHeight or vmath.vec2(1, 1);
+	local offset = topLeft;
+	local scale = widthHeight / self.imageSize;
+	
+	local location = vmath.vec2(pixelTopLeft);
+	location = location * scale;
+	location = location + offset;
+
+	writer:Rect(location, scale * pixelWidthHeight, nil, style, id);
+end
+
+function ImageMembers:RectForSamplePt(samplePt)
+	local pixelCoordX, remainX = math.modf(samplePt.x);
+	if(remainX < 0.5) then
+		pixelCoordX = pixelCoordX - 1;
+	end
+
+	local pixelCoordY, remainY = math.modf(self.imageSize[2] - samplePt.y);
+	if(remainY < 0.5) then
+		pixelCoordY = pixelCoordY - 1;
+	end
+
+	return vmath.vec2(pixelCoordX, pixelCoordY), vmath.vec2(2, 2)
+end
+
+
+
 function PixelImage(imageFilename)
 	local image = {};
 	
 
 	return 	AddMembersToClass(image, ImageMembers)
 end
+
+function RectForSamplePt(image, samplePt)
+	return image:RectForSamplePt(samplePt)
+end
+

File Documents/Tools/SubImage.lua

 	return size;
 end
 
+--Size using SVG pixel suffix.
+function ClassMembers:SvgSize()
+	local size = self:Size()
+	return {size.x .. "px", size.y .. "px"}
+end
+
 function ClassMembers:Offset(x, y)
 	if(y == nil) then
 		y = x.y;