EP1532586A2 - Method and device for creating a two-dimensional representation of a three-dimensional structure - Google Patents

Method and device for creating a two-dimensional representation of a three-dimensional structure

Info

Publication number
EP1532586A2
EP1532586A2 EP03790730A EP03790730A EP1532586A2 EP 1532586 A2 EP1532586 A2 EP 1532586A2 EP 03790730 A EP03790730 A EP 03790730A EP 03790730 A EP03790730 A EP 03790730A EP 1532586 A2 EP1532586 A2 EP 1532586A2
Authority
EP
European Patent Office
Prior art keywords
tree
units
memory
objects
beams
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP03790730A
Other languages
German (de)
French (fr)
Inventor
Jörg SCHMITTLER
Ingo Wald
Philipp Slusallek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OL Security LLC
Original Assignee
Max Planck Gesellschaft zur Foerderung der Wissenschaften eV
Universitaet des Saarlandes
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Max Planck Gesellschaft zur Foerderung der Wissenschaften eV, Universitaet des Saarlandes filed Critical Max Planck Gesellschaft zur Foerderung der Wissenschaften eV
Publication of EP1532586A2 publication Critical patent/EP1532586A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Definitions

  • Such ner driving and such an apparatus relates to a method and an apparatus for generating a two-dimensional image of a three-dimensional world.
  • the invention relates in particular to the generation of images using the method of beam tracing, which is known colloquially in specialist circles as "ray tracing".
  • the object of the present invention is to propose a method and a device for carrying out the method, with which the generation of a two-dimensional image of a three-dimensional world is to be simplified. Computer resources are to be used more efficiently than was the case with previously known methods.
  • the geometric description of a virtual three-dimensional world contains at least the following components:
  • Bodies described by a data set e.g. Data from a nuclear spin tomograph
  • a description of the material properties of the objects such as "Object is blue”, “Object is made of glass”, “Object has a reflective surface”.
  • the description of the material properties can also be done using numerical parameters or defined calculation rules.
  • Tree-like data structures refer to both tree structures and directional acyclic graphs.
  • Complex objects can in turn have a tree-like data structure that spatially divides the complex object or, for example, spatially or logically divides it into simpler sub-objects.
  • simple basic objects and complex objects such as, for example, composed objects or those with tree-like structures. Both cases are referred to as "object”.
  • objects can also have a transformation. With the help of a transformation matrix, for example, this transformation can describe an affine transformation of the corresponding object in the three-dimensional world and thus changes the coordinates of the object.
  • an instruction sequence can also be specified for an object.
  • This sequence of instructions can change the properties of the object. These include the geometric properties (for example, the radius of a sphere) and the material properties (for example, its color).
  • the lighting situation in the virtual world can also be specified.
  • the tree-like data structure is made up of the following components:
  • Tree nodes Each node in the tree describes the position of a division plane parallel to the axis in three-dimensional space.
  • Tree leaf Each leaf of the tree describes the content of a room volume.
  • the room volume can contain one or more objects or be empty.
  • Placeholder A placeholder can stand in place of a tree node, tree leaf or an object.
  • a placeholder consists of two parts: a substitute, which contains an object, and a replacement object.
  • the replacement object is specified by a sequence of instructions, but can also contain objects and tree-like structures as well as other placeholders. If the instructions are carried out, new tree nodes, tree leaves, tree edges, objects and placeholders can be created, which replace the deputy after the instructions have been fully executed.
  • Tree edges These edges represent the connections between the components.
  • Such tree-like data structures are known in computer technology, but there only consist of tree nodes, tree leaves and tree edges.
  • the closest to the present invention are the KD trees, which in turn are related to the BSP trees.
  • the addition of placeholders in connection with the ray tracing method was made in the context of this invention.
  • the composition of the definition of objects is also part of the invention. As a whole, which supports and unites all possible properties in the same way, this definition is new. The definitions are explained again in connection with FIG. 3 for better understanding.
  • the above object is achieved according to claim 1, according to which a ray tracing method is used.
  • the ray tracing method means that when it is carried out, at least part of the geometric description of the world is cut with rays, the intersection of objects of the world with the rays being used to compose the two-dimensional image. Furthermore, several beams are combined to form a package of discrete beams. A data structure is then associated with each packet of discrete beams. A status-related assignment to each beam is stored for this data structure. This state at least indicates whether the designated beam is participating in the operation being applied to the packet at that time. All steps of the method are still applied to a package of several discrete beams.
  • this operation is carried out on each ray of the packet, if the stored status-related assignment of the ray to the data structure shows that the ray in question is participating in this operation.
  • the ray tracing process is divided into the following work steps, which are processed one after the other for a packet of beams:
  • a Camera beam generation Generation of a packet of beams that are to be cut from the virtual camera with the geometry of the three-dimensional world.
  • B Tree traversing According to the spatial orientation of the rays, the tree data structure for the geometry of the three-dimensional world is run through until a tree leaf or a placeholder is reached. For this purpose, tree nodes and placeholders are read from a memory and calculations are carried out. If a placeholder is reached, the corresponding instruction sequence ; of the replacement object. The placeholder is replaced by an object that can also be complex.
  • step C Reading and cutting of all objects that were specified in step C with the packet of rays. If a transformation has been specified for an object, this is applied before the intersection with the object is calculated. If a geometry-changing instruction sequence has been specified for an object, this is executed before the cut with the object is calculated. If an object to be cut is a complex object with its own tree structure that has to be traversed, then this object is cut by carrying out the work steps B - F, adapted to the complex object.
  • E Section evaluation Evaluate whether there are valid intersection points for the packet of rays. If there are still elements of the tree that are eligible for a beam cut but have not yet been examined and the previous work step did not result in sufficient intersection points, the previous results are used again in step B, otherwise with step F continued. If necessary, the status of the package is changed.
  • step F subsequent beam generation; If it is calculated in step F that one or more further beams with the geometry of the three-dimensional world are to be cut, then corresponding packets of beams are calculated in this step and the method starts again for these beams in step B. Otherwise, will be back used in step A if further camera beams have to be generated to form the two-dimensional image.
  • the three-dimensional world is specified according to the above definitions.
  • the process is characterized by a new technique for data reduction without unnecessary calculations.
  • individual rays are combined into a packet of rays, as already in Ingo Wald, Carsten Benthin, Markus Wagner, Phiüpp Slusallek: "Interactive Rendering with Coherent Ray-Tracing", Computer Graphics Forum / Proceedings of the EUROGRAPHICS 2001, Manchster, United Kingdom, September 3-7, 2001, http: // graphics. cs.uni- sb.de/Publications/2001/InteractiveRenderingWithCoherentRayTracing.pdf.
  • a novel and inventive extension to the method described in the cited publication is the association of a data structure with each of these packages.
  • This data structure contains the state of each beam of a packet.
  • the individual steps of the ray tracing process are structured in such a way that they optimally support the new technology and at the same time are particularly unique in order to be implemented in terms of device technology.
  • a package can also be assigned to several work steps at the same time in order to achieve better utilization of the data processing system. For example, the processing of rays for which intersection points already valid in step E were calculated could continue with step F, while for the other rays the calculation is continued with step B. Then as soon as all rays of the packet do the calculations in step F the package could ' continue processing step G closed.
  • the beams generated in step G are combined into new packets by a further step. All newly generated rays are collected, sorted into new packets of discrete rays.
  • a new package does not necessarily only contain rays that were generated on the basis of the calculation results of exactly one predecessor ray package, rather the step of collecting and re-sorting newly generated rays from several predecessor ray packages, which are logically related, can combine to form new packages.
  • the ray R1 visits the tree components (Nl, N2, VI ⁇ and the ray R2 the tree components ⁇ N3, V2 ⁇ , no data reduction compared to traversing the individual rays is achieved by traversing the packet.
  • Claim 2 advantageously describes a work step which extends the method described in claim 1 and combines newly generated beams into packets in such a way that data reduction in the traversing of the packets compared to the traversing of the individual beams is achieved.
  • a multi-threading method is used, a packet of beams being considered as one thread.
  • the multi-threading process is used within one work step to allow functional units to perform meaningful work while they are based on the results of other functional units.
  • Each work step keeps a supply of packages, which the functional units of the work step alternately process.
  • data is loaded from a memory.
  • Loading data from a memory usually takes a few time units. However, since the data to be loaded has to be waited for before the calculations can be carried out, this waiting time passes without meaningful calculations being able to be carried out. If several packages are assigned to a work step at the same time, the calculation could look like this:
  • Package 1 calculates which date should be loaded from memory. The date for package 1 is then loaded from the memory and at the same time for package 2 the date for package 2 is to be loaded from the memory. Then, when the date is loaded from the package 1 memory, the calculation for package 1 can be performed. At the same time, the corresponding date for package 2 is loaded from the memory and calculated for package 3, which date package 3 would like to load from the memory, etc.
  • a packet is therefore advantageously classified as a thread.
  • the method is designed such that the amount of data in the three-dimensional world is managed in such a way that only part of this data is held in the memory at a time.
  • the data of entire objects or entire partial objects are advantageously always loaded into the memory or removed from the memory in order to make room for newly required (partial) objects.
  • the method can be designed in such a way that an independent work step is implemented in which it is logged which (partial) objects were accessed when and how often.
  • the information collected can also be used to automatically manage the memory and, if necessary, to load and remove new parts of the three-dimensional world from the memory.
  • a virtual world can therefore consist of a multitude of objects.
  • the description of the virtual world can include so much data that it uses a lot of memory needed.
  • memory For example, in a data processing system there are several memories of different sizes and speeds. Since large memories are usually much slower than smaller ones, but the speed of the memory plays an important role for the length of time required to process the method, it is desirable to keep all the data important for the method in a fast memory.
  • a management of the different memories can thus be organized with the method according to claim 4, with which it can be achieved that, if possible, all the data currently required is always kept in a fast memory.
  • the procedure records which objects or sub-objects were read when and how often and loads new (partial) objects from slow memory into fast memory if necessary. If the fast memory is full, the method can use the bookkeeping to locate (part) objects that are no longer required and delete them from the fast memory so that space is created for the required data. It is also important here that the method from one of claims 1, 2 or 3 has read-only access to the data of the virtual world and thus the case can never occur that the data in the snappy memory has been changed and must be written back to the slow memory before they can be deleted.
  • the difference is that not whole objects or partial objects are read from a slow memory or deleted in the fast memory, but that the data of the virtual world are subdivided into blocks and these blocks read into or deleted from the fast memory if necessary.
  • this subdivision allows an object to be divided into several blocks.
  • the advantage here is that with a fixed size of the blocks, the same number of data elements are always read or deleted from a memory. In the method of claim 4, the number of the read or deleted data elements fluctuate greatly with the respective object.
  • Claim 5 relates to a device for performing one of the aforementioned methods, the individual work steps being represented by independent function groups.
  • the function groups can also be equipped with management functions so that several function groups of the same type can be combined in one device and the performance of the device can be increased.
  • the functional groups In order to achieve that an increase in the performance of the device can be achieved by adding similar functional groups, the functional groups must be arranged in a suitable manner so that the necessary calculation steps are evenly distributed over the available units.
  • the function groups can also use the pipelining process, in which there are several packets in the process at the same time.
  • the pipelining process individual packets are not calculated one after the other, but several packets can be in the process flow and in different work steps at the same time.
  • package 1 could be created in step A. While the calculations for package 1 are then carried out in step B, package A could be generated in step A. If the calculation of package 1 in step B is finished, package 1 goes to work step C and package 2 can be processed in step B, while package A is generated in step A, u. s. w.
  • the pipelining process can also be used directly in connection with the multi-threading process.
  • Each work step then receives a number of threads, which it processes in turn. After the processing of a thread is completed in one work step, this thread is passed on to the next work step and this thread then executes this thread together with those one after the other, the him already. assigned. Both methods together allow a very high utilization of the functional units of a device.
  • Claim 6 relates to a device for performing one of the aforementioned methods, the individual work steps of the following dimensions being combined to form functional groups:
  • RGS Includes several functional units for work steps A, F and G and extends these by units for the management of sub-units.
  • RTC includes several functional units for work steps B, C, D and E.
  • RTC-MI Coordinates and regulates all access by the RTC units to external storage units.
  • - M-SR Coordinates the access of cache units to the external memory.
  • the function groups are shown in FIG. 7.
  • the function groups slave, traversal and intersection are advantageously constructed in such a way that they contain several subunits that carry out calculations and keep a stock of packages on which they use the multi-threading method.
  • the function groups are structured in such a way that the performance of the device can be increased by adding further similar groups.
  • As many slave function units as RTC function groups consisting of traversal, list and intersection function units) are always used.
  • the functional units T-SR, L-SR and I-SR are set up so that they can establish the connections between all RTC function groups and the memories.
  • the functional unit master is the top control instance of the device. It receives the parameters for the virtual camera (labeled UI in the image) as input and then assigns descriptions of packages to one or more slave units. With the help of these descriptions, they carry out the camera beam generation and send the calculated packets to the associated RTC unit.
  • the slave unit In response (some time later) the slave unit receives the data of the beam-object sections and then carries out the calculations for work steps F and G. If subsequent beams are calculated, these are in turn sent to the associated RTC unit.
  • the slave units must read data from a memory during their calculations and, if necessary, also write them back.
  • the memory accesses of all slave units are coordinated by the Memlnt unit, which is connected to one or more memory modules (designated RAM in the sketch).
  • step F the slave units with hooves of the memlnt unit write into a special memory (labeled FB in the figure), from which they can also read out data again.
  • This special memory could also be connected to a function group which is connected to a monitor in order to display the calculated two-dimensional image.
  • the RTC function group implements the work steps tree traversing, reading the tree leaf, cutting of all objects and cutting evaluation. If a unit of the RTC group wants to load a date from the memory, it sends a corresponding request to the unit assigned to it, i.e. to the T-SR, L-SR or the I-SR unit. All memory requests from all RTC groups come together at the T-Cache, L-Cache and I-Cache units. These units have a data structure in which the data from previous storage requests are noted. If a request is made, the answer from which is already noted in the memory, this request is answered with the date from the data structure. It is of advantage that all requests only want to read data from the memory.
  • the content of the data structure can simply be discarded if necessary, without having to write it back into memory.
  • This is particularly interesting when the calculation for a new Büd begins and objects have changed.
  • a signal is sent to the T-Cache, L-Cache and I-Cache units, which discard the content of their data structure, so that the current object is also read from the memory when there is a new request.
  • the (old) object noted in the data structure is not incorrectly included in the new calculations.
  • the functional unit M-SR forwards all requests from T-cache, L-cache and I-cache to the unit MemCtrl.
  • MemCtrl is the function group that is directly connected to the memory module (s) (in the picture: RAM).
  • the function group MemCtrl contains several mechanisms to avoid possible waiting times that arise when accessing the memory modules. These mechanisms include: hashing addresses in order to distribute the requests evenly to all memory modules and rearranging the requests so that waiting times caused by the internal structure of memory modules are avoided.
  • the division of the method into device components described here has the advantage that no function group has to access data that is stored in another unit. As a result, the data can mostly be stored locally and it is not necessary to move large amounts of data between the units, which greatly simplifies the implementation in terms of device technology.
  • a sensible extension for the function groups T-SR, L-SR, I-SR would be to equip them with a mechanism that combines queries of the same type, which are admitted simultaneously by different units, into a memory query and the response of the memory to external query controllers sends back.
  • This mechanism can further reduce the number of memory requests.
  • T-Cache, L-Cache and I-Cache would be to provide them with lists, in which all requests are noted that have already been forwarded to the memory, but the result of which is not yet known. If a request is now admitted that is already noted in the list, then another note would simply be added to the list, but no request to the memory was admitted. Then, when the response is from the memory, the date would be reported as responses to all requests as given in the list. This technique can further reduce the number of storage requests.
  • a device such as that described above could also be equipped with a functional group that automatically calculates the tree-like data structure for a number of objects. This could allow the device to react automatically to moving objects, for example.
  • Fig. 6 the tree structure of a simple world, consisting of squares, triangles and circles and
  • FIG. 7 shows a representation of function groups in a device.
  • the ray tracing method is explained below in connection with FIG. 1.
  • This can be used, for example, to produce a two-dimensional image as follows: a paper, packed with arithmetic boxes, is held in front of the virtual camera and then a beam is sent from the camera through each of the boxes. If a beam hits an object, the corresponding calculation box is colored with the color of the object. If this has been done for all calculation boxes, the sheet of paper contains a two-dimensional image of what the virtual camera sees. If these calculation boxes are made small enough, the image disguises its block-like character and becomes a high-resolution image.
  • FIG. 2 shows the calculations for a ray R1 that is sent from the virtual camera (CAM) into the virtual world.
  • the ray R1 intersects the object 01 (a sphere) at the point P1.
  • the object 01 a sphere
  • the lighting situation at point P1 could be examined as possible extensions of this method.
  • a simple example would then be another Beam Ll be sent from a light source LS to the point P1. If the beam L1 does not intersect an object between LS and Pl, there is no object that covers the light source as seen from point Pl, so that the light from LS arrives at point Pl and illuminates it.
  • an object 04 lies in virtual space in such a way that point P3 lies in the shadow.
  • the material properties of the cut object could be considered. Assuming that object 01 has a reflective surface, to determine the color of the object O1 at point Pl it should be checked which object is reflected at point Pl. In this case too, a further ray R2, now starting from point P1, would be sent into the virtual world.
  • R2 intersects object 02 at point P2.
  • the beam L2 is calculated to determine the color in P2.
  • the object 02 is a glass pane, so that in order to determine the color of the point P2, it must be determined which object can be seen through the glass pane 02.
  • the ray R3 is sent from the point P2 into the virtual world.
  • the point P3 on the object 03 results as the intersection point.
  • the lighting situation is also calculated for P3, in order then to determine its color.
  • the color for the pixel belonging to beam Rl is then composed of the weighted colors at points P1, P2 and P3.
  • the world consists of the objects Ol, 02, 03 and 04, as well as the light queue (LS) and the virtual camera (CAM).
  • LS light queue
  • CAM virtual camera
  • the beam if any, intersects the object oil.
  • a procedure for a machine would have to intersect all objects of the virtual world with the ray R1 to find out which object the ray R1 hits.
  • the virtual world consists of a large number of objects, a large number of calculations have to be carried out to produce a two-dimensional image.
  • several methods are known to limit the number of objects to be cut by logical decisions.
  • FIG. 3 shows an example of a data structure on the left in accordance with the definitions of the introduction to the description.
  • a two-dimensional world was chosen for the example, which can be easily pre-configured as a top view of a three-dimensional world. This world can be seen in the middle of Figure 3.
  • the node Nl forms the root of the tree.
  • the division plane described by the node Nl (also denoted here by Nl) can also be seen in the top view of the world. Put simply, the plane described by Nl divides the world into a left half, which contains the triangle, the sphere and the placeholder (Pl), and a right half, which contains an asterisk. Similarly, N2 and N3 divide the world into halves.
  • the ray Rl is compared with the inflation level Nl. It is firmly established that the ray crosses the inflation level from left to right, that is to say first wants to examine the left half and then the right half of the world. It is saved that the right half might also be interesting, however, starting with the evaluation in the left half, starting with the edge El, the calculation is continued with node N2. It is then determined that only half of the ray with leaf VI, which contains two objects, is of interest: a triangle and a circle. Now the ray R1 is cut with these objects and in doing so it is firmly established that the ray does not hit any of the objects. Therefore, according to the storage above, continue with the marked right half of Nl. The evaluation is continued with the node N3 via the edge E2.
  • the beam R1 initially wants to enter the left half, and then possibly the right half.
  • sheet V2 contains no objects, so the beam doesn't have to be cut with any object. Instead, the further evaluation takes place with the marked right half.
  • the sheet V3 which contains an asterisk.
  • the intersection of R1 with the star provides an intersection, which ends the calculation for R1.
  • the calculation for the ray R2 begins again with the node Nl. There it is decided that only the right half is interesting for the ray. The node N3 is in the right half. A comparison between R2 and level N3 shows that only the left half is interesting for the beam. However, since this half contains only the blank sheet V2, the calculation for the ray R2 has ended without the ray having been cut with an object.
  • intersection The procedure described, in which a tree-like data structure is run through, is also called traversal. Cutting an object with a beam is called intersection.
  • the tree node N1 is loaded from a memory and it is calculated for all beams of the packet whether - and if so how - the crossing level Nl is crossed.
  • the beam R1 wants to go first to the left and then to the right half of the world.
  • Ray R2 on the other hand, only wants to enter the right half.
  • the decision for the package from this step looks like this: In the states of the rays it is marked that ray R1 wants to go in both halves and R2 only in the right half. The package then visits the left half.
  • the ray R2 does not take part in the calculations belonging to the left half. These calculations are carried out analogously to the example described above. When the calculations on the left half are finished, a valid intersection for the rays R1 and R2 has not yet been found, so the packet sets its own. Calculations continue with the right half. According to the conditions, both beams take part in these calculations. In the calculations for the level N3, it is firmly established that the beam R1 initially wants half with the tree leaf V2 and then half with tree leaf V3. The ray R2, on the other hand, only wants to be in the tree leaf V2. This result is noted in the states and the calculations are continued with tree sheet V2. Since this sheet is empty, no cuts of objects with rays are made.
  • This example also shows the effect of data reduction. If the calculations for individual beams are activated, each of the nodes under consideration must be loaded from the memory for each beam. In addition, if entire packets of rays are traversed, each node viewed by one of the rays is loaded from memory only once for the entire packet. In this example, the ray R1 looks at the tree nodes and tree leaves ⁇ Nl, N2, VI, N3, V2, V3 ⁇ and the ray R2 looks at the tree nodes and tree leaves ⁇ Nl, N3, V2 ⁇ . If the beams are traversed individually, data is loaded 9 times from the memory. If the rays are combined in one package, so the package only visits the tree nodes and tree leaves ⁇ Nl, N2, VI, N3, V2, V3 ⁇ and data is only loaded 6 times from the memory.
  • the new data structure compared to the previously known method serves the purpose of avoiding unnecessary calculations. Without this data structure, the objects triangle and circle in sheet VI would also be intersected with the ray R2 in the example above, because for a packet there would be no information about which of the rays of the packet would like to take part in the current calculation step and thereby each ray would have to participate in all calculations. This does not lead to errors because such unnecessary cuts do not add valid intersections, but also to unnecessary calculation steps.
  • a Camera beam generation Generation of a packet of beams which, starting from the virtual camera, are to be cut with the geometry of the three-dimensional world. For example, you could combine a rectangular area of boxes on the spreadsheet in front of the virtual camera in a group and combine all the rays that pass through these calculation boxes in one package.
  • B Tree traversing According to the spatial orientation of the rays, the tree data structure for the geometry of the three-dimensional world is run through until a tree leaf or a placeholder is reached. For this purpose, tree nodes and placeholders are read from a memory and calculations are carried out. If a placeholder is reached, the corresponding instruction sequence of the replacement object is executed. The placeholder is replaced by an object that can also be complex.
  • FIG. 6 shows a simple world with squares, circles and a triangle.
  • a tree structure is also created here. It is obvious that you cannot determine a level of subdivision that divides the world into a left and a right half that does not also divide an object in half. In this example, the plane divides the world into one half with squares and one half with circles, including the triangle in half.
  • a beam that only wants to traverse the left or only the right half of the t only only has to cut four objects, whereas in an undivided world 7 object beam cuts would have to be calculated.
  • An extension of the invention would be, for example, to keep a list of the objects for each package that have already been cut with the package. If the references to objects are loaded from a tree leaf, a comparison is made as to whether the object has already been cut and, if so, the cut is not carried out again with the same object. It should also be noted that some rays that are active on the current object beam cut were not used for the object beam cut that was entered in the list, and therefore the cut is still being carried out for these beams got to. On Another point of this referencing is shown here: An object, for example a car, is specified and stored in the memory. Then two further objects are defined, each of which functions as a container and has references to the auto object and also a transformation matrix and a material-changing instruction sequence.
  • step C a lot of references to objects were read from a tree leaf.
  • the data of the referenced objects are read in and the rays of the package involved in the current operation are cut with these objects. If a transformation to one of the objects has been specified, it will be applied before the section is calculated. If the object is a simple object without its own tree structure, the object is transformed and the cut is calculated. In the other case, the beams are transformed and thus adapted to the relative coordinate system of the object, before step B starts traversing the tree of this object. If it has been calculated whether there are any intersections between the rays and the object, then the results and the rays are transformed back into the absolute coordinate system of the world.
  • This geometry changing instruction sequence can e.g. are used to model water surfaces.
  • an object that represents the water surface at a certain point in time and specify a sequence of instructions, which e.g. deformed according to the time of day this object to represent wave movements.
  • a tree structure that contains an object with a geometry-changing instruction sequence should also take into account the possible effects of this instruction sequence, since otherwise display errors can occur.
  • An example is shown in FIG. 5.
  • a geometry-changing instruction sequence was specified for a triangle, which shifts the corner point P into the points P 'and P "according to the time.
  • the tree structure should now be such that the object is referenced in outer tree leaves, in which it can be maximum So here the triangle in the Unken tree leaf and in the the tree, the sphere, the rectangle and the triangle must be referenced. If a ray R were only cut with the right half and the triangle was not referenced there, an incorrect intersection point would be calculated for this ray at the given time, namely the one with the rectangle from that with the triangle.
  • a valid intersection would be the intersection closest to the origin of the beam. If there are still elements of the tree that are suitable for a beam cut but have not yet been examined and the previous work step did not result in valid intersections in sufficient quantity, then the previous results are used again in work step B, otherwise it is used with Step F continued.
  • F Determination of the object properties The results of the previous work steps are evaluated.
  • the material properties of the objects for which a valid intersection with one of the rays has been calculated can be examined. For example, it can be determined that an object has a reflective surface and therefore a subsequent beam must be calculated to determine the color at the intersection.
  • the object is, for example, a globe of our earth, a map could also be read in and calculated which country or sea the ray intersected in order to then determine the color at the intersection.
  • the material-changing instruction sequence can also be used to turn a colorless object into a marbled object, for example.
  • the pattern of the marble stone can be calculated using the instruction sequence specified for the object so that the pattern is only implicitly given by a mathematical formula and is only then calculated, a beam hits the object.
  • step B The procedure starts again in step B. Otherwise, step A is used again, if there are more to form the two-dimensional image
  • FIG. 4 Another example of the use of placeholders is shown in FIG. 4. From left to right, the world with the associated tree structure can be seen from left to right, as it is expanded or changed when executing placeholders Pl or P2.
  • the virtual world comprises buildings A and B.
  • the camera is in building A, and building B cannot be seen by the camera. So it is sufficient to specify building B only with a simple placeholder. If the virtual camera leaves building A and approaches building B, the sequence of instructions for placeholder B is carried out for the first beam that strikes the placeholder for building B during traversing. This sequence of instructions could now specify that building B should be loaded from a storage medium and replaced with the placeholder for building B.
  • the amount of data that must be examined when the image is generated can be greatly restricted.

