for ( unsigned int i = 0; i < m_vertices.size(); i++ ) {
	Vector3<float> position = m_vertices[ i ];
	
	float x2 = position.GetX() * position.GetX();
	float y2 = position.GetY() * position.GetY();
	float z2 = position.GetZ() * position.GetZ();
	
	float dx = position.GetX() * sqrtf( 1.0f - ( y2 * 0.5f ) - ( z2 * 0.5f ) + ( ( y2 * z2 ) / 3.0f ) );
	float dy = position.GetY() * sqrtf( 1.0f - ( z2 * 0.5f ) - ( x2 * 0.5f ) + ( ( z2 * x2 ) / 3.0f ) );
	float dz = position.GetZ() * sqrtf( 1.0f - ( x2 * 0.5f ) - ( y2 * 0.5f ) + ( ( x2 * y2 ) / 3.0f ) );
	
	m_normals[ i ] = Vector3<float>( dx, dy, dz ).Normalized();
	m_vertices[ i ] = m_normals[ i ] * pRadius;
}