use Affine3f to simplify matrix operations
implement glOrthof and glFrustumf