CN110458934A - 3D figure rendering is carried out with implicit solid - Google Patents

3D figure rendering is carried out with implicit solid Download PDF

Info

Publication number
CN110458934A
CN110458934A CN201910750777.2A CN201910750777A CN110458934A CN 110458934 A CN110458934 A CN 110458934A CN 201910750777 A CN201910750777 A CN 201910750777A CN 110458934 A CN110458934 A CN 110458934A
Authority
CN
China
Prior art keywords
light
solid
scene
implicit
rendering
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
Application number
CN201910750777.2A
Other languages
Chinese (zh)
Other versions
CN110458934B (en
Inventor
C·奥兹达斯
L·T·皮得森
S·布拉克蒙
S·J·克洛赛特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Priority to CN201910750777.2A priority Critical patent/CN110458934B/en
Publication of CN110458934A publication Critical patent/CN110458934A/en
Application granted granted Critical
Publication of CN110458934B publication Critical patent/CN110458934B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding 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

3D figure rendering is carried out with implicit solid
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.Figure 11 is depicted to final solid The NOT-IF-THEN element (especially identify 431 and 432) that space between 430 and encirclement element 429 is filled.It can also be according to right It can be used for the limitation of the shape of these elements to determine the size of these NOT-IF-THEN elements and position to it.Further Limitation may relate to the amount of ram for being exclusively used in these elements.For instance, it may be required the minimal size of element, or can be to storage pair Maximum memory size needed for the data that NOT-IF-THEN element in specific trapping element is defined is configured.Can be based on will The feature for implementing the computing platform of Marching algorithm makes these decisions, including memory bandwidth and size characteristic, power consumption limit, equity Requirement, handling capacity etc. to the time.Figure 13 depicts an instantiation procedure, can generate volume excluding element by the process. 451, (for example, the displacement defined in program) is identified to a part of implicit solid.It can be under pre-execution environment Carry out this mark, under pre-execution environment can by source solid and one or more functions, one or more programs or its (for example, being used for test for intersection) submits the definition for how determining implicit solid together when needed for he.455, optionally Evaluation or execution are carried out to these functions, program etc., to obtain final solid range.In some cases, it is this most Whole solid range will depend on only available information during runtime, or more generally useful, depend on still not available letter Breath (for example, the evaluation depends on retrieving the value that (retrieve) is arrived during search operation).In this case, the source is several He Ti, function or program can be associated with a series of information of values that can be expected from the lookup.In other implementations In, the expression formula that is described of value returned to the lookup can be provided, and can the joint evaluation based on these sources come Evaluation is carried out to the final range of 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 (18)

1. a kind of method for the rendering for preparing to generate 3D scene, comprising:
The solid of explicit definition is received, the solid of the explicit definition is associated with program information, and described program information exists It is performed the range for defining the solid of implicit definition;
Described program information is executed to generate final implicit solid;
Bounding box element of the definition for the final implicit solid;
Accelerating structure is generated, the accelerating structure includes the defined bounding box element, and the accelerating structure will be defined The bounding box element be placed in 3D scene;
The accelerating structure is stored on a machine-readable medium;And
During rendering, traverse the accelerating structure using light so as to identify the light be located at the 3D scene in it is hidden The nearest intersection point of the solid of solid or explicit definition that formula defines.
2. the method for the rendering according to claim 1 for preparing to generate 3D scene, further includes: volume excluding element is defined, The volume excluding element is located in the defined bounding box element and is located at the described of the final implicit solid Outside range;And the volume excluding element is stored using the accelerating structure.
3. the method for the rendering according to claim 1 for preparing to generate 3D scene, further includes: define multiple volume excluding members Element, the volume excluding element have shape same as the bounding box element, are positioned in the defined bounding box Between element and the range of the final implicit solid and have be chosen so as to fill defined in the bounding box The size of 3d space between element and the range of the final implicit solid.
4. it is according to claim 1 prepare generate 3D scene rendering method, further includes: storage mark with it is defined The information of the associated reference frame of bounding box element.
5. the method for the rendering according to claim 4 for preparing to generate 3D scene, wherein the traversal includes: by the light Line is transformed into the reference frame, and tests the intersection point of the solid of the light and the implicit definition.
6. the method for the rendering according to claim 5 for preparing to generate 3D scene, further includes: store and survey in data structure The light is tried with the intersection point of the solid of the implicit definition as a result, the data structure definition has and the light phase The new light of same origin and direction, and the traversal further includes that the new light is traversed in the accelerating structure.
7. the method for the rendering according to claim 6 for preparing to generate 3D scene, further includes: defining the new light The data structure in store inverse conversion data, and execute inverse conversion with for the 3D scene global coordinate system in Express the new light.
8. the method for the rendering according to claim 7 for preparing to generate 3D scene, wherein the inverse conversion is performed in order to Nearest intersection point is selected from multiple available intersection points for the light.
9. a kind of for preparing to generate the system of the rendering of 3D scene, the system is configured as:
The solid of explicit definition is received, the solid of the explicit definition is associated with program information, and described program information exists It is performed the range for defining the solid of implicit definition;
Described program information is executed to generate final implicit solid;
Bounding box element of the definition for the final implicit solid;
Accelerating structure is generated, the accelerating structure includes the defined bounding box element, and the accelerating structure will be defined The bounding box element be placed in 3D scene;
The accelerating structure is stored on a machine-readable medium;And
During rendering, traverse the accelerating structure using light so as to identify the light be located at the 3D scene in it is hidden The nearest intersection point of the solid of solid or explicit definition that formula defines.
10. according to claim 9 for preparing to generate the system of the rendering of 3D scene, the system is also configured to Define volume excluding element, the volume excluding element be located in the defined bounding box element and described in being located at most Eventually outside the range of implicit solid;And the volume excluding element is stored using the accelerating structure.
11. according to claim 9 for preparing to generate the system of the rendering of 3D scene, the system is also configured to Multiple volume excluding elements are defined, the volume excluding element has shape same as the bounding box element, is positioned in Between the bounding box element and the range of the final implicit solid and has and be chosen so as to defined in filling The size of 3d space between the bounding box element and the range of the final implicit solid.
12. according to claim 9 for preparing to generate the system of the rendering of 3D scene, the system is also configured to The information of storage mark reference frame associated with the defined bounding box element.
13. it is according to claim 12 for prepares generate 3D scene rendering system, wherein it is described traverse include: by The light is transformed into the reference frame, and tests the intersection point of the solid of the light and the implicit definition.
14. according to claim 13 for preparing to generate the system of the rendering of 3D scene, the system is also configured to Storage tests the light with the intersection point of the solid of the implicit definition as a result, the data structure is fixed in data structure Justice has the new light of origin identical with the light and direction, and the traversal further includes in the accelerating structure Traverse the new light.
15. according to claim 14 for preparing to generate the system of the rendering of 3D scene, the system is also configured to Inverse conversion data are stored in the data structure for defining the new light, and execute inverse conversion to be directed to the 3D The new light is expressed in the global coordinate system of scene.
16. it is according to claim 15 for preparing to generate the system of the rendering of 3D scene, wherein the inverse conversion is held It goes to select nearest intersection point from multiple available intersection points for the light.
17. a kind of system for being configured as executing method according to any one of claim 1 to 8.
18. 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 any one of claim 1 to 8.
CN201910750777.2A 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry Active CN110458934B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910750777.2A CN110458934B (en) 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361783754P 2013-03-14 2013-03-14
US61/783,754 2013-03-14
CN201910750777.2A CN110458934B (en) 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry
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
CN110458934A true CN110458934A (en) 2019-11-15
CN110458934B CN110458934B (en) 2023-12-19

Family

ID=50482721

Family Applications (4)

Application Number Title Priority Date Filing Date
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
CN201910750777.2A Active CN110458934B (en) 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry
CN201910749980.8A Active CN110490963B (en) 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry

Family Applications Before (2)

Application Number Title Priority Date Filing Date
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

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910749980.8A Active CN110490963B (en) 2013-03-14 2014-03-11 3D graphics rendering with implicit geometry

Country Status (3)

Country Link
CN (4) CN110458933B (en)
DE (1) DE102014003463A1 (en)
GB (4) GB2513699B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111784843A (en) * 2020-07-01 2020-10-16 上海电气集团股份有限公司 Three-dimensional display method and system for pipeline grid model
CN113628318A (en) * 2021-07-20 2021-11-09 北京智源人工智能研究院 Ray tracing-based distributed real-time neuron rendering method and system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
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
US10748326B2 (en) 2016-08-19 2020-08-18 Movidius Ltd. Rendering operations 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
US11373358B2 (en) * 2020-06-15 2022-06-28 Nvidia Corporation Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry
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
CN114119849B (en) * 2022-01-24 2022-06-24 阿里巴巴(中国)有限公司 Three-dimensional scene rendering method, device and storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192310A (en) * 2006-11-28 2008-06-04 国际商业机器公司 Ray tracing method and system
US20090262132A1 (en) * 2006-09-19 2009-10-22 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US20090322752A1 (en) * 2006-09-19 2009-12-31 Caustic Graphics, Inc. Ray tracing system architectures and methods
CN101819684A (en) * 2010-04-12 2010-09-01 长春理工大学 Spatial acceleration structure for virtual three-dimensional scene of animated film and creation and update method thereof
US20100231589A1 (en) * 2008-09-09 2010-09-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
US20100328310A1 (en) * 2009-06-24 2010-12-30 Caustic Graphics, Inc. Systems and methods of defining rays for ray tracing rendering
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
WO2012140360A1 (en) * 2011-04-12 2012-10-18 Real Fusio France Method and system for rendering a virtual scene in three dimensions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
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
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
CN102243074B (en) * 2010-05-13 2014-06-18 中国科学院遥感应用研究所 Method for simulating geometric distortion of aerial remote sensing image based on ray tracing technology
CN102346922B (en) * 2010-07-30 2013-09-18 中国科学院遥感应用研究所 Space remote sensing load imaging geometric distortion three-dimensional visualization simulation method
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
CN102169366B (en) * 2011-03-18 2012-11-07 汤牧天 Multi-target tracking method in three-dimensional space
CN102184517A (en) * 2011-05-06 2011-09-14 南京工程学院 Fast intersection solving algorithm in dynamic scene

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090262132A1 (en) * 2006-09-19 2009-10-22 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
US20090322752A1 (en) * 2006-09-19 2009-12-31 Caustic Graphics, Inc. Ray tracing system architectures and methods
CN101192310A (en) * 2006-11-28 2008-06-04 国际商业机器公司 Ray tracing method and system
CN102037497A (en) * 2008-03-21 2011-04-27 柯斯提克绘图有限公司 Architectures for parallelized intersection testing and shading for ray-tracing rendering
US20100231589A1 (en) * 2008-09-09 2010-09-16 Caustic Graphics, Inc. Ray tracing using ray-specific clipping
CN102282591A (en) * 2008-09-10 2011-12-14 柯斯提克绘图有限公司 Ray tracing system architectures and methods
US20100328310A1 (en) * 2009-06-24 2010-12-30 Caustic Graphics, Inc. Systems and methods of defining rays for ray tracing rendering
CN101819684A (en) * 2010-04-12 2010-09-01 长春理工大学 Spatial acceleration structure for virtual three-dimensional scene of animated film and creation and update method thereof
US20110267347A1 (en) * 2010-04-29 2011-11-03 Caustic Graphics, Inc. Systems and methods for primitive intersection in ray tracing
CN102947865A (en) * 2010-04-29 2013-02-27 柯斯提克绘图公司 Systems and methods for primitive intersection in ray tracing
WO2012140360A1 (en) * 2011-04-12 2012-10-18 Real Fusio France Method and system for rendering a virtual scene in three dimensions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SERBAN D. PORUMBESCU等: ""Shell maps"", ACM TRANSACTIONS ON GRAPHICS (TOG), vol. 24, no. 3, XP059141472, DOI: 10.1145/1073204.1073239 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111784843A (en) * 2020-07-01 2020-10-16 上海电气集团股份有限公司 Three-dimensional display method and system for pipeline grid model
CN113628318A (en) * 2021-07-20 2021-11-09 北京智源人工智能研究院 Ray tracing-based distributed real-time neuron rendering method and system

Also Published As

Publication number Publication date
GB2549217A (en) 2017-10-11
CN110458933A (en) 2019-11-15
GB201610625D0 (en) 2016-08-03
GB2541505A (en) 2017-02-22
CN110490963A (en) 2019-11-22
CN110490963B (en) 2023-06-30
GB2549020A (en) 2017-10-04
CN110458934B (en) 2023-12-19
GB201709391D0 (en) 2017-07-26
GB2513699A (en) 2014-11-05
GB2541505B (en) 2017-08-02
CN104050710A (en) 2014-09-17
CN104050710B (en) 2019-08-23
CN110458933B (en) 2023-06-02
GB201709390D0 (en) 2017-07-26
GB2549217B (en) 2017-11-22
GB2513699B (en) 2017-01-11
GB2549020B (en) 2017-11-08
DE102014003463A1 (en) 2014-09-18
GB201403242D0 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
CN104050710B (en) The method and system of 3D figure rendering is carried out with implicit solid
US11861787B2 (en) 3-D graphics rendering with implicit geometry
US20220027280A1 (en) Method for efficient grouping of cache requests for datapath scheduling
CN105957134B (en) The method and apparatus for creating and updating for 3-D scene acceleration structure
KR101545039B1 (en) Systems and methods for rendering with ray tracing
US8659593B2 (en) Image processing apparatus, method and program
US8384723B2 (en) Method and system of rendering parallel global illumination
JP5271416B2 (en) Ray tracing with ray-specific clipping
US10127710B2 (en) Processor and method for accelerating ray casting
CN110390644A (en) The bigger sense of reality is added by the image that smooth jagged edges are generated to computer
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
Pan et al. A global generalized maximum coverage-based solution to the non-model-based view planning problem for object reconstruction
CN109977628A (en) A method of the efficient simulation laser radar in Unity
Zhong et al. Real-time semantic 3d dense occupancy mapping with efficient free space representations
Wang et al. AGR-Fcn: Adversarial generated region based on fully convolutional networks for single-and multiple-instance object detection
Miculita Learning Optimal View Selection for Multi-View Object Representation
Heinrich et al. A universal approach for driving strategies
Bleiweiss Scalable multi agent simulation on the gpu
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