A computer-implemented method of performing intersection testing in a ray tracing system for use in rendering an image of a 3D scene, the method comprising: receiving a bundle of rays to be tested for intersection with a box; identifying silhouette edges of a silhouette of the box, wherein the silhouette of the box is a 2D projection of the box as viewed from the perspective of the bundle of rays, wherein each of the silhouette edges is a straight edge between two vertices of the silhouette of the box; for each of the identified silhouette edges: obtaining components of a vector providing a bound to the bundle of rays in accordance with a type of intersection testing being performed, the vector being such that if the vector providing the bound to the bundle of rays does not pass on a side of the identified silhouette edge then it is known that none of the rays of the bundle pass on that side of the identified silhouette edge; and determining whether the vector passes inside or outside of the silhouette edge, wherein if the vector passes outside of the silhouette edge, then the vector does not pass within the perimeter of the silhouette of the box; and using results of determining, for each of the identified silhouette edges, whether the vector passes inside or outside of the silhouette edge, to determine an intersection testing result for the bundle of rays with respect to the box, wherein the intersection testing determines whether or not all of the rays of the bundle intersect the box or determines whether or not all of the rays of the bundle miss the box. receiving a bundle of rays to be tested for intersection with a box; identifying silhouette edges of a silhouette of the box, wherein the silhouette of the box is a 2D projection of the box as viewed from the perspective of the bundle of rays, wherein each of the silhouette edges is a straight edge between two vertices of the silhouette of the box; for each of the identified silhouette edges: obtaining components of a vector providing a bound to the bundle of rays in accordance with a type of intersection testing being performed, the vector being such that if the vector providing the bound to the bundle of rays does not pass on a side of the identified silhouette edge then it is known that none of the rays of the bundle pass on that side of the identified silhouette edge; and determining whether the vector passes inside or outside of the silhouette edge, wherein if the vector passes outside of the silhouette edge, then the vector does not pass within the perimeter of the silhouette of the box; and obtaining components of a vector providing a bound to the bundle of rays in accordance with a type of intersection testing being performed, the vector being such that if the vector providing the bound to the bundle of rays does not pass on a side of the identified silhouette edge then it is known that none of the rays of the bundle pass on that side of the identified silhouette edge; and determining whether the vector passes inside or outside of the silhouette edge, wherein if the vector passes outside of the silhouette edge, then the vector does not pass within the perimeter of the silhouette of the box; and using results of determining, for each of the identified silhouette edges, whether the vector passes inside or outside of the silhouette edge, to determine an intersection testing result for the bundle of rays with respect to the box, wherein the intersection testing determines whether or not all of the rays of the bundle intersect the box or determines whether or not all of the rays of the bundle miss the box.