In a crowded representation of a virtual three dimensional space defined in terms of voxels, an object of interest will often be occluded by one or more objects of varying densities between the virtual camera defining the user's point of view, and the object of interest. To automatically identify an optimal camera position, an number of candidate positions are considered, for example situated at the vertices of a regular polyhedron centred on the object of interest. For each of these candidate positions, a ray is cast towards the object of interest, and the occlusion for each intervening voxel is determined as the product of that voxel's density, and a density transfer function. The virtual camera position corresponding to the least occluded path is then selected as the new point of view.