Jason McKesson avatar Jason McKesson committed ba2399b

Started on the text for the fourth tutorial.

Comments (0)

Files changed (4)

Documents/Outline.xml

                     <para>Depth buffers. How depth buffers work to hide surfaces.</para>
                 </listitem>
             </itemizedlist>
+            <para>Tutorial sub-files:</para>
+            <orderedlist>
+                <listitem>
+                    <para>Make a cube where each face has a different color. Place the cube to the
+                        side of the viewing area. This shows what things are like in an orthographic
+                        projection.</para>
+                </listitem>
+                <listitem>
+                    <para>Have the same cube, but in our new world coordinates and projection. Do
+                        the projection explicitly, by passing the projection variables to the shader
+                        and having it do the computations per-vertex.</para>
+                </listitem>
+                <listitem>
+                    <para>Same as above, except pass in a matrix uniform. Have the shader do a
+                        matrix-multiply on that uniform.</para>
+                </listitem>
+                <listitem>
+                    <para>Same as above, except generate a scaling value to represent the aspect
+                        ratio based on the width/height of the window.</para>
+                </listitem>
+                <listitem>
+                    <para>Add a floor object. Place the cube so that it overlaps the floor. Leave
+                        depth testing off, and make sure the floor is drawn last so that it overlaps
+                        it.</para>
+                </listitem>
+                <listitem>
+                    <para>Same as above, but with proper depth testing.</para>
+                </listitem>
+            </orderedlist>
         </section>
         <section>
             <title>Objects in Motion</title>

Documents/Positioning/Tutorial 03.xml

 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
     <title>OpenGL's Moving Triangle</title>
-    <para>This tutorial will be building off of the previous tutorial. In that tutorial, we had a
-        single, static triangle. Here, we will move it around.</para>
+    <para>This tutorial is about how to move objects around. It will introduce new shader
+        techniques.</para>
     <section>
         <title>Moving the Vertices</title>
         <para>The simplest way one might think to move a triangle or other object around is to

Documents/Positioning/Tutorial 04.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<?oxygen RNGSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng" type="xml"?>
+<?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
+    xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
+    <title>Objects at Rest</title>
+    <para>Thus far, we have seen very flat things. Namely, a single triangle. This tutorial is all
+        about how to create a realistic world of objects.</para>
+    <note>
+        <title>Math Warning</title>
+        <para>This tutorial, even moreso than some of the previous ones, is very heavy on text and
+            light on code. The actual new code introduced in this tutorial is perhaps 30 lines. What
+            is important here is why this is the correct code to do what we need to do. And that
+            requires a lot of text.</para>
+        <para>It requires a lot of math and geometry. The tutorial will explain everything
+            step-by-step and in-depth, but understanding everything will exercise your math skills.
+            Even worse, the code that we deal with here is usually boilerplate code. It's the kind
+            of code that you write once and then use forever without having to go change it or
+            usually understand how it works.</para>
+        <para>These facts will tempt you to simply skip this tutorial and move on to the next.
+            However, I strongly advise you to <emphasis>resist</emphasis> that temptation. I
+            understand that math isn't the most interesting thing to most people (though to be
+            honest, if math really bores or confuses you, you may want to re-think your desire to
+            write graphics code). But understanding the concepts introduced in this tutorial is very
+            important for understanding how the most fundamental part of triangle-based scan
+            conversion works.</para>
+    </note>
+    <section>
+        <title>The Unreal World</title>
+        <para/>
+    </section>
+    <section>
+        <title>Perspective Projection</title>
+        <para/>
+    </section>
+    <section>
+        <title>Enter the Matrix</title>
+        <para/>
+    </section>
+    <section>
+        <title>World in Perspective</title>
+        <para/>
+    </section>
+    <section>
+        <title>Aspect of the World</title>
+        <para/>
+    </section>
+    <section>
+        <title>World in Depth</title>
+        <para/>
+    </section>
+    <section>
+        <title>In Review</title>
+        <para/>
+        <section>
+            <title>Further Study</title>
+            <para/>
+            <itemizedlist>
+                <listitem>
+                    <para/>
+                </listitem>
+                <listitem>
+                    <para/>
+                </listitem>
+            </itemizedlist>
+        </section>
+        <section>
+            <title>Functions of Note</title>
+            <glosslist>
+                <glossentry>
+                    <glossterm/>
+                    <glossdef>
+                        <para/>
+                    </glossdef>
+                </glossentry>
+                <glossentry>
+                    <glossterm/>
+                    <glossdef>
+                        <para/>
+                    </glossdef>
+                </glossentry>
+                <glossentry>
+                    <glossterm/>
+                    <glossdef>
+                        <para/>
+                    </glossdef>
+                </glossentry>
+            </glosslist>
+        </section>
+    </section>
+    <glossary>
+        <title>Glossary</title>
+        <glossentry>
+            <glossterm/>
+            <glossdef>
+                <para/>
+            </glossdef>
+        </glossentry>
+    </glossary>
+</chapter>

Documents/Tutorial Documents.xpr

         </folder>
         <folder name="Positioning">
             <file name="Positioning/Tutorial%2003.xml"/>
+            <file name="Positioning/Tutorial%2004.xml"/>
         </folder>
         <file name="Building%20the%20Tutorials.xml"/>
         <file name="Outline.xml"/>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.