Tutorial 04里面的注释,关于camera视截体裁剪的规则和不同种类object render的顺序
                 Object sorting + object culling based on the frustum of the camera passed to
                 the function. The default culling algorithm is based on the distance of the bounding
                 sphere in the frustum ( sio2CameraSphereDistInFrustum ). You can always override
                 the culling + sorting method by your own and use one of the following method located in
                 float sio2CameraSphereDistInFrustum( SIO2camera *, vec3 *, float );
                 unsigned char sio2CameraPointInFrustum( SIO2camera *, vec3 * );
                 unsigned char sio2CameraSphereInFrustum( SIO2camera *, vec3 *, float );
                 unsigned char sio2CameraCubeInFrustum( SIO2camera *, vec3 *, vec3 * );
                 unsigned char sio2CameraCubeIntersectFrustum( SIO2camera *, vec3 *, vec3 * );
                 unsigned char sio2CameraSphereIntersectFrustum( SIO2camera *, vec3 *, float );
                 unsigned char sio2CameraGeometryInFrustum( SIO2camera *, unsigned int, float * );
                 In order for the sio2ObjectRender function to draw, the "dst" property of the
                 object need to be > 0.0f. When the object is initialized the default value
                 is 1.0f, so visibile.
                 The rendering pass is as follow:
                 1. Solid objects are sorted front too back so an early
                 depth test is made to speed up the rendering of this type.
                 2. Back to front for transparent objects
                 3. Back to front for alpha tested objects
                 Please take note, transparent object are more slow to render, you can avoid
                 setting an object blending and use the alpha level property of the material
                 to discard any fragment lower than the value specified (take in example the
                 billboarded grass and the palm trees).