Abstract

The invention relates to a method and a device for two-dimensionally representing a three-dimensional world, in which rays are combined into packets during ray tracing, and said packets of rays are processed in adequate steps.

Description

BESCHREIBUNG DESCRIPTION
Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen StrukέurMethod and device for generating a two-dimensional image of a three-dimensional structure
Ein derartiges Nerfahren und eine derartige Vorrichtung bezieht sich auf ein Verfahren und eine Vorrichtung zur Erzeugung eines zweidimensionalen Abbildes von einer dreidimensionalen Welt. Die Erfindung betrifft insbesondere das Erzeugen von Bildern mit dem Verfahren der Strahlverfolgung, das in Fachkreisen umgangssprachlich als "Ray Tracing" bezeichnet wird.Such ner driving and such an apparatus relates to a method and an apparatus for generating a two-dimensional image of a three-dimensional world. The invention relates in particular to the generation of images using the method of beam tracing, which is known colloquially in specialist circles as "ray tracing".
In der Computer-Technik werden dreidimensionale Körper, Bauteile, Geräte, Häuser oder gar Welten durch geometrische Beschreibungen spezifiziert. Diese Beschreibungen enthalten neben der reinen Geometrie zumeist auch Informationen über die Materialien und Lichtquellen. Eine der häufigsten Anwendungen im Zusammenhang mit geometrischen Beschreibungen ist das Erzeugen von einem zweidimensionalen Abbild einer solchen dreidimensionalen Beschreibung. Hierbei kann man sich die Problematik wie folgt verdeutlichen:In computer technology, three-dimensional bodies, components, devices, houses or even worlds are specified using geometric descriptions. In addition to the pure geometry, these descriptions usually also contain information about the materials and light sources. One of the most common applications related to geometric descriptions is to create a two-dimensional image of such a three-dimensional description. The problem can be clarified as follows:
"Wenn man in dieser virtuellen dreidimensionalen Welt eine virtuelle Kamera platziert und diese ein Foto machen lässt, wie sieht dieses Foto aus? ""If you place a virtual camera in this virtual three-dimensional world and let it take a photo, what does this photo look like?"
Zur Lösung dieses Problems sind eine Vielzahl von Verfahren bereits bekannt. Eines der bekanntesten ist das Strahlverfolgungs Verfahren (engl. Ray Tracing). Dieses wurde nach Kenntnis der Erfinder erstmals 1968 von Arthur Appel: "Some Techniques for Shading Machine Renderings of Solids", Proceedings of "AFIPS 1968 Spring Joint Computer Conference", Band 32, Seiten 37-45 vorgestellt und seit dem von einer Vielzahl von Wissenschaftlern weiterentwickelt.A variety of methods are already known for solving this problem. One of the best known is the ray tracing method. To the knowledge of the inventors, this was first presented in 1968 by Arthur Appel: "Some Techniques for Shading Machine Renderings of Solids", Proceedings of "AFIPS 1968 Spring Joint Computer Conference", volume 32, pages 37-45 and since then by a large number of scientists further developed.
Eine weitergehende Darstellung zu dem Thema Ray Tracing kann beispielsweise in Andrew S. Glassner (Editor): "An Introduction to Ray Tracing", Academic Press, ISBN 0-12-286160- 4 gefunden werden. Weitere Erläuterungen finden sich in der Figurenbeschreibung im Zusammenhang mit der Figur 1. Der vorhegenden Erfindung liegt die Aufgabe zu Grunde, ein Verfahren sowie eine Vorrichtung zur Durchführung des Verfahrens vorzuschlagen, mit dem die Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Welt vereinfacht werden soll. Dabei sollen Ressourcen eines Computers effizienter genutzt werden als dies bei bisher bekannten Verfahren der Fall war.Further information on the subject of ray tracing can be found, for example, in Andrew S. Glassner (Editor): "An Introduction to Ray Tracing", Academic Press, ISBN 0-12-286160-4. Further explanations can be found in the description of the figures in connection with FIG. 1. The object of the present invention is to propose a method and a device for carrying out the method, with which the generation of a two-dimensional image of a three-dimensional world is to be simplified. Computer resources are to be used more efficiently than was the case with previously known methods.
Zum Verständnis seien für den Zusammenhang dieser Patentanmeldung folgende Definitionen erläutert.For the understanding of the context of this patent application, the following definitions are explained.
Die geometrische Beschreibung einer virtuellen dreidimensionalen Welt enthält mindestens folgende Bestandteile:The geometric description of a virtual three-dimensional world contains at least the following components:
• Ein oder mehrere Objekte, deren Geometrie auf verschiedene Arten spezifiziert sein kann• One or more objects, the geometry of which can be specified in different ways
1. einfache geometrische Grundkörper, wie z.B. Dreiecke, Kugeln oder Quader1. simple geometric basic bodies, such as Triangles, spheres or cuboids
2. durch mathematische Funktionen (z.B. Vereinigung oder Schnittmenge) zusammengesetzte Grundkörper2. Basic bodies composed by mathematical functions (e.g. union or intersection)
3. durch mathematische Funktionen beschriebene Körper, z.B . Spline-Flächen3. Bodies described by mathematical functions, e.g. Spline surfaces
4. durch einen Datensatz beschriebene Körper, z.B. Daten aus einem Kernspin- Tomographen4. Bodies described by a data set, e.g. Data from a nuclear spin tomograph
• Eine Beschreibung der Materialeigenschaften der Objekte, wie z.B. "Objekt ist blau", "Objekt ist aus Glas", "Objekt besitzt spiegelnde Oberfläche". Die Beschreibung der Materialeigenschaften kann dabei auch durch numerische Parameter oder durch definierte Berechnungsvorschriften erfolgen.• A description of the material properties of the objects, such as "Object is blue", "Object is made of glass", "Object has a reflective surface". The description of the material properties can also be done using numerical parameters or defined calculation rules.
• Eine baumartige Datenstruktur, die dazu dient, Objekte der virtuellen Welt nach ihrer räumlichen Lage zu klassifizieren. Mit baumartigen Datenstrukturen werden hierbei sowohl Baumstrukturen als auch gerichtete azyklische Graphen bezeichnet.• A tree-like data structure that serves to classify objects of the virtual world according to their spatial position. Tree-like data structures refer to both tree structures and directional acyclic graphs.
Komplexe Objekte können dabei wiederum eine baumartige Datenstruktur besitzen, die das komplexe Objekt räumlich aufteilt oder beispielsweise in einfachere Teilobjekte räumlich oder logisch unterteilt. Im Kontext dieser Patentanmeldung wird im Folgenden nicht zwischen einfachen Grundobjekten und komplexen Objekten wie beispielsweise zusammen gesetzten oder solchen mit baumartigen Strakturen unterschieden. Beide Fälle werden mit "Objekt" bezeichnet. Zusätzlich zu oben beschriebenen Eigenschaften können Objekte auch eine Transformation besitzen. Diese Transformation kann beispielsweise mit Hilfe einer Transformationsmatrix eine affine Transformation des entsprechenden Objektes in der dreidimensionalen Welt beschreiben und ändert damit die Koordinaten des Objektes.Complex objects can in turn have a tree-like data structure that spatially divides the complex object or, for example, spatially or logically divides it into simpler sub-objects. In the context of this patent application, no distinction is made below between simple basic objects and complex objects such as, for example, composed objects or those with tree-like structures. Both cases are referred to as "object". In addition to the properties described above, objects can also have a transformation. With the help of a transformation matrix, for example, this transformation can describe an affine transformation of the corresponding object in the three-dimensional world and thus changes the coordinates of the object.
Unabhängig von diesen Transformationen kann zu einem Objekt zusätzlich auch eine Anweisungsfolge spezifiziert werden. Diese Anweisungsfolge kann die Eigenschaften des Objektes verändern. Hierzu zählen die geometrischen Eigenschaften (bei einer Kugel beispielsweise ihr Radius) und die Materialeigenschaften (beispielsweise ihre Farbe).Irrespective of these transformations, an instruction sequence can also be specified for an object. This sequence of instructions can change the properties of the object. These include the geometric properties (for example, the radius of a sphere) and the material properties (for example, its color).
Zudem kann auch die Beleuchtungssituation in der virtuellen Welt spezifiziert werden.In addition, the lighting situation in the virtual world can also be specified.
Die baumartige Datenstruktur ist aus folgenden Komponenten aufgebaut:The tree-like data structure is made up of the following components:
• Baumknoten: Jeder Knoten im Baum beschreibt die Lage einer achsenparallelen Teilungsebene im dreidimensionalen Raum.• Tree nodes: Each node in the tree describes the position of a division plane parallel to the axis in three-dimensional space.
• Baumblatt: Jedes Blatt des Baums beschreibt den Inhalt eines Raumvolumens. Das Raumvolumen kann dabei ein oder mehrere Objekte enthalten oder auch leer sein.• Tree leaf: Each leaf of the tree describes the content of a room volume. The room volume can contain one or more objects or be empty.
• Platzhalter: Ein Platzhalter kann anstelle eines Baumknotens, Baumblatts oder eines Objektes stehen. Ein Platzhalter besteht aus zwei Teilen: Einem Stellvertreter, der ein Objekt enthält, und einem Ersatzobjekt. Das Ersatzobjekt wird durch eine Folge von Anweisungen spezifiziert, kann aber zusätzlich auch noch Objekte und baumartige Strukturen sowie weitere Platzhalter enthalten. Werden die Anweisungen ausgeführt, so können dabei neue Baumknoten, Baumblätter, Baumkanten, Objekte und Platzhalter entstehen, die nach vollständiger Ausführung der Anweisungen den Stellvertreter ersetzen.• Placeholder: A placeholder can stand in place of a tree node, tree leaf or an object. A placeholder consists of two parts: a substitute, which contains an object, and a replacement object. The replacement object is specified by a sequence of instructions, but can also contain objects and tree-like structures as well as other placeholders. If the instructions are carried out, new tree nodes, tree leaves, tree edges, objects and placeholders can be created, which replace the deputy after the instructions have been fully executed.
• Baumkanten: Diese Kanten stellen die Verbindungen zwischen den Komponenten dar.• Tree edges: These edges represent the connections between the components.
Solche baumartigen Datenstrukturen sind in der Computer-Technik bekannt, bestehen dort aber nur aus Baumknoten, Baumblättern und Baumkanten. Der vorhegenden Erfindung am nächsten sind dabei die KD-Bäume, die ihrerseits mit den BSP-Bäumen verwandt sind. Insbesondere die Erweiterung um Platzhalter im Zusammenhang mit dem Ray Tracing Verfahren wurde im Rahmen dieser Erfindung gemacht. Ebenfalls Bestandteil der Erfindung ist die Zusammenstellung der Definition von Objekten. Als Gesamtheit, die alle möglichen Eigenschaften gleichartig unterstützt und vereint, ist diese Definition neuartig. Die Definitionen werden zum besseren Verständnis nochmals im Zusammenhang mit Figur 3 erläutert.Such tree-like data structures are known in computer technology, but there only consist of tree nodes, tree leaves and tree edges. The closest to the present invention are the KD trees, which in turn are related to the BSP trees. In particular, the addition of placeholders in connection with the ray tracing method was made in the context of this invention. The composition of the definition of objects is also part of the invention. As a whole, which supports and unites all possible properties in the same way, this definition is new. The definitions are explained again in connection with FIG. 3 for better understanding.
Die oben genannte Aufgabe wird erfindungsgemäß nach Anspruch 1 gelöst, wonach ein Ray Tracing Verfahren verwendet wird. Das Ray Tracing Verfahren bedeutet, das bei dessen Durchführung mindestens ein Teil der geometrischen Beschreibung der Welt mit Strahlen geschnitten wird, wobei aus Schnittpunkten von Objekten der Welt mit den Strahlen die zweidimensionale Abbildung zusammen gesetzt wird. Weiterhin werden mehrere Strahlen zu einem Paket von diskreten Strahlen zusammen gefasst. Dabei erfolgt dann eine Assoziation einer Datenstruktur mit jedem Paket von diskreten Strahlen. Zu dieser Datenstruktur wird eine zustandsmäßige Zuordnung zu jedem Strahl gespeichert. Dieser Zustand gibt mindestens an, ob der bezeichnete Strahl an der Operation, die zu diesem Zeitpunkt auf das Paket angewendet wird, teilnimmt. Es erfolgt weiterhin die Anwendung aller Arbeitsschritte des Verfahrens auf ein Paket von mehreren diskreten Strahlen. Dabei wird in einem Arbeitsschritt, der eine Operation auf einem Paket ausführt, diese Operation auf jedem Strahl des Paketes ausgeführt, falls sich aus der gespeicherten zustandsmäßigen Zuordnung des Strahl zu der Datenstruktur ergibt, dass der betreffende Strahl an dieser Operation teilnimmt. Die Gliederung des Ray-Tracing Verfahrens erfolgt dabei in die folgenden Arbeitsschritte, die für ein Paket von Strahlen jeweils nacheinander abgearbeitet werden:The above object is achieved according to claim 1, according to which a ray tracing method is used. The ray tracing method means that when it is carried out, at least part of the geometric description of the world is cut with rays, the intersection of objects of the world with the rays being used to compose the two-dimensional image. Furthermore, several beams are combined to form a package of discrete beams. A data structure is then associated with each packet of discrete beams. A status-related assignment to each beam is stored for this data structure. This state at least indicates whether the designated beam is participating in the operation being applied to the packet at that time. All steps of the method are still applied to a package of several discrete beams. In a work step that carries out an operation on a packet, this operation is carried out on each ray of the packet, if the stored status-related assignment of the ray to the data structure shows that the ray in question is participating in this operation. The ray tracing process is divided into the following work steps, which are processed one after the other for a packet of beams:
A Kamerastrahlerzeugung: Erzeugung eines Pakets von Strahlen, die von der virtuellen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen. B Baumtraversierung: Gemäß der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird. Hierzu werden Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt. Wird ein Platzhalter erreicht, so wird die entsprechende Anweisungsfolge ; des Ersatzobjektes ausgeführt. Hierbei wird der Platzhalter durch ein Objekt ersetzt, das auch komplex sein kann. Dabei stehen zwei Alternativen zur Verfügung: Entweder wird zuerst die Anweisungsfolge vollständig ausgeführt und anschließend entsprechend der neuen Struktur des Baums das Verfahren fortgesetzt oder die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem Stellvertreter des Platzhalters fortgesetzt word und bei vollständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird.A Camera beam generation: Generation of a packet of beams that are to be cut from the virtual camera with the geometry of the three-dimensional world. B Tree traversing: According to the spatial orientation of the rays, the tree data structure for the geometry of the three-dimensional world is run through until a tree leaf or a placeholder is reached. For this purpose, tree nodes and placeholders are read from a memory and calculations are carried out. If a placeholder is reached, the corresponding instruction sequence ; of the replacement object. The placeholder is replaced by an object that can also be complex. There are two alternatives: Either the instruction sequence is first completely executed and then the procedure is continued according to the new structure of the tree, or the instruction sequence is executed asynchronously, the procedure being carried out directly with the representative of Placeholder continued word and is replaced by the result of this processing when the instruction sequence of the replacement object has been completely processed.
C Einlesen des Baumblatts: Aus einem Speicher werden alle Referenzen der Objekte und Platzhalter, die sich in diesem Baumblatt befinden, eingelesen. Wird dabei ein Platzhalter eingelesen, so wird die entsprechende Anweisungsfolge ausgeführt.C Reading in the tree leaf: All references of the objects and placeholders that are in this tree leaf are read from a memory. If a placeholder is read in, the corresponding sequence of instructions is executed.
D Schneiden aller Objekte: Einlesen und Schneiden aller Objekte, die in Arbeitsschritt C spezifiziert wurden, mit dem Paket von Strahlen. Wurde zu einem Objekt eine Transformation spezifiziert, so wird diese angewendet, bevor der Schnitt mit dem Objekt berechnet wird. Wurde zu einem Objekt eine geometrieverändernde Anweisungsfolge spezifiziert, so wird diese ausgeführt, bevor der Schnitt mit dem Objekt berechnet wird. Falls ein zu schneidendes Objekt ein komplexes Objekt mit eigener Baumstruktur ist, das traversiert werden muss, dann wird dieses Objekt geschnitten, indem die Arbeitsschritte B - F, angepasst an das komplexe Objekt, ausgeführt werden.D Cutting of all objects: Reading and cutting of all objects that were specified in step C with the packet of rays. If a transformation has been specified for an object, this is applied before the intersection with the object is calculated. If a geometry-changing instruction sequence has been specified for an object, this is executed before the cut with the object is calculated. If an object to be cut is a complex object with its own tree structure that has to be traversed, then this object is cut by carrying out the work steps B - F, adapted to the complex object.
E Schnittauswertung: Auswerten, ob für das Paket von Strahlen gültige Schnittpunkte vorhegen. Falls es noch Elemente des Baums gibt, die für einen Strahlschnitt in Frage kommen, aber noch nicht untersucht wurden und der vorangegangene Arbeitsschritt nicht in ausreichender Menge gültige Schnittpunkte ergeben hat, dann wird unter Einbeziehung der bisherigen Ergebnisse bei Arbeitsschritt B erneut eingesetzt, ansonsten mit Schritt F fortgefahren. Hierbei wird gegebenenfalls der Zustand des Pakets geändert.E Section evaluation: Evaluate whether there are valid intersection points for the packet of rays. If there are still elements of the tree that are eligible for a beam cut but have not yet been examined and the previous work step did not result in sufficient intersection points, the previous results are used again in step B, otherwise with step F continued. If necessary, the status of the package is changed.
F Bestimmung der Objekteigenschaften: Die Ergebnisse der vorangegangenen Arbeitsschritte werden ausgewertet. Dabei können Daten, von Objekten aus einem Speicher gelesen werden, falls diese einen gültigen Schnittpunkt mit einem der Strahlen haben. Die Ergebnisse der Berechnungen fließen in Schritt G ein und bei entsprechenden Ergebnissen können Werte in einen Speicher neu berechnet werden. Wurde zu einem der Objekte, die von einem Strahl geschnitten wurden, eine materialverändernde Anweisungsfolge spezifiziert, und sind die Materialeigenschaften dieses Objekts für den Arbeitsschritt F oder G von Bedeutung, so wird diese Anweisungsfolge vor den Berechnungen des Arbeitsschritts F ausgeführt.F Determination of the object properties: The results of the previous work steps are evaluated. Data can be read from objects from a memory if they have a valid intersection with one of the beams. The results of the calculations flow into step G and, if the results are appropriate, values can be recalculated in a memory. If a material-changing instruction sequence has been specified for one of the objects that have been cut by a beam, and if the material properties of this object are important for work step F or G, then this instruction sequence is carried out before the calculations of work step F.
G Folgestrahlerzeugung; Wird in Schritt F berechnet, dass ein oder mehrere, weitere Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, dann werden in diesem Schritt entsprechende Pakete von Strahlen berechnet und das Verfahren setzt für diese Strahlen bei Arbeitsschritt B erneut an. Ansonsten wird wieder bei Schritt A eingesetzt, falls zur Ausbildung der zweidimensionalen Abbildung noch weitere Kamerastrahlen erzeugt werden müssen.G subsequent beam generation; If it is calculated in step F that one or more further beams with the geometry of the three-dimensional world are to be cut, then corresponding packets of beams are calculated in this step and the method starts again for these beams in step B. Otherwise, will be back used in step A if further camera beams have to be generated to form the two-dimensional image.
Damit wird ein Verfahren zur Ausbildung von einer zweidimensionalen Abbildung einer virtuellen dreidimensionalen Welt beschrieben. Hierbei ist die dreidimensionale Welt nach obigen Definitionen spezifiziert. Das Verfahren zeichnet sich durch eine neuartige Technik zur Datenreduktion aus, ohne unnötige Berechnungen zu bedingen. Bei dieser Technik werden einzelne Strahlen zu einem Paket von Strahlen zusammengefasst, wie bereits in Ingo Wald, Carsten Benthin, Markus Wagner, Phiüpp Slusallek: "Interactive Rendering with Coherent Ray-Tracing", Computer Graphics Forum / Proceedings of the EUROGRAPHICS 2001, Manchster, United Kingdom, September 3-7, 2001, http ://graphics. cs.uni- sb.de/Publications/2001/InteractiveRenderingWithCoherentRayTracing.pdf beschrieben.This describes a method for forming a two-dimensional image of a virtual three-dimensional world. The three-dimensional world is specified according to the above definitions. The process is characterized by a new technique for data reduction without unnecessary calculations. With this technique, individual rays are combined into a packet of rays, as already in Ingo Wald, Carsten Benthin, Markus Wagner, Phiüpp Slusallek: "Interactive Rendering with Coherent Ray-Tracing", Computer Graphics Forum / Proceedings of the EUROGRAPHICS 2001, Manchster, United Kingdom, September 3-7, 2001, http: // graphics. cs.uni- sb.de/Publications/2001/InteractiveRenderingWithCoherentRayTracing.pdf.
Eine neuartige und erfinderische Erweiterung gegenüber dem in der genannten Veröffentlichung beschriebenen Verfahren besteht durch die Assoziation einer Datenstruktur mit jedem dieser Pakete. Diese Datenstruktur enthält dabei den Zustand jedes Strahls eines Pakets. Weiterhin werden die einzelnen Arbeitsschritte des Ray Tracing Verfahrens derart gegliedert, dass sie die neue Technik optimal unterstützen und sich gleichzeitig besonders eigenen, um gerätetechnisch umgesetzt zu werden.A novel and inventive extension to the method described in the cited publication is the association of a data structure with each of these packages. This data structure contains the state of each beam of a packet. Furthermore, the individual steps of the ray tracing process are structured in such a way that they optimally support the new technology and at the same time are particularly unique in order to be implemented in terms of device technology.
Zur Verdeutlichung sei auf die nachfolgenden Ausführungen im Zusammenhang mit Figur 3 verwiesen, in denen erläutert wird, wie die Berechnung abläuft, wenn die Strahlen Rl und R2 zu einem Paket zusammengefasst werden.For clarification, reference is made to the following explanations in connection with FIG. 3, in which it is explained how the calculation proceeds when the rays R1 and R2 are combined to form a package.
Bei der Abarbeitung des Verfahrens bietet sich die Möglichkeit, ein Paket genau einem Arbeitsschritt zuzuordnen, um damit einen strukturierten Ablauf zu erreichen.When working through the procedure, it is possible to assign a package to exactly one work step in order to achieve a structured process.
Ein Paket kann aber auch mehreren Arbeitsschritten gleichzeitig zugeordnet sein, um dadurch eine bessere Auslastung der Datenverarbeitungsanlage zu erreichen. Beispielsweise könnte die Bearbeitung von Strahlen, für die bereits in Schritt E gültige Schnittpunkte berechnet wurden, mit Schritt F fortfahren, während für die anderen Strahlen die Berechnung mit Schritt B fortgeführt wird. Sobald dann alle Strahlen des Pakets die Berechnungen in Schritt F ausgeführt haben, könnte das Paket wieder' geschlossen mit der Bearbeitung von Schritt G fortfahren.However, a package can also be assigned to several work steps at the same time in order to achieve better utilization of the data processing system. For example, the processing of rays for which intersection points already valid in step E were calculated could continue with step F, while for the other rays the calculation is continued with step B. Then as soon as all rays of the packet do the calculations in step F the package could ' continue processing step G closed.
Bei der Ausgestaltung des Verfahrens nach Anspruch 2 werden die in Arbeitsschritt G erzeugten Strahlen durch einen weiteren Arbeitsschritt in neue Pakete zusammengefasst. Dabei werden alle neu erzeugten Strahlen gesammelt, sortiert zu neuen Paketen von diskreten Strahlen zusammen gestellt.In the embodiment of the method according to claim 2, the beams generated in step G are combined into new packets by a further step. All newly generated rays are collected, sorted into new packets of discrete rays.
Hierbei enthält ein neues Paket nicht unbedingt nur Strahlen, die aufgrund von Berechnungsergebnissen genau eines Vorgänger-Strahlenpaketes erzeugt wurden, vielmehr kann der Arbeitschritt des Sammelns und Umsortierens neu erzeugte Strahlen von mehreren Vorgänger-Strahlpaketen, die logisch zusammenhängen, zu neuen Paketen kombinieren.Here, a new package does not necessarily only contain rays that were generated on the basis of the calculation results of exactly one predecessor ray package, rather the step of collecting and re-sorting newly generated rays from several predecessor ray packages, which are logically related, can combine to form new packages.
In Zusammenhang mit Anspruch 1, insbesondere auch bei den Ausführungen zu Figur 3 wurde beschrieben, wie sich der Effekt der Datenreduktion beim Traversieren von Paketen auswirkt und dadurch auch eine Dateπreduktion für die Schritte C (Einlesen des Baumblatts), D (Schneiden aller Objekte) und E (Schnittauswertung) zur Folge hat. Dieser Effekt tritt nicht auf, wenn die Pakete ungünstig aus Strahlen zusammengestellt werden.In connection with claim 1, in particular also in the case of the explanations relating to FIG. 3, it was described how the effect of data reduction when traversing packets works and thereby also a date reduction for steps C (reading in the tree leaf), D (cutting all objects) and E (cut evaluation). This effect does not occur if the packages are unfavorably assembled from rays.
Besucht beispielsweise der Strahl Rl die Baumkomponenten (Nl, N2, VI} und der Strahl R2 die Baumkomponenten {N3, V2}, so wird durch das Traversieren des Paketes keine Datenreduktion gegenüber einer Traversierung der einzelnen Strahlen erreicht.If, for example, the ray R1 visits the tree components (Nl, N2, VI} and the ray R2 the tree components {N3, V2}, no data reduction compared to traversing the individual rays is achieved by traversing the packet.
Anspruch 2 beschreibt hier vorteilhaft einen Arbeitsschritt, der das in Anspruch 1 beschriebene Verfahren erweitert und neu erzeugte Strahlen derart zu Paketen zusammenfasst, dass eine Datenreduktion bei der Traversierung der Pakete gegenüber der Traversierung der einzelnen Strahlen erreicht wird.Claim 2 advantageously describes a work step which extends the method described in claim 1 and combines newly generated beams into packets in such a way that data reduction in the traversing of the packets compared to the traversing of the individual beams is achieved.
Bei der Ausgestaltung des Verfahrens nach Anspruch 3 wird ein Multi-Threading Verfahren eingesetzt, wobei jeweils ein Paket von Strahlen als ein Thread betrachtet wird.In the embodiment of the method according to claim 3, a multi-threading method is used, a packet of beams being considered as one thread.
Das Multi-Threading Verfahren wird innerhalb eines Arbeitsschritts eingesetzt, um Funktionseinheiten sinnvolle Arbeiten verrichten zu lassen, während sie auf Ergebnisse von anderen Funktionseinheiten warten. Hierbei hält jeder Arbeitsschritt einen Vorrat von Paketen, den die Funktionseinheiten des Arbeitsschritts abwechselnd abarbeiten.The multi-threading process is used within one work step to allow functional units to perform meaningful work while they are based on the results of other functional units. Each work step keeps a supply of packages, which the functional units of the work step alternately process.
In einigen Arbeitsschritten werden Daten aus einem Speicher geladen. Üblicher Weise dauert das Laden von Daten aus einem Speicher einige Zeiteinheiten. Da aber noch auf die zu ladenden Daten gewartet werden muss bevor die Berechnungen ausgeführt werden können, vergeht diese Wartezeit, ohne dass sinnvolle Berechnungen ausgeführt werden können. Wenn einem Arbeitsschritt mehrere Pakete gleichzeitig zugeordnet sind, dann könnte der Ablauf einer Berechnung folgender Maßen aussehen:In some steps, data is loaded from a memory. Loading data from a memory usually takes a few time units. However, since the data to be loaded has to be waited for before the calculations can be carried out, this waiting time passes without meaningful calculations being able to be carried out. If several packages are assigned to a work step at the same time, the calculation could look like this:
Für Paket 1 wird berechnet, welches Datum aus dem Speicher geladen werden soll. Danach wird für Paket 1 das Datum aus dem Speicher geladen und zeitgleich für Paket 2 berechnet, welches Datum für Paket 2 aus dem Speicher geladen werden soll. Wenn dann das Datum aus dem Speicher für Paket 1 geladen wurde, kann die Berechnung für Paket 1 ausgeführt werden. Zeitgleich wird für Paket 2 das entsprechende Datum aus dem Speicher geladen und für Paket 3 berechnet, welches Datum das Paket 3 aus dem Speicher laden möchte, u.s.w.Package 1 calculates which date should be loaded from memory. The date for package 1 is then loaded from the memory and at the same time for package 2 the date for package 2 is to be loaded from the memory. Then, when the date is loaded from the package 1 memory, the calculation for package 1 can be performed. At the same time, the corresponding date for package 2 is loaded from the memory and calculated for package 3, which date package 3 would like to load from the memory, etc.
Vorteilhaft wird also im Zusammenhang mit dem beschriebenen Verfahren ein Paket als ein Thread klassifiziert.In connection with the described method, a packet is therefore advantageously classified as a thread.
Gemäß Anspruch 4 ist das Verfahren so ausgestaltet, dass die Menge der Daten der dreidimensionalen Welt derart verwaltet wird, dass zu einem Zeitpunkt nur ein Teil dieser Daten im Speicher gehalten wird.According to claim 4, the method is designed such that the amount of data in the three-dimensional world is managed in such a way that only part of this data is held in the memory at a time.
Dabei werden vorteilhaft stets die Daten ganzer Objekte bzw. ganzer Teilobjekte in den Speicher geladen, bzw. aus dem Speicher entfernt, um Platz für neu benötigte (Teil-) Objekte zu schaffen. Hierbei kann das Verfahren so ausgestaltet werden, dass hierfür ein eigenständiger Arbeitsschritt realisiert wird, in dem protokolliert wird, auf welche (Teil-) Objekte wann und wie oft zugegriffen wurde. Weiterhin können in diesem Arbeitsschritt die gesammelten Informationen verwendet werden, um selbsttätig den Speicher zu verwalten und bei Bedarf neue Teile der dreidimensionalen Welt in den Speicher zu laden und zu entfernen.In this case, the data of entire objects or entire partial objects are advantageously always loaded into the memory or removed from the memory in order to make room for newly required (partial) objects. Here, the method can be designed in such a way that an independent work step is implemented in which it is logged which (partial) objects were accessed when and how often. In this step, the information collected can also be used to automatically manage the memory and, if necessary, to load and remove new parts of the three-dimensional world from the memory.
Eine virtuelle Welt kann also aus einer Vielzahl von Objekten bestehen. Dabei kann die Beschreibung der virtuellen Welt so viele Daten umfassen, dass sie sehr viel Speicher benötigt. Beispielsweise in einer Datenverarbeitungsanlage befinden sich mehrere Speicher unterschiedlicher Größe und Geschwindigkeit. Da große Speicher meist wesentüch langsamer sind als kleinere, aber die Geschwindigkeit des Speichers für die zum Abarbeiten des Verfahrens benötigte Zeitdauer eine wichtige Roüe spielt, ist es wünschenswert, alle für das Verfahren wichtigen Daten in einem schnellen Speicher zu halten.A virtual world can therefore consist of a multitude of objects. The description of the virtual world can include so much data that it uses a lot of memory needed. For example, in a data processing system there are several memories of different sizes and speeds. Since large memories are usually much slower than smaller ones, but the speed of the memory plays an important role for the length of time required to process the method, it is desirable to keep all the data important for the method in a fast memory.
Mit dem Verfahren nach Anspruch 4 lässt sich also ein Management der unterschiedlichen Speicher organisieren, mit dem erreichbar wird, dass nach Mögüchkeit immer alle aktuell benötigten Daten in einem schnellen Speicher vorgehalten werden. Dazu protokolüert das Verfahren, welche Objekte oder Teüobjekte wann und wie oft gelesen wurden und lädt bei Bedarf neue (Teil-) Objekte aus einem langsamen Speicher in den schnellen Speicher. Ist der schnelle Speicher voü, so kann das Verfahren Anhand der Buchführung nicht mehr benötigte (Teü-) Objekte ausfindig machen und aus dem schnellen Speicher löschen, damit Platz für die benötigten Daten geschaffen wird. Wichtig ist hierbei auch, dass das Verfahren aus einem der Ansprüche 1, 2 oder 3 nur lesend auf die Daten der virtueüen Welt zugreift und damit nie der Fall auftreten kann, dass die Daten im schneüen Speicher verändert wurden und in den langsamen Speicher zurückgeschrieben werden müssen, bevor sie gelöscht werden können.A management of the different memories can thus be organized with the method according to claim 4, with which it can be achieved that, if possible, all the data currently required is always kept in a fast memory. For this purpose, the procedure records which objects or sub-objects were read when and how often and loads new (partial) objects from slow memory into fast memory if necessary. If the fast memory is full, the method can use the bookkeeping to locate (part) objects that are no longer required and delete them from the fast memory so that space is created for the required data. It is also important here that the method from one of claims 1, 2 or 3 has read-only access to the data of the virtual world and thus the case can never occur that the data in the snappy memory has been changed and must be written back to the slow memory before they can be deleted.
Es ist auch mögüch, die Daten- und Speicherverwaltung so zu organisieren, dass dabei stets Blöcke von Daten in den Speicher geladen, bzw. aus dem Speicher entfernt werden, um Platz für neu benötigte Daten zu schaffen. Auch hierbei kann ein eigenständiger Arbeitsschritt reaüsiert werden, in dem protokolüert wird, aufweiche Blöcke wann und wie oft zugegriffen wurde. Weiterhin können in diesem Arbeitsschritt die gesammelten Informationen verwendet werden, um selbsttätig den Speicher zu verwalten und bei Bedarf neue Teüe der dreidimensionalen Welt in den Speicher zu laden und zu entfernen.It is also possible to organize the data and memory management in such a way that blocks of data are always loaded into the memory or removed from the memory in order to make room for newly required data. Here, too, an independent work step can be reactivated, in which it is logged, which blocks were accessed when and how often. In this step, the information collected can also be used to automatically manage the memory and, if necessary, to load and remove new parts of the three-dimensional world from the memory.
Bei dieser Alternative besteht zu der vorher im Zusammenhang mit Anspruch 4 erläuterten Variante der Unterschied darin, dass nicht ganze Objekte oder Teilobjekte aus einem langsamen Speicher gelesen oder im schnellen Speicher gelöscht werden, sondern dass die Daten der virtueüen Welt in Blöcke unterteüt werden und diese Blöcke bei Bedarf in den schnellen Speicher gelesen oder aus ihm gelöscht werden. Insbesondere kann durch diese Unterteilung ein Objekt in mehrere Blöcke gegliedert sein. Der Vorteil dabei ist, dass bei einer festen Größe der Blöcke immer die gleiche Anzahl von Datenelementen aus einem Speicher gelesen oder gelöscht werden. Bei dem Verfahren aus Anspruch 4 kann die Anzahl der gelesenen oder gelöschten Datenelemente sehr stark mit dem jeweiligen Objekt schwanken.In this alternative to the variant previously explained in connection with claim 4, the difference is that not whole objects or partial objects are read from a slow memory or deleted in the fast memory, but that the data of the virtual world are subdivided into blocks and these blocks read into or deleted from the fast memory if necessary. In particular, this subdivision allows an object to be divided into several blocks. The advantage here is that with a fixed size of the blocks, the same number of data elements are always read or deleted from a memory. In the method of claim 4, the number of the read or deleted data elements fluctuate greatly with the respective object.
Anspruch 5 betrifft eine Vorrichtung zur Durchführung eines der vorgenannten Verfahren, wobei die einzelnen Arbeitsschritte durch eigenständige Funktionsgruppen dargesteUt sind.Claim 5 relates to a device for performing one of the aforementioned methods, the individual work steps being represented by independent function groups.
Diese Funktionsgruppen bilden also vorteilhaft geschlossene Einheiten, die so durch derartige Management-Funktionen erweitert sind, dass weitere gleichartige Einheiten dem System hinzugefügt werden können und dadurch eine Steigerung der Leistung des Systems erreicht werden kann.These functional groups thus advantageously form closed units which are expanded by such management functions that further similar units can be added to the system and an increase in the performance of the system can thereby be achieved.
Hierbei können die Funktionsgruppen zusätzlich mit Funktionen zum Management ausgestattet werden, so dass mehrere gleichartige Funktionsgruppen in einem Gerät vereint werden können und damit die Leistungsfähigkeit des Geräts gesteigert werden kann. Um zu erreichen, dass durch die Hinzunahme von gleichartigen Funktionsgruppen eine Steigerung der Leistungsfähigkeit des Geräts erzielt werden kann, müssen die Funktionsgruppen in geeigneter Weise angeordnet werden, damit die nötigen Berechnungsschritte gleichmäßig auf aüe zur Verfügung stehenden Einheiten verteüt werden.The function groups can also be equipped with management functions so that several function groups of the same type can be combined in one device and the performance of the device can be increased. In order to achieve that an increase in the performance of the device can be achieved by adding similar functional groups, the functional groups must be arranged in a suitable manner so that the necessary calculation steps are evenly distributed over the available units.
Daneben können die Funktionsgruppen zusätzüch das Pipelining Verfahren einsetzen, bei dem sich gleichzeitig mehrere Pakete im Verfahren befinden. Beim Pipelining Verfahren werden nicht einzelne Pakete nacheinander berechnet sondern es können sich mehrere Pakete gleichzeitig im Verfahrensablauf und in unterschiedüchen Arbeitsschritten befinden. Beispielsweise könnte Paket 1 in Arbeitsschritt A erzeugt werden. Während danach die Berechnungen für Paket 1 in Arbeitsschritt B ausgeführt werden, könnte in Schritt A das Paket 2 erzeugt werden. Ist die Berechnung von Paket 1 in Schritt B fertig, gelangt das Paket 1 in den Arbeitsschritt C und das Paket 2 kann in Schritt B bearbeitet werden, während in Schritt A das Paket 3 erzeugt wird, u. s. w.In addition, the function groups can also use the pipelining process, in which there are several packets in the process at the same time. In the pipelining process, individual packets are not calculated one after the other, but several packets can be in the process flow and in different work steps at the same time. For example, package 1 could be created in step A. While the calculations for package 1 are then carried out in step B, package A could be generated in step A. If the calculation of package 1 in step B is finished, package 1 goes to work step C and package 2 can be processed in step B, while package A is generated in step A, u. s. w.
Das Pipelining Verfahren kann auch direkt in Verbindung mit dem Multi-Threading Verfahren eingesetzt werden. Dabei erhält dann jeder Arbeitsschritt eine Menge von Threads, die von ihm abwechselnd bearbeitet werden. Nachdem die Bearbeitung eines Threads in einem Arbeitsschritt abgeschlossen ist, wird dieser Thread an den nächsten Arbeitsschritt weiter gegeben und dieser führt dann diesen Thread zusammen mit denen nacheinander aus, die ihm bereits . zugeordnet sind. Beide Verfahren zusammen erlauben eine sehr hohe Auslastung der Funktionseinheiten eines Gerätes.The pipelining process can also be used directly in connection with the multi-threading process. Each work step then receives a number of threads, which it processes in turn. After the processing of a thread is completed in one work step, this thread is passed on to the next work step and this thread then executes this thread together with those one after the other, the him already. assigned. Both methods together allow a very high utilization of the functional units of a device.
Anspruch 6 betrifft eine Vorrichtung zur DurcMührung eines der vorgenannten Verfahren, wobei die einzelnen Arbeitsschritte folgender Maßen zu Funktionsgruppen zusammen gefasst sind:Claim 6 relates to a device for performing one of the aforementioned methods, the individual work steps of the following dimensions being combined to form functional groups:
• RGS: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte A, F und G und erweitert diese um Einheiten zum Management von Untereinheiten.• RGS: Includes several functional units for work steps A, F and G and extends these by units for the management of sub-units.
- Master: Koordiniert die Arbeit der Slave-Funktionseinheiten.- Master: Coordinates the work of the slave functional units.
- Slave: Enthält Einheiten für die Arbeitsschritte A, F und G.- Slave: Contains units for work steps A, F and G.
- Memlnt: Koordiniert den Zugriff von Slave-Einheinten auf externen Speicher.- Memlnt: Coordinates access by slave units to external storage.
• RTC: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte B, C, D und E.• RTC: includes several functional units for work steps B, C, D and E.
- Traversal: Funktionseinheit, die die Arbeitsschritte B und E umfasst.- Traversal: functional unit that includes work steps B and E.
- List: Funktionseinheit für den Arbeitsschritt C.- List: functional unit for work step C.
- Intersection: Funktionseinheit für den Arbeitsschritt D.- Intersection: functional unit for work step D.
• RTC-MI: Koordiniert und regelt alle Zugriffe der RTC-Einheiten auf externe Speichereinheiten.• RTC-MI: Coordinates and regulates all access by the RTC units to external storage units.
- T-SR: Koordiniert den Zugriff von Traversal-Einheiten auf den T-Cache.- T-SR: Coordinates the access of traversal units to the T-cache.
- T-Cache: Führt Buch über vorangegangene Traversal-Zugriffe und versucht, neue Zugriffe zu vermeiden, in dem es die vorangegangenen Ergebnisse wiederverwertet.- T-Cache: Keeps track of previous traversal accesses and tries to avoid new accesses by recycling the previous results.
- L-SR: Koordiniert den Zugriff von List-Einheiten auf den L-Cache.- L-SR: Coordinates the access of list units to the L cache.
- L-Cache: Analog zu T-Cache für List-Zugriffe.- L-cache: analogous to T-cache for list access.
- I-SR: Koordiniert den Zugriff von tersection-Einheiten auf den I-Cache.- I-SR: Coordinates access by tersection units to the I-cache.
- I-Cache: Analog zu T-Cache für Intersection-Zugriffe.- I-cache: analogous to T-cache for intersection access.
- M-SR: Koordiniert den Zugriff von Cache-Einheiten auf den externen Speicher.- M-SR: Coordinates the access of cache units to the external memory.
- MemCtrl: Leitet die Zugriffe an den dafür zuständigen externen Speicher weiter.- MemCtrl: Forwards the access to the external memory responsible for it.
Die Funktionsgruppen sind in Figur 7 dargesteUt.The function groups are shown in FIG. 7.
Dabei sind vorteilhaft die Funktionsgruppen Slave, Traversal und Intersection so aufgebaut, dass sie mehrere Untereinheiten enthalten, die gleichzeitig Berechnungen durchführen und dabei selbsttätig einen Vorrat an Paketen halten, auf denen sie das Multi-Threading Verfahren anwenden.The function groups slave, traversal and intersection are advantageously constructed in such a way that they contain several subunits that carry out calculations and keep a stock of packages on which they use the multi-threading method.
Die Funktionsgruppen sind derart aufgebaut, dass durch Hinzunahme von weiteren gleichartigen Gruppen die Leistungsfähigkeit des Geräts gesteigert werden kann. Es werden immer genausoviele Slave-Funktionseinheiten wie RTC-Funktionsgruppen (die aus Traversal, List und Intersection Funktionseinheiten bestehen) eingesetzt. Die Funktionseinheiten T-SR, L-SR und I-SR werden so aufgebaut, dass sie die Verbindungen zwischen allen RTC- Funktionsgruppen und den Speichern hersteüen können.The function groups are structured in such a way that the performance of the device can be increased by adding further similar groups. As many slave function units as RTC function groups (consisting of traversal, list and intersection function units) are always used. The functional units T-SR, L-SR and I-SR are set up so that they can establish the connections between all RTC function groups and the memories.
Die Funktionseinheit Master ist die oberste KontroUinstanz des Geräts. Sie erhält als Eingabe die Parameter für die virtuelle Kamera (im Bild mit UI bezeichnet) und vergibt daraufhin Beschreibungen von Paketen an einen oder mehrere Slave-Einheiten. Diese führen mit Hilfe dieser Beschreibungen die Kamerastrahlerzeugung durch und schicken die berechneten Pakete an die assozüerte RTC-Einheit.The functional unit master is the top control instance of the device. It receives the parameters for the virtual camera (labeled UI in the image) as input and then assigns descriptions of packages to one or more slave units. With the help of these descriptions, they carry out the camera beam generation and send the calculated packets to the associated RTC unit.
Die Slave-Einheit erhält als Antwort (einige Zeit später) die Daten der Strahl-Objekt Schnitte und führt dann die Berechnungen zu den Arbeitsschritten F und G durch. Werden Folgestrahlen berechnet, so werden diese wiederum an die assozüerte RTC-Einheit gesendet. Die Slave-Einheiten müssen bei ihren Berechnungen Daten aus einem Speicher lesen und ggf. auch zurückschreiben. Die Speicherzugriffe aller Slave-Einheiten werden von der Memlnt- Einheit koordiniert, die mit einem oder mehreren Speicherbausteinen (in der Skizze mit RAM bezeichnet) verbunden ist.In response (some time later) the slave unit receives the data of the beam-object sections and then carries out the calculations for work steps F and G. If subsequent beams are calculated, these are in turn sent to the associated RTC unit. The slave units must read data from a memory during their calculations and, if necessary, also write them back. The memory accesses of all slave units are coordinated by the Memlnt unit, which is connected to one or more memory modules (designated RAM in the sketch).
Werden in Arbeitsschritt F Büdpunkte oder Objektwerte berechnet, dann schreiben die Slave- Einheiten mit Hufe der Memlnt-Einheit in einen speziellen Speicher (im Bild mit FB bezeichnet), aus dem sie auch Daten wieder auslesen können. Dieser spezielle Speicher könnte zusätzlich mit einer Funktionsgruppe verbunden werden, die an einen Monitor angeschlossen ist, um die berechnete zweidimensionale Abbildung anzuzeigen.If bathing points or object values are calculated in step F, the slave units with hooves of the memlnt unit write into a special memory (labeled FB in the figure), from which they can also read out data again. This special memory could also be connected to a function group which is connected to a monitor in order to display the calculated two-dimensional image.
Die RTC-Funktionsgruppe setzt die Arbeitsschritte Baumtraversierung, Einlesen des Baumblatts, Schneiden aller Objekte und Schnittauswertung um. Möchte eine Einheit der RTC-Gruppe ein Datum aus dem Speicher laden, so richtet sie eine entsprechende Anfrage an die ihr zugeordnete Einheit, also an die T-SR, L-SR bzw. die I-SR Einheit. Alle Speicheranfragen von allen RTC-Gruppen laufen bei den Einheiten T-Cache, L-Cache und I-Cache zusammen. Diese Einheiten haben eine Datenstruktur, in der die Daten von vorangegangenen Speicheranfragen vermerkt werden. Wird eine Anfrage gestellt, deren Antwort aus dem Speicher bereits vermerkt ist, so wird diese Anfrage mit dem Datum aus der Datenstruktur beantwortet. Hierbei ist es von Vorteü, dass alle Anfragen nur Daten aus dem Speicher lesen möchten. Dadurch kann der Inhalt der Datenstruktur einfach bei Bedarf verworfen werden, ohne dass man ihn in den Speicher zurückschreiben muss. Dies ist besonders dann interessant, wenn die Berechnung zu einem neuen Büd beginnt und sich dabei Objekte verändert haben. In diesem Fall wird ein Signal an die Einheiten T-Cache, L-Cache und I-Cache gesendet, welche den Inhalt ihrer Datenstruktur verwerfen, so dass bei einer neuen Anfrage auch das aktueüe Objekt aus dem Speicher gelesen wird. Das in der Datenstruktur vermerkte (alte) Objekt fließt so nicht fälschlicherweise in die neuen Berechnungen ein.The RTC function group implements the work steps tree traversing, reading the tree leaf, cutting of all objects and cutting evaluation. If a unit of the RTC group wants to load a date from the memory, it sends a corresponding request to the unit assigned to it, i.e. to the T-SR, L-SR or the I-SR unit. All memory requests from all RTC groups come together at the T-Cache, L-Cache and I-Cache units. These units have a data structure in which the data from previous storage requests are noted. If a request is made, the answer from which is already noted in the memory, this request is answered with the date from the data structure. It is of advantage that all requests only want to read data from the memory. As a result, the content of the data structure can simply be discarded if necessary, without having to write it back into memory. This is particularly interesting when the calculation for a new Büd begins and objects have changed. In this case, a signal is sent to the T-Cache, L-Cache and I-Cache units, which discard the content of their data structure, so that the current object is also read from the memory when there is a new request. The (old) object noted in the data structure is not incorrectly included in the new calculations.
Die Funktionseinheit M-SR leitet aüe Anfragen von T-Cache, L-Cache und I-Cache an die Einheit MemCtrl weiter. MemCtrl ist die Funktionsgruppe die direkt an den oder die Speicherbausteine (im Bild: RAM) angeschlossen ist. Dabei enthält die Funktionsgruppe MemCtrl mehrere Mechanismen, um eventueUe Wartezeiten zu vermeiden, die beim Zugriff auf die Speicherbausteine entstehen. Zu diesen Mechanismen zählen: Das Hashen von Adressen, um die Anfragen gleichmäßig auf alle Speicherbausteine zu verteüen und das Umsortieren der Anfragen, so dass Wartezeiten, durch den internen Aufbau von Speicherbausteinen verursacht, vermieden werden.The functional unit M-SR forwards all requests from T-cache, L-cache and I-cache to the unit MemCtrl. MemCtrl is the function group that is directly connected to the memory module (s) (in the picture: RAM). The function group MemCtrl contains several mechanisms to avoid possible waiting times that arise when accessing the memory modules. These mechanisms include: hashing addresses in order to distribute the requests evenly to all memory modules and rearranging the requests so that waiting times caused by the internal structure of memory modules are avoided.
Die hier beschriebene Gliederung des Verfahrens in Gerätekomponenten hat den Norteü, dass keine Funktionsgruppe auf Daten zugreifen muss, die in einer anderen Einheit gespeichert sind. Dadurch können die Daten überwiegend lokal gespeichert werden und es ist nicht nötig, größere Datenmengen zwischen den Einheiten zu verschieben, wodurch die gerätetechnische Umsetzung stark vereinfacht wird.The division of the method into device components described here has the advantage that no function group has to access data that is stored in another unit. As a result, the data can mostly be stored locally and it is not necessary to move large amounts of data between the units, which greatly simplifies the implementation in terms of device technology.
Anstatt die Funktionsgruppe zur Ausführung von geometrieverändernden Anweisungsfolgen in die Funktionsgruppe Intersection zu integrieren, kann man sie auch zwischen die Einheit M-SR und T-Cache schalten. Dies bietet den Norteü, dass die Anweisungsfolgen eventuell weniger oft ausgeführt werden, da einige der Ergebnisse dieser Anwendungsfolgen in der Datenstruktur der Einheit T-Cache vermerkt werden.Instead of integrating the function group for executing instruction sequences that change the geometry into the function group Intersection, it can also be switched between the M-SR and T-cache units. This offers the Norteü that the instruction sequences may run less often because some of the results of these application sequences are noted in the data structure of the T-cache unit.
Eine sinnvolle Erweiterung für die Funktionsgruppen T-SR, L-SR, I-SR wäre es, diese mit einem Mechanismus auszustatten, welcher gleichartige Anfragen, die gleichzeitig von verschiedenen Einheiten gesteht werden, zu einer Speicheranfrage zusammenfasst und die Antwort des Speichers an aüe Anfragesteüer zurück sendet. Hierbei kann man "gleichzeitig" auch als "innerhalb einer kurzen Zeitspanne" auffassen. Dieser Mechanismus kann die Anzahl der Speicheranfragen weiter reduzieren.A sensible extension for the function groups T-SR, L-SR, I-SR would be to equip them with a mechanism that combines queries of the same type, which are admitted simultaneously by different units, into a memory query and the response of the memory to external query controllers sends back. Here, one can understand "simultaneously" as "within a short period of time". This mechanism can further reduce the number of memory requests.
Eine sinnvoüe Erweiterung für die Funktionsgruppen T-Cache, L-Cache und I-Cache wäre, diese mit Listen auszustatten, worin aüe Anfragen vermerkt werden, die zwar bereits an den Speicher weitergeleitet wurden, deren Ergebnis aber noch nicht bekannt ist. Wenn jetzt eme Anfrage gesteht wird, die bereits in der Liste vermerkt ist, dann würde der Liste einfach ein weiterer Vermerk hinzugefügt, aber keine Anfrage an den Speicher gesteht. Wenn dann die Antwort vom Speicher erfolgt, würde das Datum entsprechend den Angaben aus der Liste als Antworten auf alle Anfragen gemeldet. Diese Technik kann die Anzahl der Speicheranfragen weiter reduzieren.A useful extension for the function groups T-Cache, L-Cache and I-Cache would be to provide them with lists, in which all requests are noted that have already been forwarded to the memory, but the result of which is not yet known. If a request is now admitted that is already noted in the list, then another note would simply be added to the list, but no request to the memory was admitted. Then, when the response is from the memory, the date would be reported as responses to all requests as given in the list. This technique can further reduce the number of storage requests.
Eine Vorrichtung wie die oben beschriebenen könnte zusätzüch mit einer Funktionsgruppe ausgestattet werden, die zu einer Menge von Objekten selbsttätig die baumartige Datenstruktur berechnet. Dadurch könnte das Gerät beispielsweise auf bewegte Objekte selbsttätig reagieren.A device such as that described above could also be equipped with a functional group that automatically calculates the tree-like data structure for a number of objects. This could allow the device to react automatically to moving objects, for example.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung näher dargesteUt. Es zeigt dabei im einzelnen:An embodiment of the invention is shown in the drawing. It shows in detail:
Fig. 1 : ein Beispiel zur Verdeuthchung des Grundlagen des Ray Tracing Verfahrens,1: an example for the interpretation of the basics of the ray tracing method,
Fig. 2: ein Beispiel zur Durchführung des Ray Tracing Verfahrens,2: an example for the implementation of the ray tracing method,
Fig. 3 : eine Darsteüung zur Verdeutüchung der begrifflichen Definitionen,3: a presentation to clarify the conceptual definitions,
Fig. 4: eine Darsteüung zur Erläuterung der Verwendung von Platzhaltern, Fig. 5 : ein Beispiel zur einer geometrieverändernden Anweisungsfolge,4: a presentation to explain the use of placeholders, 5: an example of a geometry changing instruction sequence,
Fig. 6: die Baumstruktur einer einfachen Welt, bestehend aus Vierecken, Dreiecken und Kreisen undFig. 6: the tree structure of a simple world, consisting of squares, triangles and circles and
Fig. 7: eine Darstellung von Funktionsgruppen in einer Vorrichtung.7 shows a representation of function groups in a device.
Im Zusammenhang mit Figur 1 soU nachfolgend das Ray Tracing Verfahren erläutert werden. Dies kann beispielsweise wie folgt zur HersteUung eines zweidimensionalen Abbüdes verwendet werden: Es wird ein mit Rechenkästchen unterteütes Papier vor die virtueUe Kamera gehalten und dann ein Strahl von der Kamera durch jedes der Kästchen geschickt. Falls ein Strahl ein Objekt trifft, wird das entsprechende Rechenkästchen mit der Farbe des Objektes gefärbt. Wenn dies für aüe Rechenkästchen erfolgt ist, enthält das Blatt Papier eine zweidimensionale Abbüdung von dem, was die virtueUe Kamera sieht. Werden diese Rechenkästchen klein genug gemacht, verüert das Abbild seinen blockartigen Charakter und wird zu einem hochauflösenden Bild. Diese Unterteüung in Rechenkästchen wird in ähnlicher Weise bei Druckern und Monitoren eingesetzt, bei denen ein Büd aus einzelnen Blöcken, sogenannten Büdpunkten (engl. Pixel), zusammengesetzt wird. Im mathematischen Sinne erfolgt das "Schicken eines Strahls in die Welt" durch das Schneiden des Strahls mit aüen oder einzelnen ausgewählten Objekten dieser Welt. Hierbei üefert dann ein Schnitt eines Strahls mit einem Objekt entweder einen Schnittpunkt auf der Oberfläche des Objektes oder nicht.The ray tracing method is explained below in connection with FIG. 1. This can be used, for example, to produce a two-dimensional image as follows: a paper, packed with arithmetic boxes, is held in front of the virtual camera and then a beam is sent from the camera through each of the boxes. If a beam hits an object, the corresponding calculation box is colored with the color of the object. If this has been done for all calculation boxes, the sheet of paper contains a two-dimensional image of what the virtual camera sees. If these calculation boxes are made small enough, the image disguises its block-like character and becomes a high-resolution image. This undercutting in calculation boxes is used in a similar way for printers and monitors in which a Büd is composed of individual blocks, so-called Büdpunkt (English pixels). In the mathematical sense, the "sending a beam into the world" is done by cutting the beam with external or individual selected objects from this world. In this case, a cut of a beam with an object either crosses an intersection on the surface of the object or not.
Figur 2 zeigt die Berechnungen für einen Strahl Rl, der von der virtueüen Kamera (CAM) in die virtueUe Welt geschickt wird.FIG. 2 shows the calculations for a ray R1 that is sent from the virtual camera (CAM) into the virtual world.
Der Strahl Rl schneidet das Objekt 01 (eine Kugel) im Punkt Pl. Bei einer einfachen Variante des Ray Tracing Verfahrens würde beispielsweise nur nachgeschaut, welche Farbe das Objekt 01 im Punkt Pl besitzt und dann der entsprechende Bildpunkt in dieser Farbe eingefärbt.The ray R1 intersects the object 01 (a sphere) at the point P1. In a simple variant of the ray tracing method, for example, one would only look up the color of the object 01 at the point P1 and then color the corresponding pixel in this color.
Als mögliche Erweiterungen dieses Verfahrens könnte die Beleuchtungssituation an dem Punkt Pl untersucht werden. Hierfür würde dann in einem einfachen Beispiel ein weiterer Strahl Ll von einer LichtqueUe LS zu dem Punkt Pl geschickt werden. Falls der Strahl Ll kein Objekt zwischen LS und Pl schneidet, so gibt es kein Objekt, welches die Lichtquelle vom Punkt Pl aus gesehen verdeckt, so dass das Licht von LS am Punkt Pl ankommt und diesen beleuchtet. In einem anderen Fall, bei einem Strahl L3 von der LichtqueUe LS zu Punkt P3, hegt ein Objekt 04 derart im virtueüen Raum, so dass der Punkt P3 im Schatten liegt.The lighting situation at point P1 could be examined as possible extensions of this method. A simple example would then be another Beam Ll be sent from a light source LS to the point P1. If the beam L1 does not intersect an object between LS and Pl, there is no object that covers the light source as seen from point Pl, so that the light from LS arrives at point Pl and illuminates it. In another case, with a beam L3 from the light source LS to point P3, an object 04 lies in virtual space in such a way that point P3 lies in the shadow.
Bei einer anderen möglichen Erweiterung könnten die Materialeigenschaften des geschnittenen Objekts näher in Betracht gezogen werden. Unter der Annahme, Objekt 01 hätte eine spiegelnde Oberfläche, müsste zur Bestimmung der Farbe des Objektes Ol im Punkt Pl überprüft werden, welches Objekt sich in dem Punkt Pl spiegelt. Auch in diesem Fall würde ein weiterer Strahl R2, jetzt ausgehend von Punkt Pl, in die virtueUe Welt geschickt.In another possible extension, the material properties of the cut object could be considered. Assuming that object 01 has a reflective surface, to determine the color of the object O1 at point Pl it should be checked which object is reflected at point Pl. In this case too, a further ray R2, now starting from point P1, would be sent into the virtual world.
In unserem Beispiel der Figur 2 schneidet R2 das Objekt 02 im Punkt P2. Zur Bestimmung der Farbe in P2 wird der Strahl L2 berechnet. In diesem Beispiel ist das Objekt 02 eine Glasscheibe, so dass zur Bestimmung der Farbe des Punktes P2 ermittelt werden muss, welches Objekt durch die Glasscheibe 02 zu sehen ist. Hierzu wird der Strahl R3 ausgehend vom Punkt P2 in die virtueUe Welt geschickt. Als Schnittpunkt ergibt sich der Punkt P3 auf dem Objekt 03. Auch für P3 wird die Beleuchtungssituation berechnet, um dann dessen Farbe zu bestimmen. Die Farbe für den Bildpunkt, der zu Strahl Rl gehört, setzt sich dann aus den gewichteten Farben an den Punkten Pl, P2 und P3 zusammen.In our example in FIG. 2, R2 intersects object 02 at point P2. The beam L2 is calculated to determine the color in P2. In this example, the object 02 is a glass pane, so that in order to determine the color of the point P2, it must be determined which object can be seen through the glass pane 02. For this purpose, the ray R3 is sent from the point P2 into the virtual world. The point P3 on the object 03 results as the intersection point. The lighting situation is also calculated for P3, in order then to determine its color. The color for the pixel belonging to beam Rl is then composed of the weighted colors at points P1, P2 and P3.
In diesem Beispiel mussten zur Bestimmung der Farbe eines einzigen Bildpunktes sechs Strahlen berechnet werden. In der Regel haben hochauflösende zweidimensionale Abbildungen einige Millionen Bildpunkte, entsprechend höher ist dabei der Berechnungsaufwand.In this example, six rays had to be calculated to determine the color of a single pixel. As a rule, high-resolution two-dimensional images have a few million pixels, and the calculation effort is correspondingly higher.
Als ein weiteres Problem bei der HersteUung einer zweidimensionalen Abbildung von einer dreidimensionalen virtueüen Welt steht sich die Komplexität dieser Welt dar. In Figur 2 besteht die Welt aus den Objekten Ol, 02, 03 und 04, sowie der LichtqueUe (LS) und der virtueüen Kamera (CAM). Bei einer Betrachtung des Strahls Rl ist zu sehen, dass der Strahl - wenn überhaupt - das Objekt Ol schneidet. Für einen Automaten ist es nicht offensichtlich, dass für einen Schnitt nur Objekt Ol in Betracht kommt. Ein Verfahren für einen Automaten müsste demnach alle Objekte der virtueüen Welt mit dem Strahl Rl schneiden, um herauszufinden, welches Objekt der Strahl Rl trifft. Besonders wenn die virtueUe Welt aus einer großen Anzahl von Objekten besteht, müssen sehr viele Berechnungen zur HersteUung eines zweidimensionalen Abbildes durchgeführt werden. Zur Lösung dieses Problems sind wiederum einige Verfahren bekannt, um die Menge der zu schneidenden Objekte durch logische Entscheidungen einzuschränken.Another problem with the production of a two-dimensional image from a three-dimensional virtual world is the complexity of this world. In FIG. 2, the world consists of the objects Ol, 02, 03 and 04, as well as the light queue (LS) and the virtual camera (CAM). When viewing the beam R1, it can be seen that the beam, if any, intersects the object oil. It is not obvious to a machine that only object oil can be considered for a cut. A procedure for a machine would have to intersect all objects of the virtual world with the ray R1 to find out which object the ray R1 hits. Especially when the virtual world consists of a large number of objects, a large number of calculations have to be carried out to produce a two-dimensional image. To solve this problem, several methods are known to limit the number of objects to be cut by logical decisions.
Figur 3 zeigt links ein Beispiel für eine Datenstruktur entsprechend den Definitionen der Beschreibungseinleitung. Um die Darsteüung zu vereinfachen, wurde für das Beispiel eine zweidimensionale Welt gewählt, die man sich einfach als Draufsicht auf eine dreidimensionale Welt vorsteüen kann. Diese Welt ist in der Mitte von Figur 3 zu sehen.FIG. 3 shows an example of a data structure on the left in accordance with the definitions of the introduction to the description. In order to simplify the presentation, a two-dimensional world was chosen for the example, which can be easily pre-configured as a top view of a three-dimensional world. This world can be seen in the middle of Figure 3.
In diesem Beispiel bildet der Knoten Nl die Wurzel des Baums. Die durch den Knoten Nl beschriebene Teilungsebene (hier ebenfalls mit Nl bezeichnet) ist auch in der Draufsicht der Welt erkennbar. Einfach ausgedrückt teilt die durch Nl beschriebene Ebene die Welt in eine linke Hälfte, die das Dreieck, die Kugel und den Platzhalter (Pl) enthält, und eine rechte Hälfte, die einen Stern enthält. Analog unterteüen N2 und N3 die Welt in weitere Hälften.In this example the node Nl forms the root of the tree. The division plane described by the node Nl (also denoted here by Nl) can also be seen in the top view of the world. Put simply, the plane described by Nl divides the world into a left half, which contains the triangle, the sphere and the placeholder (Pl), and a right half, which contains an asterisk. Similarly, N2 and N3 divide the world into halves.
Rechts in Figur 3 sind zwei Strahlen Rl und R2 dargesteUt, die ausgehend von der virtueüen Kamera mit der Welt geschnitten werden soüen. Die Berechnung für den Strahl Rl würde für dieses Beispiel wie folgt ablaufen:On the right in FIG. 3, two beams R1 and R2 are shown, which should be cut with the world starting from the virtual camera. The calculation for the ray Rl would proceed as follows for this example:
Der Strahl Rl wird verglichen mit der Teüungsebene Nl. Dabei wird festgesteüt, dass der Strahl die Teüungsebene von links nach rechts überquert, also zuerst die linke Hälfte und danach die rechte Hälfte der Welt untersuchen möchte. Es wird gespeichert, dass die rechte Hälfte eventueü auch interessant sein könnte, aüerdings wird mit der Auswertung in der linken Hälfte beginnend über die Kante El dort die Berechnung mit dem Knoten N2 fort gesetzt. Hierbei wird dann festgesteüt, dass für den Strahl nur die Hälfte mit dem Blatt VI interessant ist, welches zwei Objekte enthält: ein Dreieck und einen Kreis. Jetzt wird der Strahl Rl mit diesen Objekten geschnitten und dabei fest gesteüt, dass der Strahl keines der Objekte trifft. Deshalb wird entsprechend der obigen Speicherung mit der vorgemerkten rechten Hälfte von Nl fortgefahren. Über die Kante E2 wird die Auswertung mit dem Knoten N3 fort gesetzt. Der Strahl Rl möchte zunächst in die linke Hälfte, und danach eventuell in die rechte Hälfte. In der linken Hälfte enthält das Blatt V2 keine Objekte, so dass der Strahl mit keinem Objekt geschnitten werden muss. Stattdessen erfolgt die weitere Auswertung mit der vorgemerkten rechten Hälfte. Hierin befindet sich das Blatt V3, welches einen Stern enthält. Der Schnitt von Rl mit dem Stern liefert einen Schnittpunkt, womit die Berechnung zu Rl beendet ist.The ray Rl is compared with the inflation level Nl. It is firmly established that the ray crosses the inflation level from left to right, that is to say first wants to examine the left half and then the right half of the world. It is saved that the right half might also be interesting, however, starting with the evaluation in the left half, starting with the edge El, the calculation is continued with node N2. It is then determined that only half of the ray with leaf VI, which contains two objects, is of interest: a triangle and a circle. Now the ray R1 is cut with these objects and in doing so it is firmly established that the ray does not hit any of the objects. Therefore, according to the storage above, continue with the marked right half of Nl. The evaluation is continued with the node N3 via the edge E2. The beam R1 initially wants to enter the left half, and then possibly the right half. In the left half, sheet V2 contains no objects, so the beam doesn't have to be cut with any object. Instead, the further evaluation takes place with the marked right half. Here is the sheet V3, which contains an asterisk. The intersection of R1 with the star provides an intersection, which ends the calculation for R1.
Die Berechnung für den Strahl R2 beginnt wiederum mit dem Knoten Nl. Dort wird entschieden, dass für den Strahl nur die rechte Hälfte interessant ist. In der rechten Hälfte befindet sich der Knoten N3. Ein Vergleich zwischen R2 und der Ebene N3 ergibt, dass nur die linke Hälfte für den Strahl interessant ist. Da diese Hälfte aber nur das leere Blatt V2 enthält, ist die Berechnung für den Strahl R2 damit zu Ende, ohne dass der Strahl mit einem Objekt geschnitten wurde.The calculation for the ray R2 begins again with the node Nl. There it is decided that only the right half is interesting for the ray. The node N3 is in the right half. A comparison between R2 and level N3 shows that only the left half is interesting for the beam. However, since this half contains only the blank sheet V2, the calculation for the ray R2 has ended without the ray having been cut with an object.
Dies ist deshalb besonders interessant, weh wir das richtige Ergebnis ("Der Strahl R2 schneidet kein Objekt der virtueüen Welt.") berechnet haben, ohne auch nur einen Schnitt zwischen dem Strahl und einem Objekt zu berechnen.This is particularly interesting when we have calculated the correct result ("Ray R2 does not intersect an object in the virtual world.") Without even calculating a section between the ray and an object.
Die beschriebene Vorgehensweise, bei der eine baumartige Datenstruktur durchlaufen wird, nennt man auch Traversierung (engl. Traversal). Das Schneiden eines Objektes mit einem Strahl wird im Englischen als Intersection bezeichnet.The procedure described, in which a tree-like data structure is run through, is also called traversal. Cutting an object with a beam is called intersection.
Obiges Beispiel hat noch nicht die Frage geklärt, wie die Berechnung beim Erreichen eines Platzhalters fortgesetzt wird, da dieser FaU nicht vorgekommen ist. Würde ein Strahl beim Knoten N2 über die Kante E4 zum Platzhalter Pl verzweigen, dann würden die zu Pl gehörenden Anweisungen (die zu den Spezifikationen der virtueüen Welt gehören) ausgeführt werden. In einem einfachen Beispiel könnten diese Anweisungen ein Baumblatt erzeugen, welches ein Objekt enthält. Dieses Baumblatt würde dann den Platzhalter ersetzen und somit würden die Berechnungen für ein Baumblatt wie üblich fortgeführt werden. Die Anweisungen des Platzhalters könnten aber auch dazu führen, dass der Platzhalter durch eine komplexe Baumstruktur ersetzt wird, die wiederum Blätter mit Objekten und sogar neue Platzhalter enthalten kann.The above example has not yet clarified the question of how the calculation is continued when a placeholder is reached, since this FaU did not occur. If a ray at node N2 branched over edge E4 to placeholder Pl, then the instructions belonging to Pl (which belong to the specifications of the virtual world) would be executed. In a simple example, these instructions could create a tree leaf that contains an object. This tree leaf would then replace the placeholder and thus the calculations for a tree leaf would continue as usual. The instructions of the placeholder could also result in the placeholder being replaced by a complex tree structure, which in turn can contain sheets with objects and even new placeholders.
Alternativ dazu soü nun erläutert werden, wie nach der vorüegenden Erfindung die Berechnung abläuft unter Beachtung der Zusammenfassung von Strahlen zu Paketen. Im ersten Schritt wird der Baumknoten Nl aus einem Speicher geladen und für alle Strahlen des Paketes wird berechnet, ob - und falls ja wie - die Teüungsebene Nl überquert wird. Hierbei wird festgesteüt, -dass Strahl Rl zuerst in die linke und danach in die rechte Hälfte der Welt möchte. Strahl R2 hingegen möchte nur in die rechte Hälfte. Die Entscheidung für das Paket aus diesem Arbeitsschritt sieht dann wie folgt aus: In den Zuständen der Strahlen wird markiert, dass Strahl Rl in beide Hälften möchte und R2 nur in die rechte Hälfte. Das Paket besucht daraufhin die linke Hälfte. Gemäß dem Zustand nimmt der Strahl R2 an den Berechnungen nicht Teil, die zur linken Hälfte gehören. Diese Berechnungen erfolgen analog zu oben beschriebenem Beispiel. Wenn die Berechnungen zur linken Hälfte beendet sind, wurde noch kein gültiger Schnittpunkt für die Strahlen Rl und R2 gefunden, deshalb setzt das Paket seine . Berechnungen mit der rechten Hälfte fort. An diesen Berechnungen nehmen, gemäß den Zuständen, wiederum beide Strahlen teü. Bei den Berechnungen zur Teüungsebene N3 wird festgesteüt, dass der Strahl Rl zunächst in die Hälfte mit dem Baumblatt V2 möchte und danach in die Hälfte mit Baumblatt V3. Der Strahl R2 möchte dagegen nur in das Baumblatt V2. Dieses Ergebnis wird in den Zuständen vermerkt und die Berechnungen werden mit Baumblatt V2 fortgesetzt. Da dieses Blatt leer ist, werden keine Schnitte von Objekten mit Strahlen durchgeführt. Da der Zustand von Strahl R2 angibt, dass er keine weitere Hälfte besuchen möchte, ist die Berechnung für Strahl R2 abgeschlossen und der Zustand von R2 wird mit "Berechnungen beendet" markiert. Die Berechnungen für das Paket werden mit V3 fortgesetzt. An diesen Berechnungen nimmt. dann nur noch Rl teü, der mit dem Stern-Objekt geschnitten wird. Dieser Schnitt üefert einen gültigen Schnittpunkt und auch der Zustand von Rl wird mit "Berechnungen beendet" markiert. Damit sind aüe Zustände der Strahlen des Pakets mit "Berechnungen beendet" markiert, so dass damit die Berechnungen für das Paket beendet sind.As an alternative to this, it will now be explained how the calculation proceeds according to the present invention, taking into account the combination of beams into packets. In the first step, the tree node N1 is loaded from a memory and it is calculated for all beams of the packet whether - and if so how - the crossing level Nl is crossed. Here it is firmly established that the beam R1 wants to go first to the left and then to the right half of the world. Ray R2, on the other hand, only wants to enter the right half. The decision for the package from this step then looks like this: In the states of the rays it is marked that ray R1 wants to go in both halves and R2 only in the right half. The package then visits the left half. According to the state, the ray R2 does not take part in the calculations belonging to the left half. These calculations are carried out analogously to the example described above. When the calculations on the left half are finished, a valid intersection for the rays R1 and R2 has not yet been found, so the packet sets its own. Calculations continue with the right half. According to the conditions, both beams take part in these calculations. In the calculations for the level N3, it is firmly established that the beam R1 initially wants half with the tree leaf V2 and then half with tree leaf V3. The ray R2, on the other hand, only wants to be in the tree leaf V2. This result is noted in the states and the calculations are continued with tree sheet V2. Since this sheet is empty, no cuts of objects with rays are made. Since the state of ray R2 indicates that it does not want to visit another half, the calculation for ray R2 has been completed and the state of R2 is marked with "calculations completed". The calculations for the package continue with V3. Participates in these calculations . then only Rl teü, which is cut with the star object. This intersection has a valid intersection point and the state of Rl is also marked with "calculations finished". All states of the beams of the packet are thus marked with "calculations finished", so that the calculations for the packet are thus ended.
An diesem Beispiel wird auch der Effekt der Datenreduktion deutüch. Werden die Berechnungen für einzelne Strahlen angesteüt, so muss für jeden Strahl jeder der betrachteten Knoten aus dem Speicher geladen werden. Werden aüerdings ganze Pakete von Strahlen traversiert, wird jeder von einem der Strahlen betrachtete Knoten für das ganze Paket nur einmal aus dem Speicher geladen. In diesem Beispiel betrachtet der Strahl Rl die Baumknoten und Baumblätter {Nl, N2, VI, N3, V2, V3} und der Strahl R2 die Baumknoten und Baumblätter {Nl, N3, V2}. Werden die Strahlen einzeln traversiert, so werden 9-mal Daten aus dem Speicher geladen. Werden die Strahlen in einem Paket zusammengefasst, so besucht das Paket nur die Baumknoten und Baumblätter {Nl, N2, VI, N3, V2, V3} und es werden nur 6-mal Daten aus dem Speicher geladen.This example also shows the effect of data reduction. If the calculations for individual beams are activated, each of the nodes under consideration must be loaded from the memory for each beam. In addition, if entire packets of rays are traversed, each node viewed by one of the rays is loaded from memory only once for the entire packet. In this example, the ray R1 looks at the tree nodes and tree leaves {Nl, N2, VI, N3, V2, V3} and the ray R2 looks at the tree nodes and tree leaves {Nl, N3, V2}. If the beams are traversed individually, data is loaded 9 times from the memory. If the rays are combined in one package, so the package only visits the tree nodes and tree leaves {Nl, N2, VI, N3, V2, V3} and data is only loaded 6 times from the memory.
Die gegenüber dem aus vorbekannten Verfahren neuartige Datenstruktur erfüllt den Zweck der Vermeidung von unnötigen Berechnungen. Ohne diese Datenstruktur würden in obigem Beispiel auch die Objekte Dreieck und Kreis in dem Blatt VI mit dem Strahl R2 geschnitten werden, weil für ein Paket keine Informationen darüber vorhanden wären, welcher der Strahlen des Pakets an dem aktueüen Berechnungsschritt teilnehmen möchte und dadurch jeder Strahl an allen Berechnungen teilnehmen müsste. Zwar führt dies dadurch nicht zu Fehlern, weil solche unnötigen Schnitte keine gültigen Schnittpunkte hefern, aüerdings zu unnötigen Berechnungsschritten.The new data structure compared to the previously known method serves the purpose of avoiding unnecessary calculations. Without this data structure, the objects triangle and circle in sheet VI would also be intersected with the ray R2 in the example above, because for a packet there would be no information about which of the rays of the packet would like to take part in the current calculation step and thereby each ray would have to participate in all calculations. This does not lead to errors because such unnecessary cuts do not add valid intersections, but also to unnecessary calculation steps.
Auch wenn bereits Beispiele für die einzelnen Arbeitsschritte des Ray Tracing Verfahrens gegeben wurden, soü an dieser Steüe noch einmal auf die einzelnen Schritte eingegangen und dabei verdeutlicht werden, in wie weit diese Aufteüung neuartig ist und welche Vorteüe sie bietet.Even if examples have already been given for the individual steps of the ray tracing process, the steps will be dealt with again at this step and it will be made clear to what extent this upgrade is new and what benefits it offers.
A Kamerastrahlerzeugung: Erzeugung eines Pakets von Strahlen, die von der virtueüen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden soüen. Beispielsweise könnte man einen rechteckigen Bereich von Kästchen auf dem Rechenblatt vor der virtueüen Kamera in einer Gruppe vereinen und alle Strahlen, die durch diese Rechenkästchen gehen, in einem Paket zusammenfassen. B Baumtraversierung: Gemäß der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird. Hierzu werden Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt. Wird ein Platzhalter erreicht, so wird die entsprechende Anweisungsfolge des Ersatzobjekts ausgeführt. Hierbei wird der Platzhalter durch ein Objekt ersetzt, das auch komplex sein kann. Dabei stehen zwei Alternativen zur Verfügung: Entweder wird zuerst die Anweisungsfolge voUständig ausgeführt und anschüeßend entsprechend der neuen Struktur des Baums das Verfahren fort gesetzt oder die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem SteUvertreter des Platzhalters fortgesetzt wird und bei voüständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird. Die Verwendung von Platzhaltern, insbesondere die hier gezeigte Technik der Auswertung von Platzhaltern bei Bedarf, ist neu im Bereich des Ray Tracings. Hierbei bietet das Auswerten von Platzhaltern bei Bedarf die Mögüchkeit, virtueUe Welten mit Mülionen von Objekten implizit durch Platzhalter zu spezifizieren und dabei dennoch geringen Speicher- und Rechenaufwand zur Berechnung des Büdes zu benötigen, da nur die Teüe der virtuellen Welt in die Berechnung eingehen, für die das Verfahren herausgefunden hat, dass sie für die Berechnung des Büdes relevant sind. C Einlesen des Baumblatts: In einem Baumblatt werden nicht die Objekte und Platzhalter selbst, sondern Referenzen darauf gespeichert. Ein Beispiel soü den Vorteil hiervon verdeutüchen:A Camera beam generation: Generation of a packet of beams which, starting from the virtual camera, are to be cut with the geometry of the three-dimensional world. For example, you could combine a rectangular area of boxes on the spreadsheet in front of the virtual camera in a group and combine all the rays that pass through these calculation boxes in one package. B Tree traversing: According to the spatial orientation of the rays, the tree data structure for the geometry of the three-dimensional world is run through until a tree leaf or a placeholder is reached. For this purpose, tree nodes and placeholders are read from a memory and calculations are carried out. If a placeholder is reached, the corresponding instruction sequence of the replacement object is executed. The placeholder is replaced by an object that can also be complex. There are two alternatives: Either the instruction sequence is carried out completely and then the procedure is continued according to the new structure of the tree, or the instruction sequence is carried out asynchronously, with the procedure being continued directly with the tax representative of the placeholder and with complete processing of the instruction sequence of the replacement object is replaced by the result of this processing. The use of placeholders, in particular the technique of evaluating placeholders as required, is new in the field of ray tracing. The evaluation of placeholders offers the possibility, if required, of specifying virtual worlds with mulions of objects implicitly using placeholders and still requiring little memory and computing effort to calculate the penalty, since only the parts of the virtual world are included in the calculation for who found the method that they are relevant to the calculation of the penalty. C Reading in the tree leaf: In a tree leaf not the objects and placeholders themselves, but references to them are saved. An example to illustrate the advantage of this:
In Figur 6 ist eine einfache Welt mit Vierecken, Kreisen und einem Dreieck dargesteUt. Um die Menge der nötigen Strahl-Objekt Schnitte einzuschränken soü auch hier eine Baumstruktur erzeugt werden. Es ist dabei offensichtlich, dass man keine Unterteüungsebene, die die Welt in eine linke und eine rechte Hälfte teüt, bestimmen kann, die nicht auch ein Objekt in zwei Hälften teilt. In diesem Beispiel teüt die Ebene die Welt in eine Hälfte mit Vierecken und eine Hälfte mit Kreisen und dabei auch das Dreieck in zwei Hälften. Auf der anderen Seite wird hier aber auch deutlich, dass man diese Unterteüung voüziehen möchte: Ein Strahl der nur die linke oder nur die rechte Hälfte der We t traversieren möchte muss nur vier Objekte schneiden, wohingegen bei einer nicht unterteilten Welt 7 Objekt-Strahl Schnitte berechnet werden müssten. Würden in Baumblättern die Objekte selbst gespeichert werden, so müssten im linken Blatt aüe Vierecke und das Dreieck, und im rechten Blatt alle Kreise und das Dreieck gespeichert werden. Man müsste also das Dreieck zweimal abspeichern. Speichert man hingegen nur die Referenzen zu Objekten in Baumblättern, so referenziert einfach das linke und das rechte Baumblatt das Dreieck und die Daten des Dreiecks werden nur einmal im Speicher abgelegt.FIG. 6 shows a simple world with squares, circles and a triangle. In order to limit the number of necessary beam-object cuts, a tree structure is also created here. It is obvious that you cannot determine a level of subdivision that divides the world into a left and a right half that does not also divide an object in half. In this example, the plane divides the world into one half with squares and one half with circles, including the triangle in half. On the other hand, it also becomes clear here that one would like to use this hypothesis: a beam that only wants to traverse the left or only the right half of the t only has to cut four objects, whereas in an undivided world 7 object beam cuts would have to be calculated. If the objects themselves were saved in tree leaves, then quadrilaterals and the triangle would have to be saved in the left sheet and all circles and the triangle in the right sheet. You would have to save the triangle twice. However, if you only save the references to objects in tree leaves, the left and right tree leaves simply reference the triangle and the data of the triangle are only stored once in the memory.
Eine Erweiterung der Erfindung bestünde beispielsweise darin, zu jedem Paket eine Liste von den Objekten zu führen, die bereits mit dem Paket geschnitten wurden. Werden die Referenzen zu Objekten aus einem Baumblatt geladen, so wird verglichen, ob das Objekt bereits geschnitten wurde und falls ja, wird der Schnitt mit dem gleichen Objekt nicht noch einmal ausgeführt. Hierbei ist aüerdings darauf zu achten, dass eventueü einige Strahlen, die am aktueüen Objekt-Strahl Schnitt beteüigt sind bei dem Objekt-Strahl Schnitt, der in die Liste eingetragen wurde, nicht beteüigt waren und deshalb für eben diese Strahlen der Schnitt jetzt dennoch ausgeführt werden muss. Ein weiterer Norteü dieser Referenzierung sei hier dargesteUt: Ein Objekt, beispielsweise ein Auto, wird spezifiziert und im Speicher abgelegt. Dann werden zwei weitere Objekte definiert, die jeweils als Kontainer funktionieren und Referenzen auf das Auto-Objekt und zusätzlich eine Transformationsmatrix und eine materialverändernde Anweisungsfolge besitzen. Auf diese Weise ist es möglich, in einer Welt zwei Autos des gleichen Typs, aber mit unterschiedlichen Farben und an verschiedenen Positionen darzusteüen, ohne dabei die Daten des Autos mehrfach im Speicher ablegen zu müssen. D Schneiden aller Objekte: In Arbeitsschritt C wurde eine Menge von Referenzen zu Objekten aus einem Baumblatt eingelesen. In diesem Arbeitsschritt werden die Daten der referenzierten Objekte eingelesen und die Strahlen des Pakets, die an der aktueüen Operation beteiligt sind, werden mit diesen Objekten geschnitten. Falls eine Transformation zu einem der Objekte spezifiziert wurde, so wird diese angewendet, bevor der Schnitt berechnet wird. Falls es sich bei dem Objekt um ein einfaches Objekt ohne eigene Baumstruktur handelt, so wird das Objekt transformiert und der Schnitt berechnet. Im anderen Fall werden die Strahlen transformiert und damit dem relativen Koordinatensystem des Objektes angepasst, bevor mit Arbeitsschritt B die Traversierung des Baums dieses Objektes beginnt. Wenn berechnet wurde, ob und faüs ja welche Schnittpunkte es zwischen den Strahlen und dem Objekt gibt, dann werden die Ergebnisse und die Strahlen wieder zurück in das absolute Koordinatensystem der Welt transformiert.An extension of the invention would be, for example, to keep a list of the objects for each package that have already been cut with the package. If the references to objects are loaded from a tree leaf, a comparison is made as to whether the object has already been cut and, if so, the cut is not carried out again with the same object. It should also be noted that some rays that are active on the current object beam cut were not used for the object beam cut that was entered in the list, and therefore the cut is still being carried out for these beams got to. On Another point of this referencing is shown here: An object, for example a car, is specified and stored in the memory. Then two further objects are defined, each of which functions as a container and has references to the auto object and also a transformation matrix and a material-changing instruction sequence. In this way it is possible to display two cars of the same type, but with different colors and in different positions in one world, without having to store the data of the car several times in the memory. D Cutting all objects: In step C, a lot of references to objects were read from a tree leaf. In this step, the data of the referenced objects are read in and the rays of the package involved in the current operation are cut with these objects. If a transformation to one of the objects has been specified, it will be applied before the section is calculated. If the object is a simple object without its own tree structure, the object is transformed and the cut is calculated. In the other case, the beams are transformed and thus adapted to the relative coordinate system of the object, before step B starts traversing the tree of this object. If it has been calculated whether there are any intersections between the rays and the object, then the results and the rays are transformed back into the absolute coordinate system of the world.
Falls eine geometrieverändernde Anweisungsfolge zu einem Objekt spezifiziert wurde, so wird diese ausgeführt, bevor der Schnitt mit dem Objekt berechnet wird. Diese geometrieverändernde Anweisungsfolge kann z.B. eingesetzt werden um Wasseroberflächen zu modellieren. Hierbei würde man ein Objekt spezifizieren, welches die Wasseroberfläche zu einem bestimmten Zeitpunkt darsteüt und dazu eine Anweisungsfolge spezifizieren, welche z.B. gemäß der Uhrzeit dieses Objekt verformt, um Wellenbewegungen darzusteüen.If a geometry-changing instruction sequence has been specified for an object, this is carried out before the cut with the object is calculated. This geometry changing instruction sequence can e.g. are used to model water surfaces. Here one would specify an object that represents the water surface at a certain point in time and specify a sequence of instructions, which e.g. deformed according to the time of day this object to represent wave movements.
Eine Baumstruktur, die ein Objekt mit geometrieverändernder Anweisungsfolge enthält, soüte die möglichen Auswirkungen dieser Anweisungsfolge beachten, da es sonst zu DarsteUungsfehlern kommen kann. Ein Beispiel ist in Figur 5 dargesteUt. Hier wurde zu einem Dreieck eine geometrieverändernde Anweisungsfolge spezifiziert, die den Eckpunkt P gemäß der Uhrzeit in die Punkte P' und P" verschiebt. Die Baumstruktur sollte nun derart beschaffen sein, dass das Objekt in aüen Baumblättern referenziert ist, in denen es maximal sein kann. Hier soüte also im Unken Baumblatt das Dreieck und im rechten Baumblatt die Kugel, das Rechteck und das Dreieck referenziert sein. Würde ein Strahl R nur mit der rechten Hälfte geschnitten werden und das Dreieck dort nicht referenziert, so würde für diesen Strahl zu gegebener Uhrzeit ein falscher Schnittpunkt berechnet, nämlich der mit dem Rechteck anstehe von dem mit dem Dreieck. Die Verwendung der Transformationsmatrizen wurde in Ingo Wald, Carsten Benthin and Phüipp Slusallek: "A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes", Technical Report 2002-04, submitted for pubücation, http: //graphics.cs.uni-sb.de/Publications/T]^2002/Dyn/DynamicRay Tracing.pdf bereits vorgeschlagen. Der Einsatz von geometrieverändernden Anweisungsfolgen ist neu im Zusammenhang mit dem hier vorgesteüten Ray Tracing Nerfahren. E Schnittauswertung: In diesem Arbeitsschritt wird ausgewertet, ob für das Paket von Strahlen gültige Schnittpunkte vorhegen. Beispielsweise kann im voran gegangenen Arbeitsschritt D ein Strahl mit mehreren Objekten geschnitten worden sein und diese Schnitte können auch mehrere Schnittpunkte zum Ergebnis haben. Ein gültiger Schnittpunkt wäre hierbei der Schnittpunkt, der dem Ursprung des Strahls am nächsten liegt. Falls es noch Elemente des Baums gibt, die für einen Strahlschnitt in Frage kommen, aber noch nicht untersucht wurden und der vorangegangene Arbeitsschritt nicht in ausreichender Menge gültige Schnittpunkte ergeben hat, dann wird unter Einbeziehung der bisherigen Ergebnisse bei Arbeitsschritt B erneut eingesetzt, ansonsten wird mit Schritt F fortgefahren.A tree structure that contains an object with a geometry-changing instruction sequence should also take into account the possible effects of this instruction sequence, since otherwise display errors can occur. An example is shown in FIG. 5. Here, a geometry-changing instruction sequence was specified for a triangle, which shifts the corner point P into the points P 'and P "according to the time. The tree structure should now be such that the object is referenced in outer tree leaves, in which it can be maximum So here the triangle in the Unken tree leaf and in the the tree, the sphere, the rectangle and the triangle must be referenced. If a ray R were only cut with the right half and the triangle was not referenced there, an incorrect intersection point would be calculated for this ray at the given time, namely the one with the rectangle from that with the triangle. The use of the transformation matrices was described in Ingo Wald, Carsten Benthin and Phüipp Slusallek: "A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes", Technical Report 2002-04, submitted for pubücation, http: //graphics.cs.uni- sb.de/Publications/T[^2002/Dyn/DynamicRay Tracing.pdf already suggested. The use of instruction sequences that change the geometry is new in connection with the pre-configured ray tracing ner driving. E Section evaluation: This step evaluates whether there are valid intersection points for the packet of rays. For example, a beam with several objects may have been cut in the previous work step D and these cuts may also result in several intersection points. A valid intersection would be the intersection closest to the origin of the beam. If there are still elements of the tree that are suitable for a beam cut but have not yet been examined and the previous work step did not result in valid intersections in sufficient quantity, then the previous results are used again in work step B, otherwise it is used with Step F continued.
F Bestimmung der Objekteigenschaften: Die Ergebnisse der vorangegangenen Arbeitsschritte werden ausgewertet. Insbesondere können hierbei die Materialeigenschaften der Objekte, für die ein gültiger Schnittpunkt mit einem der Strahlen berechnet wurde, untersucht werden. Dabei kann beispielsweise festgesteüt werden, dass ein Objekt eine spiegelnde Oberfläche besitzt und deshalb zur Bestimmung der Farbe am Schnittpunkt ein Folgestrahl berechnet werden muss. Ebenso könnte, faüs das Objekt beispielsweise ein Globus unserer Erde ist, auch eine Landkarte eingelesen und berechnet werden, welches Land oder Meer der Strahl geschnitten hat, um dann daraus die Farbe am Schnittpunkt zu bestimmen.F Determination of the object properties: The results of the previous work steps are evaluated. In particular, the material properties of the objects for which a valid intersection with one of the rays has been calculated can be examined. For example, it can be determined that an object has a reflective surface and therefore a subsequent beam must be calculated to determine the color at the intersection. Likewise, if the object is, for example, a globe of our earth, a map could also be read in and calculated which country or sea the ray intersected in order to then determine the color at the intersection.
Falls eine materialverändernde Anweisungsfolge zu dem geschnittenen Objekt spezifiziert wurde, dann wird diese ausgeführt. Hierbei kann die materialverändernde Anweisungsfolge auch dazu eingesetzt werden, um aus einem farblosen Objekt beispielsweise ein marmoriertes Objekt zu machen. Insbesondere kann dabei das Muster des Marmorsteins durch die zu dem Objekt spezifizierte Anweisungsfolge berechnet werden, so dass das Muster nur implizit durch eine mathematische Formel angegeben wird und auch nur dann berechnet wird, faüs ein Strahl das Objekt trifft.If a material-changing instruction sequence has been specified for the cut object, then this is executed. The material-changing instruction sequence can also be used to turn a colorless object into a marbled object, for example. In particular, the pattern of the marble stone can be calculated using the instruction sequence specified for the object so that the pattern is only implicitly given by a mathematical formula and is only then calculated, a beam hits the object.
Falls eine geometrieverändernde Anweisungsfolge zu dem geschnittenen Objekt spezifiziert wurde, die auch eine Auswirkung auf diesen Arbeitsschritt hat, dann wird diese ebenfalls ausgeführt.If a geometry-changing instruction sequence has been specified for the cut object that also has an effect on this work step, then this is also carried out.
G Folgestrahlerzeugung: Wird in Schritt F berechnet, dass ein oder mehrere weitereG Follow-up beam generation: Is calculated in step F that one or more others
Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden sollen, dann werden in diesem Schritt entsprechende Pakete von Strahlen berechnet und dasRays with the geometry of the three-dimensional world are to be cut, then corresponding packets of rays are calculated in this step and that
Verfahren setzt bei Arbeitsschritt B erneut an. Ansonsten wird wieder bei Schritt A eingesetzt, falls zur Ausbildung des zweidimensionalen Bildes noch weitereThe procedure starts again in step B. Otherwise, step A is used again, if there are more to form the two-dimensional image
Kamerastrahlen erzeugt werden müssen.Camera beams must be generated.
Ein weiteres Beispiel für die Verwendung von Platzhaltern, ist in Figur 4 dargesteUt. Hier sind von links nach rechts in zeitlichem Ablauf die Welt mit dazugehöriger Baumstruktur zu sehen, wie sie bei der Ausführung von Platzhalter Pl bzw. P2 erweitert oder verändert wird.Another example of the use of placeholders is shown in FIG. 4. From left to right, the world with the associated tree structure can be seen from left to right, as it is expanded or changed when executing placeholders Pl or P2.
Ein Beispiel für die Verwendung von Platzhaltern sei im folgenden erläutert: Die virtueUe Welt umfasst die Gebäude A und B. Für das erste zu erzeugende Bild befindet sich die Kamera in Gebäude A, und das Gebäude B kann von der Kamera nicht gesehen werden. Also ist es ausreichend, das Gebäude B nur durch einen einfachen Platzhalter zu spezifizieren. Verläset die virtueUe Kamera Gebäude A und nähert sich Gebäude B, so wird bei dem ersten Strahl, der bei der Traversierung auf den Platzhalter für Gebäude B stößt, die Anweisungsfolge für Platzhalter B ausgeführt. Diese Anweisungsfolge könnte nun spezifizieren, dass Gebäude B von einem Speichermedium geladen und gegen den Platzhalter für Gebäude B ausgetauscht werden soü.An example of the use of placeholders is explained below: The virtual world comprises buildings A and B. For the first image to be generated, the camera is in building A, and building B cannot be seen by the camera. So it is sufficient to specify building B only with a simple placeholder. If the virtual camera leaves building A and approaches building B, the sequence of instructions for placeholder B is carried out for the first beam that strikes the placeholder for building B during traversing. This sequence of instructions could now specify that building B should be loaded from a storage medium and replaced with the placeholder for building B.
Wird die Aufteüung der virtueüen Welt in mehrere Platzhalter günstig gewählt, so kann die Datenmenge, die bei der Erzeugung des Bildes untersucht werden muss, stark eingeschränkt werden.If the distribution of the virtual world into several placeholders is chosen favorably, the amount of data that must be examined when the image is generated can be greatly restricted.
Umgekehrt lässt sich auch durch das Ersetzen von Teübäumen und Objekten durch Platzhalter ein sehr mächtiger Mechanismus zur Datenreduktion realisieren. Conversely, by replacing tea trees and objects with placeholders, a very powerful mechanism for data reduction can be realized.

