[Note: This document is viewed best with Netscape Navigator 4]
3DICA v2.22b
 
- The Ultimate 3D Coding Tutorial (C) Ica /Hubris 1996,1997,1998
- Over 150k of pure sh...er, 3d coding power!

Table of Contents

    * A C source treating the subject included

    0 General Things

      0.0 LICENSE AGREEMENT

        0.0.1 DISCLAIMER
        0.0.2 LIMITED WARRANTY
        0.0.3 Seriously
        0.0.4 3dica careware -- what does that mean?

      0.1 Authors, Greets, etc.

        0.1.1 Ica
        0.1.2 Chem
        0.1.3 Hubris Productions
        0.1.4 Thanks for help
        0.1.5 Greets
        0.1.6 Thanks for support

      0.2 About the Document

        0.2.1 Where can I get the newest version of 3dica?
        0.2.2 What has happened since the last version?
        0.2.3 Features to be added

      0.3 3D Terms etc.

      0.4 FAQ

      0.5 Recommended References

      0.6 A Quick Introduction to Radians

    1 Vector and Matrix Algebra

      1.1 Vectors

        1.1.1 General
        1.1.2 Vector equation
        1.1.3 Vector length *
        1.1.4 Vector addition
        1.1.5 Dot product *
        1.1.6 Vector projection
        1.1.7 Cross product *
        1.1.8 Scalar triple product

      1.2 Matrices

        1.2.1 General
        1.2.2 Matrix operations
          1.2.2.1 Addition
          1.2.2.2 Multiplying by a scalar *
          1.2.2.3 Multiplication *
          1.2.2.3.1 Multiplying by a vector *
          1.2.2.4 Transposition

    2 3D Geometry

      2.1 The Relationship Between 2D and 3D Worlds *

      2.2 The Matrix Technique -- Foreword

      2.3 Rotating the Object Matrix*

        2.3.1 Rotating about an arbitrary vector

      2.4 The Camera *

        2.4.1 Deriving the camera matrix from a vector
        2.4.2 B-Splines

      2.5 Transforming a Vertex by the Object Matrix*

      2.6 Hierarchical Transformations

      2.7 Inverse Transformations

    3 Polygon Fillers

      3.1 Flat Triangle *

        3.1.1 Fixed point *

      3.2 Gouraud Triangle *

      3.3 Texture Triangle *

        3.3.1 The idea of perspective correction *
        3.3.2 Fitting a texture onto an object *
        3.3.3 Bilinear filtering

      3.4 Texturing + Shading *

      3.5 The Idea of Convex Polygons

    4 Sorting

      4.1 Z-Sorting *

      4.2 Z-Buffer *

      4.3 BSP-Tree

        4.3.1 The main idea
        4.3.2 Required formulas
        4.3.3 Hints

      4.4 S-Buffer

    5 Shading

      5.1 Flat Shading

        5.1.1 Z-Flat
        5.1.2 Lambert Flat *

      5.2 Gouraud Shading

        5.2.1 Z-Gouraud
        5.2.2 "Real" Gouraud *

      5.3 Phong Shading

        5.3.1 Phong Illumination *
        5.3.2 Environment mapping *
        5.3.3 "Real" Phong *

      5.4 Light Source Handling

        5.4.1 Freely moving light sources
        5.4.2 Spotlights
        5.4.3 Light attenuation

    6 Hidden Face Removal

      6.1 Backface Culling *

      6.2 View Cone *

        6.2.1 3D clipping

      6.3 Portals

    7 Some Other Nice Things

      7.1 Frame skipping

      7.2 Optimizing in Assembly

      7.3 Palette Quantisizing

        7.3.1 What is it actually?
        7.3.2 Local K Mean
          7.3.2.1 An abstract approach
          7.3.2.2 A more technical approach
        7.3.3 Median Cut
          7.3.3.1 The definition
          7.3.3.2 The algorithm
          7.3.3.3 Implementation hints

    8 Utterly Important Crap

      8.1 An Effective Algorithm for Generating Torus Objects

      8.2 Phong Illumination Model Using Gamma Approximation and Evenly Hashed Gaussian Distribution not Forgetting LaRusse Fireclouds

      8.3 Coding Tips by our Graphician

      8.4 How to code your own Hubris-membah  -Tamagotchi

      8.5 How to make a demo production