Instant ray tracing
Abstract
This record has no abstract on file.
Term
0.6 yearsto projected expiry
Projected expiry 19 April 2027, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
19 claims: 2 independent, 17 dependent
- 1Claims of equivalent WO 2007124363 A2 Wc claim.:1. In a computer graphics system comprising a computer and a display element, the splay element being operable Io dispia\ a human-perceptible image in response to a display - ontrolling electrical output from the computer, the computer being operable to generate the splay -control ling electrical outpu t based on calculations of pi vel values for pixels hi the mage. respectKe pixel values being representafixe of points in a scene as recorded on an mage plane of a simulated camera, the computer being operable to generate pixel values for image using a ray -tracing methodology , the ray -tracing methodology comprising the use of ray tree and an associated ray tracing data structure, the ray tree including at least one ray ot from the pixel into a scene along a selected direction, the ray -tracing methodology. rther comprising the calculating of the intersections of rays and surfaces of objects in the ene, and the ray -tracing being determined in response to the results of processing of objects an image, the improvement comprising: constructing a hierarchical ray tracing acceleration data structure comprising a tree tiictuce, the nodes of which arc generated utilizing a bounding interval hierarchy based on efining an axis-aligned scene bounding box and two parallel planes to partition a set of bjects in a scene into left objects and right objects, and matching split planes to object ounding boxes, wherein the tw o planes are perpendicular to a selected one of x. y. or z-axes, wherein, given a splitting plane, each object i.n an image is classified cither left or ght based on a left/right selection criterion, and two splitting plane values of the child nodes e determined b\ the maximum and minimum coordinate of the left and right objects, spectively, wherein, given a bounding box and the selected axis, a left child L results from placing a maximum, value of a left object's coordinates along the selected axis b\ the first ane, and a right child R results from replacing a minimum value of a right object's oordinates by the second plane, and wherein any resulting /era volumes are used to represent npt\ children. wherein splitting planes are determined by: (a) selecting candidate splitting planes by hierarchically subdividing an axis-aligned ene bounding box along the longest side in the middle, wherein all candidate splitting anes form a regular grid. ( b) if a candidate plane is outside the bounding box of a volume element to subdivide, ontinuing with candidate planes from the half where the volume element resides, m\ά further comprising: (a) recursively partitioning the bounding box into object bounding boxes. (b) if a split plane candidate separates objects without overlap, fitting the .resulting spin planes to the objects on the left and right, thereby maximizing empty space, and (c) terminating the recursion when no more than a predetermined number of objects mains.
- 1824. In a computer graphics system comprising a computer and a display element, the splay element being operable to display a human-perceptible image in response to a display- ontrolling electrical output from the computer, die computer being operable to generate the splay -controlling electrical output based on calculations of pixel values for pixels in the mage, respective pixel values being representative of points in a scene as recorded on an mage plane of a simulated camera, the computer being operable to generate pixel values for image using a ray-tracing methodology, the ray-tracing methodology comprising the use of ray tree and an associated ray tracing date structure, the ray tree including at least one ray ot from the pixel into a scene along a selected direction, the ray-tracing methodology rther comprising the calculating of the intersections of rays and surfaces of objects in die ene, and the ray-tracing being determined in response to the results of processing of objects an image, a sub-system comprising:means for constructing a hierarchical ray tracing acceleration data structure omprising a tree structure, the nodes of which are generated utilizing a bounding interval erarchy based on defining an axis-aligned scene bounding box and two parallel planes to artition a set of objects in a scene into left objects and right objects, and matching split anes to object bounding boxes. wherein the two pianes are perpendicular to a selected one of x, y, or z-axes. wherein, given a splitting plane, each object in an image is classified either left or ght based on a left/right selection criterion, and two splitting plane values of the child nodes e determined by the maximum and mininmm coordinate of the left and right objects, spectively, wherein, given a bounding box and the selected axis, a left child L results from placing a maximum value of a left object's coordinates along the selected axis by the first ane, and a right child R results front replacing a minimum value of a right object's coordinates by the second plane, and wherein any resulting zero volumes are used to represent empty children. wherein spurting planes are determined by: (a) selecting candidate spotting planes by hierarchically subdividing an axis-aligned ene bounding box along the longest side in the middle, wherein all candidate splitting anes form a regular grid. ( b) if a candidate plane is outside the bounding box of a volume element to subdivide, ontinuing with candidate planes from the half where the volume element resides, and further comprising: (a) recursively partitioning the bounding box into object bounding boxes, fb) if a split plane candidate separates objects without overlap, fitting the resulting lit planes to the objects on the left and right, thereby maximizing empty space, and (c) terminating the recursion when no more than a predetermined number of objects mains.
Independent claims2
300 paragraphs in 1 section, as filed
Description of equivalent WO 2007124363 A2
0001INSTANT RAY TRACING L)n:cniors;.AIcxMder.KcUcr.Md.C;jg.ston.Wacchtcr
0002Cros.s-Refereiiceio.Related.ΛpjpilJcatioiis
0003This application fat patent claims the priority benefit of U.S. Provisional Patent Application Serial No. 60/793.063. filed April 19. 2006 (Attorney Docket MENT-201-PR}. and is a Continuation -lπ-Parl of U. S. Patent Application Serial No. i 1/474,5 ! 7, filed June 23, 2006 (Attorney Docket MENT-IO I-US. entitled "Reaϊ-Time Precision Rsy Tracing")
0004U.S. Patent Application Serial No. 1 1/474,51 7 (Attorney Docket MENT- i oi-US) claims the priority benefit of U.S. Provisional Patent Application Serial Ηo. 60/693,231. filed .Time 23. 2005 (Attorney Docket MENT<sup>'</sup>- 101 -PR), and is m turn a Continuation-ln-Part of U.S. Patent Application Serial No. 10/299,574, filed November 19. 2002 (Attorney Docket MHNT-075).
0005U.S. Patent Application Serial No. 10/299,574 (Attorney Docket MENT-075) is in turn a Continuation-! n-Parl of U.S. Serial No 09/884,861. filed June 19, 2001 (Attorney Docket MENT-061), which claims the priority benefit of U.S. Provisional Patent Application Serial No. 60/265,934, filed February 1 , 2001, and U.S. Provisional Patent Application Serial No. 60/212,286. filed June 19, 2000. Each of these noted patent applications, including the provisional and non-provisional applications, is incorporated by reference herein as if set forth in its entirely.
0006Fjcld<sub>.</sub>or<sub>.</sub>the<sub>.</sub> Invention. The present invention relates generally to methods and systems for image rendering in and by digital computing systems, such as for motion pictures and other applications, and in particular, .relates to methods, systems, devices, and computer software for substantially instantaneous, precision ray tracing.
MCKGROUIS-D OF THE IEVENTIOJS:
0008The term "ray tracing" describes a technique for synthesizing photorealistic images by identify ing ail light paths that connect Sight sources w ith cameras and summing up these contributions. The simulation daces rays along the line of sight to determine visibility, and traces rays from the light sources in order to determine illumination. Ray tracing has become mainstream in motion pictures and other applications.
0009However, current ray tracing techniques suffer from a number of known limitations and weaknesses, inehtding numerical problems, limited capabilities to process dynamic scenes. slow setup of acceleration data structures, and large nieiiiorj footprints. Tims, current ra\ tracing techniques lack the capability to deal efficiently v till full) animated scenes, such as \und bJoxung through a forest or a person<sup>'</sup>s hair Overcoming the {mutations of current raj tracing sy stems w ould also enable the rendering of. for example, higher qualm motion blur in mo\ ie productions
0010Current attempts to improve the performance of raj tracmg sy stems ha\c fallen short for a number of reasons For example, current real-time raj tracing s> stems gonetallj use 3D-trecs as (heir acceleration structure, which arc based on axis-aligned binaη space partitions Because the main focus of these s> stems is on rendering static scenes, (he> typicaϊh fail to address the significant amount of setup time required Io construct the required data structures m connection with fuiij animated scenes. Along these lines, one manufacturer has impro\ed real-time raj {racing bj building efficient 3D-trccs and developing an algorithm able to shorten the time needed fo tra\ ersc the tree. Bow e\er. it can be shown that the expected memon requirement for the s> stem increases cmadraϋc-alK with an increase in the number of objects to be ra> -traced
0011Another manufacturer has designed a ra\ tracing integrated circuit thai uses bounding \olumc hierarchies to impro\c sj stem performance HOΛ\ C\ er. it has been found that the architecture<sup>'</sup>s pei foπnance breaks dow n if loo mam incoherent secondary raj s are traced In addition, attempts ha> c made to <sup>ή</sup>nprcne sj -stcni performance b\ implementing 3D-tτce trax ersai algorithms using lϊeid-programmablc gate arra> s { FPGAs) The mam increase in processing speed in these sj stems<sup>,</sup> is. obtained b> tracing bundles, of coherent rays. and exploiting she capability of FPOAs to perform rapid hardwired compilations The construction of accdeiation structures has not yet been implemented m hardware The FPGA implementations u picalh use floating point techniques, at reduced precision
0012SUMMARY QI IMEJ^VENTiϋN
0013One aspect of the invention relates to an improvement in a computer graphics s> stem of the type comprising a computer and a display clement, the dtspiaj element being operable to displav a human-|)ercepttb}e image m response to a display -controlling electrical output from the computer, the computer being operable to generate the ώspla> -controlling electrical output based on calculations of pixel \alucs for pixels in the image, respeetne pixel \ aloes being represcntattx e of points in a scene as recorded on an tmage plane of a simulated camera, the computer being operable to generate pivel v alues. for an image using a raj -tracing melhodolog\ , the raj -tracing methodology comprising the use of a raj tree and an associated raj tracmg data structure, the ray tree including at least one raj shot ftom the pixel into a scene along a selected direction, the raj -tracing mcthodoiogj further comprising the calculating of the intersections, of rays and surfaces of objects in the scene, and the rax -tracing being determined in response to the restilts of processing of objects in an image.
0014IiJ this aspect of the invention., the improvement comprises constructing a hierarchical ray tracing acceleration data structure comprising a tree structure, the nodes of which arc generated utilizing a bounding interval hierarchy based on defining an axis-aiigued scene bounding box and two parallel planes to partition a set of objects in a scene into left objects and right objects, and matching split planes to object bounding boxes, wherein.
0015(A) the two planes are perpendicular to a selected one of x, y. or x~axes;
0016(B) given a splitting plane, each object in an image is classified either left or right based on a left/right selection criterion, and mo splitting plane values of the child nodes are determined by the maximum and minimum coordinate of the left and right objects, respectively.
0017(C) given a bounding bo\ and the selected axis, a left child L results from replacing a maxήmim value of a left object's coordinates along the selected axis by the first plane, and a right child R results from replacing a minimum value of a right object's coordinates by the second plane, and wherein any resulting zero volumes are used Io represent empty children, and
0018(D) splitting planes are determined bv :
0019(t) selecting candidate splitting planes by hierarchically subdividing an axis- aligned scene bounding box. along the longest side it) the middle, wherein all candidate splitting planes form a regular grid;
0020(2) if a candidate plane is outside the bounding box of a volume element to subdivide, continuing with candidate planes from the half where the volume element resides; and
0021(E) further comprising<sup>1</sup> (a) recursively partitioning the bounding box into object bounding boxes.
0022(b) if a split plane candidate separates objects without overlap, fitting the resulting split planes to the objects o.n the left and right, thereby maximizing empty space, and
0023(c) terminating the recursion when no more than a predetermined number of objects remains.
0024In another aspect of the invention, the left/right selection criterion comprises, given a splitting plane, classifying each object in an image either left or right depending on which side of the plane it extends most; and the construction of the hierarchical ray tracing acceleration data structure is based on bucket sorting, and comprises hierarchical execution of: (A) computing a scene bounding box and average object si/.e to determine resolution of an ordered, regular grid for partitioning space, or alternative!}-, using a user-specified resolution. (B) allocating a counter for each grid ceil,
0025(C l initializing all counters, each corresponding to a respective grid ceil, to zero, (D) selecting a point for each object to increment the respective counter for the grid cell containing the selected point, (E) transforming counter values to offset values by replacing each counter value by the sum of values of all previous counters,
0026(F) allocating a global object index array,
0027(G) using the offset \alues to sort {he objects into backets, using for each respective object the corresponding point selected for incrementing the counter for (he grid cell containing that point, and
0028(H) for each bucket, computing the bounding box of the objects it contains, A further aspect of the invention comprises {lie hierarchical acceleration date structure only where rays traverse or where geometry is visible to the ray .
0029Yet a further aspect of the invention comprises configuring a processing and memory structure in accordance with ihe foregoing method. She processing and memory structure being operable to provide:
0030(A) pre-processing by sorting image triangles into buckets and storing corresponding bucket values on a storage device,
0031(Bl for rendering, creating a top-level bounding interval hierarchy out of She buckets, without needing to construct the tree for the triangles iinmediateh . and wherein each bucket thai is intersected by a ray creates its own tree utilizing on-demand creation of the tree,
0032(C) wherein the bucket's triangles and the acceleration data structure are stored in a cache of either dynamic or fixed user-defined size, and
0033(D) wherein the bucket with {lie largest number of triangles defines {lie maximum memory footprint.
0034In a further aspect of the invention, the amount of memory required can be bounded in advance, linearly in the number of objects to be ray traced.
0035Those skilled in the art will appreciate that the invention can take the form of a method carried out in computer software, hardware, or a combination of software and hardware: a computer-based device or system that carries out such methods; a computer software product comprising computer-executable code slored on a magnetic disk. RAM card. ROM element.
0036FPGA. ASIC, or other processing and/or storage element that can be communicated with by a computer, the code being executable by a computer So carry out such methods: or some combination of such embodiments. It will also be understood and appreciated fay those skilled io the art that the invention can be practiced without a display element, for example, and without use of a particular. predefined computing apparatus. For example, pixel values and image data can be created and stored for later display.
0037These and other aspects will be discussed in greater detail below in the following Detailed Description of the Invention and in connection with the attached drawing figures.
0038BRIEF DESCRiFIlON OF THE DRAWINGS
0039FlG, ! shows a schematic diagram of a conventional personal computer, or like computing apparatus, in which aspects of the present invention can be deployed.
0040FIGS. 2A-B show schematic diagrams illustrating a conventional network-based computing system and network devices, in which aspects of the present invention can be deployed.
0041FlG. 3 is a diagram illustrating an overall method in accordance with a first aspect of the present invention.
0042FlG, 4 is a diagram of a ray tracing procedure, illustrating She problem of self-intersection
0043FIG. 5 shows an example of a code listing for implementing a described technique for encoding degenerate triangles.
0044FIG. 6 shows an example of a code listing For implementing a described technique for extending triangles for a robust intersection test. FJGS. 7A-7.D show an example of a code listing for implementing a described triangle- boκ intersection technique.
0045FlG. 8 shows a diagram, in elevation view, of a partitioned axis-aligned bounding box that is used as an acceleration data structure in accordance with a further aspect: of the invention. FIGS. 9-1 1 are a senes of diagrams, in isometric view, of the axis-aligned bounding box shown in FIG. S, illustrating the partition ing of the bounding box with I - and R-planes.
0046FIGS. 12 and 13 are flowcharts of ray tracing methods according to further aspects of the invention.
0047FIGS. 14A-14C show an example of a code listing for implementing a described technique for traversing bounding volume hierarchies.
0048FIGS 15A-C show a series of diagrams illustrating a technique according to a further aspect of the invention in which a bounding box is intersected by an axis-aligned plane to define a half-space.
0049FlG. 16 shows an example of a code listing for implementing a described technique for encoding leaf nodes.
0050FIGS. 17A-D show an example of a code listing for implementing the tracing of one ray through a bounding volume hierarchy. FKJ. 18 shows a diagram of a bounding box that has been clipped b\ four axis-aligned planes in accordance with a further aspect of the invention.
0051FIG 19 shows an example of a code listing for implementing a data structure in accordance with the diagram shown in FlG. i8. FIGS. 20A-C show an example oi<sup>'</sup>a code listing for implementing a traversal of bounding volume hierarchies using a tree built using the data structure illustrated in FICiS. i S and 19.
0052FIGS. 21 A-D show a series of images from animations and interactive applications generated using the described ray tracing techniques, FIGS 22 A-E and 23A4) are a series of diagrams illustrating differences between a binary space partitioning technique and the described bounding interval hierarchy technique,
0053FlG. 24A shows an example of a code listing for implementing a technique for defining a data structure for use with the described ra\ tracing techniques, and FlG. 24B shows a memory layout of She data structure. FIGS. 25A-D show a series of simplified diagrams illustrating a described technique lor determining candidate splitting planes without object analysis.
0054FIG 26 shows a diagram of an exemplary bounding bo\ containing six objects A-F.
0055FIG. 27 shows four generations of candidate splitting planes superimposed over the bounding box shown in FIG, 26. FJG. 28 shows the splitting planes of interest in FlG. 27.
0056FIG, 29 shows a diagram illustrating how each of objects A-F are contained in child bounding boxes of various generations.
0057FIGS. SOA-D illustrate the first generation of children generated from the scene shown in HG 26. FIGS. 31 A-C illustrate the second generation of children generated from the scene shown in FΪG. 26,
0058FIGS. 32 A-C illustrate the third generation of children generated from the scene shown in FIG. 26.
0059FIGS. 33A-E show the generation of children for objects A and B in the scene shown in FIG. 26.
0060FIG 34 shows a flowchart of a method according to a further aspect of the invention for performing a bucket-sorting preproeess in conjunction with {he construction of the described data structures.
0061FIGS. 35-36 show a series of array pairs illustrating a technique for in-place sorting of object indices in accordance with a further aspect of the invention.
0062FIGS. 37-42 show a series of tabies illustrating the results of comparisons between currently used techniques and improved techniques according to the present invention. FIGS. 43 and 44 show flowcharts of overall techniques in accordance with described aspects of the invention.
0063FIG 45 is a schematic block diagram of processing modules w ithin a computer 102 in accordance with one process of the invention. FlG. 46 is a schematic block diagram of software product modifies within a disk
0064(removable or non-removable) or other storage element 120 in a computer or other processing device in accordance with the invention.
0065J?e^iM.PM?JipJϊSQ..Qf..tb.?..i?>Λ:i?.!?.tion Digital Processing Environment ϊn
0066Whjch_)nventjpjL€ajX.<sup>β</sup>?..i™B!.?.!?ϊδϊ!ted
0067Before describing particular examples and. embodiments of the invention, the following is a discussion, to be read in connection with FIGS, i and 2. of underlying digital processing structures and environments in which the invention may be implemented and practiced
0068It will be understood by those skilled in the art that the present invention provides methods, systems, devices and computer program products that enable more efficient ray tracing and other activities in computer graphics systems, whose output is typically a humaπ- perceptible (or digitally stored and/or transmitted) image or series of images that can comprise, for example, an animated motion picture, computer aided design representation, or other typical computer graphics output. The present: invention can thus be implemented as part of the computer software or computer hardware of a computer thai forms part of a computer graphics system, along with a display, user interface elements such as a keyboard, tablet and/or mouse, memory, storage, and other conventional computer graphics s> stem components. While conventional components of such kind are well known to those skilled in the art. and thus need rtoi be described in great detail herein, the following overview indicates how the present invention can be implemented in conjunction with such components in a computer graphics system. More, particularly , those skilled in the art will understand that the present invention can be utilized in the generation and synthesis of images, such as for display in a motion picture or other dynamic display. The techniques described herein can be practiced as part of a computer graphics system, in which a pixel value is generated for pixels in an image. The pixel value is representative of a point in a scene as recorded on an image plane of a simuiated camera. The underlying computer graphics system can be configured to generate the pixel value for an image using a selected methodology, such as that of the present invention.
0069The following detailed description illustrates examples of methods, structures, systems. and computer software products m accordance with these techniques. It will be understood by {hose skilled in {he art that the dcscπbed methods and s\ stems can be implemented m software, hardware, or a combination of software and hardware, using coin cntional computer apparatus such as a personal computer (PO or equiv alent dev ice operating in accordance w iih (or emulating) a comentional operating sj stem such as Microsoft Windows, Linux, or I'nix, either in a standalone configuration or across a nets\ ork. The Λ arious processing aspects and means described herein mn\ therefore be implemented m the software and or hardv are elements of a proper!) configured digital processing dc\ ice or network of dc\ ices. Processing ma> be performed sequential!} or in parallel, and ma\ be implemented using special purpose or re- configurable hardw arc As an example, FlO 1 attached hereto depicts an ilhistrai i\ e computer s> stem 1 u that can earn out such computer graphics processes. With ieferenee to FIG, 1. the computer s> stem i () in one embodiment includes, a processor module 1 i and operator interlace elements. comprising operator input components such as a Ke\ board 12 A and or a mouse 12B (or digitizing tablet or other analogous eicmeut(s). general!) identified as operator input elemcnι(s) O) and an operator output element such as a \ sdeo display dε\ tee 13 The illustrath e computer system IO can be of a comenuonai stored-prograns computer architecture, The processor module 1 S can include, for example, one or more processor. memor> and mass storage de\ ices, such as disk and -<sup>'</sup>or tape storage elements (not separate!} shown), which perform processing and storage operations in connection with digital data pres ided thereto The operator input elements) 12 can be p«n idcd to permit an operator to input urfbnnatton for processing The \ idco ώspia\ device 13 can be provided to display output information generated b) the processor module 1 1 on a screcti S 4 to the operator, including daia that the operator ma> inpttt for processing, information that the operator max input to control processing, as well as information generated during processing. The processor module 1 1 can generate information for displaj b> the \ideo displa> de\ ice 13 using a so-called "graphical user interface" T-CiUl<sup>"</sup>). in w hich information for various applications programs is dtsplas ed using \ arious "n indou s "
0070The terms "mcmor>-". "storage" and "disk storage de\ ices<sup>"</sup> can encompass an) computer readable medium, such as a computer hard disk, computer i!oρp> disk, eomputer- readable flash dm e, compυter-isjadabls? RAM or ROM element or any other known means of encoding digital information. The term "applications programs", "applications", "programs", "computer program product" or "computer softn arc product" can encompass am computer program product consisting of computer-readable programs instructions, encoded and or stored on a computer readable medium, whether that medium is fixed or removable, permanent or erasable, or othcrw ise As noted, fot e sample, in bloc k 122 of the schematic bϊock diagram of FΪG 2B. applications and data can be stored on a disk, in RAM. ROM. on other removable or fixed storage, whether internal or external, and can be downloaded or uploaded, m accordance \\ Jth practices and techniques w ell know « m the ait As \\ ill also be noted m (his document the present invention can take the fotrn of software ot a compute: ptogiam product stoted øn a compulεt -readable medium oi st can be «1 the form of computer program code that can be uploaded ot downloaded or fixed m art FPG V ROM or other electronic sttuetute, or it eat! take the form of a meihod or a s-s stem fo) cai is mg out such a method Jn each case she invention is. operable to enable a computer oi computer s\ item Io calculate a pi\el \ alue for pixels m an image ot scene and the pixel \aluc can be used bj othci ciemcms of a compute! graphics s\ stein which can be conventional elements such as giaphics catds dispiax oontiollets 01 displa\ elements Mich as LCDs and nt CRTs to gvneiate a disptav -controlling eleetπcsl øi electronic output and ultimately to enable the dispta-s of an image in a human- pereeptible foim. and/or the Moiage of such an unage (or data spccjfx uig such an linage) for later clispisn miύ ot processing
0071Although the compute) SN stem 10 is shown as comprising paittculai components, such a*, the kc\ boatd 12 \ and mouse 12B for rcceι\ tng input mfoi mation ftom an opciaior, and a \ ideo dispJa\ de\ ice 1 > for dtspla^ mg output mfonnatjon to the operate! ii \\ ill be appi ectated that the computer s\ stem i 0 ιna\ include a \ aneh of components tn addition to or tπstcad of those depicted m FiO S
00721« addition the processor module 1 1 can include one oi moie network poits geneuilh identified In reference mmietsl 14, w hich are connected to eorannmication links which connect the computes s\ stem Iu in a compittej netwojk The network pons enable the compute! bv item H) to tiansmit mfoi mation to and icccne mfoimatmn fiom, other c omputei s\ stems and oihei de\ ices m the tiemork In s h pica! oehxoik orgsnj/cd according to for example, the client-sen cr paiadigm. certain computer s\ stems in the network are designated as. sen en which stoic data and programs {generalls <sup>"</sup>mfoimation") foi ptocessmg In the other, client computer sy stems tlicicbx to enable the client computer sj stems to com emcnth shaic the information \ client cotnpυici sv stem Λ\!nch needs access 10 mfoi mation maintained ta\ a particular $,er\er w til enable the server to download the information to tt o\ et the mAw ork \ller pTocc&smg the data, the client computer &\ stem ma> also retusn the processed data to the senci lot sioiage In addition to compute! ^ stem*; (including the abo\ c-descπl>:d servei s and cSienti) a network m<j> also include for example, printers, and facsimile dc\ iots> dignai audio OI \ idco storage and dssu ibulion deuces and the like which ma> be sbaicd among the \ aπous computer s\ stems connected m the network f he communication links interconnecting the compute: s% stcm^ in the network ma> as is conventional comprise anj coiπcnicnl mfoπnation-cam mg medium includtng w sres, optical fibers or oihei media for earn ing signals among the computet s\ stetns Cotnputet s\ stetns ttaπsfeϊ ioformalton over the network In means of messages transferred o\et the communication links, w ith each message including mfoi mation and an identifier identift mg the de\ KQ to ICCCIΛ e the message In addition to {he computer system 10 shown in the drawings, methods, devices or software products in accordance wish the present invention can operate on any of a wide range of conventional computing devices and systems, such as Jhose depicted by way of example in FIGS. 2A and 2B (e.g., network system 300). whether standalone, networked, portable or fixed, including conventional PCs 102. laptops 104. handheld or mobile computers 106, or across the internet or other networks 108, which may in turn include servers 1 10 and storage 1 12. In line with conventional computer software and hardware practice, a software application configured in accordance with the invention can operate within, e.g.. a PC 102 like that shown in FIGS, 3 and 2A-B, in w hich program instructions can be read from ROM or CD ROM 13.6 (FiG. 2B). magnetic disk or other storage 120 and .loaded into RAM 1 14 for execution by CPU 118, Data can be input into the system via any known device or means. including a conventional keyboard, scanner, mouse, digitizing {ablet, or other elements 103 As shown in FTG. 2B, the depicted storage 120 includes removable storage. As further shown in FΪG, 2B. applications and data S 22 can be located on some or aϊi of fixed or removable storage ot ROM, or downloaded.
0073Those skiJicd in the art will understand that the method aspects of the invention described herein, can be executed in hardware elements, such as a Field-Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASlC) constructed specifically to carry out the processes described herein, using ASIC construction techniques known to ASIC manufacturers. Various forms of ASICs are available from many manufacturers. aUhoiigh currently available ASICs do not provide the functions described in this patent application. Such manufacturers include Intel Corporation and NVIDIA Corporation, both of Santa Clara, California. The actual semiconductor elements of a conventional ASIC or equivalent integrated circuit are not part of<sup>"</sup> the present invention, and will not be discussed in detail herein. Those skilled in the art will also understand that ASICs or other conventional integrated circuit or semiconductor elements can be implemented in such a manner, using the teachings of the present invention as described in greater detail herein, to carry out the methods of the present invention as shown, for example, in FIGS. 3 et seq. discussed in greater detail below. Those skilled in the art will also understand that method aspects of the present invention can be carried out within commercially available digital processing systems, such as workstations and personal computers (PCs), operating under the collective command of the workstation or PC's operating system and a computer program product configured in accordance with the present<sup>"</sup> invention. The term <sup>"</sup>computer program product" can encompass any set of computer-readable programs instructions encoded on a computer readable medium. A computer readable medium can encompass any form of computer readable element, including, but not limited to, a computer hard disk, computer floppy disk, computer-readable flash drive, computer-readable RAM or ROM element, or any other known means of encoding, storing or providing digital information, whether local So or remote from the workstation. PC or other digital processing device or system. Various forms of computer readable elements and media are well known in the computing arts, and their selection is left to the implemenier. Ui each case, the invention is operabie to enable a computer system to calculate a pi\ei value, and the pixel value can be used by hardware elements in the computer system, winch can be conventional elements such as graphics cards or display controllers, to generate a display - controlling electronic output. Conventional graphics cards and display controllers are well know n in the computing arts, are not necessarily part of the present invention, and their selection can be left to die implementer.
0074<sub>.</sub>^J?<sub>.</sub>feodin>enjs<sub>.</sub>Mifeε Invention
0075The invention will next be described in detail in the following pages, taken in connection with the attached drawing figures. Those skilled in the art will appreciate that various additions, subtractions, and oiher .modifications and implementations of the invention can be practiced, and are within the spirit and scope of the present invention.
0076As noted above, known forms of integrated circuit or semiconductor elements such as FPGAs or ASICs can be implemented in such a manner, using the teachings of the present invention described herein, to carry out the methods of the present invention as shown, for example, in {he drawings discussed in greater detail below.
0077The following discussion should thus be read with reference to FIGS. 3 et seq.; and is organized into She following sections:
00781. Reai-Tinie Precision Ray Tracing I. Overall Method
00792. Precision Ray Tracing Architecture 2.1. Self-Intersection Problem
00802.1.1. Floating Point Precision Ray Free form Surface
0081Intersection 2.2. Ray -Triangle Intersection
00822.3. High-Peri<sup>'</sup>ormance 3D-Tree Construction
00832.3.1. Splitting Plane Selection
00842.3.2. Minimum Storage Construction 2 3 3 Tree Pruning by Left-Balancing 2,3,4, High Numerical Precision Triangle Rectangle
0085Intersection
00862.4. Hfigh-Periorrnan.ce Bounding Volume Hierarchy
00872.4.1. Construction
00882.4.1.1. Finding the Splitting Planes 2.4.1.2. Inefficient As is- Aligned Bounding Boxes
00892.4.2. Traversal
00902.4.3. Qn-the-Fly Bounding Volume Construction
00912.5. Radi K Sort: Proce ssiti g
00922.5.1. Construction on Demand 3. Summary of Real-Time Precision Ray Tracing Techniques
00934. Additional Techniques
00944A. Constructing a Bounding Volume Hierarchy by Cutting off I! aif Spaces 4B. Clipping an Axis-Aligned Bounding Boκ by Four Asis-
0095Aiigneά Planes
00964C. High-Perfonnance Setup of Acceleration Data Structures 4D. Efficient Tree Entry Node Determination 4E. Bundle <sup>'</sup>Traversal
0097U. instant Ray Tracing
00981 . Introduction
00992. Principles of Accelerated Ray Tracing
01002.1. Accelerated Ray Tracing Based on Partitioning of Space 2 1 1 Space Partitioning Using Regular Grids
01012.1.2. Binary Space Partition
01022.2. Accelerated Ray Tracing Based on Partitioning of Object Lists
01032.2.1. Bounding Volume Hierarchy
01042.3. Summarizing Current Approaches to Accelerated Ray Tracing 3. The Bounding lnierval Hierarchy
01053.1. Data Structure
01063.2. Ray Intersection
010733. Construction of the Hierarchy
01083.3.1. Global Heuristic for Determining Splitting Planes 3 3 2 Approximate Sorting
01093.3.3, Implementation Details
01103.4. Construction on Demand 4. Discussion
01114.1 . Memory Footprint 4.2. <sup>"</sup>Numerical Precision
01124.3. Tracing Ensembles of Rays
01134.4. Hardware Considerations 4 5 Massive Data Sets
01144.6. Large Objects 5. Results
01156. Conclusion
01161. Real-Time Precision Ray Tracing There are now described a precision ray tracing architecture and associated techniques.
0117<sup>'</sup>Flic described architecture and techniques address a number of issues, including problems in ray (racing due to floating point quantization and large memory requirements, as well a& others.
01181. Overall Method FlG. 3 is a diagram depicting an overall method 200 in accordance Λ\ itJh the techniques described herein. The method is practiced in the context of a computer graphics system, in which a pixel value is generated for each pixel in an image. Each generated pixel value is representative of a point in a scene as recorded on an image plane of a simulated camera. The computer graphics system is configured (o generate the pixel value for an image using a
011950 selected ray -tracing methodology. The selected ray-tracing methodology includes the use of a ray tree that includes at least one ray shot from the pixel into a scene along a selected direction. and further includes calculations of the intersections of rays and objects (and/or surfaces of objects) in the scene.
0120In the FlG. 3 method 200. bounding volume hierarchies arc used to calculate the intersections of<sup>"</sup> rays and surfaces in the scene. In step 201 , a bounding box of a scene is computed, in step 202, it is determined whether a predetermined termination criterion is met. if not, then in sicp 203 the axis-aligned bounding box. is refined. The process continu.es recursively until the termination criterion is met. According to an aspect of the invention, the termination criterion is defined as s condition at which the bounding box coordinates differ only in one unit of resolution from s floating point representation of She ray /surface intersection point However, the scope of the present invention extends to other termination criteria.
0121The use of bounding volume hierarchies as an acceleration structure is advantageous for a number of reasons. The memory requirements for bounding volume hierarchies can be linearly bounded in She number of objects to be ray traced Also, as described below, bounding vohimc hierarchies can be constructed much more efficiently than 3D-trees, which makes them very suitable for an amortized analysis, as required for fully animated scenes.
01222. Precision Ray Tracing Architecture The following discussion describes in greater detail certain issues in ray tracing technology, and particular aspects of the invention thai address those issues.
01232.1. Self-Intersection Problem
0124FlG 4 is a diagram illustrating the "self-intersection<sup>"</sup> problem. FlG. 4 shows a ray tracing procedure 300, including a surface 302. an observation point 304, and a light source 306. In order to synthesize an image of the surface, a series of computations ate performed in order to locate rays extending between, the observation point 304 and the surface 302. FlG. 4 shows one such ray 308. Ideally, there is then calculated the exact point of intersection 310 between the ray 308 and the surface 302. However, due to floating point arithmetic- computations on computers, it is sometimes possible for the calculated ray /surface intersection point 312 to be different from the actual intersection point 310. Further, as illustrated in FKl 4. it is possible for the calculated point 312 to be located on tlie "wrong<sup>"</sup> side of the surface 302. In that case, when computations are performed to locate a secondary ray 314 extending from the calculated ray /surface intersection point 312 to the light source 306, these computations indicate that the secondary ray 314 hits {lie surface 302 at a second intersection point 316 rather than extending directly to the light source 306, thus resulting in an imaging error. One known solution to the self-intersection problem is to start each secondary ray 314 at a safe distance from the surface 302, This safe distance is typically expressed as a global floating poini <■:. However, the determination of the global floating point <<sup>■</sup>: depends heavily on the scene, and this particular location within the scene itself, for which an image is being synthesized.
0125An aspect of the invention provides a more precise alternative. After arriving at a calculated ray /surface intersection point 312. the calculated point 312 and the direction of the ray 308 are then used to re-compute an intersection point that is closer to the actual intersection point 310. This re-computation of. the intersection point is incorporated into the ray tracing technique as an iteration that increases precision. Ii<sup>"</sup> the iterative!}' computed intersection point turns out to be on the "wrong" side of she surface 302. it is moved to the "correct<sup>"</sup> side of the surface 302. The iterative!}<sup>1</sup> computed intersection point can be moved along {he surface normal, or along the axis determined by the longest component of the normal. Instead of using a global floating point t. the point is moved by aft integer e to She last bus of the floating point mantissas.
0126The described procedure avoids computations in double precision and has the advantage that it implicit!}' adapts to the scale of the floating point number, which is determined by iis exponent. Thus, in this implementation, all secondary rays directly start from these modified points making an t -offset unnecessary. During intersection computation. it can therefore be assumed that the ra> interval of validity to begin at 0 rather than some offset.
0127Modifying the integer representation of the mantissa also avoids numerical problems when intersecting a triangle and a plane in order to decide which points are on whεtl side
01282.1.1. Floating Point Precision Ray Freefoπu Surface Intersection Exploiting the convex htiil property of convex combinations, intersections of rays and freeform surfaces can be found by refining an axis-aligned bounding box, which contains the point of intersection nearest to the ray origin. This refinement can be continued until the resolution of floating point numbers is reached, i.e., until the bounding bov coordinates differ only in one unit of resolution from die floating point representation. The self-intersection problem then is avoided by selecting the bounding box comer that is closest to the surface normal in the center of the bounding box. This comer point then is used to start the secondary ray.
01292.2. Ray -Triangle Intersection. The above-described <sup>"</sup>ray object intersection test<sup>"</sup> is very efficient and benefits from the avoidance of the self-interjection problem. After constructing the acceleration data structure, the triangles are transformed in-place. The new representation encodes degenerate triangles so that the intersection test can handle them without extra effort. FSG. 5 shows at) example of a code listing 320 for implementing die described technique, f.i of course is also possible to just prevent degenerate triangles to enter the graphics pipeline. The test first determines the intersection of<sup>"</sup> the ray and the plane of<sup>"</sup> the triangie and then excludes intersections outside the valid interval JO. resuU.tfarl on the ray. This is achieved by only one integer test. Note that the <sup>■</sup>*<sup>■</sup><) is excluded from the valid interval. Thh h important if denornialized floating point numbers are «of supported. If {his first determination is successful, the test proceeds by computing she Bary centric coordinates of the intersection. Note that again only an integer test, i.e., more specifically only testing two bits, is required Io perform the complete inclusion test. Thus the number of branches is minima!, In order to enable this efficient test, the edges and the normal of the triangie are scaled appropriately in the transformation step.
0130The precision of the test is sufficient to avoid wrong or missed ray intersections. However, during traversal situations may occur in which ii is appropriate to extend the triangles for a robust intersection test. This can be done before transforming the triangles. Since the triangles are projected along the axis identified by the longest component of their normal this projection case has to be stored. This is achieved by counters in the leaf nodes of the acceleration date structure. The triangle references are soiled by the projection case and a leaf contains a byte for the number of triangles in each class. FΪG. 6 shows a code listing 340 for implementing this aspect of (he invention.
01312.3. High-Performance 3D-Tree Construction
0132A further aspect of the present invention provides an improved approach for constructing acceleration data structures for ray tracing. Compared with prior software implementations {hat follow a number of different optimizations, the approach described herein yields significantly flatter trees with superior ray tracing performance.
01332.3. L Splitting Plane Selection Candidates for splitting planes are given by the coordinates of the triangle vertices inside the axis-aligned bounding box to be partitioned Note that this includes vertices that actually lie outside the bounding box. but have at least one coordinate that lies in one of the three intervals defined by she bounding box. Out of these candidates, (here is selected the plane closest to middle of the longest side of the current axis-aligned bounding box, A further optimization selects only coordinates of triangles whose longest component of the surface normal matches the normal of the potential splitting plane This procedure yields much flatter trees, since placing splitting planes through the triangle vertices implicitly reduces the number of lTiangies split by splitting planes. Tn addition, the surface is approximated tightly and empty space is maximized, H She number of triangles is higher than a specified threshold and there are no more candidates for splitting planes, the box is split in She middle along iis løngesi side This avoids inefficiencies of other approaches, including the use, for example, of long diagonal objects.
01342.3.2. Minimum Storage Construction
0135The recursive procedure of deciding which triangles belong to {he left and right child of s node in ϊhe hierarchy has typically required extensive bookkeeping and memory allocation. There is s much simpler approach that only fails in exceptional cases. Only h\o arrays of references to the objects to be ray traced are allocated. The first array is initialized with the object references. During recursive space partition, a stock of the elements on the left is grown from the beginning of the array . while {he elements, which are classified right, are kept on a stack growing from the end of the array towards the middle. In order io be able to quickly resiore the elements that are intersecting a split plane, i.e.. are both left and right, the second array keeps a stack of them. Tints backtracking ts efficient and simple.
01362.3.3. Tree Pruning by Left-Balancing
0137Instead of priming branches of the tree by using the surface area heuristic, tee depth is pruned by approximately left-balancing the binary space partition starting from a fixed depth. As observed by exhaustive experimentation, a global fixed depth parameter can be specified across a vast variety of scenes This can be understood by observing that after a certain amount of binary space partitions usually there remain connected components that are relatively flat in space.
01382.3.4. High Numerical Precision Triangle Rectangle Intersection
0139In order to decide whether a triangle intersection the splitting plane is contained in the left and/or right partition of a bounding box. a numerically optimized 2d-vcrsbn of a triangle- box intersection technique lias been developed. There is first computed the intersection of the triangle with the splitting plane. A check is then performed as to how this line lies relative to the rectangle give by the intersection of the splitting plane and the bounding box. FTGS. 7A-D show an exemplary code listing 360 for implementing the described technique. Despite the apparent complexity of the code, the technique is more efficient and numerically stable than previous methods. 2.4. High-Ferfomiance Bounding Volume Hierarchy
0140Using bounding volume hierarchies, each object to be ray (raced is referenced exactly on.ee As a consequence, and in eontrasi with 3D-trees, no mailbox mechanisms are required to prevent the multiple intersection of an object with a ray during the traversal of the hierarchy. This is a significant advantage from the viewpoint of system performance and makes implementations on a shared memory system much simpler. A second important consequence is that there cannot be more inner nodes in the tree of a bounding volume hierarchy than the total number of objects to be rax- -traced. Thus (he memon footprint of the acceleration data structure can be linearly bounded in the number of objects before construction. Such an a priori bound is not available for the construction of a 3D-tree. where the memory complexity is expected to increase quadratic-ally with the number of objects to be ray -traced.
0141Thus, there is now described a new concept of bounding volume hierarchies that are significantly faster than current 3D-tree rax tracing techniques, and in which the memory requirements grow linearly, rather than expected quadratically. with She number of objects to be ray -traced.
01422.4.1. Construction
0143The core concept that allows hounding volume hierarchies to outperform 3D-trees is to focus on how space can be partitioned, rather than focusing on the bounding volumes themselves.
0144IJ? a 3D-(ree. a bounding box is partitioned by a single plane. According to the present aspect of the invention., two parallel planes arc used to define two axis-aligned bounding boxes. FlG. 8 is a diagram illustrating the principal data structure 400.
0145FlG 8 shows an axis-aligned bounding box 4<sup>(</sup>)2. in elevation view. An L-plane 404 and an R-ptane 406. which are axis-aligned and parallel with each other, are used to partition bounding box 402 into left and right axis-aligned boiindi ug bos . The left bounding box extends from the left wall 408 of the original bounding box 402 to the L -plane 404, The right bounding box extends from the R-plane 406 to the right wall 4i 0 of the original bounding box 402. Tims, the IeO and right bounding boxes may overlap each other The traversal of rav 412 is determined by the positions of intersection with the L- and R-planes 404 and Φd relative to the interval of validity \h\ FJ 414 of the ray 412.
0146In the FlG. 8 data structure 400, the L- and R-planes 404 and 406 are positioned with respect to each other to partition the set of objects contained w iϊliin the original bounding box 402, rather than the space contained within the bounding box 402. Ui contrast with a 3D-tree partition, having two planes offers the possibility of maximizing the empty space between the two planes. Consequently the boundary of the scene can be approximated much faster. FIGS. 9-1 1 are a series of three-dimensional diagrams further illustrating data structure 40O. FlG, V shows a diagram of bounding box 4(12. For purposes of illustration, virtual objects within bounding box 402 are depicted as abstract circles 45.6. As shown in FiGS. 10 and 1 1 , L-plaisc 404 and R-plaisc 406 are then used to partition bounding box 402 into a left bounding box 402a and a right bounding box 402b. The L- and R-pianes are selected such that the empty space between then) is maximized. Each virtual object 416 ends up in either the left bounding box 402a or the right bounding box 402b. As shown at the bottom of FJG. 1 1. the virtual objects 4 ! 6 are partitioned into "left" objects 416a and "right" objects 41.6b. Each of the resulting bounding boxes 402a and 4»2b are themselves partitioned, and so on, until a termination criterion has been satisfied.
0147FIO. 12 is a flowchart of the described method 500. In step 501, a bounding box of a scene is computed, in step 502, parallel L- and R-planes are ifsed to partition the axis-aligned bounding box left and right axis-aligned bounding boxes, which may overlap, ϊn step 503, the left and right bounding boxes are used to partition the set of virtual objects contained w ith the original axis-aligned bou.tidi.ng box into a set of let! objects and a set of right objects, in step 504, the left and right objects arc processed recursively until a termination criterion is met.
0148Instead of one split parameter, used in earlier implementations, two split parameters are stored within a node. Since the number of nodes is linearly bounded by the number of objects to be ray traced, an array of all nodes can be allocated once. Thus, the costly memory management of 3D~trees during construction becomes unnecessary .
0149The construction technique is much simpler than the analog for 3D-lree construction and is easily implemented in a recursive way. or by using an iterative version and a stack Given a list of objects and an axis-aligned bounding box, the L- and R-pianes are determined, and the set of objects is determined accordingly. The left and right objects are then processed recursive!)- itntil soine termination criterion is met. Since the number of inner nodes is bounded, it is safe to rely on termination when there is only one object left.
0150It should be .noted that the partition only relies on sorting objects along planes that are perpendicular to the x-, y-. and z-axcs, which is very efficient and numerically absolutely stable In contrast with 30-lrees, no exact intersections of objects with splitting planes need to be computed, which is more costly and hard to achieve in a numerically robust way.
0151Numerical problems of 3D~liees, such as missed mangles at vertices and along edges, can be avoided by extending the triangles before the construction of the bounding \oiume hierarchy. Also, in a 3D-ttee, overlapping objects have to be sorted both into the left and right axis- aligned bounding boxes, thereby causing an expected quadratic growth of the tree. 2.4. L L Finding the Splitting Planes
0152Various techniques may be used to determine the L- and R-planes. and thus the actual tree layout. Returning to F<sup>1</sup>TGS. 9-1 1 , one technique is to determine a plane M 45.8 using the 3D-tree construction technique described above and partition the objects such that the overlap of the resulting I. -plane and R -plane of<sup>"</sup> the new ax is-aligned bounding boxes minimally overlaps the suggested splitting plane M418. The resulting tree is very similar to the corresponding 3D-ιree. however, since the object &ets are partitioned rather than space, the resulting tree is much flatter. Another approach is to select the R-plane and L-pSane in such a way that the overlap of child boxes is minimal and the empty space is maximized if possible.
01532,4, 1,2, inefficient Axis-Aligned Bounding Boxes
0154It should be noted that for some objects axis-aligned bounding boxes are inefficient. An example of such a situation is a long cylinder with smali radios on the diagonal of an axis- aligned bounding box. FlG. 13 is a flowchart of a method 600 according to this aspect of the .invention. In step 601, a bounding box of a scene is computed, in step 602. a 3D-tτce construction is executed to determine a splitting plane A/. In step 603. parallel L- and R-pianes are used to partition the axis-aligned bounding box into left and right axis-aligned bounding boxes that minimally overlap the splitting plane M. In step 604, the left and right bounding boxes are used to partition the set of virtual objects contained within the original axis-aligned bounding bo K into a set of left objects and a set of right objects, in step 605, the left and right objects are processed recursively until a termination criterion is met It should be noted thai the method 600 illustrated in FlG. 13, as well as the method 200 illustrated in FlG. 3. may be combined with other techniques described herein, including techniques relating to 3D-tree construction, real-time processing, bucket sorting, self-intersection, and the like.
0155In the case of the 3D-ιree, the spatial subdivision is continued so as to cut off the empty portions of the space around the object. Tn the case of the described bounding volume hierarchy, partitioning such objects into smaller ones results in a similar behavior. In order to maintain the predictability of the memon requirements, a . maximum bounding bos size is defined. Ail objects with an extent that exceeds the maximum bounding box size are split into smaller portions to meet the requirement. The maximum allowed size can be found by scanning the data set for the minimal extent among all objects.
01562,4,2, Traversal The data structure described herein allows the transfer of the principles of fast 3D-tree traversal to bounding volume hierarchies. The cases of. traversal are similar: ( 1 ) only the left child; (2) only the right child; (3) the left child and then the right child; (4) the right child and then the left child; or (5) the ray is between split planes (i.e., empty space). Since one node in the described technique is split by two paraϋel planes, the order of how to traverse the boxes is determined by the my direction. FIGS. 14A-C set forth a source code listing 610 incorporating the techniques described above. Previous bounding volume hierarchy techniques could not efficiently determine the order of how to traverse the child nodes or required additional effort, such as updating a heap data structure, in addition a whole bounding volume had to be loaded and tested against the ray. while the present approach only requires the two plane distances. Checking the ray against the two planes in software seems to be more expensive, however. The traversal is the bottle neck in 3D-trees, and doing some more compulation .here better hides the latencies of memory access. In addition, the bounding volume hierarchy trees tend to be much smaller than corresponding 3D-trees of same performance.
0157Although there is herein described a new bounding volume hierarchy, there is a strong link So traversing 3D-trees: Setting /., - H , the classical binary space partition is obtained, and the traversal algorithm collapses io the traversal algorithm for 3<sup>'</sup>D-trees.
01582.4.3. On-the-Fiy Bounding Volume Construction
0159The described bounding volume hierarchy also can be applied to efficiently find ray free form surface intersections by subdividing the ftceform surface. Doing so allov s She intersection of a free form surface with a convex hull property and a subdiv ision algorithm efficiently Io be computed up to floating point precision, depending on the actual floating point arithmetic. A subdivision, step is performed, for example, for polynomial surfaces, .rational surfaces, and approximating subdivision surfaces. For each axis in space the possibly overlapping bounding boxes are determined as discussed above, in ease of a binary subdivision, the intersection of the 1. -boxes and the intersection of the R-boxes for new bounding boxes of the new meshes. Now the above-described traversal can be efficiently performed, since the spatial order of the boxes is known, instead of pre-compming the hierarchy of bounding volumes, u can be computed on the fly. This procedure is efficient for freefotm surfaces and allows one to save the memory for the acceleration data structure, which is replaced by a small stack of the bounding volumes that have to be traversed by backtracking. The subdivision is continued until the ray surface intersection lies in a bounding volume that collapsed to a point in floating point precision or an interval of a small size. Section 2.1.1 of the Appendix sets forth a code listing in accordance w ish this aspect of the invention.
01602.5. Radix Sort Processing
0161Using regular grids as an acceleration data structure in ray tracing is simple, but efficiency suffers from a lack of spatial adaptivity and the subsequent traversal of many empty grid cells. Hierarchical regular grids can improve on the situation. but still are inferior as compared Io bounding volume hieraichies and 3D-trces Howesei. regular grids cat) be used Io improve on the construction speed of acceleration data structures The technique for constructing the acceleration data structures are similar Io quick sorting and are expected to run in 0(H log n) A.n impiovenicnt can be obtained bj apph tng bucket sorting, which runs in linear time Therefore the axis-aligned bounding box of the objects JS partitioned into n<sub>(</sub><sup>/</sup> n, - », a\ιs-abgncd boxes. Faeli object then is sorted into cxactK one of these boxes b\ one selected point, e.g., {he center of gra\ its' or the first vcrtc\ of each triangle could be used. Then the actual a\is-aligncd bounding box of the objects in each grid coll is determined Those axis- aligned bounding boxes are used instead of the objects lhεj contain as long as the bo\ does not intersect one of the div ision planes In that case the box is> unpacked and instead the objects in {he bo\ will be used ditectK Tins procedure saves a lot of conjpaπsons and rnenion accesses. noticcabb jmprox es the constant of the order of the construction techniques, and also can be applied reeutstvclv The abov e technique ts espccialh appealing to hardw are implementations. since st can be realized b\ processing a stream of objects
01622 5 i Construction on Demand
0163The acceleration data structuies can be built on demand, i e., at the ome when a raj is traversing a specific axis-aligned bounding box w ith its objects Then on the one hand the acceleration data structure never becomes refined in regions of space, w inch are iiπ isihlc to the ra> s, and caches arc not polluted b> data that is never touched On the othet hand after refinement the αbjccK possibh uitersecied b> a ta\ arc already in the caches
01643 Suninjai \ of Rcai-Timc Precision Ra> Tracing Techniques From the abo\c discussion, it will be seen that the present tmention addresses long know n issues in raj tracing and pto\ides techniques for ra> tracing having improved precision, o\ erall ^pecd and niemoη footprint of the acceleration data structures The unprox ements in numerical precision transfer to other tntmbcr &\ stems, as w ell as, for example, to the logai ilhtntc number sj stem used in the hardware of the ART ia\ tracing chips. Ii ts noted that the specific impJemciUalion of the iLEE floating point stands* U on s processor OΪ a dedicated hardware can sexerch influence performance For example, on a Pentium 4 chip detiormaii/ed numbers can degrade performance bλ a factor of 100 and more As discussed above, an implementation of the inv ention a\ oids these exceptions The \ iew of bounding volume hierarchies described herein makes them suited for real-time ra> tracing in an amoru/ed a«al\ sis, the described techniques outperform the pre\ ious state of the art. thus allow mg snore precise techniques to be tised. for example, for computing motion biur m ftilh animated scene. as in a production setting or the Hie It wύl be apparent from the abo\ e discussion that the described bounding volume hierarchies have significant advantages when compared with 3D- trees and other techniques, particularly in hardware implementations and. for huge scenes, in an amortized analysis, the described bou.ndi.tig volume .hierarchies outperform. currenJ 3D~t:rees by at least a factor of two. In addition, the memory footprint can be determined beforehand and is linear in. the number of objects.
01654. Additional Techniques
0166In addition to {he above-described techniques, other techniques according to further aspects of the invention may be used to improve the performance of a ray tracing system, These aspects of the invention include the following:
01674A, Constructing a Bounding Volume Hierarchy by Cutting of! Half Spaces
01684B. Clipping an Axis-Aligned Bounding Box by Four Axis-Aligned Planes
01694C. High Performance Setup of Acceleration Data Structures
01704D Efficient <sup>'</sup>Free EnIn-- .Node .Determination 4E. Bundle Traversal
0171Each of the aspects of the invention is described in further detail below ,
01724A, Constructing a Bounding Volume Hierarchy by Cutting off Half Spaces It is possible Io construct a bounding volume hierarchy by cutting off half-spaces. Using a half-space, which intersects an axis-aligned bounding box. a bounding vohimc hierarchy is given by ϊhe original bounding box and the new bounding box, which results from the intersection with the given half-space.
0173FlCi. I S shows a diagram illustrating the described technique. Tn FlG. I S, a bounding box 620 that is intersected by an axis-aligned plane 622. The plane 622 defines a smaller axis- aligned box 624, i.e., a half-space, which is a subset of the original box 620. Hie part of the original box, which is to be clipped, is determined by the normal of die clipping plane 622. During ray traversal, three cases have to be determined: The valid interval [N, F] on the ray intersects (1 ) only the original box 620; (2) first the original box 620, and then the clipped box 624; or G) first the clipped box 624, and then the original box 620. The described technique can be applied recursively in order to represent a bounding volume hierarchy constructed from the axis-aligned bounding box of the scene and half-spaces A binary tree is used to represent the hierarchy. The inner nodes of the tree represent the half- spaces.
0174The described technique provides many of the advantages as the techniques described above. In addition, the memory footprint of the nodes is smaller. FIG. 16 shows an exemplar}<sup>'</sup> code listing 630 embodying the described technique, it should be noted that leafs can also be encoded by using {he 4th case of the projection axis. i.e.. bus 0 and 1 are "one.<sup>"</sup> which is not used in the code example.
0175Intersecting a ray with the bou.tidi.ng volume hierarchy is done depth first, where in each node, only three cases have to be distinguished, as discussed above: The valid interval of {he ray intersects { 1 ) only the original bounding box; (2) first the clipped bo\ and then {he original box; or (3) first the original box and then the clipped box.
0176FIGS, ! 7A-D show an example of a code listing 640 for implementing the tracing of one ray through a bounding volume hierarchy . For the sake of efficiency, the implementation avoids visiting empty leaf nodes. Visiting all empty leaf nodes simplifies the implementation at the cost of efficiency .
0177The triangle test used is highly optimized. However, any other triangle ray intersection {es{ can be used as weii.
01784B. Clipping an Axis- Aligned Bounding Box by Four Axis-Aligned Planes FlG. 18 shows a diagram illustrating a technique according to a further aspect of the invention. In FlO. 18. ats axis-aligned bounding box 650 has been clipped by four axis-aligned planes LeflBoxL. RigMBoxL. LefiBoxR and RightBoxR. resulting in a left child bo\ and a right child box. The left and right boundaries of the left child box are defined by planes LeftBoxI. and LefϊBoxR. The left and right boundaries of the tight child box are defined by planes RightBoxL and RightBoxR. During ray traversal, five cases have {o be determined: The valid interval [N, F] on the ray intersects: ( 1 ) only the left child box; (2) only the right child box: (3) first the left child box and the right child box: (4) first the right child box and then the left child box; or (5) neither the left child box nor the right child box.
0179The hierarchy is represented as a binary free, where each node specifies two intervals along a selected axis. Opposite to a classic bounding volume hierarchy implementation, an ordering of the children nodes is possible, and it is not necessary to store full axis-aligned bounding boxes. Compared with the technique described in the previous section, a single node requires more memory. However, no special case of empty nodes can occur. In total, the memory then remains substantially the same, FlG. 19 stews an exemplary code listing 600 embodying the described technique. U should be noted that Seals can also be encoded by using lhe 4th case of the projection axis, i e.. bits 0 and 1 are "one." which is not used in the code example.
0180FIGS. 20.Λ-C show an exemplary code listing 670 of an implementation of a traversal using a tree built using the above data structure. The depicted implementation does not include certain optimisations. For example, as one of the intervals defined by a node can completely include {he other one along {he specified axis, a more efficient traversal would consider that case by not only selecting the first node to be traversed by the ray direction, but also by the selatne position of the mten ais itself As this optimization ts relatneh straightibmaid n has not been included m llio present example
01814C I Jigh-Perfoi niance Setup of Acceleration Data Slrucmtes The setup proccduic of the tiee acceleration data stniciuics implicith nπøkes soiling algorithms which ha\e a time compicxitj of C t,n log «5 m the number n of triangles ()n!> radix bucket and ieiated swung algrx ithnis can obtain a lower order of time complexity
0182In Section ii below there is desctibed an instant ra\ tsactπg technique, in which rapsd tree setup ptocedures arc dev eloped These setup ptocedures m fsci \\eic used for senrag up a!! tiie data suucUites mentioned abo\c As described felon, a bucket soit preprocessing is described thai also can be used in a hieiarehical fashion, i e , using a hierarchy of reguiat grids Λ.s furthei described below a gtobai subdmston ciitcπon is used rathci than a loca! one
0183This setup iouϋne ib rapid for Ad-tiecs and bounding \oUιme hιeraκhic& ftm dcscf (bed technique is espectalh εfftcicm fci sεiting up the luciatch\ fioin subsection 4B abo\e A lot of candidate splitting planes are iminediatch rejected since the described technique does not onh svpaiate right ftora ϊcft nbjcc ls but in fact bounds, the uttc:\ ah spanned b\ the nght and left obiccts Thus the hierarcln becomes flatter and is e\cn more eillciciit to tovcrsc ^s these opUnii/ations aic rciatiscK sitaightforwatd thej have not been included m the example code listings heiein WTuIe ihe specification of in ten als along an axis as in section 4B allow s the efficient rejection ofra^ s that are outside these intcn als ti can in addition allow the efficient cutting off of empt\ Λohsmcs OH the olhei as.es This can be done b> specifx mg tlie clip \ olumc in the leaf nodes of (he hierarchies Λ simple hem istic nisei (s a bounding bo\ test in a leaf if the emptx Λ olumc of the leaf node is be\ ond a certain threshold Alternate eh , m the case of the techniques described in section 4 B, there max be inserted a test for the maximal]} missing two axes
0184A.s further descnbed below the acceleration daia structures can be buslt on demand meaning that onh the parts of the irees ate constructed that are \m\ used b_\ ia\ s. The required data is casilj stored m prelimuian, leaf ntxlcs Considering the techniques described m section 4B, it js also possible to maxnni/e einptv space instead of mimmi/ing o\ etlap
01854 U HTicieiH I tec Lntn Node Determination foi a gi\ en set of ra^ s the axss-altgned bounds ng bo\ csn be deiei mined in linear time m the number of raj % or determined in CΛ en constant time if more properties are know n For this bounding box, it is. ielatn eh straightforward and riuincncalh robust to deieiminc whether it lies on one side of a splitting plane oi intersects the splitting plane This technique can be used in a recursive procedure to traverse down an acceleration data structure as mentioned above. Tf the box lies on one side of the splitting planes identified by the inner nodes of the tree. ihis branch is used for further traversal Upon encountering a leaf node or a plane, which intersects the ray bounding box, tins node is identified as the common entry node for the bundle of rays Then, instead of traversing the rays from the root node of the acceleration data structure, the traversal can be started from the entry node.
0186The advantage of this technique is that, instead of intersecting all rays with the splitting planes, only one bounding box is tested against the splitting planes, thus saving a lot of arithmetic compu tations. The described technique relies on ray bundles ihst take a smaH fraction of space instead of coherent directions, which is much harder to achieve, especially tor secondary rays. ϊt is simpler to implement and more general than other techniques.
01874E. Bundle Traversa! According to a further aspect of the invention, ray bundle intersection, routines have been implemented wherein SIMD instructions are used to simultaneously trace a bundle of rays through the different acceleration structures The implementation is derived from traversed ray- bundles in 3d trees. It is noted that the optimization introduced can also be used with the described bounding volume hierarchy representations.
0188Tl. Instant Ray Tracing
0189There are now described ray tracing techniques and systems that allow an acceleration data structure to be constructed instantly. The described techniques and systems are based on a global heuristic, which significantly- improves upon previous techniques based on local criteria. Besides speed, the described techniques and systems have a number of advantages compared to previous techniques. The described techniques and systems arc simpler to implement, exhibit higher numerical precision, and use only a fraction of the memory used by prior techniques. The described techniques and systems have been demonstrated by extensive measurements of their application to massive as well as dynamic scenes. The present: description is organized into the following sections:
01901. introduction
0191As discussed above, ray tracing is a core technique in photorealistic image synthesis by global illumination simulation. It also underlies many other simulation methods. Recently. real-time, ray tracing has become available. Current ray tracing algorithms owe their efficiency to additional data structures that are constructed beforehand based upon an analy sis of the scene geometry. The construction of additional data structures typically requires considerable amounts of processing time and memory . Consequently, preprocessing has typically amortized only for cnvπonmenis that ace static or that contain moderate dynamics.
0192Software .ray tracing can compete wish .high-end graphics image synthesis hardware for massive geometry. Further, the acceleration data structures of ray tracing cats be used to enhance the performance of rasterisation. Compared to immediate-mode rendering on a rasterizer, however, the construction time and memory footprint<sup>"</sup> of the acceleration data structures have been prohibitive.
0193Described herein is a hierarchical acceleration data structure for ray tracing that can be constructed much more efficiently than dala structures constructed using prior techniques. The procedure has proven Io be sufficiently rapid to aHow interactive ray tracing of dynamic scenes to be made available even on monoprocessor systems.
0194FIGS. 21 A-D shows a series of images 705 -704 from animations and interactive applications generated using the rax tracing techniques described herein at interactive rates on a single processor. FlG, 2 I D shows a scene from Quake lϊ (Td Software, www idsofhvare com). Applying the techniques described herein, it has been found thai
0195Quake I! can be played smoothly on a dual -core processor with one shadow, reflections, and transparency .
01962. Principles of Accelerated Ray Tracing Generally speaking, a "scene<sup>"</sup> is an arrangement of objects within a three-dimensional space. The basic task in ray tracing is to search for the closest point of intersection of each ray with objects within a scene. Generally speaking, when tracing extremely large numbers of ray s for image synthesis, it is not efficient to test for intersections of each ray with all of the objects in a scene Therefore, it typically amortizes to construe} additional data structures that split the scene into a number of partitions. Once the scene has been partitioned, a partition-level search. often a backtracking search, can be conducted that excludes most of the objects in the scene from actual intersection testing.
0197Two basic approaches arc currently used to partition a scene. A ftrst approach is based on spatial partitioning, according to which the scene is partitioned into a set of disjoint volume dements that may or may not be the same size. A second approach is based on object listing, according to which the scene is partitioned into a hierarchy of lists of objects contained in lhe scene. These two approaches are briefly sketched in the following subsections. As further discussed below, aside from amortizing the construction cost of the acceleration data structure, there are situations in which the additional cost of not only tracing single rays, but also ensembles oCtavs, can amortize. 2.1. Accelerated Ray Tracing Based on Partitioning of Space The space containing the objects is partitioned into disjoint volume elements. .Efficiency is obtained by enumerating the volume elements intersected by a ray and then testing the objects within the enumerated volume dements for intersection. A major disadvantage of space partitions is that objects often have non-empty intersections with more than one volume element, and are therefore referenced more than once. This redundancy results in a huge memory footprint and may require a mailbox mechanism to avoid performance losses arising from multiple tested intersections of a single rax with the same geometric object. In partitioning the space, the resulting volume elements may form a regular grid.
0198Alternatively, for example, using a binary space partitioning scheme, the space may be split info a hierarchical tee of voxels (volume cells), and sub-vo\els. Each approach is discussed in turn.
01992.1.1.. Space Partitioning Using Regular Grids
0200In a partition based ou a Tegular grid, the space is partitioned into a raster of identical rectangular axis-aligned volumes. This regular structure allows for simple techniques for enumerating the volume elements along a given ray. Each volume element contains a list of the objects that it intersects. Thus, only the listed objects in the enumerated volume elements are tested for intersection with the ray.
0201The memory footprint of (he acceleration data structure cannot be determined α priori (i.e., in advance). Because objects can intersect multiple volume elements in She grid, the memory Footprint cannot: be determined until the space has been partitioned and the objects listed. Thus, dynamic memory management is required. The date structure is constructed by rasterizmg the objects. Rasterization is typically performed using variants of an object-volume intersection routine, which is nuinericaily unreliable due to the finite precision of floating point arithmetic. Rastenzing the bounding box of an object is numerically stable, but increases the memory footprint.
0202The efficiency of the regular grid approach sutlers severely when traversing empty volume elements, especially in massive scenes. One solution to this problem is to use hierarchical grids that allow empty space Io be traversed faster, while still having a moderate number of objects per volume element. Switching between the levels of the hierarchy, however, is computationally expensive and can be achieved more elTicienlly by other spatially adaptive schemes. 2 1 2 Binan Space Pas teteon
0203\ binary s>pacc paiuuon is a hiumchtcal data stiuciiuc The gcncial idea is Io subdn idc a scene space using arbittan splitting planer A fiisJ arbittai \ plane is used to ώwάe the scene space into tv* o cells -YddUsonal aibitras \ planes are used Io adapt J\ eh dn sde each of {he two cells into sub-cciis The process is repcajed teem such in oidct to generate a biiiars search uec hadi leaf cell of the generated seaieh tsec is a \olu«ιe clcrneni thai contains, a list of objects miet meeting the leaf cell
0204A bman space partitioning scheme helps fo o^eicome {he ciϊϊαetic\ issues of regulaj gilds caused b\ emph \ol«ιnc ckraentb Iu poh gnikil sceues. an obMOiis choice foi the location of the split! nig planes is to use the planes deici mined b\ the poh gons themsch es IloweλCi it is oisrrenth not known ho\s to do llus in an opUmai w ύ\ and randomized aigoi ithms. arc c\]3ccted to \ ieid uecs of quadiattc si/c based on she number of obj^cfe in the scene
0205\ 1Λ pe of ti ce know n as a A-dnn«.iJMθual tret, ot 4d-trec iesti icts binatΛ &pace paitstsons to using onh plsties ihat tare pctpcndieulai to the cstionteal axes Since all notτnaSs of the subdι\ isjon planes comoidc \s tth a mm \ectoi of one of the canonical axes scalas pioducts and obicct-\o!umc ciemeni JRICJ section tests become more efficient and immcricalh iobisfet than those obtainable u&mg a bmars s>pace partition soheine that is not avis-ahgned A.!oug Λ\ ith heumucs foi subdn isson Ad-tice^ Jia\c been α&cd sitcccssfulK for aceciciating ta\ ttactng Honc\ci the determination of how a Λ OIUΠIC element iutei sects an object remains a nunκiκal JSMR'
0206Λs w ith all spatial paitstsonitig schemes m a λd-trec~based scheme objects camcstde m more than one Λolume element <sup>£</sup>\ithoιsgh the nunibei of mititφle references eaϊi be effecmch reduced bs allow ing oni\ paiUUorung planes through the vertices of the obicαs oi tlnough the sides of avis-ahgncd bounding boxes the number of reference*; cannot cfliαentK be bounded a pnon Consequent!} niemon mansgenicnl becomes an issue dun ay. the construction of the l«eran,h\ known heurϊitics used for mcmon estimation and allocation can be fάt iao pessunistic for some scenes or CΛ CH ^oise can resuU in \ aπous seaϋocatioiss if the mcmon footprint incieases during the eonsii uι,lton phase These icaiiocatton<sup>ς</sup> can iesull in ygnificam performance losses
02072 2 ^ccclciatcd Ra^ 1 racing Based on Paititionmg oi Object i ists V\ hen partitioning a h si of objects each object icmaiπs refeienccd at mosl once .»id it is thesefore possible to predict mcmorv requirements uptιot> h\ addition each object ΪS. intersected at most once v, nh a gι\ en ra\ C onsequcuth mailbovcs become t eduudaul Vs an unaΛoidablc consequence howe\cr the \oiumes enclosing gioups of objects often cannot be di^ioint 2 2 I Bounding \ olumc Hierarchy
0208A bounding \ oiume hietaich\ K a i\ pe of partitioning scheme m \\ hich objects in a scene ate bounded b\ axis-ahgncd \ohimc elements funding \olume hieraichics are commonh used in industi x since memoπ requirements, can be bounded lineatlv a prion, based upon the number of objects, Implementing bounding Λ oiunie hierarchies does not require object-plane niter section routine*, As a consequence, lhc\ aic simpler to implement than spatial partitioning schemes I <sup>r</sup>smg <i\is-aligncd rectangular bounding \ oiume elements a\ oids. aiϊ\ πtmieπcal s>tabiiit> issues, during const! ticiion as. onh minimum maximum opei ations are used
0209These exist heuπstics for both bottom-up and top-down cofistrucuon of bounding \ oiume hictaichics TJ\e usual hcυmtic is to minimi/e the oxαall \ olumc of area of all bounding -volume elements F\act optimization prøceduics aiong these lines are prohibimeh slow CαrrentK , it is not cleai which coii^titKUon tcchmquc is the most efficient Sε\ere performance penalties stem ft om the fact that in contrail \\ iih space paittttotis the bounding \olιunc elements, are not ordeted spatialh T ims usualh ail child nodes ha\c to be intct seeled w ith a ia\ , and an eaiK piunmg is impossible
02102 3 Sumnian/ing Cut tent Approaches to \ccdeiamd Ra\ Trac ing Thc simpijcitΛ numeπcaJ sobusfncss and picdiotablc nicition footprint make bounding \ ol time luei ai chics, an atu ac ti \ v ehnic c foi accelerated t a\ traung How e \ ei c uircnt perfoi mstice is far from w hat is obtainable using λ'd-lrces W the prsce of genet al K unpredictable memon requirement-, and numei icai issues, arisiiπg during the construction of the accclctation data sirυclurc Ad-liees can be used to oblam real-time petlbimance for static and moderateh d\ namic scenes
0211Both pt mcipa! approaches, t e , iho&c based on either space paititionnig oi on object lists suffer from construction routines, that aie far from re<d-ume and use greed\ algorithms I\en the most successful tmplementalton the surface area heunstic. is extsemeK tsme- consummg Λs this heuπsiic tequues a significant amount of anah sis of scene gcomctn and huddling the construction of acceleration data structures foi a complex mesii can easiK range fi om minutes to c\ en da; s
0212Csmg current techniques u is possible to seduce data stmcture construction times to lhc pomt whcic thc\ amort i/c for static scenes \cr\ moderate dy namics oi deformabics However, tt is. far more difficult foi construction tunes, to amotti/e in fiillv d\ namic settings Current attempts to deal with fulls d\ru»mjc scenes use an apptoaoh based OH. regular grids, tt tth all its dιsad\amages, and aic onh efficient for scenes of modctatc compie\ιu 3. The Bounding Interval Hierarchy
0213An aspect of the present invemion provides a technique, based on a <sup>"</sup>bounding interval hierarchy," that offers significantly increased speed for both static and dynamic scenes, features much higher numerical precision, and allows the memory footprint to be fixed a prion. The described techniques, thus, combine the advantages of spatial partitioning and partitioning object lists. Comparisons with two fully optimized, state-of-the-art, &d-tree-hased ray tracers show {hat the described technique can outperform a M-tree-based {cchniquc for most scenes by a factor of two or greater for both total rendering time and overall memory consumption. Some of the results obtained using the described techniques are set forth in the table shown in FiG. 37, discussed below.
02143.1. Data Structure
0215For each node in the data structure, a hounding interval hierarchy stores, for one of the
0216X-, > -, or z-ax.es, wo parallel planes perpendicular to the axis. By contrast, in a classic bounding volume hierarchy a full axis-aligned bounding box is stored for each child.
0217According to the presently described technique, given a bounding box and a selected axis, a left child L is generated by replacing {lie maximum value along the selected axis by an
0218L splitting plane. The right child R is generated by replacing the minimum value along the selected axis by an R splitting plane. Thus, the left side of the generated L child w ill be inherited from the left side of the parent bounding box. and the right side of (he L child will be the L splitting plane. The left side of the R child will be the R splitting plane, and die right side of the R child will be inherited from the right side of the parent bounding box. As described in greater detail below. the L child and R child may or may not overlap. Tf the placement of the splitting planes results in a child with zero volume, the zero volume is used to represent an empty child. As discussed below, the described technique allows the storage of empty leaf nodes So be omitted.
0219FIGS. 22 A-E and 23A-D are a series of diagrams illustrating differences between a binary space partitioning technique and a bounding interval hierarchy. FIG. 22A shows a bounding box 720 containing six geometric primitive objects 721-726. in this case, triangles A ray 730 traverses the bounding box 720,
0220FfG 22B illustrates the use of a binary space partitioning technique. A central splitting plane 740 is used to subdivide the bounding box 720 into an L child and an R child.
0221As shown in FIG. 22B, objects 721 and 722 are entirely contained within (he L child, and objects 725 and 726 are entirely contained with the R child. However, u will be seen that the middle two objects 723 and 724 intersect the splitting plane, and are therefore intersect both the L child and the R child. The middle objects 723 and 724 are therefore referenced in both the L and R child volume elements. H(J 22C shows the bounding bo\ of FΪG 22 A which has been subdivided using a boundary in ton al hieiaich\ technique accoidtng to the picsent itnentton Fach of the piimtln e obiecis 721-726 in the bounding box 720 is classified as a left object oi a nghi object based upon then position retain c Io a candidate splttung plane Axcorclmg to a further aspect of the nnemion discussed below the location, of the candidate splitting plane ma\ ad\antageouU> determined at a global scenic ie\el, ialhcr than local!) Where an obicct ts intersected bj a candidate splitting plane, the object is olas-stficd as iofl ot i iglit depending upon winch side of the plane the object intersects most
0222Once all ø( the objects. ha\ e been classified as L objects ox i fght nbjcc (s an ax ιs- aligned ! splitting plane is placed at the maximum s c tight most, pes nt of i he 1 objects according to the selected axis Similar!} an axis-aligned R splitting plane is. placed at the mimniunj i c , leftmost, point of the R objects accoidmg to the selected axis in FlG 22D, the L sphltmg plane is teprescnted b> bracket 7Η<sup>)</sup>, and {he R splitting plane ss represented b\ biaoket 752 The L and R sphltmg planes split the bounding bo\ 72u into an L child and an R child that, in the present example m etlap
0223A.s dcscs ibed abo\ e the left side of the L ehi Id is mhented from the left side oΫ the parent bounding box 720, and the i ight stde of the L child is ihc I splitting plane 7>0 Siinilaj h , the left side of the R child is- the R sφiHUng plane <sup>7</sup>^2, and the light side of the R child is iiiliciitcd fiom the paient bounding box 72lϊ For puiposos of claiiu the resulting 1 child and R child aic diawn sepaiateh in FiGS 22ϊ> a«d 22F
0224FIGS 2^ '\-D illositiatc a second case illnstiatmg the diffcieπce between a binan space partstsoBing scheme and a bøyndsng ioicn al hicrareh\ MO 23A shows a diagram of a bounding bo\ ?t>0 is. shown containing a nuinbei of objects 76i-76f> Λ ra\ <sup>7</sup>?0 tun etses the bounding box 500 HU 23B shows the application of a binan sjjace paittttonmg sclicine Hie bounding box is dn idcd b\ a cential splitting plane <sup>7</sup>^O into abutting L and S child \olnmc clement ϊn this example, none of the contained objects 7<>l-7f)6 intersect the splitting plane 780 Ho\\c\cr it will be seen that the tax 770 tsa\ erscs a significant amount of eiapt\ space in both the L and R cells In FlG 23C a bounding interval hienoch} approach is. applied The objects are classified as t oi R objects based upon then posiiion telatne to a candidate splitting plane Heic asstinnng a central J\ located candidate splitting plane, the classification pioccss is straightforward, smce objects 76! -7M arc ϋeailj Io the left of ccntei and objects. 764-<sup>7</sup>66 aic cicaih to the t ight of center Λn L splitting plane 790 is placed at the maximum i e , rightmost pomt of the L objects, and an R splitting plane 792 is located at the mimmara i e , leftmost point of ihe R objects Once again, the left side of {he L child is inherited from (he left side of the parent bounding box 760, and the tight side of the L child is the L splitting plane 790. Similarly, the lefl side of the R ebiSd is the R splitting pSane 792. and the fight side of the R child is inherited, from the parent bounding box 760. For purposes of clarity, the resulting L child and R child are drawn separate!}- in FiG. 23D.
0225As shown in FlG. 23D. in this example, there is an empty space 794 between the two cells. Returning so FTG. 23 B, it will be seen that in a binary space partitioning technique, only four traversal cases need to be accounted for left only (L). right only (R), left-then-right (LR) and right-lheπ-left (RL). However, as shown in FIG. 23D. in constructing a bounding volume hierarchy , there is a fifth case that needs to be accounted for, i.e., the "empty volume<sup>"</sup> case. However, it will be appreciated that the bounding interval hierarchy results in a significant savings in computations! cost, because it reduces the amount of empty space that is processed within an individual cell.
0226Thus, it will be seen from FTGS. 22A-E and 23A-D that the described technique significani.lv improves over currently used binary space portioning techniques by, first, eliminating intersections between objects and splitting planes and, second, by significantly reducing the amount of empty space in child volume elements.
0227FIG. 24A shows an exemplary code listing 8*X<sup>)</sup> for defining a data structure for use with the above-described techniques, and FIG. 24B shows a 12-byie memory layout S lO of the data structure. The inner nodes of the tree are described by (1 ) the two splitting planes 812 and 814 defining a bounding interval and (2) a pointer 816 to a pair of chiklren. As this sums up Io 12 bytes in total, all nodes are aligned on four-byte boundaries This alignment allows the use of the lower two bits 81 S and 820 of the children-pointer to indicate the axis (00: x, 01 : y. 10; i.) or a leaf (case 11). Leaf nodes comprise a 32-bit pointer to the referenced objects 822 and their overall number 824. The overhead 826 of four by tes in the leaf nodes can be resolved by a careful implementation, as they use only eight bytes out of the node date structure. It should be noted that aspects of the depicted code listing and data structure, including the use of a 12-byte memory- layout and a 32-bit pointer, are specific to the example implementation, and may be modified for different computing environments having different word sizes.
02283.2. Ray Intersection
0229Intersecting a ray with a bounding interval hierarchy binary tree is similar fo traversing a bounding volume hierarchy. (As discussed above, a bounding volume hierarchy is a partitioning technique based on a list of objects contained within a scene.) However, unlike the children \ι\ a bounding volume hierarchy, the children in a bounding interval hierarchy are spatially ordered. Thus, a bounding interval hierarchy can be processed much more efficiently than a bounding vohimc hierarchy, since it is possible to directly access the child that is closer to the ray on gin by the sign of the ray direction. Tims, as illustrated in FΪGS. 22A-E and 23 A- D. discussed above, the traversal becomes almost idemica! to that of a A'd-irec -based spatial partitioning
0230In analogy to bounding volume hierarchies, it is also possible to not intersect any child at all if the valid ray segment is between two non-overlapping children, as shown it) FTG. 23D. Handling this additional case is beneficial, because it implicitly skips empty space. Consequently, empty leafs can never be accessed and therefore do not need So be stored, as mentioned above.
0231In contrast to spatial partitions, the volume elements of a bounding interval hierarchy can overlap. Consequently , the recursive traversal cannot stop as soon as an intersection is found. It is generally necessary to test all remaining volume elements on the stack for closer intersections. However, as soon as an intersection is found, branches of {lie hierarchy can be pruned if they represent volume elements farther away than the current intersection.
02323.3. Construction of the Hierarchy
0233The key to the performance of the described data structure is us efficient construction. Assuming a given candidate splitting plane, the technique used in the presently described implementation is relatively straightforward: Each object is classified as either a "left object<sup>"</sup> or a "right object" depending on vhich side of She plane it overlaps most. Other heuristics may be used to classify the objects as left objects or right objects. The two partitioning plane values of the child nodes are (hen determined, respectively, by the maximum (i.e., rightmost) coordinate of the classified left objects and the minimum (i.e.. leftmosi) coordinate the classified right: objects, along a selected axis.
0234A further aspect of the invention provides a technique for determining the location of candidate splitting planes for use in the construction of bounding interval hierarchies.
02353.3..1. Global Heuristic for Determining Splitting Planes
0236There is now described a technique for using a global heuristic to determine candidate splitting planes, Unlike previous approaches, the described heuristic is non-greedy and is cheap to evaluate, because it does not explicitly analyze the objects to be ray traced.
0237According to the presently described technique, candidate splitting planes are used that result from hierarchically subdividing an axis-aligned scene bounding box along the longest side in the middle. Ii should be noted that, applying this techπkpe, all of the candidate planes form a regular grid. FIOS. 25 A-D show a series of simplified diagrams illustrating the determination of candidate splitting planes without object analysis. FTG. 25A shows a bounding box 830 that has been split by a "first generation" candidate splitting plane 831. The splitting plane 831 passes through the center of the bounding box 700 dividing it into an L 1 region and an Rl region. Tt is important to note that She Ll and R S regions arc not children, but instead provide an indication as to bow objects residing in those regions are to be classified In actuality, as described above, one or both of the children may overlap the splitting plane. Also there may be an empty space between the children. Tn addition, one of the children may have a zero volume.
0238FlG, 25B ihows the bounding box 830. \vh ich is split by the first splitting plane 831 , and by a pair of "second generation<sup>"</sup> candidate splitting planes 832. The candidate splitting planes are all "single" planes, even if they coincide. They are generated during recursion. The second generation planes 832 are used to determine L2 and R2 for a second generation of children.
0239FIGS. 25C and 25D show the bounding box 830 split by third and fourth generation planes 833 and 834. These planes 833 and 834 determine L and R for the third and fourth generation of children (respectively, Ϊ..3/R3 and 1.4/R4). The process continues recursively in order to generate as many generations of candidate splitting planes as .necessary .
0240Because the candidate splitting planes are determined globally without an analysis of the particular objects contained in the bounding box 830. it wtii be seen that, in certain situations, it is possible that the globally determined candidate splitting plane for a particular generation may lie outside of She bounding box. of a patent volume element of that generation to be subdivided. Jn that case, the process is continued with candidate planes King within the half in which the parent volume element resides.
0241The use of the globally determined candidate splitting planes is now discussed wish respect to a specific example. FTG. 26 shows a diagram of a bounding box 840 containing six objects A-F FTG. 27 shows four generations of candidate splitting planes superimposed over the bounding box 840, and FTG, 28 shows the splitting planes of interest in building a bounding interval hierarchy based upon she particular set of objects A-F contained in the bounding box. FlG. 29 shows a diagram illustrating how each of objects A-F are contained in child bounding boxes of various generations, determined in accordance with the presently described techniques. FlG. 29 is now explained, generation by generation.
0242FTGS 30A-D illustrate the first generation of children generated from the FTG. 26 scene 840. In FiG. 30A. the globally determined the first generation candidate splitting plane 841 is used to classify objects A-F as L objects or R objects. Clearly, A-C are L objects and objects D-F are R objects. FlG. 30B shows the first generation of L and R children. The right side of the. L child is a plane passing through the rightmost point of the L objects, and the left side of the R child is a plane passing through the leftmost point of the R objects. FiG. 30C shows the result L and R children. FKJS 31 A-C illustrate the second generation of children ϊn FTG. 31A, the global!} determined second generation candidate splitting plane 842 is used to cϊassi I\ the objects in the first generation children into 1, and R objects, and as shown in FlG 31B, L and R chtldrcn are generated according to the described technique The resulting second generation children are shown in FΪG 31C On the right side of the diagram, it w ill be seen that the position triangles D and F result in overlapping children, winch ha\ e bean separated for claim .
0243FlG Λ2A-C illustrate the third generation of children H will be seen that since the candidate planes tene been generated globaih . the candidate splitting planes 843 in the present example arc off-center, and do not subdiv idc the child boxes into faoκes of equal \olnnic. FIG. 32B show s the placement of L and R splitting planes and FIG. 32C show s the resulting clυldien. ft should be noted with iespect to the bounding box containing objects A and B that {he described technique results m an R child having an empty \ohmie. The resulting I. child contains objects A and B, but with reduced emptx space
0244FIGS Λ3A-E show the generation of children for objects A and B Ai shown in FΪG 33 A the global K determined candidate toy tth generation splitting plane K44 do not di\ sde Λ and B tnto L and R objects Rather, both are classified as R objects. Because the left side of<sup>"</sup> the bounding box is. determined b\ the leftmost point of the R objects, the result is an empty ■Λoiume L child and an R child inheriting all of its sides from its parent
0245\$ shown in FlG 33B, because the candidate splitting planes ha\ c been generated gJobalh rather than localh . the fifth generation candidate splitting plane 845 does not bisect the bounding box. bit! rather lies outside of the bounding box Il « ill bo seen in FlG 33B that the bounding box resides to the left of plane $4> Thus, as described abσvc. the process continues with candidate planes h ing to the left of plane 845.
0246FlG 33C shows the sixth generation candidate splitting plane 846. This time, the candidate splitting plane 846 dnides the bounding box such that A. is now an L object and B is an R object. FIG ?3D shows the placement of L and R splitting planes, and FlG. 3?E shows the resulting L and R children
0247Together with the technique described in the pre\ tous subsection, the object list ts recursrvely partitioned and bounding boxes are al\vs> s aligned to object bounding boxes If a splitϋng plane candidate separates objects v> nhoirt o\ eilap. the iesulting splitting planes implicitly become tsghlK fitted to the objects on the left and right thus «mimt/mg emptΛ space, as show n in FIGS. 23C-D. Although the recursion terminates when on l\ one objcef is left, it is efficient to define the number of objects, for which a recursion still paj s off.
0248It is important to note that the splitting plane candidates are not adapted to actual bounding boxes of the inner nodes, but are soleh determined by the global bounding box of the scene, ϊn other words, after child cells h<τve been defined after one iteration, the subsecnientK used candidate plane is not the midpoint of (hat new cell, but is rather the corresponding initial global candidate plane
0249This aspect of die technique is different from previous approaches, and lends to keep bounding boxes as cubic as possible throughout the whole hierarchy.
02503,3,2, Approximate Sorting
0251The amount of lime required to construct me above-described data structures is O (n log «), o« the average. According to a further aspect of the invention, a bucket sorting prεprocess is used io decrease the constant of the order. In a bucket sorting preprocess, a high-level sort is performed in which individual items to be sorted are first sorted into <sup>"</sup>buckets." For example, sotting a deck of cards by rank and suit may be accomplished by first sorting the cards into four piles by suit, and then sorting each individual suit pile by rank. Each suit pile functions as a bucket. Generally speaking, dividing the sorting .function in this way tends to decrease the overall amount of time required for the process.
0252Similarly, the amount of time required to sort the objects in a scene into a hierarchjcaiiv ordered set of bounding boxes containing the objects may be significantly reduced if the objects are first preliminarily sorted into meaningful backets containing like numbers of objects for which bounding boxes are to be constructed FIG. 34 shows a flowchart of a method 900 according to this aspect of the invention. in step 901, the size of a scene bounding box and the average size of the objects contained therein are computed in order to determine the resolution of a regular, ordered grid.
0253Alternatively the resolution can be specified by the user. As shown in step 902. each grid cell includes a counter, ϊn step 903, all of the counters are set to zero, In step 904, one point for each object, such as. for example, one corner of its bounding box, is used to increment die counter in die grid cell containing that point, ϊt is worth noting that the point selected "for<sup>"</sup> an object does not necessarily need to be a point "on<sup>"</sup> the object. it will be seen that the number of points within a particular grid ceil may vary widely . depending upon how the objects are distributed within the scene, it may be possible for some grid cells So contain only one point, or even zeto points. It Λvill further be seen that since one and only one point for each object is counted, the sum of all counters equals the number of objects.
0254It will further be seen that objects may overlap more than one eeH, or even several grid cells. Also, it may be possible for most of an object to reside outside of the grid cell in which the object's selected point resides, ϊt will be seen thai<sup>1</sup> such occurrences may reduce the overall amount of time saved by the bucket sort, but will not affect the validity of the final data structures.
0255IiJ step 905, the counters ate then transformed into offsets by replacing each counter by the sum of all previous counters in the voxel order of the ceiJs/voxeis in the grid, or in the order in which they are laid out in memory
0256In step 906. a global object<sup>"</sup> index array is allocated, In step 907. using the same point of even- object, the objects now can be sorted into buckets of like sue, using She offsets from step 905. As discussed above, the sum of the grid counters yields the number of objects in the scene and determines the size of the index array. Hie bucket size is determined by the number of counted objects within.
0257In step 908, for each bucket there is computed, as described above, the bounding bov of the objects it contains.
0258Sorting the bounding boxes instead of the objects they contain speeds up construction by a factor of two to three. If a volume element consists of one container only, the container is replaced by die objects w-.ti.hin The resulting trees are very similar in rendering performance and size, as illustrated In FIG. 42, discussed below.
0259By using this simple streaming technique, it is possible to partition a scene using a limited amount of memory and in linear time. Even the index array can be processed in chunks.
02603.3.3. Implementation Details
0261Because the bounding interval hierarchy is an object partitioning scheme, all object sorting can be done in place and no temporary memory management is required. The recursive construction procedure only needs tvvo pointers to the left and right objects in the index array, similar to a quicksort-based technique. On the other hand, spatial partitioning schemes need to handle objects that overlap volume elements. For example the recursive /αi-tree construction needs a vast amount of temporary data to be placed on the stack to be able to continue with backtracking later on.
0262A variant of the above scheme can alleviate these inefficiencies and makes in-place sorting available for /id-trees, The procedure requires a second array of object .references that is used to keep the objects that are classified as <sup>"</sup>both left and right<sup>"</sup> (i.e., as overlapping the A"d~trse splitting plane). Testing w ilh a large number of scenes has indicated that the size of the second array can be chosen by a default \aSυe. Generally speaking, a length equal to the number of objects is far more than what would be required 99 percent of the time. However, because the reai length of the array cannot be predicted, it might be necessary to reallocate memory.
0263The procedure is illustrated in FIGS. 35 and 36. f IG. 35 shows a series of pairs of arrays 920. in which the tipper array illustrates in-place sorting of object indices, and in which {he loner atτa\ illustrates storing operations onto the global stack during tree construction. The scries of arra> pairs proceeds from left to right and top to bottom.
0264Iti the ftrst ran, first column, the upper array contains a set of unordered elements In the second column, sorung the unordered arra> has mealed a left element, which sta\ s tn place, in the third column, the second element is an R element, which must go to the πghi. and is therefore exchanged w ith an iirtsortcd element from the right end of the upper arra\ .
0265Itϊ the second row , first column, the second element has been exchanged for an unsorted element from the right end of the upper amπ . in the second column, the clement now in second position is. repealed to be a "both<sup>"</sup> 0 e , oxerlappmg) clement, and is therefore moved to the global stack. i.c , the low or atra> in She ihsrd column, the rightmost unsorted element is moλ ed into the \ scant position in the array
0266In the third row, first column, the rightmost unsorted element has been ιno\ ed into the vacant second position in the array This element is now revealed to be an "R<sup>"</sup> object and ts mcncd to the vacant position at the right side of the arraj The third column show s the upper arra> confijjuralton that results after this men a.
0267The process continues reeursivels until all of the elements ni the arras have been ordered, as show n m row n As shown m the first column of row n. the sorting operating has re\ealed thiee "both" objects, winch arc stored in the first three positions in the lower arra\ In the second column, the three <sup>"</sup>both<sup>"</sup> objects are mo\ cd into the upper arraj in the \ acani positions between the L and R objects. The third column shows the completed sort.
0268FlG 36 shows a series, of three arra> pairs 930, illustrating the restoring of stacked object mdjccs aikr a stack "pop<sup>"</sup> operation.
02693 4 Construction on Demand So far the presented framework alreach allows for interactive ra> tracing However, construction time and mcinoπ footprint of the acceleration data structure can be farther optimized b\ constructing it onl> , w here ra> s tnπ erse. i.e . uhere geomctn, is intersected Fhe implementation \s nh the bounding titters al hierarchy is relatt\ eh stratglitfomard and is cspeeiaih beneficial for large scenes that feature a high depth complexity . Since all object sorting is done m place, onl> a Slag is required to mark \ oluroe elements that hm e not > el been sυbdiλ idecl. Upon tra\ ersal of a rav . the subdix isϊon routine is called sf the Hag is set. A simple optimization is to subdivide a node completely, if all objects contained in it fit into the cache (e g 1.1 - or 1.2-cachc i The on-demand construction removes, the classic separation of trax ersal and construction routines, I'smg this simple extension it was possible to render the Boeing 777 mesh shown in FlG 22 at HDTV resolution m 3-9 minutes (depending on camera position) from scratch on a single core Optcron 2 2 GH/. 32GB RAM machine Compared to pκ\ ious approaches onh a fraction of incmorj is used. 4. Discussion
0270The boutiding interval hierarchy is an object partitioning scheme that benefits from the efficient traversal techniques of spatial partitioning schemes. In this section, there are d iseυssed some of the advantages of this approach .
02714.1. Memory Footprint
0272Since (he construction algorithm matches splitting planes to object bounding boxes, the number of inner nodes in the hierarchy is bounded by six times ϊhe number of objects. In the case of polygons this number is boy tided by the minimum of the previous bound and three times the number of vertices. The number of object references exactly matches the number of objects in the scene.
0273Due to multiple object references, the latter bound is not available for spatial partitioning schemes as fσt example the Axi-tree. The problem becomes apparent, where objects feature a .locally high number of overlapping bounding boxes or almost random distribution: Jn the BART museum the number of replicated triangle indices was about 400 times (peak value) the number of {dangles, which also resulted in a 40 times higher number of nodes than in the hounding interval hierarchy. This problem is intrinsic to M-trees, as the first top level splits already duplicate a lot of object references. This duplicalive effect is often continued during recursion.
02744.2. Numerical Precision
0275The bounding interval hierarchy construction only uses bounding box information and m iiiinuiin/ maximum operations in the canonical coordinate system. As such {he procedure is numerically unconditional^ robust. Spatial partitioning schemes require object plane intersection routines that rely on operations that suffer from floating point itnprecisiotis. In order to make the schemes stable, tolerances must be added. As a consequence, performance suffers.
02764.3. Tracing Ensembles of Rays
0277If rays are coherent, it can pay off to trace ensembles (or arrays) of rays instead of single rays. While primary rax s easih can be grouped in coherent sets, it becomes already difficult to get the same benefits for ensembles of shadow rays from point light sources. Transparent, reflected, or rays from random walk simulations lack sufficient coherency. Nevertheless, given an ensemble of coherent ray s, the approaches to trace ensembles of rays benefit from the data structure described herein. This benefit is due to the reduced memory bandwidth and increased cache coherency resulting from the small memory footprint. Furthermore the volume elements appear generally larger than the corresponding volumes of a M-tree. which relaxes the conditions on coherency. Experiments have indicated that the speedup-ratio from single ray to 2x2-ray -bundle-tracing is sHghtJy higher for the bounding interval hierarchy as compared to a id-tree. Frustum-culling techniques have been successfully transferred to bounding volume hierarchies. These techniques can be readily transferred to the bounding interval hierarchy by tracking the current volume element<sup>"</sup> bounding box on the stack. Although she hierarchy also can be updated in other ways. She described contraction routine is significant!)- faster than the surface area heuristic, and removes the severe restriction to meshes animated by deformations. For 2x2 ensembles of rays the ray tracing performance obtained by the more general technique is at least as fast. Finally, she node data structure is much smaller For the sake of completeness, it is noted that ensembles of rays also can be efficiently traced using the grid acceleration data structure. However, large objects overlapping multiple grid cells, as well as secondary rays, cause severe performance losses. In general, the shaft-culling techniques fail over distance for diverging ensembles of rays.
02784.4. Hardware Considerations
0279Based on the recent findings in real-time ray tracing the RPU (ray processing unit) chip has been designed. While the architecture efficiently can ray trace and shade bundles of ray*, is can be easily improved by our approach: The bounding interval hierarchy has a much smaller memory footprint and as an object partitioning scheme does not need a mailbox unit. Only the TPU unit has to be extended by a second plane intersection. These modifications easily can be incorporated due to die similarity of She bounding interval hierarchy traversal to a M-tree traversal. More important the above-described data structure construction technique uses only simple operations and therefore is a very good candidate for hardware implementation.
02804.5. Massive Data Sets
0281Current data sets used in industrial applications and production rendering consist of massive amounts of geometry, which usually range from hundreds of megabytes to several gigabytes of raw date. Although, as discussed above, the small memory footprint of the boundary interval hierarchy allows massive scenes to be efficiently ray -traced by simple means, there still may be situations in which the data does not fit into the main memory. Accordingly. a minimal memory footprint renderer has been implemented, which is able to render pictures of the Boeing 777 using only 50 MB of RAM. if more RAM is available ( I. CiB was assumed for measurement purposes), it is possible to render a picture from scratch in less thau an hour even on a standard consumer desktop PC. as illustrated in FlG. 38 To achieve the minimal memory usage, the above-described preprocessing step is used to sort the objects into buckets, which arc then stored on the computer<sup>'</sup>s hard drhe For the rendering step, a top-le\el bounding inteπal hierarchy is created out of the buckets, w ithout the need to touch am object F.aeb bucket ihst ts intersected b> a ra> creates its on a itee using the cm-demand policy The bucket<sup>'</sup>s objects and the acceleration data structure arc kept tπ a cache of either dsnamtc (i.e.. able to grow uniii no more RAM is available) or fixed, user-defined si/e. The bucket with the largest number of objects defines the maximum memory footprint U should be noted that this result is obtained for free from tlic bucket sorting preproeess 1» this scenario, the processing speed ts determined b> the speed of the hard drh es The free construction algorithm ts so fast that, if parts of the acceleration data structure have to be flushed. they are just thrown m\&\ and rebuilt on demand
02824.6. Large Objects
0283Jt might be suggested that the bounding intenat hierarchy performance suffers when encounter ing a mixture of -small and large geometric elements While this is partially true, it is also true for spatial partitioning schemes In tins situation a ki-trce subdn ides the scene by inserting more splitting pJan.cs. This results in deeper trees, a duplication, of object references, and an overall increased memory footprint Deeper trees increase the traxersai time. The performance problem of boundary intcπal hierarchies i« such a scenario can be spotted by the example of the BART robots, show n in FlG » The scene ts made up oflargc triangles for the streets and houses, but also features a lot of finer geometry . such as the signs and the ualking robots As the large mangles cause large overlapping \ olumes in the hierarchy , an csrl\ pruning of the tree becomes impossible and more triangles per ra> ba\ e to be tested. The classic w oikaround m a rendering s> stem is to subd.it κ!e large objects beforehand In order to moderate!} increase memory . the objects shouid be div ided b> planes perpendicular to {lie canonical avrs While the memon consumption now increases similar to the Ard-vrce. tl is still possible to determine memory consumption a prion, As the described approach ts intended for production s> stems u im displacement mapping and a significant amount geometric detail, the abo\e discussion docs not impose problems. In fact, the problem orsh persists for Kw- poh gon-count architectural scenarios. E\cn older games h pically use 20<sup>(</sup>).<sup>(</sup>)f<sup>)</sup>0 to 500 0Oi i visible triangles per frame.
02845 Results
0285The results of comparisons between currently tiscd techniques and the inipixned techniques described herein are set forth in FiGS. 37-42 FIO 37 shows a table 940 comparing the presently described techniques aod state-of- the-art fcd-trec implementations, using a \er> simple shader and 2\2 (SSE accelerated) ra> bundles The performance data were measured on a P4HT 2,8GH/, \\ ith a resolution of 640x480. The InView column refers to a professional real-time rendering product (inTrace GmbH<sup>'</sup>, www.intrace.com). The WH06 column refers to data achieved using techniques described in WaId and Havraπ, "On Building Fast έD-Trees for Ray Tracing," Technical Report, SCI Institute, University of Utah, Ko. UUSCI-2UO6-0O9 (submitted for publication) (2006). The WROό performance date were measured on a faster Opteron 2.6GHz. The term "time to image<sup>"</sup>' refers to a measurement of the total rendering time .for one picture, thus including on-demand tree construction, ray tracing, and shading. As shown in FlG. 37, the bounding interval hierarchy (BiH) achieved superior results in both memory and total time to image. FIG. 38 shows a table 950 comparing die present described techniques and & state-of- the-art Ad-tree implementation, using advanced shades that trace single rays only (640x480, P4HT 2.8GHz)- "Time to image<sup>"</sup> measures the total rendering time for one picture, thus including on-desnand tree construction, ray tracing, and shading. FiG. 38 illustrates a stress test for on-demand construction, because She global illumination compulations require a construction of almost the entire tree.
0286FIG. 39 shows a table 960 setting .forth the results of a comparison using dynamic environments (640x480, P4HT 2.8GHz). The complete date structure is rebuilt, per frame, from scratch. The museum is traced using (a) simple shading and (b) full shading; using an average of 4 rays per pixel. Iu both cases, only single rays were traced. The remaining BART scenes were rendered using the simple shader, while die Utah Fairy Forest used full shading. FIG. 40 shows a table 970 setting forth total rendering times (1280x 1024, single-core Opteron 875 2.2 GHz 3.2 GB) including on -demand tree construction for the huge Boeing 777 data set (349,569,456 triangles, which amounts to 12,584,500.416 bytes). Reading the triangle data from hard disk is omitted, since it depends heavily on the hard disks used. Tn the present example, with the particular equipment used, the loading time was 40-90 seconds,
0287FlG. 41. shows a Sable 980 setting forth rendering times (1.280x 1024, P4HT 2,8GHz 2GB RAM), .including low-level, on-demand tree construction and loading all necessary triangle groups from disk. The top-level bucket sort prepracess, done once for all views, required an additional 53 minutes, but only used a peak 737 MB of RAM The cache sizes for the preprocessing and rendering were chosen to be suitable for any consumer machine offering at least IGB of RAM<sup>'</sup>. More RAM allows for even faster rendering times, as in the previous figure, whereas the preprocessing step is mainly limned by the hard disk, which in the present example was relatively slow and inexpensive.
0288FIG. 42 shows a table 990 comparing the bounding interval hierarchy (BTH) with and without the. above -described bucket sort preprocess (640x480, P4HT 2.8GHx) to numbers taken from WaId and Havran, where a faster Opteron 2.6 GH/ process was used. Frames per second (FPS) are given relative to the <sup>'</sup>'pare" bounding interval hierarchy, as FPS for several camera positions was averaged. The bounding interval hierarchy shows superior results, particular when combined with a bucket sort preptoccss.
02896. Conclusion Aspects of the present invention provide improved techniques for accelerating ray tracing, particularly when used in fully dynamic environments or for massive data sets. Both the memory footprint and construction time of the described data structure are significantly smaller, compared to previous approaches. The described techniques allow for real-time ray tracing of dynamic content without restrictions to the geometry. These techniques also enable the much more efficient computation of unbiased motion blur. The simplicity and predictability of the technique along with its global heuristic make it a good candidate for a hardware implementation, first experiments using the bounding interval hierarchy with freeform surfaces have been promising. The new global heuristic was compared to the much more complicated A'd-ttee construction heuristics that were used for measurement purposes in the paper: The simpler scheme resuiis in almost identical performance.
0290FIG. 43 shows a flowchart i ϋOO of an overall technique according to described aspects of the invention. As discussed above, the technique is advantageously implemented in a computer graphics system comprising a computer and a display element, the display element being operable to display a human-petceptibie image in response to a display-controlling electrical output from the computer, the computer being operable to generate the display - controlling electrical oαtpnt based on calculations of pixel values for pixels in the image, respective pixel values being representative of points in a scene as recorded on an image plane of a simulated camera, the computer being operable to generate pixel values for an image using a ray-tracing methodology, {lie ray-tracing methodology comprising the use of a ray tree and an associated ray tracing data structure, the ray tree including at least one ray shot from the pixel into a scene along a selected direction, the ray-tracing methodology<sup>1</sup> further comprising the calculating of the intersections of rays and surfaces of objects in the scene, and the ray -tracing being determined in response to the results of processing of objects in nn image.
0291In step 1001 , a hierarchical ray tracing acceleration date structure is constructed comprising a wee structure. The nodes of the tree structure are generated utilizing a bounding interval hierarchy based on defining an axis-aligned scene bounding box and tvvo parallel planes to partition a set of objects in a scene into left objects and nght objects, and snatching split planes to object bounding boves.
0292In step 1002. the bounding box is recursively partitioned into object bounding boxes, Iu step 1003. if a split plane candidate separates objects without overlap, the resulting split planes are fitted to the objects on {lie left and right, thereby maximizing empty space. In step 5 »04, recursion is terminated when no more than a predetermined number of objects remains
0293FKI 44 shows a (low chart S OU) setting forth further aspects of constructing a hierarchical ra\ tracing acceleration data slnicture in step K<sup>)</sup>O l shown in FIG 43 In slcp lϋl l , tno planes are selected that peφendieuiai to a selected one of \. > , or
0294/-axes
0295Itϊ step 1012. grven a splitting plane, each object m an image is classified cither left or right based on a left right selection criterion, and t\\ o splitting plane \ aiitcs of the child nodes arc determined h\ the maximum and minimum coordinate of the left and l ight objects.. rc<φcciι\eh
0296In step 1013, grven a bounding box and the selected avis, a left child L results from replacing a maximum \aiue of a Soft object's coordinates along the selected axis In the first plane, and a right child R results from rcpiacmg a minimum \ aluc of a right object's coordinates ta\ the second plane \ΏΛ tesulting /eto Λolυmci are used to reptcsent einptj children
0297In step 1014, splitting planes are determined b> selecting candidate splitting planes b\ hieraichicaih sυbdiv iding an a\ιs-alιgned scene bounding box along the longest side in the middle, vherebj all candidate splitting planes form a regular grid
0298In step I Ol 5, if a candidate plane is outside the bounding box of a Λolυmc element to subdn idc. the process is continued \\ ith candidate planes from the half v, here the \ oiume clement resides
0299FKS 45 is a schematic block diagram of processing modules 122 w iilun a computer 102 m accordance \\ Uh one piocess of the invention As show n in FIG 45. the computer 102, Oi oilier processing dex ice, Λ\hen operating m conjunction Λ\ nil the present nnenlion. contains some or all of the processing modules and or other components shown therein These modules correspond to and execute the method aspects- show n in FIGS 43 and 44 Such method aspects ma\ be implemented b> those skilled in the an using kno\αi computer operating s\ stem and applications programming techniques
0300FlG 46 is a schematic block diagram of software product modules 124 \\ ilhm a dtsk (removable or noR-reino\abie> or other storage clement 12** m a compute* or other pjocessmg de^ ice in accordance \\ ith the m\ entson \s show n in ¥lii 4(\ disk or other storage όc\ ice 120, whether removable or non-removable, can contain computer program code executable bs a com cπtional computing de\ ice to implement the method aspects of the inv ention, such us those shown m FIGS 43 and 44 While the foregoing description includes details which \\ ill enable those skilled in the art to piacticc the m\ ention, ii should be rccogm/cd that the desci iption is ιllustrati\ e in nature and that mam modifications and \aπatιon& thereof w ill be apparent to those skilled m the art ha\ mg the benefit of these teachings it is accordingly intended that (he im enuon herein be defined solcK b\ the claims appended hereto and thai ilic claims be interpreted a& broaclK as permuted b\ i he poor art
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11170254B2 | Cited by | United States of America | Applicant |
| US12333649B2 | Cited by | United States of America | Applicant |
| US11748446B2 | Cited by | United States of America | Applicant |
| WO2022046102A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US12056209B2 | Cited by | United States of America | Applicant |
| CN106856010A | Cited by | China | Search report |
| US11334762B1 | Cited by | United States of America | Applicant |
107 members in 9 offices
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 79306306 | United States of America | P | |
| 793063P | United States of America | – | |
| 47451706 | United States of America | A | |
| 474517 | United States of America | – | |
| 2007066972 | United States of America | W | |
| WO2007US66972 | – | – | – |
| US20060793063P | – | – | – |
| US20060474517 | – | – | – |
| US2007066972 | – | – | – |
| 793063P | – | – | – |
| 474517 | – | – | – |
Members107
| Document | Office | Kind | |
|---|---|---|---|
| WO0203326A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU1081102A | Australia | A | |
| WO0203326A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1305775A2 | European Patent Office (EPO) | A2 | |
| US2005264564A1 | United States of America | A1 | |
| US2005264565A1 | United States of America | A1 | |
| US2005264568A1 | United States of America | A1 | |
| US2005275652A1 | United States of America | A1 | |
| US2005275653A1 | United States of America | A1 | |
| US2005275660A1 | United States of America | A1 | |
| EP1628263A2 | European Patent Office (EPO) | A2 | |
| EP1628263A3 | European Patent Office (EPO) | A3 | |
| US2006146061A1 | United States of America | A1 | |
| EP1305775B1 | European Patent Office (EPO) | B1 | |
| AT343185T | Austria | T | |
| ATE343185T1 | Austria | T1 | |
| DE60123962D1 | Germany | D1 | |
| AU2006261967A1 | Australia | A1 | |
| CA2609283A1 | Canada | A1 | |
| WO2007002494A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US7167175B2 | United States of America | B2 | |
| US2007024615A1 | United States of America | A1 | |
| AU2006279337A1 | Australia | A1 | |
| CA2616991A1 | Canada | A1 | |
| WO2007022439A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US7184042B2 | United States of America | B2 | |
| US2007046686A1 | United States of America | A1 | |
| US7187379B2 | United States of America | B2 | |
| ES2272547T3 | Spain | T3 | |
| US7227547B2 | United States of America | B2 | |
| WO2007002494A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US7230618B2 | United States of America | B2 | |
| US7236171B2 | United States of America | B2 | |
| US2007165046A1 | United States of America | A1 | |
| WO2007022439A3 | World Intellectual Property Organization (WIPO) | A3 | |
| DE60123962T2 | Germany | T2 | |
| US2007211051A1 | United States of America | A1 | |
| US2007222780A1 | United States of America | A1 | |
| US2007229528A1 | United States of America | A1 | |
| CA2649745A1 | Canada | A1 | |
| WO2007124363A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2007273690A1 | United States of America | A1 | |
| CA2660190A1 | Canada | A1 | |
| US2008043018A1 | United States of America | A1 | |
| WO2008022173A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2008049019A1 | United States of America | A1 | |
| EP1899896A2 | European Patent Office (EPO) | A2 | |
| US2008068378A1 | United States of America | A1 | |
| WO2007124363A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US7358971B2 | United States of America | B2 | |
| EP1915739A2 | European Patent Office (EPO) | A2 | |
| US2008100617A1 | United States of America | A1 | |
| WO2008091958A2 | World Intellectual Property Organization (WIPO) | A2 | |
| EP1915739A4 | European Patent Office (EPO) | A4 | |
| US7425957B2 | United States of America | B2 | |
| US2008231633A1 | United States of America | A1 | |
| US7432935B2 | United States of America | B2 | |
| US7453460B2 | United States of America | B2 | |
| US7453461B2 | United States of America | B2 | |
| WO2008022173A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP2008249A2This record | European Patent Office (EPO) | A2 | |
| JP2009505297A | Japan | A | |
| WO2008091958A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US7495664B2 | United States of America | B2 | |
| US2009051688A1 | United States of America | A1 | |
| US7499053B2 | United States of America | B2 | |
| US7499054B2 | United States of America | B2 | |
| JP2009514059A | Japan | A | |
| US7515151B2 | United States of America | B2 | |
| WO2009044282A2 | World Intellectual Property Organization (WIPO) | A2 | |
| EP2052366A2 | European Patent Office (EPO) | A2 | |
| US2009122063A1 | United States of America | A1 | |
| WO2009063319A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2009141026A1 | United States of America | A1 | |
| US2009146996A1 | United States of America | A1 | |
| US2009147002A1 | United States of America | A1 | |
| US2009153576A1 | United States of America | A1 | |
| US2009167763A1 | United States of America | A1 | |
| US2009189898A1 | United States of America | A1 | |
| WO2009063319A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2009213115A1 | United States of America | A1 | |
| US2009225080A1 | United States of America | A1 | |
| US2009225081A1 | United States of America | A1 | |
| JP2009534759A | Japan | A | |
| US2009256845A1 | United States of America | A1 | |
| WO2009044282A3 | World Intellectual Property Organization (WIPO) | A3 | |
| JP2010501100A | Japan | A | |
| US7659894B2 | United States of America | B2 | |
| US2010053162A1 | United States of America | A1 | |
| US7773088B2 | United States of America | B2 | |
| AU2006279337B2 | Australia | B2 | |
| AU2006261967B2 | Australia | B2 | |
| EP2008249A4 | European Patent Office (EPO) | A4 | |
| US7952583B2 | United States of America | B2 | |
| EP1915739B1 | European Patent Office (EPO) | B1 | |
| AT516562T | Austria | T | |
| ATE516562T1 | Austria | T1 | |
| JP4749470B2 | Japan | B2 | |
| EP1628263B1 | European Patent Office (EPO) | B1 | |
| JP4858795B2 | Japan | B2 |
66 legal events, as 9 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent lapsedLapsedMM4A | MM4A | IE | |
| Notification of lapseLapsedST | ST | FR | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| No opposition filedOpposition26N | 26N | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Invalidated european patentMG4D | MG4D | LT | |
| Discontinued in the netherlands as no translation has been filedVDEP | VDEP | NL | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| Reference to at number (ep patent validated in austria)REF | REF | AT | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Amendment of ipc main classPREVIOUS MAIN CLASS: G06T0015400000R079 | R079 | DE | |
| First examination report despatched17Q | 17Q | EP | |
| Request for extension of the european patent (deleted)DAX | DAX | EP | |
| Supplementary search report drawn up and despatchedA4 | A4 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 2008249
- Publication, DOCDB
- 2008249
- Publication, EPODOC
- EP2008249
- Application
- 7760918
- Application, DOCDB
- 07760918
- Application, EPODOC
- EP20070760918
Titles3
- German
- SOFORTIGE STRAHLENVERFOLGUNG
- English
- INSTANT RAY TRACING
- French
- MAQUETTE DE RAYONS INSTANTANES
Classification
- CPC, 1
- G06T15/06
- IPC, 2
- G06T15 06
- G06T15 40
Designated states2
- Contracting states, 1
- Türkiye
- Extension states, 1
- Serbia