Claims

PATENTANSPRÜCHE
1. Nerfahren zur Bestimmung einer zweidimensionalen Abbildung einer dreidimensionalen Welt, wobei die zweidimensionale Abbüdung mindestens durch eine geometrische Beschreibung, eine Baumstruktur zur räumlichen Unterteüung der dreidimensionalen Welt und die Materialeigenschaften aüer Objekte dieser Welt spezifiziert ist, dadurch gekennzeichnet, dass ein Ray Tracing Nerfahren verwendet wird, wobei mehrere Strahlen zu einem Paket von diskreten Strahlen zusammengefasst werden, wobei eine Assoziation einer Datenstruktur mit jedem Paket von diskreten Strahlen durchgeführt wird, wobei eine zustandsmäßige Zuordnung der Datenstruktur zu jedem Strahl gespeichert wird, wobei alle nachfolgend beschriebenen das bzw. die Pakete der mehreren diskreten Strahlen angewendet werden, indem in einem Arbeitsschritt, der eine Operation auf einem Paket ausführt, diese Operation auf jedem Strahl des Paketes ausgeführt wird, falls in der dem Paket zugeordneten Datenstruktur die zustandsmäßige Zuordnung gespeichert ist, dass der betreffende Strahl an dieser Operation teünimmt, wobei sich das Ray-Tracing Nerfahren in folgende Arbeitsschritte gliedert, die für die einzelnen Pakete der Strahlen nacheinander abgearbeitet werden:1. Ner driving to determine a two-dimensional image of a three-dimensional world, wherein the two-dimensional bending is specified at least by a geometric description, a tree structure for the spatial sub-division of the three-dimensional world and the material properties of other objects in the world, characterized in that a ray tracing ner driving is used , wherein a plurality of beams are combined to form a packet of discrete beams, an association of a data structure being carried out with each packet of discrete beams, a state-related assignment of the data structure to each beam being stored, all of the packets or packets of the plurality described below discrete rays are applied by performing that operation on each ray of the packet in a step that performs an operation on a packet if the stateful mapping in the data structure associated with the packet It is stored that the beam in question takes part in this operation, whereby the ray tracing ner driving is divided into the following work steps, which are processed one after the other for the individual packets of the beams:
A Kamerastrahlerzeugung: Es wird ein Paket von Strahlen erzeugt, die von der virtueüen Kamera ausgehend mit der Geometrie der dreidimensionalen Welt geschnitten werden soüen, B Baumtraversierung: entsprechend der räumlichen Orientierung der Strahlen wird die Baumdatenstruktur für die Geometrie der dreidimensionalen Welt durchlaufen, bis ein Baumblatt oder ein Platzhalter erreicht wird, wobei auf diesem Weg Baumknoten und Platzhalter aus einem Speicher gelesen und Berechnungen durchgeführt werden, wobei bei Erreichen eines Platzhalters entsprechende Anweisungsfolge des Ersatzobjekts ausgeführt wird, indem der Platzhalter durch ein Objekt ersetzt wird, das auch komplex sein kann, wobei bei Vorhandensein eines Platzhalters zwei Alternativen zur Verfügung stehen:A Camera beam generation: A package of rays is generated, which should be cut from the virtual camera with the geometry of the three-dimensional world, B Tree traversing: according to the spatial orientation of the rays, the tree data structure for the geometry of the three-dimensional world is run through until a tree leaf or a placeholder is reached, in this way tree nodes and placeholders are read from a memory and calculations are carried out, and when a placeholder is reached the corresponding instruction sequence of the replacement object is carried out by replacing the placeholder with an object which can also be complex, whereby if a placeholder is available, two alternatives are available:
• es wird zuerst die Anweisungsfolge voüständig ausgeführt und anschließend entsprechend der neuen Struktur des Baums das Verfahren fortgesetzt oder• First the instruction sequence is carried out completely and then the procedure is continued according to the new structure of the tree or
• die Anweisungsfolge wird asynchron ausgeführt, wobei das Verfahren direkt mit dem Steüvertreter des Platzhalters fortgesetzt wird und bei voüständiger Abarbeitung der Anweisungsfolge des Ersatzobjekts durch das Ergebnis dieser Abarbeitung ersetzt wird. C Einlesen des Baumblatts: es werden aus einem Speicher alle Referenzen der Objekte und Platzhalter, die sich in diesem Baumblatt befinden, eingelesen und gegebenenfalls ausgeführt,• The instruction sequence is executed asynchronously, with the procedure continuing directly with the tax representative of the placeholder and, if the instruction sequence of the replacement object has been completely processed, replaced by the result of this execution. C Reading in the tree leaf: all references of the objects and placeholders that are in this tree leaf are read from a memory and executed if necessary,
D Schneiden aller Objekte: es werden alle Objekte eingelesen, die in Arbeitsschritt C spezifiziert wurden, und mit dem Paket von Strahlen geschnitten, wobei vor der Berechnung eines Schnitts mit einem Objekt eine Transformation angewendet wird, wenn diese zu dem Objekt spezifiziert wurde, wobei vor der Berechnung eines Schnitts mit einem Objekt eine geometrieverändernde Anweisungsfolge angewendet wird, wenn diese zu dem Objekt spezifiziert wurde, wobei ein zu schneidendes Objekt - sofern dieses ein komplexes Objekt mit eigener Baumstruktur ist, das Traversiert werden muss, - geschnitten wird, indem die Arbeitsschritte B - F angepasst an das komplexe Objekt ausgeführt werden,D Cutting all objects: all objects are read in, which were specified in step C, and cut with the packet of rays, a transformation being used before the calculation of a cut with an object, if this was specified for the object, before the calculation of a cut with an object, a geometry-changing instruction sequence is used if this has been specified for the object, an object to be cut - if this is a complex object with its own tree structure that has to be traversed - cut by the working steps B - F can be adapted to the complex object,
E Schnittauswertung: es wird geprüft, ob für das Paket von Strahlen gültige Schnittpunkte vorüegen, wobei für noch nicht untersuchte Elemente des Baums, die für einen Strahlschnitt in Frage kommen, mögliche Strahlschnitte ermittelt werden, wenn noch nicht in ausreichender Menge gültige Schnittpunkte ermittelt wurden, indem unter Einbeziehung der bisherigen Ergebnisse mit Arbeitsschritt B fortgefahren wird, wobei bei einer ausreichenden Menge ermittelter Strahlschnitte mit der Ausführung von Schritt F fortgefahren wird,E Section evaluation: a check is carried out to determine whether there are valid intersection points for the bundle of rays, whereby possible ray intersections are determined for elements of the tree which have not yet been examined and which are suitable for a ray cut, if valid intersection points have not yet been determined in sufficient quantity, by continuing with work step B, taking into account the previous results, with step F being carried out with a sufficient quantity of determined beam sections,
F Bestimmung der Objekteigenschaften: unter Auswertung der Ergebnisse der vorangegangenen Arbeitsschritte werden Daten von Objekten mit denen gültige Schnittpunkte berechnet wurde, falls es solche gibt, aus dem Speicher gelesen, wobei die Ergebnisse der Berechnungen in Schritt G einfließen, wobei bei entsprechenden Ergebnissen Werte in einen Speicher neu berechnet werden, wobei im Falle, dass zu einem oder mehreren der Objekte, die von einem Strahl geschnitten wurden, eine materialverändernde Anweisungsfolge spezifiziert wurde derart, dass die Materialeigenschaften dieses Objekts für den Arbeitsschritt F oder G von Bedeutung sind, so wird diese Anweisungsfolge vor den Berechnungen des Arbeitsschritts F ausgeführt, G Folgestrahlerzeugung: wurde in Schritt F berechnet, dass ein oder mehrere weitere Strahlen mit der Geometrie der dreidimensionalen Welt geschnitten werden soüen, dann werden in diesem Schritt entsprechende Pakete von Strahlen ermittelt und der Ablauf des Verfahrens setzt bei Arbeitsschritt B erneut an, wobei andernfaüs wieder bei Schritt A eingesetzt wird, faüs zur Ausbildung der zweidimensionalen Abbildung noch weitere Kamerastrahlen erzeugt werden müssen.F Determination of the object properties: by evaluating the results of the previous work steps, data from objects with which valid intersection points have been calculated, if there are any, are read from the memory, the results of the calculations being incorporated in step G, with corresponding results having values in one Memory are recalculated, and in the event that a material-changing instruction sequence has been specified for one or more of the objects which have been cut by a beam, such that the material properties of this object are of importance for work step F or G, this instruction sequence becomes carried out before the calculations of step F, G subsequent beam generation: if it was calculated in step F that one or more further beams with the geometry of the three-dimensional world should be cut, then in this step corresponding packets of beams are determined and the sequence of the method se Begin again in step B, with others again is used in step A, additional camera beams still have to be generated to form the two-dimensional image.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die in Arbeitsschritt G erzeugten Strahlen durch einen weiteren Arbeitsschritt in neue Pakete zusammengefasst werden, wobei alle neu erzeugten Strahlen gesammelt, sortiert und zu neuen Pakete von diskreten Strahlen zusammen gesteht werden.2. The method according to claim 1, characterized in that the beams generated in step G are combined in a further step into new packets, with all newly generated beams being collected, sorted and combined to form new packets of discrete beams.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass ein Multi-Threading Verfahren eingesetzt wird, indem jeweils ein Paket von Strahlen als ein Thread betrachtet wird.3. The method according to claim 1 or 2, characterized in that a multi-threading method is used in that a packet of rays is considered as a thread.
4. Verfahren nach einem der Ansprüche 1, 2 oder 3, dadurch gekennzeichnet, dass die Menge der Daten der dreidimensionalen Welt derart verwaltet wird, dass zu einem Zeitpunkt nur ein Teil dieser Daten im Speicher gehalten wird.4. The method according to any one of claims 1, 2 or 3, characterized in that the amount of data in the three-dimensional world is managed in such a way that only part of this data is held in the memory at a time.
5. Vorrichtung zur Durchführung eines der vorgenannten Verfahren, dadurch gekennzeichnet, dass die einzelnen Arbeitsschritte durch eigenständige Funktionsgruppen dargesteUt sind.5. Device for performing one of the aforementioned methods, characterized in that the individual work steps are represented by independent function groups.
6. Vorrichtung zur Durchführung eines der vorgenannten Verfahren, dadurch gekennzeichnet, dass die Arbeitsschritte folgender Maßen zu Funktionsgruppen zusammen gefasst sind:6. Device for performing one of the aforementioned methods, characterized in that the work steps of the following dimensions are combined to form functional groups:
• RGS: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte A, F und G und erweitert diese um Einheiten zum Management von Untereinheiten.• RGS: Includes several functional units for work steps A, F and G and extends these by units for the management of sub-units.
- Master: Koordiniert die Arbeit der Slave-Funktionseinheiten.- Master: Coordinates the work of the slave functional units.
- Slave: Enthält Einheiten für die Arbeitsschritte A, F und G.- Slave: Contains units for work steps A, F and G.
- Memlnt: Koordiniert den Zugriff von Slave-Einheinten auf externen Speicher.- Memlnt: Coordinates access by slave units to external storage.
• RTC: Umfasst mehrere Funktionseinheiten für die Arbeitsschritte B, C, D und E.• RTC: includes several functional units for work steps B, C, D and E.
- Traversal: Funktionseinheit, die die Arbeitsschritte B und E umfasst.- Traversal: functional unit that includes work steps B and E.
- List: Funktionseinheit für den Arbeitsschritt C.- List: functional unit for work step C.
- Intersection: Funktionseinheit für den Arbeitsschritt D.- Intersection: functional unit for work step D.
• RTC-MI: Koordiniert und regelt alle Zugriffe der RTC-Einheiten auf externe Speichereinheiten. - T-SR: Koordiniert den Zugriff von Traversal-Einheiten auf den T-Cache.• RTC-MI: Coordinates and regulates all access by the RTC units to external storage units. - T-SR: Coordinates the access of traversal units to the T-cache.
- T-Cache: Führt Buch über vorangegangene Traversal-Zugriffe und versucht, neue Zugriffe zu vermeiden, in dem es die vorangegangenen Ergebnisse wiederverwertet.- T-Cache: Keeps track of previous traversal accesses and tries to avoid new accesses by recycling the previous results.
- L-SR: Koordiniert den Zugriff von List-Einheiten auf den L-Cache.- L-SR: Coordinates the access of list units to the L cache.
- L-Cache: Analog zu T-Cache für List-Zugriffe.- L-cache: analogous to T-cache for list access.
- I-SR: Koordiniert den Zugriff von tersection-Einheiten auf den I-Cache.- I-SR: Coordinates access by tersection units to the I-cache.
- I-Cache: Analog zu T-Cache für Intersection-Zugriffe.- I-cache: analogous to T-cache for intersection access.
- M-SR: Koordiniert den Zugriff von Cache-Einheiten auf den externen Speicher.- M-SR: Coordinates the access of cache units to the external memory.
- MemCtrl: Leitet die Zugriffe an den dafür zuständigen externen Speicher weiter. - MemCtrl: Forwards the access to the external memory responsible for it.
EP03790730A 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure Withdrawn EP1532586A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10239672 2002-08-26
DE10239672A DE10239672B4 (en) 2002-08-26 2002-08-26 Method and device for generating a two-dimensional image of a three-dimensional structure
PCT/DE2003/002801 WO2004021274A2 (en) 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure

