1. A computer-implemented method comprising: obtaining data representing at least two layers of a three-dimensional model of an item to be created by a three-dimensional printer, wherein discrete portions of at least an upper layer of the three-dimensional model are each labelled as unsupported when a discrete portion is (i) not supported by another portion of an adjacent layer directly below the upper layer and (ii) is not within a predetermined distance of and connected to another of the discrete portions that is supported by another portion of the adjacent layer directly below the upper layer; processing data representing the discrete portions of the upper layer of the three-dimensional model that are labelled as unsupported to place supports for at least some of the discrete portions that are labelled as unsupported, the processing to place supports comprising: determining, for a discrete portion in the upper layer that is labelled as unsupported, whether a support for the discrete portion would intersect with a lower portion in the three-dimensional model that lies below the upper layer, when the support for the discrete portion would intersect, skipping the discrete portion, and when the support for the discrete portion would not intersect, labelling the discrete portion as a portion at which to generate a support and labelling the discrete portion and any discrete portions that are labelled as unsupported and that lie within a predetermined distance from the discrete portion as supported; processing data representing any remaining discrete portions of the upper layer of the three-dimensional model that are labelled as unsupported and for which a support for the remaining discrete portion would intersect with a lower portion in the three-dimensional model that lies below the upper layer to place additional supports for at least some of the remaining discrete portions that are labelled as unsupported, the processing to place additional supports comprising: labelling a remaining discrete portion as a portion at which to generate a support that would intersect with a lower portion of the three-dimensional model that lies below the upper layer and labelling the remaining discrete portion and any remaining discrete portions that are labelled as unsupported that lie within a predetermined distance from the remaining discrete portion as supported, determining whether a quantity of remaining discrete portions that are labelled as a portion at which to generate a support that would intersect with a lower portion of the three-dimensional model that lies below the upper layer exceeds a threshold value, and when the quantity of remaining discrete portions that are labelled as a portion at which to generate a support that would intersect with a lower portion of the three-dimensional model that lies below the upper layer exceeds the threshold value, providing the three-dimensional model to an another modelling system to cause the other modelling system to generate supports for portions of the three-dimensional model and provide the three-dimensional model to a three-dimensional printer; and when the quantity of remaining discrete portions that are labelled as a portion at which to generate a support that would intersect with a lower portion of the three-dimensional model that lies below the upper layer does not exceed the threshold value: generating, for each of the discrete portions labelled as a portion at which to generate a support, a support for the discrete portion in the three-dimensional model, and providing the three-dimensional model to the three-dimensional printer in response to generating, for each of the discrete portions labelled as a portion at which to generate a support, the support for the discrete portion in the three-dimensional model, the three-dimensional model for use by the three-dimensional printer in three-dimensional printing an object represented by the three-dimensional model.