File Documents/Illumination/Tutorial 12.xml Modified

• Ignore whitespace
• Hide word diff
`         <?dbhtml filename="Tut12 High Dynamic Range.html" ?>`
`         <title>High Dynamic Range</title>`
`         <para>In order to answer this question, we must first determine why flashlights appear`
`-            brighter at night than in the daytime? Much of the answer has to do with our`
`+            brighter at night than in the daytime. Much of the answer has to do with our`
`             eyes.</para>`
`         <para>The pupil is the hole in our eyes that allows light to pass through it; cameras call`
`             this hole the aperture. The hole is small, relative to the world, which helps with`
`             we multiplied the sun and ambient intensities by 3 in the last section, we were`
`             increasing the brightness by 3x. Multiplying the maximum intensity by 3 had the effect`
`             of reducing the overall brightness by 3x.</para>`
`-        <para>There's just one problem: tour screen doesn't work that way. Time for a short history`
`+        <para>There's just one problem: your screen doesn't work that way. Time for a short history`
`             of television/monitors.</para>`
`         <para>The original televisions used an electron gun fired at a phosphor surface to generate`
`             light and images; this is called a <acronym>CRT</acronym> display (cathode ray tube).`
`                     <mathphrase>1/r<superscript>2.2</superscript></mathphrase>`
`                 </inlineequation>.</para>`
`             <para>Since this lighting environment was not designed while looking at gamma correct`
`-                results, let's look at some scene lighting that was developed that way. Turn on`
`-                gamma correction and set the gamma value to 2.2 (the default if you did not change`
`-                it). The press <keycombo>`
`+                results, let's look at some scene lighting that was developed with proper gamma in`
`+                mind. Turn on gamma correction and set the gamma value to 2.2 (the default if you`
`+                did not change it). The press <keycombo>`
`                     <keycap>Shift</keycap>`
`                     <keycap>L</keycap>`
`                 </keycombo>:</para>`

File Documents/Illumination/Tutorial 13.xml Modified

• Ignore whitespace
• Hide word diff
`                     </imageobject>`
`                 </mediaobject>`
`             </figure>`
`-            <para>The top is the original, the middle is the actual mesh, and the bottom is our new`
`-                ray traced version.</para>`
`-            <para>The <function>Impostor</function> function in the fragment shader implements our`
`-                ray tracing algorithm. More importantly are the changes to the vertex shader's`
`-                computation of the impostor square:</para>`
`+            <para>The top is the original impostor, the middle is the actual mesh, and the bottom is`
`+                our new ray traced impostor.</para>`
`+            <para>The <function>Impostor</function> function in the new fragment shader implements`
`+                our ray tracing algorithm. More important than this are the changes to the vertex`
`+                shader's computation of the impostor square:</para>`
`             <example>`
`                 <title>Ray Traced Impostor Square</title>`
`                 <programlisting language="glsl">const float g_boxCorrection = 1.5;`
`                 vertex shader is used to index into the <varname>Mtl.material[]</varname>`
`                 array.</para>`
`             <para>Do note that uniform blocks have a maximum size that is hardware-dependent. If we`
`-                wanted to have a large palette of materials, on the order of several`
`-                thousand,</para>`
`+                wanted to have a large palette of materials, on the order of several thousand, then`
`+                we may exceed this limit. At that point, we would need an entirely new way to handle`
`+                this data. Once that we haven't learned about yet.</para>`
`+            <para>Or we could just split it up into multiple draw calls instead of one.</para>`
`         </section>`
`     </section>`
`     `
`                 or quadratic surfaces. But impostors are capable of much, much more.</para>`
`             <para>In effect, impostors allow you to use the fragment shader to just draw stuff to an`
`                 area of the screen. They can be used to rasterize perfect circles, rather than`
`-                drawing line-based approximations. Some have even used them to rasterize bezier`
`+                drawing line-based approximations. Some have even used them to rasterize Bézier`
`                 curves perfectly.</para>`
`             <para>There are other impostor-based solutions. Most particle systems (a large and`
`                 vibrant topic that you should investigate) use flat-cards to draw pictures that move`
`                     <funcdef>void <function>EmitVertex</function></funcdef>`
`                 </funcprototype>`
`             </funcsynopsis>`
`-            <para>When this function is called, all output variables previously set by the geometry`
`-                shader are consumed and transformed into a vertex. The value of those variables`
`-                becomes undefined after calling this function.</para>`
`+            <para>Available on in the geometry shader, when this function is called, all output`
`+                variables previously set by the geometry shader are consumed and transformed into a`
`+                vertex. The value of those variables becomes undefined after calling this`
`+                function.</para>`
`         </section>`
`         `
`     </section>`