Publications (1)

Publication Number Publication Date
EP1532586A2 true EP1532586A2 (en) 2005-05-25

Family

ID=31502078

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03790730A Withdrawn EP1532586A2 (en) 2002-08-26 2003-08-20 Method and device for creating a two-dimensional representation of a three-dimensional structure

Country Status (6)

Country Link
US (2) USRE44347E1 (en)
EP (1) EP1532586A2 (en)
JP (1) JP4348728B2 (en)
AU (1) AU2003266174A1 (en)
DE (1) DE10239672B4 (en)
WO (1) WO2004021274A2 (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004007835A1 (en) * 2004-02-17 2005-09-15 Universität des Saarlandes Device for displaying dynamic complex scenes
US8098243B2 (en) * 2005-09-23 2012-01-17 Samsung Electronics Co., Ltd. Method and apparatus for efficiently handling query for 3D display
US8259105B2 (en) * 2006-07-21 2012-09-04 The University Of Utah Research Foundation Ray tracing a three-dimensional scene using a hierarchical data structure
US20080024489A1 (en) * 2006-07-28 2008-01-31 Robert Allen Shearer Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements
US8243081B2 (en) * 2006-08-22 2012-08-14 International Business Machines Corporation Methods and systems for partitioning a spatial index
US7864174B2 (en) * 2006-08-24 2011-01-04 International Business Machines Corporation Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
US9665970B2 (en) 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US9478062B2 (en) 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US8018457B2 (en) 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
US8674987B2 (en) * 2006-09-19 2014-03-18 Caustic Graphics, Inc. Dynamic ray population control
US7969434B2 (en) * 2006-09-19 2011-06-28 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering
US7884819B2 (en) * 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
US7940265B2 (en) * 2006-09-27 2011-05-10 International Business Machines Corporation Multiple spacial indexes for dynamic scene management in graphics rendering
US7688320B2 (en) * 2006-09-27 2010-03-30 International Business Machines Corporation Methods and systems for texture prefetching based on a most recently hit primitive algorithm
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US20080079714A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US7940266B2 (en) * 2006-10-13 2011-05-10 International Business Machines Corporation Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
WO2008067483A1 (en) * 2006-11-29 2008-06-05 University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
US7893936B2 (en) * 2007-01-12 2011-02-22 International Business Machines Corporation Generating efficient spatial indexes for predictably dynamic objects
US20080192051A1 (en) * 2007-02-14 2008-08-14 David Keith Fowler Expanding Empty Nodes in an Acceleration Data Structure
US8004518B2 (en) * 2007-02-14 2011-08-23 International Business Machines Corporation Combined spatial index for static and dynamic objects within a three-dimensional scene
US20080231627A1 (en) * 2007-03-20 2008-09-25 Robert Allen Shearer Using Ray Tracing to Enhance Artificial Intelligence Character Behavior
US7773087B2 (en) * 2007-04-19 2010-08-10 International Business Machines Corporation Dynamically configuring and selecting multiple ray tracing intersection methods
US7646332B2 (en) * 2007-08-09 2010-01-12 Raytheon Company Method and apparatus for interleaved gridding in distributed multiple computing for real-time RCS prediction
US7652620B2 (en) * 2007-08-09 2010-01-26 Raytheon Company RCS signature generation for closely spaced multiple objects using N-point models
US8063902B2 (en) * 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing
US7932905B2 (en) * 2007-10-15 2011-04-26 Caustic Graphics, Inc. Method, apparatus, and computer readable medium for light energy accounting in ray tracing
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
CN104112291B (en) * 2008-03-21 2017-03-29 想象技术有限公司 The parallel test for intersection rendered for ray tracing and the framework of coloring
US8217935B2 (en) * 2008-03-31 2012-07-10 Caustic Graphics, Inc. Apparatus and method for ray tracing with block floating point data
US7616151B1 (en) 2008-06-13 2009-11-10 Raytheon Company Reducing scattering center data using magnitude-based reduction
US7602332B1 (en) 2008-06-13 2009-10-13 Raytheon Company Reducing scattering center data using multi-volume aggregation
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
US8421801B2 (en) * 2008-09-09 2013-04-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US7750842B2 (en) * 2008-09-18 2010-07-06 Raytheon Company Parallel processing to generate radar signatures for multiple objects
US7592947B1 (en) 2008-09-18 2009-09-22 Raytheon Company Generating radar signatures for multiple objects
US7880671B2 (en) * 2008-09-18 2011-02-01 Raytheon Company Electromagnetic (EM) solver using a shooting bouncing ray (SBR) technique
US7567205B1 (en) * 2008-09-18 2009-07-28 Raytheon Company Dynamic ray traversing
US8963918B2 (en) * 2008-09-30 2015-02-24 Microsoft Corporation Ray tracing on graphics hardware using kd-trees
KR101610194B1 (en) * 2008-10-15 2016-04-07 삼성전자주식회사 Data Processing Apparatus and Method for Image Processing
US8749552B2 (en) 2008-10-17 2014-06-10 Imagination Technologies Limited Synthetic acceleration shapes for use in ray tracing
US8363051B2 (en) * 2009-05-07 2013-01-29 International Business Machines Corporation Non-real-time enhanced image snapshot in a virtual world system
US8515092B2 (en) 2009-12-18 2013-08-20 Mattel, Inc. Interactive toy for audio output
US8390508B1 (en) 2010-04-05 2013-03-05 Raytheon Company Generating radar cross-section signatures
US8619078B2 (en) * 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
US8629867B2 (en) 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US8692825B2 (en) 2010-06-24 2014-04-08 International Business Machines Corporation Parallelized streaming accelerated data structure generation
KR101705072B1 (en) * 2010-09-28 2017-02-09 삼성전자주식회사 Image processing apparatus and method
KR101705581B1 (en) 2010-09-30 2017-02-22 삼성전자주식회사 Data processing apparatus and method
US10061618B2 (en) 2011-06-16 2018-08-28 Imagination Technologies Limited Scheduling heterogenous computation on multithreaded processors
JP6101267B2 (en) * 2011-08-18 2017-03-22 アザーヴァース デジタル インコーポレーテッドUtherverse Digital, Inc. Virtual world interaction system and method
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
DE112016007098T5 (en) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. INDEXING VOXELS FOR 3D PRINTING
US10628997B2 (en) * 2017-08-24 2020-04-21 Emilio Santos Method for generating three-dimensional models from constrained sketches and an instruction set
US11308683B2 (en) 2020-06-29 2022-04-19 Imagination Technologies Limited Intersection testing in a ray tracing system using ray bundle vectors
US11295509B2 (en) * 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests
US11494969B2 (en) * 2020-08-20 2022-11-08 Sony Interactive Entertainment LLC System and method for accelerated ray tracing with asynchronous operation and ray transformation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305430A (en) 1990-12-26 1994-04-19 Xerox Corporation Object-local sampling histories for efficient path tracing
JPH06223198A (en) * 1993-01-26 1994-08-12 Hitachi Ltd Device and method for image preparation by light beam tracking
DE4331715C2 (en) 1993-09-17 1997-01-02 Zeiss Carl Fa Shutter glasses
DE4417664C1 (en) 1994-05-20 1994-12-15 Zeiss Carl Fa Device having at least two display screen monitors which are set up adjacently and have different display modes, and method for operating the same
GB9424273D0 (en) * 1994-12-01 1995-01-18 Wrigley Adrian M T Improvements in and relating to image constrcution
IL119082A (en) * 1996-08-16 2001-04-30 Virtue Ltd Method for creating graphic images
US6111582A (en) 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
DE19737449A1 (en) 1997-08-22 1999-02-25 Hertz Inst Heinrich Viewer-tracking autostereoscopic flat screen display
DE19753040C2 (en) 1997-11-19 2001-12-20 Fraunhofer Ges Forschung Arrangement for creating an impression of 3D images for visual perception
DE19827590C2 (en) 1998-06-20 2001-05-03 Christoph Grosmann Method and device for autostereoscopy
JP3889195B2 (en) 1999-02-03 2007-03-07 株式会社東芝 Image processing apparatus, image processing system, and image processing method
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6466227B1 (en) 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6556200B1 (en) * 1999-09-01 2003-04-29 Mitsubishi Electric Research Laboratories, Inc. Temporal and spatial coherent ray tracing for rendering scenes with sampled and geometry data
US6597359B1 (en) 2000-05-17 2003-07-22 Raychip, Inc. Hierarchical space subdivision hardware for ray tracing
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US6664961B2 (en) * 2000-12-20 2003-12-16 Rutgers, The State University Of Nj Resample and composite engine for real-time volume rendering
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
US7046827B2 (en) * 2002-02-15 2006-05-16 International Business Machines Corporation Adapting point geometry for storing address density
US20030160788A1 (en) 2002-02-28 2003-08-28 Buehler David B. Pixel pruning and rendering apparatus and method
US6868420B2 (en) * 2002-07-31 2005-03-15 Mitsubishi Electric Research Laboratories, Inc. Method for traversing quadtrees, octrees, and N-dimensional bi-trees
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
US20040246269A1 (en) 2002-11-29 2004-12-09 Luis Serra System and method for managing a plurality of locations of interest in 3D data displays ("Zoom Context")
US7164420B2 (en) 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BRIERE N; POULIN P: "HIERARCHICAL VIEW-DEPENDENT STRUCTURES FOR INTERACTIVE SCENE MANIPULATION", COMPUTER GRAPHICS PROCEEDINGS 1996 (SIGGRAPH). NEW ORLEANS, AUG. 4 -9, 1996, 4 August 1996 (1996-08-04) - 9 August 1996 (1996-08-09), pages 83 - 90, XP000682724 *
DAS S K ET AL: "Cost-optimal parallel algorithms for traversing trees", PROCEEDINGS OF SOUTHEASTCON. WILLIAMSBURG, APRIL 7 - 10, 1991; [PROCEEDINGS OF THE SOUTHEAST CONFERENCE], NEW YORK, IEEE, US, vol. -, 7 April 1991 (1991-04-07), pages 474 - 478, XP010045146, ISBN: 978-0-7803-0033-0, DOI: 10.1109/SECON.1991.147799 *
See also references of WO2004021274A3 *
WALD I; BENTHIN C; SLUSALLEK P: "A SIMPLE AND PRACTICAL METHOD FOR INTERACTIVE RAY TRACING OF DYNAMIC SCENES", TECHNICAL REPORT SAARLAND UNIVERSITY, 2000, Saarbrücken, pages 1 - 12, XP001091428 *

Also Published As

Publication number Publication date
USRE44347E1 (en) 2013-07-09
DE10239672B4 (en) 2005-08-11
JP2005536813A (en) 2005-12-02
WO2004021274A3 (en) 2004-04-29
US7289118B2 (en) 2007-10-30
AU2003266174A8 (en) 2004-03-19
AU2003266174A1 (en) 2004-03-19
WO2004021274A2 (en) 2004-03-11
JP4348728B2 (en) 2009-10-21
US20060066607A1 (en) 2006-03-30
DE10239672A1 (en) 2004-03-11

Similar Documents

Publication Publication Date Title
DE10239672B4 (en) Method and device for generating a two-dimensional image of a three-dimensional structure
EP1175663B1 (en) Method of rasterizing a graphics basic component
DE3407983C2 (en) Multi-processor computer system for generating pixel information from object elements defined in a hierarchical data structure
DE102008034519B4 (en) Split data structure, and method for loading a particle-based simulation using the split data structure in GPU, etc.
DE102019103326A1 (en) ROBUST, EFFICIENT MULTIPROCESSOR-COPROCESSOR INTERFACE
DE60127253T2 (en) Image tiling and compression for 3D image display
DE102019103058A1 (en) METHOD FOR CONTINUOUS LIMITATION VOLUME HIERARCHIRA TRAVERSION TO CUTTING POINTS WITHOUT SHADER INTERVENTION
DE102019103336A1 (en) METHOD FOR EFFICIENTLY GROUPING CACHE REQUIREMENTS FOR DATA PATH SCHEDULING
DE69917799T2 (en) TEXTURING SYSTEMS FOR USE IN THREE-DIMENSIONAL PICTURE SYSTEMS
DE102019135639A1 (en) Real-time ray tracing (RTRT) based adaptive multi-frequency shading (AMFS)
DE102018114286A1 (en) Perform a traversal stack compression
DE102009038454A1 (en) A system and method for reducing execution divergence in parallel processing architectures
DE10035043A1 (en) Building multi-dimensional indexing structure for use with linear optimising requests involves forming two convex envelopes of input data sets, some representing envelope apex points
DE69631718T2 (en) Method and device for efficient graphic representation of three-dimensional scenes
DE19600431A1 (en) Computer graphics pixel rendering system with caches
DE102013017640A1 (en) Distributed tiled caching
DE102013018139A1 (en) Technique for storing common vertices
DE102013018445A1 (en) Defining a subordinate imaging state in an upstream shading entity
DE112012005770T5 (en) Drawing data generating device and image drawing device
DE112016007098T5 (en) INDEXING VOXELS FOR 3D PRINTING
DE102013018136A1 (en) Technique for storing common vertices
DE102021206234A1 (en) EARLY RELEASE OF RESOURCES IN BEAM TRACKING HARDWARE
DE19806985A1 (en) Organizational process for volumetric data that enables efficient cache rendering accelerations and an efficient graphics hardware design
DE69817926T2 (en) Illumination calculation unit and method for three-dimensional graphics accelerator
DE102022119422A1 (en) Method for creating a hierarchical data structure, hierarchical data structure and method for streaming three-dimensional objects

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050223

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: SLUSALLEK, PHILIPP

Inventor name: WALD, INGO

Inventor name: SCHMITTLER, JOERG

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: MAX-PLANCK-GESELLSCHAFT ZUR FOERDERUNG DER WISSENS

Owner name: UNIVERSITAET DES SAARLANDES

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: JORDAAN CONSULTING LTD. V, LLC

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20150904