--- /dev/null
+*.swp
+*.pdf
+*.aux
+*.log
+*.toc
--- /dev/null
+name = gfxbook
+pdf = $(name).pdf
+tex = $(name).tex
+
+$(pdf): $(tex)
+ xelatex $<
+
+.PHONY: clean
+clean:
+ rm -f $(pdf) $(name).toc
+ find . -name '*.aux' | xargs rm
+ find . -name '*.log' | xargs rm
--- /dev/null
+\documentclass[a4paper]{book}
+
+\title{TODO}
+\author{John Tsiombikas}
+\date{}
+
+\begin{document}
+\maketitle
+
+\frontmatter
+\tableofcontents
+
+%\listoffigures
+%\listoftables
+
+\include{overview.tex}
+
+\mainmatter
+
+\part{Introduction to realtime rendering with OpenGL}
+\include{gl1/setup.tex}
+\include{gl1/spaces.tex}
+\include{gl1/hiddensurf.tex}
+\include{gl1/shading.tex}
+\include{gl1/texmap.tex}
+\include{gl1/meshes.tex}
+\include{gl1/drawing.tex}
+\include{gl1/glext.tex}
+% also hierarchical transformations somewhere?
+
+\part{Ray-tracing: an alternative rendering approach}
+\include{rt1/intro.tex}
+\include{rt1/math.tex}
+\include{rt1/isect.tex}
+\include{rt1/shading.tex}
+\include{rt1/shadrefl.tex}
+\include{rt1/refract.tex}
+\include{rt1/meshes.tex}
+\include{rt1/accel.tex}
+
+\part{Advanced realtime rendering with OpenGL}
+\include{gl2/shaders.tex}
+\include{gl2/envmap.tex}
+\include{gl2/bump.tex}
+\include{gl2/shadows.tex}
+\include{gl2/psys.tex}
+\include{gl2/pbr.tex}
+\include{gl2/fbo.tex}
+\include{gl2/gamma.tex}
+\include{gl2/deferred.tex}
+% more?
+
+\part{Physically-based ray-tracing}
+\include{rt2/montecarlo.tex}
+\include{rt2/path.tex}
+% TODO more
+
+\part{Software rendering pipeline from scratch}
+\include{sw/pipeline.tex}
+\include{sw/wire.tex}
+\include{sw/polyfill.tex}
+\include{sw/proj.tex}
+\include{sw/clip.tex}
+\include{sw/texaffine.tex}
+\include{sw/texpersp.tex}
+% TODO more
+
+\end{document}
--- /dev/null
+\chapter{Drawing performance}
--- /dev/null
+\chapter{OpenGL extensions}
--- /dev/null
+\chapter{Hidden surface removal}
--- /dev/null
+\chapter{Meshes}
--- /dev/null
+\chapter{Setup \& hello world}
--- /dev/null
+\chapter{Shading \& reflectance models}
--- /dev/null
+\chapter{Transformations \& coordinate systems}
--- /dev/null
+\chapter{Detail with texture mapping}
--- /dev/null
+\chapter{Bump mapping}
--- /dev/null
+\chapter{Deferred rendering}
--- /dev/null
+\chapter{Environment mapping}
--- /dev/null
+\chapter{Render to texture}
--- /dev/null
+\chapter{Color spaces}
+
+% reminder: gamma correction, HDR, tone mapping
--- /dev/null
+\chapter{Physically-based rendering}
--- /dev/null
+\chapter{Particle systems}
+% possible tile: fuzzy phenomena .... blah blah
--- /dev/null
+\chapter{Programmable shaders}
--- /dev/null
+\chapter{Shadows}
--- /dev/null
+\chapter{Overview}
+
+\section{Goals \& Methods}
+
+Lorem ipsum foobar placeholder placeholder.
--- /dev/null
+\chapter{Accelerating ray intersections}
--- /dev/null
+\chapter{Introduction to ray-tracing}
--- /dev/null
+\chapter{Intersection testing: spheres \& planes}
--- /dev/null
+\chapter{Mathematics of computer graphics}
--- /dev/null
+\chapter{Intersection testing: polygon meshes}
--- /dev/null
+\chapter{Refraction}
--- /dev/null
+\chapter{Shading \& direct illumination}
--- /dev/null
+\chapter{Shadows \& reflections}
--- /dev/null
+\chapter{Monte-carlo methods}
--- /dev/null
+\chapter{Path tracing}
--- /dev/null
+\chapter{Polygon clipping}
--- /dev/null
+\chapter{Implementing the rendering pipeline}
--- /dev/null
+\chapter{Polygon filling}
+
+% reminder: flat/gouraud, texmapping is later
--- /dev/null
+\chapter{Projection}
--- /dev/null
+\chapter{Affine texture mapping}
--- /dev/null
+\chapter{Perspective-correct texture mapping}
--- /dev/null
+\chapter{Line drawing \& wireframe rendering}