CN110458933A - 3D figure rendering is carried out with implicit solid - Google Patents
3D figure rendering is carried out with implicit solid Download PDFInfo
- Publication number
- CN110458933A CN110458933A CN201910750240.6A CN201910750240A CN110458933A CN 110458933 A CN110458933 A CN 110458933A CN 201910750240 A CN201910750240 A CN 201910750240A CN 110458933 A CN110458933 A CN 110458933A
- Authority
- CN
- China
- Prior art keywords
- light
- solid
- intersection
- intersection point
- data
- 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.)
- Granted
Links
- 239000007787 solid Substances 0.000 title claims abstract description 132
- 238000009877 rendering Methods 0.000 title abstract description 11
- 238000012360 testing method Methods 0.000 claims description 98
- 238000000034 method Methods 0.000 claims description 86
- 230000001133 acceleration Effects 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 2
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 239000007790 solid phase Substances 0.000 claims 1
- 238000011156 evaluation Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 56
- 230000006870 function Effects 0.000 description 42
- 239000013598 vector Substances 0.000 description 27
- 238000004040 coloring Methods 0.000 description 25
- 230000015654 memory Effects 0.000 description 24
- 238000006073 displacement reaction Methods 0.000 description 22
- 230000001429 stepping effect Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002773 nucleotide Substances 0.000 description 2
- 125000003729 nucleotide group Chemical group 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000001846 repelling effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010186 staining Methods 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- 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
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
Embodiment of the disclosure is related to carrying out 3D figure rendering with implicit solid.Various aspects are related to being tracked light in 3D scene, and the scene includes the object defined by or with implicit solid.In this example, wherein there is a part of the 3d space of implicit solid in trapping element definition.When finding that light intersects with trapping element, trapping element program is executed.The trapping element program may include so that light is travelled across 3D volume and carrying out evaluation to the function for defining the implicit solid for the current position 3D of each of the light.What is detected can be found with the multiple intersection for same light and the solid of explicit definition parallel with intersecting for the implicit solid, and to these intersecting the data that are described and can be stored and be solved with the light.
Description
The application be the applying date be on March 11st, 2014, application No. is 201410087919.9, it is entitled " with hidden
The divisional application of the application for a patent for invention of formula solid progress 3D figure rendering ".
Technical field
The following contents is related to ray tracing, and is related in a particular application using the computer graphical for being displaced solid
Ray tracing.
Background technique
The 2D image true to nature from 3D scene description is rendered in computer graphics techniques field with ray tracing
Inside it is well-known.Ray tracing is usually directed to the scene description for obtaining and being made of geometry, these geometries are to field
The curved surface of structure in scape is described.Enter the scene from viewpoint (" video camera ") tracking virtual ray;Issue every
Light travels across the respective pixel of 2D displaying, which can be to the effect pixels.Light is carried out and geometry
Test for intersection is identified with the nearest intersection point (if any) to every light.
These geometry shapes can be made of multiple pels, such as triangle primitives.Use triangle primitives temporary shape
A kind of displaying that can be consumed easily by certain ray tracing renderers is provided, and can be according to many algorithms completion pair
Light carries out the test for intersection with triangle.However, the rendering for high quality, for example, in order to be generated from virtual 3D scene
HD image in different resolution, such as high-quality video game or animation, fine object model is beneficial.With other displayings
It compares, a large amount of memories can be consumed using only the fine object model that triangle primitives define.For example, triangle primitives exhibition is used only
Show that the smooth surface of object usually will compare bigger memory than the displaying consumption based on batten.Another example is the ground of landscape
Shape feature.For example, showing that actual mountain range can be memory-intensive using only triangle primitives as required for many fine-features
's.
Displacement mapping is a kind of technology that can be used to carry out these scenes addressing.Displacement mapping refers at one or more
Defined geometry data is shifted on a direction so that according to displacement strategy to be ultimately used to 3D scene into
The solid of row rendering is modified.It is considered that this solid is the solid through being displaced.In ray tracing, using through position
The rendering for moving solid is related to carrying out test for intersection to displacement solid.This in contrast with Bump Mapping, Bump Mapping relates to
And the test for intersection with source solid is carried out to light, and after identifying intersection point, Bump Mapping process can be executed.Cause
This, Bump Mapping needs the calculating of less test for intersection, because carrying out the test for intersection with the source solid simplified to light
And without the test for intersection with the displacement solid that may have more pels.However, Bump Mapping allow for it is more limited
Behavior set.
Summary of the invention
In an aspect, a kind of pair of light carries out with the method for the test for intersection of implicit surface including that light is made to enter packet
Enclose the curved surface of the shell of 3D volume.The shell defines the solid of implicit definition in the intracorporal maximum magnitude of the shell.This method
The 3D volume that the shell defines is stepped across including the position 3D that the path along light iteratively makes light current.For each
For the current position 3D, the current position 3D of light projects current 2D on the curved surface of the explicit definition of shell encirclement
It sets, and generates the solid of the implicit definition at the current position 3D using the current position 2D on the curved surface of the explicit definition
Data.Light is characterized as or collided using generated data or is missed the several of the implicit definition at the current position 3D
He Ti.The data for intersecting with the solid of implicit definition and generating that light data structure can store to detect.It can be first
The intersection is first expressed in reference frame, and convert it on global coordinate system so as to the intersection that is detected with other into
Row compares.
The shell can be surrounded by surrounding element.The encirclement element can be identified with label, label instruction should make
Intersected with implicit solid and traverses the encirclement element.The step-length of stepping can be different.It can be based on ray difference or level of detail
Instruction setting step-length.The set for defining volume excluding element can be being surrounded in element, each volume excluding element repels the packet
Enclose a part of the 3D volume between element and the range of the implicit solid.Can with execute step process in define volume
NOT-IF-THEN element set parallel connection shares the accelerating structure in 3D scene and stores to it.These are included in described in detail below
Exemplary aspect.
Detailed description of the invention
Fig. 1 depict with Artist provide vector correlation connection explicit definition geometry element of volume example, these to
It measures for being carried out in the method tested with the surface intersection of implicit definition to light;
Fig. 2 depicts the shell defined based on the vector provided according to the Artist of Fig. 1;
Fig. 3 depicts the instantiation procedure for the 3D scene for defining light traversal using explicit solid and implicit solid;
Fig. 4 depicts a kind of exemplary method of the 3D volume of solid for making light traversal may include implicit definition;
Fig. 5 is depicted with the accelerating structure for surrounding element and trapping element;
Fig. 6 depicts the example shell for being entrapped element encirclement;
Fig. 7 A depicts the sub-volume of the example shell of Fig. 6;
Fig. 7 B depicts the bilinearity dough sheet that can be used to define the sub-volume of the example shell;
Fig. 8 depicts one group of shape that can be used to define the sub-volume of the example shell;
Fig. 9 depicts traversal sub-volume and projects the light current position 3D on the position 2D to determine one or more
The example of a implicit geometry body characteristics;
Figure 10 depicts the example of the final solid curved surface of the implicit definition surrounded in element;
Figure 11 depicts the final solid curved surface based on Figure 10 and is surrounding showing for the volume excluding element formed in element
Example;
The example that Figure 12 depicts solid is enclosed in the situation in trapping element
Figure 13 depicts the process of the pre-execution of solid program or implicit solid define other evaluations of data so as to
Determine the range of final solid;
Figure 14 depicts the process for surrounding the test for intersection in element being overlapped in the 3 d space;
Figure 15 depicts the setting of trapping element and conversion process;
Figure 16 depicts an example system, wherein disclosed various aspects may be implemented;
Figure 17 depict may include bounded function circuit in the system implementations according to Figure 16 example;
Figure 18 is depicted can be in the intersection disambiguation of the parallel test for intersection for the multiple portions for wherein executing opticpath
Instantiation procedure;
Figure 19 depicts the exemplary operations of throughput calculation unit;And
Figure 20 depicts the example for implementing to recognize the throughput calculation of service quality.
Specific embodiment
Vector potential in-migration can be used and realize the solid through being displaced.Vector displacement allows any vector or vector majorization field
The element of scape solid or part thereof of displacement.In some implementations, vector displacement allows completely arbitrarily to geometry
The either element of body is shifted.For example, can in any direction on to any magnitude of the element shift of solid.Therefore, to
Amount displacement provides the height control to displacement, but proposes a relatively difficult rendering task.
In some aspects here, implicitly within certain limit by displacement limitation, the boundary is based on one or more
Predefined vector and be arranged, in the boundary can for these vectors be arranged maximum displacement.In an exemplary method, Artist
The vector of offer can be associated with the vertex being defined to source solid.Artist can be anyone, machine or generation
The process of vector.The term be used to by these vectors with may other vectors associated with source solid, such as can be several with source
The vertex of what body and the associated normal of pel, distinguish.For the arbitrary point on 2D curved surface, displacement can be constrained to along
Pass through the vector for two or more vector determinations that interpolation Artist associated with the 2D curved surface provides.Therefore, completely
General displacement can be limited to the analysis result determined by the interpolation vector sum maximum displacement limit.
In order to determine displacement solid based on the given element of source solid, what Artist provided is directed to two or more
The vector on the vertex that a element to source solid is defined can be used to control how or in another way for pair
The limitation of the possible displacement of specific location on the element of source solid is defined.It can be according to some process and according to institute
Determining dominant vector shifts source solid.Then displacement solid can be used in ray intersection test, and view feelings
Condition is for other purposes.
The some aspects of present disclosure be related to by its can to the exemplary system and process that source solid is shifted with
And technology used in test for intersection can carried out to displacement solid.
Fig. 1 depicts a triangle primitives 10 associated with geometry normal, and (pel in turn can be by forming the figure
(position on these vertex, which establishes one, has method for the position definition of the vertex and those vertex of the winding sequence of member in space
The plane in line direction, and convention establishes normal point along which direction of the normal direction).In Fig. 1, pel 10 is formed
Vertex also with Artist provide vector 13-15 it is associated.Here, " Artist provides " refers to this conception of species: these to
Amount does not need to define the curved surface of pel 10 or the relationship of position or itself and other pels (such as pel grid).But according to following skills
Art uses these vectors.
Fig. 2 depicts pel grid 18 (for example, seeing that the cross section of pel grid cursorily defines a sphere).To figure
The vector 14 and 15 that member 10 is provided together with Artist is identified.It is shown between the vector 14 and 15 that these Artists provide
Interpolation vector 16.The vector for forming Artist's offer of the pel of the sphere is used to one shell 20 of common definition.By shell 20
Depict smooth shape as;However, by by whether and each pel in original pel be sub-divided into any degree and inciting somebody to action
20 facet of shell is to confirmable degree.In one example, these pels are not finely divided, and shell 20 is for every
A original pel will have a facet.In other examples, each pel will have corresponding multiple small in shell 20
Plane.According to disclosed below, it can be used to promote the solid of ray tracing implicit definition according to the shell of example shell 20.Position
Move the example for the implicit solid that solid is provided according to present disclosure.It is used in some way here, implicit solid is included in
The method of geometry data collection is stored before generating " runing time " between final solid curved surface.In one example, letter
Number can be associated with pel 10, and can be based on the one or more inputs generated during runtime come to the function
Evaluation is carried out, to carry out evaluation to the presence of final solid to some places in specific volume or in 3d space.
Fig. 3 to how in the 3D scene of with implicit definition and explicit definition solid track light general introduction into
Description is gone.In step 302, determines and one or more light for passing through the volume in 3d space is tracked.This volume
It can be the entirety or part of it of 3D scene.For example, can be by emit beam in render process come real to image
Apply this determination.In step 205, this one or more light starts (or continuation) traversal accelerating structure.The accelerating structure packet
The chart of multiple elements is included, each element surrounds the corresponding part of the 3D scene.The traversal of the chart is allowed to final several
What body subset is identified, and carries out test for intersection to this or these light for the solid.In some implementations,
This traversal is not carried out by the sequence that light is advanced in the scene.For example, breadth First survey can be carried out to every light
Examination can be grouped the traversal with the light for being grouped again to test according to standard, and issuing together to light
It can start not together.Therefore, in typical usage, given light, which can have, not to be intersected by the candidate apart from sequence identification,
And this intersection should be further processed finally to identify the nearest intersection of the light.
207, which causes the one or more elements entered to the light to be identified, and therefore needs to it
It is further processed to determine the intersection that whether there is every this light there.209, determine whether the element is to lure
Catch element.Trapping element can have shape identical with other accelerating structure elements, but can lure with by its state instruction
The label for catching element is associated.Fig. 5 is depicted with non-trapping element (for example, surrounding element 303,305,307,315 and 316)
With the accelerating structure of both trapping element 309-313.Show each element in these elements have one at least one its
The connection of his element, and will be located in 3d space.Some implementations can have single trapping element type;Other are realized
Mode can have a variety of trapping element types.This implementation, which can have, is allocated for instruction trapping element type
Multiple bits.In some instances, indicate that the element causes to execute trapping element program 211 for trapping element.Work as implementation
When including a variety of trapping element types, different trapping element programs can be executed for each type.Traping element can be with
Be stored in individual accelerating structure, can from one surround explicit definition solid individually/additionally to the acceleration knot
Structure is traversed.Here, trapping element type is related to what program or different calculating should be followed when entering the trapping element
Agreement.Evaluation is carried out with non-uniform rational B-spline (NURBS) curved surface or subdivision curved surface for example, trapping element can be provided, thus
Determine level of detail (LOD), execute motion blur calculating etc..As explained further below, accelerating structure be may include
Multiple elements for various purposes.For example, trapping element 309-311 can surround the different level of detail of same solid
It shows.As explained below, the tester circuit that some aspects of present disclosure traverse accelerating structure with providing the property of can choose is (all
Such as it is no issue be traversed light general programmable computing unit or program interference in the case where).
If the element is not trapping element, 215, determine whether the element directly surrounds solid (for example, it is
Leaf node in similar accelerating structure).If it is not, continuing to traverse further element (for example, identifying before 205
Element daughter element).As explained below, (233) are updated to reference count.If there is direct besieged geometry
Body carries out the test for intersection with this or these light to the solid, and 219, export this test then 217
Result.The result of test for intersection may include for the identifier of pel and each or every a plurality of ray intersection, arrive intersection point
Distance, determine for surface of intersection parameter coordinate, their certain combination or other data and combinations thereof.
In using trapping element, the traversal for being properly completed light can be related to creating multiple and different light sections, with correspondence
The each light section of different light data structure definitions.Reference count may remain in each trapping element and also across institute
All light sections used with the given light of thorough tracking (for example, along the path of light may have different origin and/or
The light of terminal).For example, trapping element can have the accelerating structure separated with the main accelerating structure of 3D scene, the light
Section can be located in the accelerating structure in several elements;After having solved reference count for the trapping element, this can be completed
Light section, but may be without completing overall light (the light section is part of it).
Since other intersection points to every light are identified, so can be chased after to for every light 221
One intersection point of track or multiple intersection points are updated.For example, if the closer intersection point of the nearest intersection point of mark carries out before comparison
Mark keeps new nearest intersection point then to support (in favor of) previous intersection point.223, according to the traversal to being used for
One or more reference counts of every light in these light are updated.Specifically, meter can be kept for every light
Number, the counting to be tracked in how many accelerating structure element there is currently light (plurality of section for a light,
Then it can keep and finally solve distributed reference count).For example, counting is passed when completing the test of light and element
Subtract, but if indicate the light for be directed to daughter element test, then count incremental.Reach zero counting indicator light it is complete
At traversal (implementation being depended on, although the test of the light and all solids may have not been completed).
209 and 211 are returned to, it is implicit fixed that trapping element can be used to refer to exist in the 3D volume that the trapping element surrounds
The solid of justice.The figure later about Fig. 3 discloses multiple processes and system aspects.About the remainder of Fig. 3, element is traped
The output of program may include the instruction of the nearest intersection point to light Yu solid (implicitly or explicitly);When nearest intersection point is institute
When desired, that define the maximum distances for needing to be tracked light.As explained below, which can also be with minimum
Range information is associated, can be used to repel accelerating structure element or solid.These intersection points are eventually fed to process portion
Divide in 213.218, if completing test for intersection, 225, one or more intersection points can be identified for
Color, and 227, coloring process code can be executed.In some implementations, more than one can be provided for single intersection point
Intersection value, and 229, can choose one of these values for be used as the origin that emits of the sub-light line that occurs 231.Example
Such as, as explained below, it can be reflection light rather than the different intersection value of refracted light selection.
Fig. 4 depicts the first example of the process for being identified to the intersection point between light and implicit solid.In
In one example, find intersection trapping element surround as the shell disclosed by Fig. 1 and Fig. 2 (and for the shell
Source solid).245, each or the intersection point per a plurality of light between surface of shell are found out.To determine this or this
A little light will enter after the trapping element, and light can be projected to the curved surface of the shell at one or more points
On.
Fig. 6 depicts the trapping element 534 for surrounding facet shell 323.It can be by the vector that is provided along Artist
The direction that (Fig. 1 and Fig. 2) is defined protrudes pel set to form facet shell 323.For example, pel 332 can be protruded to define
The section 324 of shell 323.Therefore, in one approach, there are 1:1 between the facet of shell and the original pel of source solid
Correspondence.Fig. 7 A depicts the bilinearity face being such as connected to by the pel 332 of source solid and by pel 332 on facet 325
The section 324 that the set of piece is constituted.For example, as shown in fig.7b, bilinearity dough sheet 350 is respectively by 355 He of vertex of pel 332
356 are connected on the vertex 358 and 359 of facet 325.Each section of side is defined by allowing these sections using bilinearity dough sheet
Side be not parallel to each other to allow these sections not parallel each other.Fig. 8 depicts a kind of alternative constructions of the section of shell.In Fig. 8
Example in, provide one group of encirclement shape 365-367 (for example, tetrahedron) being defined jointly to this section.
Fig. 6, which is further depicted, can be tracked the entrance 330 of one section of shell 323, and the entrance and exit point 331 are right
It answers.Section 324 has entrance 339 and exit point 340.In some cases, light can enter the shell but without departing from the shell
Body, in the shell, the light will first with source solid graph element intersecting.In these entrances any entrance (including this
The first entrance point of shell) and each of enter section be considered an entrance or with shell surface intersection.About shell
The entrance of each of body section, being tracked when light enters the different sections of the shell allows particular geometric body process and each
Pel is associated and executes the process with the implicit solid progress evaluation in that section to the shell.
Fig. 4 is returned to, then these light are stepped across the volume that the shell surrounds to establish current 3D for every light
Position.The stepping has certain intervals (ε).239, ε can be configured.It for example, can be according to various inputs to ε
It is configured, such as level of detail indicator 235 or ray difference 237.What ε can be fixed or can be changed;Fig. 4 includes variable ε
The description of implementation.For the remainder of Fig. 4, single ray is described, although can be with a plurality of light of parallel processing.In
247, make the light stepping.248, determine the light whether at the curved surface of the intracorporal volume excluding element of the shell.Volume row
The subdivision for denounceing the intracorporal space of the element definition shell will be not present implicit solid in the subdivision.About Figure 10 and 11,
Provide the further description of volume excluding element.In short, can be by determining the intracorporal implicit solid of the shell most
Whole range and then to the set for surrounding the not enclosure body of the area of space of solid be defined to volume excluding member
Element is identified.The size of these enclosure bodies can be different, so as to fit within the implicit solid final range different portions
In point.
If the light comes into volume excluding element, 249, the outlet from the volume excluding element is determined
Point, and 250, the current position 3D of the light is incremented to the exit point, and executes the determination again 248.If
The current position 3D, then 251, which is projected on the curved surface of the pel not in volume excluding element,
The curved surface is projected that part for defining the shell.An example of this projection is depicted in Fig. 9.Fig. 9 is depicted
It is multiple (be identified to the current position 3D 405) along the direction of travel stepping of the light to make light 335, and is each
The current position 3D identifies the corresponding position 2D 406 on pel 332.It can be by each position table in these positions 2D
Up to for such as parameter coordinate pair, or use barycentric coodinates.These positions 2D may be used as procedural geometry body coloring process 410
Input, the coloring process execute to generate implicit geometry body characteristics (jointly in Fig. 9 for each position in these positions 2D
415 indicate).As explained about Fig. 3, step-length can be arranged based on the level of detail indicator of every light.Ray difference
It is also used as the input being configured to step-length.
It is the mode that calculation amount used in a kind of pair of light advance process is adjusted that step-length, which is arranged,.In certain meaning
On, the calculation amount can be adjusted based on the implicit desired level of detail of solid rendering is given.However, in other situations
Under, it can be by finding out intersecting area between larger step size and then refining the intersection reduces calculating total amount.Some
In implementation, it is based on level of detail or ray difference, the region of the position 3D can be aligned on (snap) to the same position 2D.Example
Such as, even if step-length is arranged to a size, several steppings of light can also be aligned to be based on Same Function and carry out evaluation.
In another example, bigger stepping can be taken, and can be from the stepping end interpolation one or more intermediate stepping.
For example, biggish step-length can be taken when level of detail is low, the large area of the 2D curved surface can all evaluation to same letter
Numerical value, or interpolated value can be taken for certain of median or these options combination.
In one example, these positions 2D are also used as the input of function, and function output is used for the position 2D
Implicit solid height.Here, height can refer to the distance along path;This path can be line segment.It can pass through
The vector (see Fig. 1 and Fig. 2) that interpolation Artist defines defines the line segment.It in other examples, can be by related to source pel
The function or program or part of it of connection defines the path.It, can be by 3D when implementation is shifted along line segment
Present level of the light above the curved surface is generated with the implicit solid function being evaluated for the position 2D in space
Height be compared to detection intersection.In one example, this comparison may include subtraction.When the result of subtraction changes symbol
Number when, then it can be concluded that the light before and currently between stepping somewhere with the implicit geometry
Body intersection.These operations are the examples for the operation described in Fig. 4, are included in 253, run solid process to determine and be projected
The geometry body characteristics of current light point and compare 255.The subtraction implements overlapping and determines 257.If be not overlapped (for example, should
The height of light is still bigger than the implicit solid of set point), then the process returns to 269 to execute another step of the light
Into.If detecting overlapping (for example, sign modification of subtraction result), 259, can divide equally process so as to further
Refine the intersection point.261, a pair of of position 3D at the interval for describing the light comprising the intersection point can be identified.263,
These points can be returned as the intersection point for showing the light and implicit solid.Due to closer several of solid more implicit than the intersection
What body may be up for tested, so having whether this intersection point to be determined is nearest intersection point.
It is not to compare height, collision detection algorithm can be used to compare the current position 3D and the implicit solid
Compared with.The current position 3D can be modeled as having a certain range of sphere or shape.It can be by micro- apart from hierarchical information, light
Point or their certain combination control this range.In some applications, the implicit solid for carrying out test for intersection can be originated from
Volumetric data set.For example, the volumetric data set can be expressed as to the data in uniform or level volume elements structure.For example, data can be with
From 3D scanning technique (such as Medical imaging scanner, such as computerized tomography (CT) scanner) and similar techniques.
Figure 10, which is depicted, shows that the curve 430 of the final curved surface of solid of implicit definition (for clarity, is shown with 2D
Out).It surrounds element 429 and surrounds this solid (provided that being then shell and trapping element).About trapping element, trapping member
The size and overall dimensions of element will receive the limitation to the form (for example, axis alignment box, square, sphere etc.) of trapping element
It influences.This limitation may influence the fitting compactness for can be realized to fixed shell.
It is (special that Figure 11 depicts the NOT-IF-THEN element being filled to final solid 430 and the space surrounded between element 429
Do not identify 431 and 432).These NOT-IF-THEN elements can also be determined according to the limitation to the shape that can be used for these elements
Size and it is positioned.Further limitation may relate to the amount of ram for being exclusively used in these elements.For example, it may be possible to want
The minimal size of element is sought, or needed for the data that can be defined to storage to the NOT-IF-THEN element in specific trapping element most
Big memory size is configured.These decisions can be made based on the feature for the computing platform that will implement Marching algorithm, including
Memory bandwidth and size characteristic, power consumption limit, the requirement to the waiting time, handling capacity etc..Figure 13 depicts an instantiation procedure,
Volume excluding element can be generated by the process.451, a part of implicit solid is identified (for example, in program
The displacement of definition).This mark can be carried out under pre-execution environment, it can be by source solid and one under pre-execution environment
Or multiple functions, one or more program or other how (for example, being used for test for intersection) will determine implicit geometry when needed
The definition of body is submitted together.455, evaluation or execution optionally are carried out to these functions, program etc., it is final several to obtain
What body range.In some cases, this final solid range will depend on only available information during runtime, or
More generally useful, still not available information is depended on (for example, the evaluation depends on retrieving (retrieve) during search operation
The value arrived).In this case, which can be with a series of values that can expect from the lookup
Information it is associated.In other implementations, the expression formula that the value that the lookup returns is described can be provided, and can
To carry out evaluation based on the joint evaluation in these sources come the final range to implicit solid.
457, it is based on this evaluation, definition is repelled in the maximum magnitude of the final solid and in shell (see Fig. 6)
Volume.The example of the implementation of exclusion volume includes volume elements structure, these volume elements structures can be layering, such as Octree.
In a kind of alternative implementation, shell can be ignored, and will be based on the trapping element that will surround the final solid
Range defines exclusion volume.If ignoring the shell, a large amount of volume excluding elements will be needed by usually expecting, because luring
It catches element and would not be as the shell and closely surround the final solid like that.459, store the definition of these exclusion volumes with
For accessing later.Other than in pre-pass middle definition exclusion volume, it is also based on and implicit solid curved surface is described
The characteristic of function come exclusion volume part.
How Figure 12 can be used for the test for intersection of implicit solid about trapping element and more generally useful use if being depicted
In the more details for the part abstract for making 3d space.As additional example usage, traping element can be used to make same geometry
The example of object abstracts, even if they do not use implicit solid.The toy that Figure 12 gives the tree for geometric object shows
Example, wherein the example 405-407 of this geometric object is surrounded by corresponding trapping element 434-436.These trapping elements in turn can
It is surrounded with being surrounded body 420 (see Fig. 5).Show that example 431 is Chong Die with example 432.This overlapping under 3D scene can be
The case where branch of these tree examples tangles, so that they occupy the overlapping volume in space.Light is traversed in this scenario
Line 438.Fig. 3 depicts the process using trapping element program 211;Figure 15 depicts the example of trapping element program 211.
In Figure 15, when light encounters trapping element, in order to be carried out and the solid in the trapping element to the light
Test for intersection the light is transformed into the coordinate system of trapping element reference 461.463, one or more mistakes are executed
Journey.Based on the feature of the trapping element, these processes can be dramatically different.For example, implicit solid process can be executed.Or
Person can test the solid surrounded in the trapping element.Finally, generating result data 465.For example, base
In the process of the solid or execution tested, this result data is the nearest intersection point of discovery.As the intersection in trapping element
Test as a result, can produce various data, including barycentric coodinates, to being carried out to crosspoint in the distance of the intersection point, 3d space
The point of mark or another expression formula of the intersection position.
When this data includes location information, it can be expressed in the coordinate system that the trapping element refers to.In
467, the location information and associated information are transformed on global coordinate system from the reference frame (or other have it is pending
Shared another coordinate of operation).This conversion can be immediately performed, but in another implementation, can provide by
The transition matrix for allowing to make the conversion come into force in the time later.For example, result data structure may include the reference frame and
Result data in transition matrix.Later during intersection disappears qi or assorting process, which can be applied to
On the result data.When the functional unit for executing the test for intersection may not have execution matrix conversion ability or cannot be efficiently
When executing this conversion, this implementation may be suitable.If traping element without reference to the seat other than global coordinate system
Mark system, then may not be needed transition matrix.
Back to Figure 12, in detail in this figure, light is originating from trapping element 434 and trapping 435 the two of element.According to this
In some systems disclosed, can be the case that determine light 438 also with trapping (and/or the geometry in 434 of element 434
Body) intersection before, discovery trapping element 435 (and/or solid in 435) intersect with light 438 (for example, if every light
Line starts to test in the root of level accelerating structure, then light 438 can access trapping element 435 first).Why is such case
Will appear is reason due to the stall propagation of the intermediate result of the waiting time or test of some test for intersection, such as only
It is based only upon and how to plan the test.Therefore, evaluation can be carried out to example 432 for intersection before example 431, even if example
Origin of 431 multiple portions from light 438 is closer.Figure 14 depicts a kind of test for intersection explained to these situations
Exemplary method.
Figure 14 is depicted to be generated with implicit solid test for intersection as a result, and generating 413 to same light 411
The result that line and implicit solid are tested.During Figure 14, there are multiple for giving the phase knot that light uses
Fruit.More commonly, it may be desirable to keep the single nearest intersection point of light, and the intersection result of the light is marked every time
Know, it is compared with the nearest intersection point, and keeps the single nearest intersection point.Here, however, expressing these results
Under the resolution ratio at place (for example, single accurate floating-point), simply may be not enough to which intersection point distinguished immediately apart from evaluation
Recently, or in other cases, it is understood that there may be have can not mutual different distance two intersection points.In these situations
Under, it is a kind of provide reproducible result method can be important, even if there are more than one " effective " solutions.Accelerating
In the case where structural element (trapping or rule), if the range that the arbitrary portion of the volume of the element and minimum range define
And current nearest intersection point overlapping, then repelling the acceleration element, (accelerating structure element is not established into being used to test
The nearest intersection point (that is, maximum value t)) of light.
Figure 14 is depicted determines multiple any two or more results intersected in results in indiscriminate distance 415
Place.In the present circumstance there may be some desired values be clearly not nearest solid intersection point solid intersection point.It can be with
Repel these intersection points;If executing them before the process of Figure 14, determination 415 can be ignored for those intersection points, but still
It so may require that and the accelerating structure element of overlapping be identified or is kept for testing.If all solid intersection results exist
At different intersection distances, then nearest intersection point (intersection point group) can be used (here, one group of intersection point can be for example according to light
Line and curved surface intersect a pair of of the point for carrying out description return, such as advance the result returned from the light about Fig. 9 discussion).
419, each object compared with comparison other with indiscriminate distance is accessed (for example, accelerating structure element
Or pel) ID.ID based on these objects can repel from further processing or select one or more objects.In
423, the intersection information based on 421 pairs of light is updated.425, the reference count of the light is updated.If it
It is preceding to have instruction for test, when the reference count of the light is added in the test for accelerating structure element, the reference of the light
It counts and increases, and when being removed or when ejecting from element from test, reduction.
421 are considered in further detail, it, can if the identifier of accelerating structure element indicates that it comes into for testing
To eject from the accelerating structure element from further processing.It can be by the identifier to the accelerating structure element at least
A part is compared to be determined this with identifier information being stored or associated with the light.This and light
The information that line stores together may include the accelerating structure element in having been enter into the identifier nucleotide sequence for the light
(for example, all these identifiers have opposite sequence, and the light keeps highest cis element sequence to identifier with peak
The mark of element).A particular example can be considered about light 440.It can be seen that light 440 initially enters trapping element 434.
After entering the trapping element, minimum value t will be established for the trapping element.Light 440 also intersects with trapping element 435, but arrives
The distance of the intersection point is different from the intersection point with trapping element 434.However, being maintained at trapping element with the intersection point of trapping element 435
It is also such case in 434 volume.Therefore, in this case, it is possible to reenter trapping element 434 or at it
Reason.So in one approach, minimum value t can be used to be ejected from from retesting by encirclement not Chong Die with another element
The solid that element surrounds.
The example of same solid can be throughout 3D scene, wherein each example is surrounded by different trapping elements.Each
Traping element includes world space coordinate position (and/or range).Each trapping element size can be different and can be oriented
It is different.For example, trapping element can be scaled and be rotated.A reference frame can be used in each instance space.Each trapping
Element can also include about the information having to be applied to the conversion on light, which is in order in world space and the example
Reference frame between translated.As explained above, each trapping element can also include to the object in the trapping element
Or the reference of other data, for example, implicit solid and other data.In another example, each element of accelerating structure
It can have knowledge symbol, and the accelerating structure element for showing that trapping element encapsulates same solid can have a fixed number jointly
The bit of amount.The light intersected with these different instances elements can be collected, and it can start test for intersection together.When every
When a trapping element has the reference to instance space, then the reference can be used to collect and will need to cited instance space
The light tested.When the element for quoting same instance space shares a part of identifier, which can be with
For collecting light.
Figure 16 depicts the system 501 that various aspects disclosed herein can be implemented.System 501, which includes one, can have one
The computing cluster 502 of group core, each core are able to carry out the instruction from the independent instruction stream of correspondence.Each core can have
There is private cache and secondary cache can be shared with other one or more cores;It is slow that other high speeds may be implemented
Deposit configuration.For example, core 503 and 504 each have dedicated L1 cache, respectively 505 and 506.Core 503 and 504 can
To share L2 cache 507.Computing cluster 502 can from accelerating structure memory 509 and from geometry body memory 508 into
Row is read.Various algorithms can be executed to assist computing cluster 502, such as the Rendering algorithms of throughput calculation unit 515.It calculates single
Member 515 includes task collector 521, multiple light/graph element intersecting test cell 520 and multiple light/box test cell 516.
Each unit in these units is configured for executing the intersection algorithm of one or more definition.When light is originated from box
When outer, it is possible to implement light/box test cell 516 is so that they are generated from rayorigin at a distance from the intersection point of box.
When the light is originating from the box, light/box test cell 516 can also be implemented so that they return to light traveling
Distance to the exit point of box (for example, light 438 originates from trapping element 435, and can make light/box test cell
516 trap the distance of element 435 back to outlet).Light/box test cell is the test cell for specific type shape
Example.Test cell can be provided for other kinds of shape, either be substituted in addition to box test cell or to it.
In some instances, each test cell includes at least part of fixed function electricity for executing given intersection algorithm
Road.Example pel test bag includes the test for intersection with triangle primitives, as barycentric coodinates are tested.It can by the box of carry out test for intersection
To be such as axis alignment bounding box.The other methods of accelerating structure test include the test of kd tree.In addition to these test for intersection units
In addition, computing unit 515 may include one group (one or more) limited programmability circuit 512, these circuits can with it is right
The test cell answered is associated or including in task collector 521.
Corresponding local light data storage 514 can be used in each test for intersection unit.As a specific example, light
Data 518 include that multiple light define data set.It includes minimum range mark (minimum value t) that each light, which defines data set,.In
In one example, as explained above, which can be used to be stepped across one group of element, without in same process
All they are tested for each stepping.Maximum distance mark can also be stored, and (maximum value t), the mark is to the light
The nearest current intersection point of line is identified.It can store the data about current intersection point recently, such as the interpolation variation of intersection point, center of gravity
Coordinate and pel identifier.In general, can be stored based on data selection needed for being directed to light execution coloring process
Data (if the intersection point that the data are related to is the intersection point for triggering coloring process and executing).When intersection point makes bounding box element (for example, luring
Catch element) when being related to reference frame, it can store the conversion square that the mapping between entirety and local coordinate is described
Battle array.
As explained above, task collector 521, which is formed, calculates grouping (for example, the light grouping that can be tested together).
Light grouping can be to there is accelerating structure to be tested to be identified.In some instances, element is accelerated to can be to corresponding LOD
Under the element that is defined of given object (or part of it).These elements can surround this different in overlapping space
LOD solid.In one implementation, these elements can be trapping element.Light can be micro- with LOD identifier, light
Point, flare factor it is associated, or there may be another for determining to have the mechanism of the LOD where solid to be presented.Have
Limit programmability circuit can choose one or more collections, each to collect and the corresponding acceleration for needing to be placed in light in it
Element is associated.For example, even if the accelerating structure element tested can have multiple sub- accelerating structure elements, but this it is limited can
Programmed circuit only selects a subset of those sub- accelerating structure elements.For example, can choose and detail level (LOD) phase
Associated accelerating structure element.In some instances, light can be in the transition region between two level of detail, and can be with
The light is added to two to collect, so that traversing the light in the solid under multiple level of detail.It can be with base
The decaying of the light is adjusted in the action of the limited programmability circuit, such as reduces and is originated from single original ray
A plurality of light in every light importance.For in another example, limited programmability circuit can be ignored light
It is added in any collection, even if intersecting with father's element.Therefore, after limited programmability circuit can influence or control light
Continuous test.
System 501 can also provide result return path 511.In some cases, further place may as a result be needed
Reason, the further processing are executed by the program code for causing the program code of task of the result different from generation.However
In some cases, further certain a part for handling the data that can be used that the program code for generating the task shares.
Depending on computing cluster 502 framework and as a specific example, depend on moving from a core to another core
The efficiency (such as across different L2 caches 507) of dynamic data, as a result return path is configured for returning to result
To the core for using L2 cache 507, which, which has stored, stays in number used in the further processing
According to.In some implementations, when generating the task, purpose mark symbol can be associated with task, and the purpose mark
When symbol can be used to results direct going back to the source of the task.
Figure 17 depicts the example of one or more limited programmability circuits 550, this or these circuit can be used to
Realize limited programmability circuit 512 depicted in figure 16.One or more circuits 550 may include multiple predefined mathematics
Function 552 and multiple programmable function implementations 554.These predefined mathematical functions 552 may include that can be directed to these
One or more independent variables of function and the function set for being evaluated out different value.This predefined mathematical function may include
According to the matrix conversion of the 3d space of the transition matrix of offer to the limited programmability circuit.In another example, it can compile
Eikonal number implementation can execute or be repeated several times a predefined operation or operational set.
Circuit how can be limited programmability example include: circuit be able to carry out limited quantity instruction or
It needs to complete in fixed time period in another way;Program avoids circulation or branch;Or circuit does not instruct taking-up pipeline.In
In one example, by executing the mulitpath across code segment and then selection result or the undesirable result of masking are propped up
Hold branch.When the limited programmability circuit does not support instruction to take out, control path preload instruction collection can be passed through.Such as with
Upper explanation, limited memory can be provided for storing these instructions, and can be designed into for supporting to execute most
Big waiting time or period (timeframe).Therefore, limited programmability circuit can with binding test cell operation, so as to
It realizes advance, iteration, Stepwise Refinement, divide equally, successive approximation method, displacement, vector graphics, bulk effect etc..
Figure 18 depicts the overall procedure of the light information in a sample implementation.580 He of coloring process code
Coloring process code 582 can each emit light;It can be by this light of data definition that includes in light data structure.Light
Data in line data structure can be generated by coloring process code module, these modules can be used API 575 and submit the number
According to.For example, API 575 can have the light transmitting calling for receiving the data set for light.Collecting tracing function 584 can be with
Data are received from these light data structures and collect every new light so that other light are begun stepping through with one or more.Hair
It penetrates light and may exist various intermediate steps or functional element between the light tracking in collection, and Figure 18 is not implied that
It directly links.
It can emit or submit the ray-collecting for collecting the generation of tracing function 584 to begin stepping through (for example, collecting 586 Hes
588).Test for intersection function 590 (in one example, can pass through pel test cell and accelerating structure element test list
Member is realized) it can receive these collections for traversing.For wherein needing to be traversed implicit solid or carrying out test for intersection to it
One or more examples for, test for intersection function 590 can activate implicit solid coloring process function 592.
Test for intersection function 590 and implicit solid coloring process function 592 each can produce light data structure
It updates, is numbered as 594-596 from the update of those of solid coloring process function 592 light data structure, carrys out self intersection
The update of those of test function 590 light data structure is numbered as 600-602.Intersection disappears qi function 606 can be next from these
Source (or other sources, if any) receive these data structures update, and generate one output, it is described output into
The ray-collecting for being tracked (608) to light wherein is carried out more during the traversal (finding nearest intersection point) of one step
Newly, and light coloring (609) (for the nearest intersection point identified) is initiated, this can cause to emit the further light for needing to be traversed
Line.Generate data structure update can be a kind of suitable implementation, in this implementation, by with 590 coupling of test for intersection
The limited programmability or fixed function element of connection realize the solid coloring process function or its at least some.This
In implementation, may not for the solid coloring process function call code common segment or code it is this
The limited programmability unit can be set in common segment, but does not execute all calculating.Figure 18 depicts alternative implementation
Various aspects solid coloring process can be realized by the code that executes on general-purpose computations element in this implementation
Function 592.In this implementation, it is believed that solid coloring process function 592 is coloring process code 580 and 582
" peer " because solid coloring process can be called in response to ray intersection if code 580 is as 582 can do
Function 592, and the output of this solid coloring process function 592 will receive and emit calling using the light of API 575
It influences.Therefore, after light completes test for intersection, it can be used with being used to call the semanteme as coloring process and call geometry
Body coloring process function 592.However, during the intermediate stage of test for intersection run solid coloring process function 592 with
Just result is generated to carry out test to light and implicit solid.The survey can be carried with the new light emitted by API 575
The result of examination.Therefore, during the entire process of traversing to given opticpath, a plurality of different light can be emitted, and
And intersection can be accumulated on entire path.Some implementations can be used the solid coloring process function 592 to draw
It plays the associated intersection point of light that the coloring process calls to be compared, and finally determines the intersection point of new logo whether away from the light
The origin of thread path is closer, and only keeps closer intersection point.In other implementations, test cell 520 can will be stored
Intersection point in localization light data 514 is compared with the intersection point that identifies in light data structure is reached, and holding compared with
Close intersection point.In this implementation, by from solid coloring process function 592 and/or the survey from their own
The intersection point of examination operation is compared, and test cell 520 localizes the nearest intersection point in light data 514 for it and keeps current time
The person of choosing.
Intersect the intersection point set that the qi function 606 that disappears takes given opticpath, and nearest from determining between the intersection point set
Intersection point.For example, when given opticpath has had stepped through one or more examples of trapping element, for trapping member
Element may exist a partial intersection, while there may also be the friendships of the light and the solid for not being entrapped element encirclement
Point can find above situation during the concurrent testing of the light.These intersection points can store in different data structure, this
A little intersection points are collected for omparison purpose.For example, a plurality of light individually instantiated can be eventually for completely to single ray
Path is tracked, and can be concurrently tracked in this scenario to those light.It, can be in other implementations
Continuously the multiple portions in single ray path are tracked, when a light is completed (that is, data structure is along optical link
Diameter defines light, but is likely to only along limited opticpath section), and issue another light, and which carry with
The relevant information in completion part of test for intersection.When each section of completion, these multiple portions across opticpath can also be kept
The reference count divided.Can be realized in fixed function hardware or in configurable hardware or in the hardware of software programming about
The function that Figure 18 is disclosed.
Trapping element is further related to, above-mentioned disclosure provides example relevant to displacement solid.Trapping can be provided
Element is for handling a variety of situations.For example, can be executed by using time value associated with light calculating with test with
The intersection of mobile object occur under moment sequence where, thus trapping element in realize motion blur.It is then possible to mixed
These results are closed to determine motion blur characteristic.It can be with reference to the seat other than world space coordinate system although traping element
Mark system, but trap element and world space coordinate also can be used.
Figure 19 depicts the exemplary operations of throughput calculation unit 515.It is single that pending task 705 is input to calculating
Member 515.For example, each task may include collecting key 710, data referencing 711 and optional prioritization indicator
712.In some implementations, 710 pairs of key is by the input for the computational problem shared between multiple calculating process or one
Divide and is identified.In some implementations, data referencing 711 by pending data portion be identified as data element to
A data element in amount, wherein identifying input or computational problem by key 710.For example, key 710 can be to acceleration
Structural element is identified, and data referencing 711 can carry out the light for having pending and accelerating structure element test for intersection
Mark.Key 710 can mark the program or process for having in the data for staying in the reference of data referencing 711 or being executed with it
Know.For by way of further example, key 710 can be identified the coefficient for the data for needing to be identified multiplied by data referencing 711.In
Other data that task 705 is described can be used in the system, or the data are provided in data structure, but be not
All these data can be moved together everywhere in throughput calculation unit 515.For example, each task can with need to be based on
The result of task additional data used in further processing is associated, but the additional data holding to the task itself
It is unnecessary for row.
These tasks 705 can be provided to task collector 521 (Figure 16), and (or the descriptive information of these tasks is multiple
Part 712) such as key 710, data referencing 711 and priorization shows when comprising collecting formation/update module 715 herein
Above situation is gone out.The cache for the collection that 711 can be quoted with storing data combines corresponding key 710 to realize module
715.For example, multiple data referencings can combine single key and store together.As the summary of the above content, Figure 19 describes
Trapping memory 718 including multiple key 720-723, each key have data referencing case associated there.It can be with
It is that each collection generates priority, the data referencing of each task based on prioritization indicator 712 associated with each task
It is associated with the collection.For example, it is preferential that each collection one can be given based on the highest priority task in the collection
Grade.Same item task (for example, data referencing from the task) can reside in multiple collections.In the background of ray tracing
Under, each collection can with have it is pending associated with the shape of ray sets test for intersection, the ray sets be collected into
In the associated collection of the shape.In implementation, trapping memory 718 may include intersecting cache, wherein key
(such as 720-723) is that hash or the position candidate that can place of the masked collection so as to the key are identified.It can
To solve the collision between each collection by evicting collection from.
Scheduler program 733 forms the packet including the data from different task using the data in trapping memory 718,
These tasks are associated with the given key in the collection from trapping memory 718.Scheduler program 733 can be with collection shape
The formation for coordinating to collect is communicated at/update module 715 and from evicting from trapping memory 718.Scheduler program 733
Can by etc. packet storage to be launched to one or more packet queues (depicting two queues 734 and 735).When the multiple teams of use
When column, it can be classified based on the priority of packet to packet.Multiple queues can be embodied as first in first out in non-transient memory
Memory, chained list, buffer circle etc..The packet (for example, distribution packet 719) from queue 734 and 735 can be distributed.Distribution is wrapped
719 depict as including packet ID, packet priority and cipher key sets and multiple associated data referencings.In one example,
Packet may include to the single key for thering is pending program to be identified, need the data element used in the process of implementation,
Or both.
Prioritization indicator 712 can be realized with various ways.Phase when indicator 712 can be only to task transmitting
To sequence or time indicative sequence identifier (for example, being incremented by number).In one approach, this sequence identifier allows
The minimum quality of service that each task is completed.Task can also have and can be interpreted than minimum quality of service higher level or more
The corresponding designator 712 of low priority.Even if general case provides incremental identifier, but task is not needed with unique identification
Symbol 712.For example, can be by answering from current task gap number (as explained about Figure 20) closer sequence identifier
Make to realize the relatively higher priority of new launch mission, and according to the implementation of present disclosure can with emit before
The task equal priority with identical sequence identifier under handle new launch mission.Other implementations can provide sequence
Identifier and individually priorization field.
Test cell 516/520 (see Figure 16) is received in corresponding input block 740-742 and is inputted.It can choose these
Input based on which test cell in test cell for storing the localization data for inputting relevant execution to those
To be allocated in test cell 516/520.For example, can be with by the definition data of the light of 711 mark of specific data reference
Be stored in the local memory of the only one unit in test cell 516/520, and the data referencing will with to need about
The reference of shape or shape data that the light is tested is assigned to the test cell together.Can by this or these it is limited
Programmability circuit 550 realizes task status feedback 749.It, should in the example traversed to the light for passing through accelerating structure
Feedback may include selecting which daughter element should collect light for next time from multiple daughter elements.That will receive for each
Daughter element provides the influence of key 710 for task.More generally useful, one or more circuits 550 can reference to program or ground
It is that location, accelerating structure element or need use in subsequent processing or need at next step according to specific data referencing 711
The data element of reason is calculated.
In one example, code module can execute on computing cluster 502 so as in the sheet of test cell 516/520
Related data is set in ground memory.However, in some implementations, based on the information reached in task definition, task storage
Data can be arranged in those local memories in device maintenance module 716.For example, module 716 can be from shared memory coherency to survey
The local memory for trying unit 516/520 arranges direct memory transfer request.Recognize scheduler program 733 to which wrap into
These transfers can be scheduled in the case where being lined up by having gone.Although when executing Given task to test cell 716/720
Accurate timing may not be deterministic, but can provide small cache with buffer from shared drive retrieve data,
Until being used and being then rejected.
Figure 20 depicts the example for implementing to recognize the throughput calculation of service quality.As shown in Figure 19, task is collected
Device can produce the collection for staying in the task that calculating elements collection closes execution.The task collector can establish point of task
Group can be directed at least some part of those tasks and be performed in parallel those tasks.The task collector can postpone open
Begin to execute specific tasks, is conducive to the handling capacity that whole increase task is completed.However, if only considering handling capacity and selecting task
For executing, then certain tasks may not be able to be completed in time.Under the background of ray tracing, the light of relatively small amount can be at 3D
Terminate in the part of scape seldom accessed.It is used to sufficiently be collected for those parts it is thus impossible to obtain sufficient light, and
And so if execute scheduling heuristics come select sufficiently collect so as to make calculate concurrency maximize, can not be by these light
Line scheduling is for further traversing.It is generally calculating in scene, code module set, routine or section can have than other
The much more frequent part of part access.The execution of these code elements can be scheduled by the following contents: collection pair
This execution is requested and at least based on the corresponding requests quantity collected for different code element come selection.And
This, if only completing scheduling in handling capacity decision, some requests can die down.
In one example, since task launch point 631, can the giving definition of the task (is defined as 625 definition times
Business) incremental identifier.It can consider for handling capacity come selection and processing task, but further, it is necessary to keep task gap point
632.Task gap point 632 has all lower task identifiers places to be prioritized for completion in the identifier nucleotide sequence
Position be identified.As depicted in figure 20, some task (examples bigger than task gap point 632 can have been completed
Such as, task 642).When point 632 is mobile, the scheduler program 733 of Figure 19 can be in the trapping memory 718 comprising the task
Collection be identified (644), select those to collect for evicting from, and according to corresponding packet be distributed (644) (for example,
In fast packet queue, such as 735).(646) task result can be obtained, and whether to be made such as task based on those results
Decision through completing.If task is not completed, select/update (650) need for the task to be placed on it is further in it
In collection.If completing the task, (651) can be continued for other tasks and be handled.
According to fig. 20 dispatching method, handling capacity can be based primarily upon and execute scheduling, but guaranteed by Given task
Before pushing ahead, given task will not be delayed longer than the predetermined time (for example, processor period).By giving
Task sequence identifier more lower than the sequence identifier for issuing other tasks is given to complete to give task higher priority,
This causes the task to reach gap point 632 will reach faster in another way than it.As explained above, it can also keep
Individual priority indicator.Under the specific background of animation, frame sequence can be rendered.Task identifier may include
Data (for example, absolute or relative populations of the frame under state of flight) relevant to frame number, which can be used for being prioritized.Also
It can be prioritized by rank of this technology to light, light, certain seed type such as from a certain staining procedures module
Light etc..Implementation can provide for unidirectional task or multiclass task, light or multiclass light and wait the time limit.In order to promote
To calculating task, it is specific that multiclass task (as being originated from the task in specific source or the task of the specific data set of reference) can be given
The waiting time limit.Other can be provided in the implementation being usually prioritized to handling capacity, phase is carried out to light or task
To the mode of priorization, but the waiting time limit of the individual element of calculating can also be avoided exceeding.
The multi-task between task gap point 632 and task launch point 631 is optional and can be according to real-time system
System condition is modulated it.For example, if can also intermittently execute at digital signal more stringent to time requirement
Implement rendering in the processing system of reason task, or when available memory is currently restricted, then can make task gap point 632
More stay close launch point 631.
If implemented in firmware and/or software, function can be shown as one on computer-readable medium or
Multiple instruction or code, in one example, the medium are non-transient.Example includes can with the computer that data structure encodes
Read medium and the computer-readable medium with computer program code.Machine readable media includes non-transient machine readable medium.
Other kinds of medium includes transmission medium.Non-transitory media can be any tangible medium that can be accessed by the machine.Citing
For, but do not have it is restricted, this computer-readable medium may include RAM, ROM, EEPROM, CD-ROM or other CDs
Memory, magnetic disk storage or other magnetic memory apparatus or it is any can be used to by instruction or data structure in the form of store institute
Desired program code and other media that can be accessed by the machine.
The description that the feature of various aspects is provided be used to enable those skilled in the art to make and using these systems and
Method disclosed by device and execution.Various modifications will will be apparent to those skilled in the art, without departing substantially from present disclosure
Spirit and scope in the case where the principle described in this document can be applied to other aspect.Therefore, this specification is not
It is intended to limit claims.On the contrary, will make right will book ask meet it is consistent with principle disclosed herein and novel features
Range.
Attached drawing includes the sequence of the disposed opposite and process component of structure, only understands this specification as help.These phases
It is not to imply the sequence or arrangement of wanting element and step in specific limitation claims to arrangement and number.Without departing substantially from this
It can sequentially interchange process be limited in the case where the range of disclosure, claims and device adds function phrase to be intended to cover
It is described as executing cited function, not only includes structural equivalents but also including equivalent structure.
Although having used various examples and other information to explain many aspects in the scope of the appended claims,
The limitation to claims should not be implied based on the specific features or arrangement in this example, because those of ordinary skill will
It is able to use these examples and exports a variety of implementations.Further, and although with structure feature and/or method and step
Some theme of the dedicated language description of example, it is understood that the theme limited in the appended claims need not be confined to
The feature or movement of these descriptions.For example, this functionality can be distributed in other than the component identified herein component,
In additional component or less component, or execute wherein.On the contrary, disclosing the feature and step is as appended right
The example of the component of system and method in the range of claim.
Claims (10)
1. a kind of method of the light in tracking 3D scene, comprising:
Light is traversed in the accelerating structure for including multiple elements;
Determine by the element of the accelerating structure of the ray intersection whether include object instance;
The data for defining the light are transformed into from scene domain coordinate system to the ginseng of the element for the accelerating structure
Examine coordinate system;
Determine it is testing the light and intersect with the solid being located in the element as a result, the result including be directed to it is described
The mark data of the nearest intersection point of solid in element and distance to the nearest intersection point;
The result of test is transformed into the scene global coordinate system from the reference frame;And
When completing the traversal of the light, the intersection point nearest for the totality of the light is determined.
2. the method for the light in tracking 3D scene according to claim 1, tests the light and is located at wherein determining
The result of solid intersection in the element, which comprises determining that, tests the light and the implicit definition in the element
The result of solid intersection.
3. the method for the light in tracking 3D scene according to claim 1, wherein determining the totality for being directed to the light
Nearest intersection point includes: that an intersection point is selected from multiple intersection points with identical intersection point distance using the mark data.
4. the method for the light in tracking 3D scene according to claim 1, further includes: include for light maintenance
The minimum range of object identifier part, and from the following element excluded in other tests in the accelerating structure: the member
Element is with the range for being less than the minimum range or with pair outside the range as indicated by the object identifier part
As identifier.
5. a kind of system for the light being configured as in tracking 3D scene, the system are configured as:
Light is traversed in the accelerating structure for including multiple elements;
Determine by the element of the accelerating structure of the ray intersection whether include object instance;
The data for defining the light are transformed into from scene global coordinate system using programmability circuit and are tied for the acceleration
The reference frame of the element of structure;
Determined using test cell test that the light intersects with the solid in the element as a result, the result packet
It includes for the mark data of the nearest intersection point of solid in the element and at a distance from the nearest intersection point;
The result of test is transformed into the scene global coordinate system from the reference frame using programmability circuit;
And
When completing the traversal of the light, the intersection point nearest for the totality of the light is determined.
6. system according to claim 5, wherein determining the solid phase testing the light and being located in the element
The result of friendship, which comprises determining that, tests the result that the light intersects with the solid for the implicit definition being located in the element.
7. system according to claim 5, wherein determining that for the nearest intersection point of the totality of the light include: using institute
Mark data is stated to select an intersection point from multiple intersection points with identical intersection point distance.
8. system according to claim 5, wherein the system is also configured to maintain to include object for the light
The minimum range of identifier portion, and from the following element excluded in other tests in the accelerating structure: the element has
Have less than the range of the minimum range or with the object mark outside the range as indicated by the object identifier part
Know symbol.
9. a kind of system for being configured as executing method according to claim 1 to 4.
10. a kind of computer-readable medium, the computer-readable medium includes instruction, and described instruction is when executed by the processor
So that the processor executes method according to claim 1 to 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910750240.6A CN110458933B (en) | 2013-03-14 | 2014-03-11 | Methods, systems, and computer readable media for tracking rays within a 3D scene |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361783754P | 2013-03-14 | 2013-03-14 | |
US61/783,754 | 2013-03-14 | ||
CN201910750240.6A CN110458933B (en) | 2013-03-14 | 2014-03-11 | Methods, systems, and computer readable media for tracking rays within a 3D scene |
CN201410087919.9A CN104050710B (en) | 2013-03-14 | 2014-03-11 | The method and system of 3D figure rendering is carried out with implicit solid |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410087919.9A Division CN104050710B (en) | 2013-03-14 | 2014-03-11 | The method and system of 3D figure rendering is carried out with implicit solid |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110458933A true CN110458933A (en) | 2019-11-15 |
CN110458933B CN110458933B (en) | 2023-06-02 |
Family
ID=50482721
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910750777.2A Active CN110458934B (en) | 2013-03-14 | 2014-03-11 | 3D graphics rendering with implicit geometry |
CN201910750240.6A Active CN110458933B (en) | 2013-03-14 | 2014-03-11 | Methods, systems, and computer readable media for tracking rays within a 3D scene |
CN201410087919.9A Active CN104050710B (en) | 2013-03-14 | 2014-03-11 | The method and system of 3D figure rendering is carried out with implicit solid |
CN201910749980.8A Active CN110490963B (en) | 2013-03-14 | 2014-03-11 | 3D graphics rendering with implicit geometry |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910750777.2A Active CN110458934B (en) | 2013-03-14 | 2014-03-11 | 3D graphics rendering with implicit geometry |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410087919.9A Active CN104050710B (en) | 2013-03-14 | 2014-03-11 | The method and system of 3D figure rendering is carried out with implicit solid |
CN201910749980.8A Active CN110490963B (en) | 2013-03-14 | 2014-03-11 | 3D graphics rendering with implicit geometry |
Country Status (3)
Country | Link |
---|---|
CN (4) | CN110458934B (en) |
DE (1) | DE102014003463A1 (en) |
GB (4) | GB2513699B (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9984492B2 (en) * | 2015-04-02 | 2018-05-29 | Qualcomm Incorporated | Efficient hierarchy traversal in ray tracing applications |
WO2018035508A1 (en) * | 2016-08-19 | 2018-02-22 | Linear Algebra Technologies Limited | Path planning using sparse volumetric data |
CN110580736B (en) * | 2018-06-07 | 2023-10-20 | 中国科学院深圳先进技术研究院 | Ray tracing method and system for plate mode non-uniform rational spline surface |
CN110599579B (en) * | 2019-09-20 | 2023-02-24 | 山东师范大学 | Photon resampling-based random asymptotic photon mapping image rendering method and system |
US11257280B1 (en) * | 2020-05-28 | 2022-02-22 | Facebook Technologies, Llc | Element-based switching of ray casting rules |
US11373358B2 (en) * | 2020-06-15 | 2022-06-28 | Nvidia Corporation | Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry |
US11256336B2 (en) | 2020-06-29 | 2022-02-22 | Facebook Technologies, Llc | Integration of artificial reality interaction modes |
CN111784843A (en) * | 2020-07-01 | 2020-10-16 | 上海电气集团股份有限公司 | Three-dimensional display method and system of pipeline mesh model |
CN111967174A (en) * | 2020-07-30 | 2020-11-20 | 北京应用物理与计算数学研究所 | Laser dynamics solving method and system based on light grid |
CN112206517B (en) * | 2020-10-22 | 2024-03-12 | 网易(杭州)网络有限公司 | Rendering method, rendering device, storage medium and computer equipment |
CN113628318B (en) * | 2021-07-20 | 2023-09-15 | 北京智源人工智能研究院 | Distributed real-time neuron rendering method and system based on ray tracing |
CN114119849B (en) * | 2022-01-24 | 2022-06-24 | 阿里巴巴(中国)有限公司 | Three-dimensional scene rendering method, device and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102037497A (en) * | 2008-03-21 | 2011-04-27 | 柯斯提克绘图有限公司 | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
CN102169366A (en) * | 2011-03-18 | 2011-08-31 | 汤牧天 | Multi-target tracking method in three-dimensional space |
US20110267347A1 (en) * | 2010-04-29 | 2011-11-03 | Caustic Graphics, Inc. | Systems and methods for primitive intersection in ray tracing |
CN102243074A (en) * | 2010-05-13 | 2011-11-16 | 中国科学院遥感应用研究所 | Method for simulating geometric distortion of aerial remote sensing image based on ray tracing technology |
CN102346922A (en) * | 2010-07-30 | 2012-02-08 | 中国科学院遥感应用研究所 | Space remote sensing load imaging geometric distortion three-dimensional visualization simulation method |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7567248B1 (en) * | 2004-04-28 | 2009-07-28 | Mark William R | System and method for computing intersections between rays and surfaces |
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 |
US8139060B2 (en) * | 2006-11-28 | 2012-03-20 | International Business Machines Corporation | Ray tracing image processing system |
US7773087B2 (en) * | 2007-04-19 | 2010-08-10 | International Business Machines Corporation | Dynamically configuring and selecting multiple ray tracing intersection methods |
US9349214B2 (en) * | 2008-08-20 | 2016-05-24 | Take-Two Interactive Software, Inc. | Systems and methods for reproduction of shadows from multiple incident light sources |
US8421801B2 (en) * | 2008-09-09 | 2013-04-16 | Caustic Graphics, Inc. | Ray tracing using ray-specific clipping |
US9483864B2 (en) * | 2008-12-05 | 2016-11-01 | International Business Machines Corporation | System and method for photorealistic imaging using ambient occlusion |
KR101076807B1 (en) * | 2009-05-29 | 2011-10-25 | 주식회사 실리콘아츠 | Ray tracing apparatus and method |
US8797322B2 (en) * | 2009-06-24 | 2014-08-05 | Imagination Technologies, Limited | Systems and methods of defining rays for ray tracing rendering |
CN101819684B (en) * | 2010-04-12 | 2012-06-20 | 长春理工大学 | Spatial acceleration structure for virtual three-dimensional scene of animated film and creation and update method thereof |
US8339409B2 (en) * | 2011-02-16 | 2012-12-25 | Arm Limited | Tile-based graphics system and method of operation of such a system |
FR2974213B1 (en) * | 2011-04-12 | 2013-05-24 | Real Fusio France | METHOD AND SYSTEM FOR RENDERING A THREE-DIMENSIONAL VIRTUAL SCENE |
CN102184517A (en) * | 2011-05-06 | 2011-09-14 | 南京工程学院 | Fast intersection solving algorithm in dynamic scene |
-
2014
- 2014-02-25 GB GB1403242.9A patent/GB2513699B/en active Active
- 2014-02-25 GB GB1709390.7A patent/GB2549020B/en active Active
- 2014-02-25 GB GB1709391.5A patent/GB2549217B/en active Active
- 2014-02-25 GB GB1610625.4A patent/GB2541505B/en active Active
- 2014-03-11 CN CN201910750777.2A patent/CN110458934B/en active Active
- 2014-03-11 CN CN201910750240.6A patent/CN110458933B/en active Active
- 2014-03-11 CN CN201410087919.9A patent/CN104050710B/en active Active
- 2014-03-11 CN CN201910749980.8A patent/CN110490963B/en active Active
- 2014-03-11 DE DE102014003463.1A patent/DE102014003463A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102037497A (en) * | 2008-03-21 | 2011-04-27 | 柯斯提克绘图有限公司 | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
US20110267347A1 (en) * | 2010-04-29 | 2011-11-03 | Caustic Graphics, Inc. | Systems and methods for primitive intersection in ray tracing |
CN102243074A (en) * | 2010-05-13 | 2011-11-16 | 中国科学院遥感应用研究所 | Method for simulating geometric distortion of aerial remote sensing image based on ray tracing technology |
CN102346922A (en) * | 2010-07-30 | 2012-02-08 | 中国科学院遥感应用研究所 | Space remote sensing load imaging geometric distortion three-dimensional visualization simulation method |
CN102169366A (en) * | 2011-03-18 | 2011-08-31 | 汤牧天 | Multi-target tracking method in three-dimensional space |
Non-Patent Citations (1)
Title |
---|
李军等: "用射线法研究复杂目标的电磁散射特征", 《北京航空航天大学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110458933B (en) | 2023-06-02 |
CN110490963B (en) | 2023-06-30 |
DE102014003463A1 (en) | 2014-09-18 |
GB2513699B (en) | 2017-01-11 |
GB2513699A (en) | 2014-11-05 |
GB2541505A (en) | 2017-02-22 |
CN110490963A (en) | 2019-11-22 |
GB201403242D0 (en) | 2014-04-09 |
GB2541505B (en) | 2017-08-02 |
GB2549020A (en) | 2017-10-04 |
GB201709390D0 (en) | 2017-07-26 |
CN110458934B (en) | 2023-12-19 |
CN104050710A (en) | 2014-09-17 |
CN104050710B (en) | 2019-08-23 |
GB2549020B (en) | 2017-11-08 |
CN110458934A (en) | 2019-11-15 |
GB2549217A (en) | 2017-10-11 |
GB201610625D0 (en) | 2016-08-03 |
GB201709391D0 (en) | 2017-07-26 |
GB2549217B (en) | 2017-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050710B (en) | The method and system of 3D figure rendering is carried out with implicit solid | |
US12223586B2 (en) | 3-D graphics rendering with implicit geometry | |
CN110827384B (en) | Method for efficient grouping of data path scheduled cache requests | |
KR101545039B1 (en) | Systems and methods for rendering with ray tracing | |
CN105957134B (en) | The method and apparatus for creating and updating for 3-D scene acceleration structure | |
US8384723B2 (en) | Method and system of rendering parallel global illumination | |
US8659593B2 (en) | Image processing apparatus, method and program | |
JP2012502394A (en) | Ray tracing with ray-specific clipping | |
US11854141B2 (en) | Early release of resources in ray tracing hardware | |
KR20190093579A (en) | Identify or Remove Nested Fragments After Wet-Curling | |
KR20220154706A (en) | Ray Tracing Multisample Anti-Aliasing | |
WO2023239799A1 (en) | Systems and methods for efficient rendering and processing of point clouds using textures | |
CN109977628A (en) | A method of the efficient simulation laser radar in Unity | |
Wenzel et al. | Accelerating navigation in the VecGeom geometry modeller | |
Zhong et al. | Real-time semantic 3d dense occupancy mapping with efficient free space representations | |
Ahmad et al. | Occlusion handling for augmented reality environment using neural network image segmentation: A review | |
Zhang et al. | Optimization for 3D model-based multi-camera deployment | |
Wang et al. | AGR-Fcn: Adversarial generated region based on fully convolutional networks for single-and multiple-instance object detection | |
Monica et al. | Prediction of depth camera missing measurements using deep learning for next best view planning | |
Barut et al. | Real-time collision-free linear trajectory generation on GPU for crowd simulations | |
Konradsson et al. | 3D instance segmentation of cluttered scenes: a comparative study of 3D data representations | |
He | Neural Radiance Fields Methods and Improvement Approaches | |
CN119540686A (en) | Model training method, crowd positioning method, device, equipment and medium | |
Heinrich | A universal approach for driving strategies | |
Rincón-Nigro | Cost-Based Workload Balancing for Ray Tracing on a Heterogeneous Platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |