A method implemented in hardware and / or software logic, the method comprising: identifying coordinates of a ray to be cast into a particular volume; obtaining a volumetric data structure corresponding to the particular volume, wherein the volumetric data structure describes the particular volume at a plurality of levels of detail, a first entry in the volumetric data structure comprises a first set of bits representing voxels at a first one of the plurality of levels of detail, the first level of detail comprises the lowest level of detail in the plurality of levels of detail, values of the first set of bits indicating whether a corresponding one of the voxels is at least partially occupied by respective geometry, wherein the volumetric data structure further comprises a number of second entries representing voxels at a second level of detail higher than the first level of detail, and the voxels at the second level of detail represent subvolumes of the voxels at the first level of detail; characterised by generating a plurality of bits indicating placement of the ray in a particular subset of the voxels at the first level of detail; providing the first set of bits and the plurality of bits to an AND logic to determine which of the voxels of the first level of detail are occupied by both the ray and geometry of the volume and; generating a bitmap by the AND logic, and repeating the generating of a plurality of bits, the providing of bits, and the generating of a bitmaps at the second level of detail, based on a selection of the second entries, said selection defined by the bitmap generated at the first level of detail. identifying coordinates of a ray to be cast into a particular volume; obtaining a volumetric data structure corresponding to the particular volume, wherein the volumetric data structure describes the particular volume at a plurality of levels of detail, a first entry in the volumetric data structure comprises a first set of bits representing voxels at a first one of the plurality of levels of detail, the first level of detail comprises the lowest level of detail in the plurality of levels of detail, values of the first set of bits indicating whether a corresponding one of the voxels is at least partially occupied by respective geometry, wherein the volumetric data structure further comprises a number of second entries representing voxels at a second level of detail higher than the first level of detail, and the voxels at the second level of detail represent subvolumes of the voxels at the first level of detail; characterised by generating a plurality of bits indicating placement of the ray in a particular subset of the voxels at the first level of detail; providing the first set of bits and the plurality of bits to an AND logic to determine which of the voxels of the first level of detail are occupied by both the ray and geometry of the volume and; generating a bitmap by the AND logic, and repeating the generating of a plurality of bits, the providing of bits, and the generating of a bitmaps at the second level of detail, based on a selection of the second entries, said selection defined by the bitmap generated at the first level of detail.