EP1532586A2 - Verfahren und vorrichtung zur erzeugung einer zweidimensionalen abbildung einer dreidimensionalen struktur - Google Patents
Verfahren und vorrichtung zur erzeugung einer zweidimensionalen abbildung einer dreidimensionalen strukturInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden 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.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10239672 | 2002-08-26 | ||
DE10239672A DE10239672B4 (de) | 2002-08-26 | 2002-08-26 | Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur |
PCT/DE2003/002801 WO2004021274A2 (de) | 2002-08-26 | 2003-08-20 | Verfahren und vorrichtung zum raytracing |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1532586A2 true EP1532586A2 (de) | 2005-05-25 |
Family
ID=31502078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP03790730A Withdrawn EP1532586A2 (de) | 2002-08-26 | 2003-08-20 | Verfahren und vorrichtung zur erzeugung einer zweidimensionalen abbildung einer dreidimensionalen struktur |
Country Status (6)
Country | Link |
---|---|
US (2) | USRE44347E1 (de) |
EP (1) | EP1532586A2 (de) |
JP (1) | JP4348728B2 (de) |
AU (1) | AU2003266174A1 (de) |
DE (1) | DE10239672B4 (de) |
WO (1) | WO2004021274A2 (de) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004007835A1 (de) * | 2004-02-17 | 2005-09-15 | Universität des Saarlandes | Vorrichtung zur Darstellung von dynamischen komplexen Szenen |
US8098243B2 (en) * | 2005-09-23 | 2012-01-17 | Samsung Electronics Co., Ltd. | Method and apparatus for efficiently handling query for 3D display |
WO2008011391A2 (en) * | 2006-07-21 | 2008-01-24 | 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 |
US8018457B2 (en) * | 2006-09-19 | 2011-09-13 | Caustic Graphics, Inc. | Ray tracing system architectures and methods |
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 |
US9478062B2 (en) | 2006-09-19 | 2016-10-25 | Imagination Technologies Limited | Memory allocation in distributed memories for multiprocessing |
US9665970B2 (en) | 2006-09-19 | 2017-05-30 | Imagination Technologies Limited | Variable-sized concurrent grouping for multiprocessing |
US8674987B2 (en) * | 2006-09-19 | 2014-03-18 | Caustic Graphics, Inc. | Dynamic ray population control |
US7830379B2 (en) * | 2006-09-19 | 2010-11-09 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing 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 |
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 |
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 |
US8384711B2 (en) * | 2006-11-29 | 2013-02-26 | The 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 |
US7652620B2 (en) * | 2007-08-09 | 2010-01-26 | Raytheon Company | RCS signature generation for closely spaced multiple objects using N-point models |
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 |
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 (zh) * | 2008-03-21 | 2017-03-29 | 想象技术有限公司 | 用于光线追踪渲染的并行相交测试及着色的架构 |
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 |
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 |
US7592947B1 (en) | 2008-09-18 | 2009-09-22 | Raytheon Company | Generating radar signatures for multiple objects |
US7750842B2 (en) * | 2008-09-18 | 2010-07-06 | Raytheon Company | Parallel processing to generate radar signatures for multiple objects |
US8963918B2 (en) * | 2008-09-30 | 2015-02-24 | Microsoft Corporation | Ray tracing on graphics hardware using kd-trees |
KR101610194B1 (ko) * | 2008-10-15 | 2016-04-07 | 삼성전자주식회사 | 영상처리를 위한 데이터 처리 장치 및 방법 |
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 (ko) * | 2010-09-28 | 2017-02-09 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
KR101705581B1 (ko) | 2010-09-30 | 2017-02-22 | 삼성전자주식회사 | 데이터 처리 장치 및 방법 |
US10061618B2 (en) | 2011-06-16 | 2018-08-28 | Imagination Technologies Limited | Scheduling heterogenous computation on multithreaded processors |
JP6101267B2 (ja) * | 2011-08-18 | 2017-03-22 | アザーヴァース デジタル インコーポレーテッドUtherverse Digital, Inc. | 仮想世界の相互作用のシステムおよび方法 |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
DE112016007098T5 (de) * | 2016-07-26 | 2019-04-18 | Hewlett-Packard Development Company, L.P. | Indexierung von voxeln für das 3d-drucken |
US10628997B2 (en) * | 2017-08-24 | 2020-04-21 | Emilio Santos | Method for generating three-dimensional models from constrained sketches and an instruction set |
WO2019195774A1 (en) * | 2018-04-05 | 2019-10-10 | Nvidia Corporation | Shader binding management in ray tracing |
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)
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 (ja) * | 1993-01-26 | 1994-08-12 | Hitachi Ltd | 光線追跡による画像生成装置及び方法 |
DE4331715C2 (de) | 1993-09-17 | 1997-01-02 | Zeiss Carl Fa | Shutterbrille |
DE4417664C1 (de) | 1994-05-20 | 1994-12-15 | Zeiss Carl Fa | Vorrichtung mit mindestens zwei benachbart aufgestellten Bildschirm-Monitoren mit unterschiedlichem Display-Modus und Verfahren zu deren Betrieb |
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 | A method for creating graphic characters |
US6111582A (en) | 1996-12-20 | 2000-08-29 | Jenkins; Barry L. | System and method of image generation and encoding using primitive reprojection |
DE19737449A1 (de) | 1997-08-22 | 1999-02-25 | Hertz Inst Heinrich | Vorrichtung zum Nachführen eines autostereoskopischen Flachbildschirms |
DE19753040C2 (de) | 1997-11-19 | 2001-12-20 | Fraunhofer Ges Forschung | Anordnung zur Erzeugung eines Eindrucks von 3D-Bildern für die visuelle Wahrnehmung |
DE19827590C2 (de) | 1998-06-20 | 2001-05-03 | Christoph Grosmann | Verfahren und Vorrichtung zur Autostereoskopie |
JP3889195B2 (ja) * | 1999-02-03 | 2007-03-07 | 株式会社東芝 | 画像処理装置、画像処理システムおよび画像処理方法 |
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 |
CA2523623A1 (en) | 2002-11-29 | 2004-07-22 | Bracco Imaging, S.P.A. | Method and system for scaling control in 3d displays |
US7164420B2 (en) | 2003-07-24 | 2007-01-16 | Autodesk, Inc. | Ray tracing hierarchy |
-
2002
- 2002-08-26 DE DE10239672A patent/DE10239672B4/de not_active Expired - Fee Related
-
2003
- 2003-08-20 US US12/608,864 patent/USRE44347E1/en not_active Expired - Lifetime
- 2003-08-20 JP JP2004531696A patent/JP4348728B2/ja not_active Expired - Fee Related
- 2003-08-20 WO PCT/DE2003/002801 patent/WO2004021274A2/de active Application Filing
- 2003-08-20 US US10/526,055 patent/US7289118B2/en not_active Expired - Lifetime
- 2003-08-20 EP EP03790730A patent/EP1532586A2/de not_active Withdrawn
- 2003-08-20 AU AU2003266174A patent/AU2003266174A1/en not_active Abandoned
Non-Patent Citations (4)
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 |
---|---|
WO2004021274A2 (de) | 2004-03-11 |
AU2003266174A8 (en) | 2004-03-19 |
DE10239672B4 (de) | 2005-08-11 |
US7289118B2 (en) | 2007-10-30 |
US20060066607A1 (en) | 2006-03-30 |
DE10239672A1 (de) | 2004-03-11 |
USRE44347E1 (en) | 2013-07-09 |
JP4348728B2 (ja) | 2009-10-21 |
AU2003266174A1 (en) | 2004-03-19 |
WO2004021274A3 (de) | 2004-04-29 |
JP2005536813A (ja) | 2005-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10239672B4 (de) | Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur | |
EP1227444B1 (de) | Verfahren zur Rasterisierung eines Graphikgrundelements | |
DE3407983C2 (de) | Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen | |
DE102008034519B4 (de) | Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw. | |
DE3855231T2 (de) | Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing | |
DE69126857T2 (de) | Objektorientierte Programmierungsplattform | |
DE102019103326A1 (de) | Robuste, effiziente multiprozessor-koprozessor-schnittstelle | |
DE3889134T2 (de) | Verfahren für eine graphische Anzeige. | |
DE3688918T2 (de) | System für geometrische Verarbeitung. | |
DE102019103336A1 (de) | Verfahren zum effizienten gruppieren von cache-anforderungen für datenpfad-scheduling | |
DE102019102821A1 (de) | Verfahren zur behandlung von ungeordneten opak- und alphastrahl/primitiv-schnittpunkten | |
DE69609534T2 (de) | Rechnerbasierte 3D-Darstellungsverfahren und -System | |
DE69917799T2 (de) | Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen | |
DE102019135639A1 (de) | Auf Echtzeit-Strahlverfolgung (RTRT) basierende adaptive Mehrfrequenzschattierung (AMFS) | |
DE102018114286A1 (de) | Durchführen einer Traversierungs-Stack-Komprimierung | |
DE102009038454A1 (de) | System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen | |
DE10035043A1 (de) | Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen | |
DE69631718T2 (de) | Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen | |
DE19600431A1 (de) | Computergraphik-Pixel-Wiedergabesystem mit Cache-Speichern | |
DE102013017640A1 (de) | Verteilte gekachelte Zwischenspeicherung | |
DE102013018139A1 (de) | Technik zur Speicherung gemeinsamer Vertices | |
DE102013018445A1 (de) | Festlegung eines nachgeordneten Bilderzeugungszustands in einer vorgeordneten Schattierungseinheit | |
DE112016007098T5 (de) | Indexierung von voxeln für das 3d-drucken | |
DE102021206234A1 (de) | Frühzeitige freigabe von ressourcen in strahlverfolgungs-hardware | |
DE69129339T2 (de) | Graphisches ausgangssystem mit begrenzter aktualisierung. |
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 |