WO2010137822A2 - 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 - Google Patents
레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 Download PDFInfo
- Publication number
- WO2010137822A2 WO2010137822A2 PCT/KR2010/003173 KR2010003173W WO2010137822A2 WO 2010137822 A2 WO2010137822 A2 WO 2010137822A2 KR 2010003173 W KR2010003173 W KR 2010003173W WO 2010137822 A2 WO2010137822 A2 WO 2010137822A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ray
- shading
- triangle
- ray tracing
- eye
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
Definitions
- the disclosed technique relates to 3D graphics processing, and more particularly, to a ray tracing core and a ray tracing chip comprising the same.
- Three-dimensional graphics technology is a graphics technology that uses a three-dimensional representation of geometric data stored in computing, and is widely used today in various industries including the media industry and the game industry. In general, three-dimensional graphics technology requires a separate high performance graphics processor due to the large amount of computation.
- ray tracing technology that can generate highly realistic three-dimensional graphics has been studied.
- ray tracing technology has various optical effects including reflection, refraction, and shadow. effects can be simulated.
- the ray tracing core receives a ray generator for generating at least one eye ray and the at least one eye ray based on the ray generation information including screen coordinate values, respectively.
- a plurality of T & Is having a MIMD structure (Multiple Instruction stream Multiple Data stream Architecture) for checking whether there is a triangle (the triangle constitutes a space) that intersects the inputted array in an acceleration structure (AS) It includes a plurality of Traversal & Intersection Units.
- MIMD structure Multiple Instruction stream Multiple Data stream Architecture
- the ray tracing core may include eye ray generation information or shading information (coordinate values, color values, and shading ray types of ray-triangular hit points).
- a setup processing unit multiplexing one of the at least one, a ray generator and a MIMD structure generating at least one eye ray or a shading ray based on the eye ray generation information or the shading information, or determining a final color value.
- AS acceleration structure
- a plurality of Traversal & Intersection Units A plurality of Traversal & Intersection Units.
- a ray tracing chip includes a plurality of ray tracing cores, an XY generator that allocates some blocks of an image to an appropriate ray tracing core of the plurality of ray tracing cores, and the plurality of ray tracing cores. Memory for storing the final color values output from each of them.
- Each of the plurality of ray tracing cores receives an input of a ray generator for generating at least one eye ray and the at least one eye ray based on eye ray generation information including a screen coordinate value, and an acceleration structure (AS, A plurality of T & I parts having a MIMD structure (Multiple Instruction stream Multiple Data stream Architecture) for checking whether there is a triangle (the triangle constitutes a space) that intersects the inputted array in the Accelaration Structure Traversal & Intersection Units).
- AS An acceleration structure
- MIMD structure Multiple Instruction stream Multiple Data stream Architecture
- a ray tracing chip includes a plurality of ray tracing cores, an XY generator that allocates some blocks of an image to an appropriate ray tracing core of the plurality of ray tracing cores, and the plurality of ray tracing cores.
- Memory for storing the final color values output from each of them.
- Each of the plurality of ray tracing cores may be one of eye ray generation information or shading information (including coordinate values, color values, and shading ray types of ray-triangular hit points).
- a setup processing unit for multiplexing the multiplexer for multiplexing the multiplexer, a ray generator for generating at least one eye ray or a shading ray, or determining a final color value based on the eye ray generation information or the shading information, and a MIMD structure (Multiple Instruction stream Multiple Data) and a plurality of T & I parts each of which adopts a stream architecture and determines a triangle (the triangle constitutes a space) that intersects the generated at least one eye ray or a shading ray in an acceleration structure (AS). a plurality of Traversal & Intersection Units).
- MIMD structure Multiple Instruction stream Multiple Data
- T & I parts each of which adopts a stream architecture and determines a triangle (the triangle constitutes a space) that intersects the generated at least one eye ray or a shading ray in an acceleration structure (AS).
- first and second are intended to distinguish one component from another, and the scope of rights should not be limited by these terms.
- first component may be named a second component, and similarly, the second component may also be named a first component.
- first item, second item and / or third item should be understood to include all combinations that can be suggested from one or more related items.
- first item, second item and / or third item may be given from two or more of the first, second or third items as well as the first, second or third items. Any combination of the possible items.
- each step may occur differently from the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
- FIG. 1 is a block diagram illustrating a ray tracing core in accordance with one embodiment of the disclosed technology.
- the ray tracing core 100 is largely divided into a datapath part and a memory system part.
- the ray tracing core 100 may be included in a chip such as a graphics processor, and in another embodiment, the ray tracing core 100 may be implemented in a single chip.
- the data path unit may include a setup processing unit 110, a ray generation unit 120, a plurality of T & I units 130, a hit point calculation unit, and a hit point calculation unit. ) 140, a shading unit 150, and a controller 160.
- the memory system unit registers 165, L1 cache 170, L2 cache 175, cache 180, buffer 185, stack 190, and memory 195. ). For convenience, each of the components of the memory system unit of FIG. 1 has been described as being separately implemented, but at least some of the components may be implemented as physically the same memory as necessary.
- the ray tracing chip 100 may be connected to an external memory 1000, and the external memory 1000 may store an acceleration structure (AS) storage unit 1100 and geometry data.
- the unit 1200 includes a texture image storage unit 1300 and a frame storage unit 1400.
- Acceleration structure includes kd-tree (k-depth tree) or Bounding Volume Hierarchy (BVH) commonly used in ray tracing
- geometric data is information about the triangle for ray tracing (hereinafter referred to as triangle information) It includes.
- the triangle information may include texture coordinates and normal vectors for three triangle points.
- FIG. 9 is a diagram for describing a relationship between an acceleration structure and geometric data used in the ray tracing chip of FIG. 1.
- kd-tree is a type of spatial partitioning tree and is used for a Ray-Triangle Intersection Test.
- the kd-tree includes a box node 910, an inner node 920, and a leaf node 930, and the leaf node 930 is at least one included in the geometric data. Contains a list of triangles for pointing to triangle information. In an embodiment, if the triangle information included in the geometric data is implemented as an array, the triangle list included in the leaf node 930 may correspond to the array index.
- FIGS. 1 to 3 are views for explaining a ray tracing process. The overall operation of the ray tracing core 100 will be described with reference to FIGS. 1 to 3.
- the setup processing unit 110 prepares eye ray generation information, and selects the prepared eye ray generation information and the shading information output from the shading unit 150.
- the array generation information includes screen coordinate values for generating arrays.
- Shading information includes ray indexes (described below), ray-triangle hit points (described below), color values, and shading ray types to obtain screen coordinate values.
- additional information according to the shading ray type.
- Shading ray includes shadow ray, secondary ray or null ray, derivative ray includes reflection ray or reflection ray do.
- the additional information includes the refractive index of the ray-triangular heat point, and in the case of the reflective ray, the additional information further includes the reflectance of the ray-triangular heat point.
- the ray generator 120 may generate at least one ray based on the eye ray generation information or the shading information (step S310 or S340). As shown in FIG. 2, at least one ray may include an eye ray E, a shadow ray S, a refractive ray F and / or a reflective ray R. As shown in FIG. If the number of generated derived ray is 2 or more, one is output to the T & I unit 130 and the other are stored in the derived ray stack 190. This is because the ray generator 120 needs to consider the hit point of the reflective ray R or the hit point of the refractive ray F in the case of the derived ray. For example, when both the reflection ray F and the refractive ray R are generated, the reflection ray F may be output to the T & I unit 130 and the refractive ray R may be transferred to the derived ray stack 190. Can be stored.
- the ray generator 120 extracts a derived ray stored in the derived ray stack 190 and outputs the derived ray to the T & I unit 130. If the shading ray stack 190 is empty, the ray generating unit 120 obtains the screen coordinate value based on the ray index (described later), and the color of the screen coordinate value and the ray-triangle hit point (described later). The final color value is written to the color buffer 185c based on the value.
- the plurality of T & I units 130 adopts a parallel multiple instruction stream multiple data stream (MIMD) structure, and each of the plurality of T & I units 130 includes a ray (eye ray, shadow ray, or the like) generated from the ray generating unit 120. Derived ray) and check whether there is a triangle intersecting the ray in the acceleration structure (AS). That is, each of the plurality of T & I units 130 traverses the acceleration structure AS and performs intersection testing on triangles.
- MIMD parallel multiple instruction stream multiple data stream
- the hit point calculator 140 calculates a coordinate value of a ray-triangle hit point (that is, a point at which a ray is hit in an intersected triangle) with respect to an intersected triangle,
- the ding unit 150 calculates a color value for the ray-triangular hit point.
- the shading unit 150 may perform phong illumination and texture mapping to obtain color values for the ray-triangular hit points (step S340).
- the shading unit 150 generates shading information for determining the final color value or the generation of the shading ray by the ray generating unit 120 and transmits the shading information to the setup processing unit 110. If no more ray generation is needed, the shading ray type may correspond to a null ray.
- the shading unit 150 may determine the generation of the derived ray based on the material information regarding the ray-triangular hit point stored in the material memory 195c.
- each of the components included in the datapath will be described.
- the ray tracing algorithm is performed recursively: (i) an eye ray generation process (step S310) (ii) an accelerated structure traversal process (step S320) (iii) a ray-triangle intersection test ) Process (step S330) (iv) shading and shading ray generation process (step S340).
- ray tracing algorithms may not be appropriate to use a common streaming pipeline architecture.
- the disclosed technique introduces a pipeline structure suitable for the ray tracing algorithm, and the controller 160 controls the operation of the pipeline through a flag of the pipeline (register) 165.
- the disclosed technique uses a flag-based simple control structure to increase the efficiency of the pipeline.
- the flag of register 165 of the pipeline may correspond to one bit information for on or off, and if the flag corresponds to on, register 165 stores the information output at the previous stage. Can be.
- the pipeline is processed synchronously due to the flag, but each of the components constituting the datapath can output the result asynchronously.
- each of the components constituting the datapath may use the buffer 185 to reduce latency caused by load imbalance.
- each of the plurality of T & I units 130 may use the buffer 185 to improve performance and support the MIMD structure.
- the setup processing unit 110 initializes the array generation information.
- the initialization process includes determining a screen coordinate value and converting the determined screen coordinate value into a ray index.
- the ray index is used to reduce the size of the register 165 at each stage of the pipeline.
- the setup processing unit 110 transmits the screen coordinate value and the ray index to the ray generation unit 120.
- the setup processing unit 110 multiplexes the array generation information or the shading information.
- the shading information may have priority with respect to the array generation information. This is because the processing for the ray generated in the pixel having the previous screen coordinate value is preferably performed first.
- FIG. 4 is a diagram illustrating a block-based ray generation order and setup hardware of the setup processing unit of FIG. 1.
- the screen includes a plurality of m x n (m and n are even) pixel blocks (hereinafter, superblocks), each superblock having the same size N (where N is the number of the plurality of T & I parts 130). Pixel blocks (hereinafter, referred to as subblocks).
- the setup processing unit 110 divides the screen into a plurality of blocks (ie, subblocks) in order to increase the cache hit rate in each of the plurality of T & I units 130, and each block-based array.
- the order of creation can be determined.
- the screen may include a plurality of superblocks each composed of 16 ⁇ 16 pixel blocks, each of which may include subblocks each composed of four 8 ⁇ 8 pixel blocks.
- Each of the first to fourth pixel blocks 410 to 440 may be allocated to the first to fourth T & I units 130a to 130d.
- the first subblock 410 corresponds to the 8 ⁇ 8 pixel block shown in FIG. 4B and is allocated to the first T & I unit 130a.
- the setup processing unit 110 may determine a ray generation order for increasing the cache hit rate of the first T & I unit 130a using the linear n-bit counter 450.
- the first group of linear n-bit counters 450 (the first group may include at least one noncontiguous bit) represents the x coordinate value of the subblock, and the linear n-bit counters 450
- the second group of (the second group does not include bits belonging to the first group and may include at least one bit that is not contiguous) represents the y coordinate value of the subblock.
- the ray generator 120 generates a ray based on the order of generation of the ray determined by the setup processing unit 110.
- the pixel (eg, pixel 0) illustrated in FIG. 4B means a pixel for generating a ray.
- the ray generator 120 stores the screen coordinate values and the ray indexes received from the setup processing unit 110 in the ray index mapping table 195a, and generates at least one ray based on the ray generation information or the shading information. Generate or store the final color value in the color buffer 185a.
- the ray generator 120 When the ray generation information is input, the ray generator 120 generates the eye ray E. When the shading information is input, the ray generator 120 generates the shading ray S, R, and F according to the shading ray type. If the shading ray type corresponds to the null ray, the ray generation unit 120 generates the ray. The unit 120 retrieves the derived ray stored in the derived ray stack 190. If the derived ray stack 190 is empty, the ray generator 120 obtains screen coordinate values based on the ray index, and color buffers the screen coordinate values and the color values of the ray-triangular hit points (described later). Store at 185c. Hereinafter, a process of generating a ray by the ray generator 120 will be described.
- the ray generator 120 finds screen coordinate values of the array using the ray index mapping table 195a and generates the array E based on the screen coordinate values.
- the eye ray may be generated based on the screen coordinate value and the camera position (ie, the eye position).
- the ray generator 120 allocates the generated ray to an appropriate T & I unit (eg, 130a) among the plurality of T & I units 130.
- the ray generator 120 when the shading ray type corresponds to the shadow ray, the ray generator 120 generates the shadow ray based on the ray-triangle hit point (to be described later). In general, the shadow ray may be generated based on the screen coordinate value and the light position. In one embodiment, in order to reduce the amount of computation, the ray generator 120 may limit the number of light sources.
- the ray generator 120 when the shading ray type corresponds to the derivative ray, the ray generator 120 generates at least one derivative ray (that is, the refractive ray and / or the reflective ray). If the number of derived ray is 2 or more, the ray generator 120 stores the derived ray except the one in the derived ray stack 190. The ray generator 120 allocates a derived ray not stored in an appropriate T & I unit (eg, 130b) among the plurality of T & I units 130.
- the derived ray stored in the derived ray stack 190 may include screen coordinate values, direction vector values, and weights for RGB. In one embodiment, in order to reduce the amount of computation, the ray generator 120 may prevent the unlimited generation of the derived ray by the derived ray by using a ray depth.
- the ray generation unit 120 extracts the derived ray stored in the derived ray stack 190 and then selects an appropriate T & I unit (eg, a plurality of T & I units 130). For example, assign a derived ray to 130c). If the derived ray stack 190 is empty, the ray generator 120 obtains a screen coordinate value based on the ray index, and based on the obtained screen coordinate value and the color value of the ray-triangular hit point (described below). The final color value is stored in the color buffer 185c. The final color value stored in the color buffer 185c is stored in the external memory 1000.
- T & I unit e.g, a plurality of T & I units 130. For example, assign a derived ray to 130c. If the derived ray stack 190 is empty, the ray generator 120 obtains a screen coordinate value based on the ray index, and based on the obtained screen coordinate value and the color value of the ray-triangular hit point (described
- the plurality of T & I units 130 perform an AS traversal process (step S320) and a ray-triangle intersection test process.
- FIG. 5 is a block diagram illustrating a plurality of T & I units of FIG. 1.
- each of the plurality of T & I units 130 includes a buffer 185, an L1 cache 170, and a T & I pipeline unit 135.
- the plurality of T & I portions 130 adopts a MIMD parallel structure in which the T & I pipeline portion 135 is executed independently.
- the ray tracing algorithm can process each ray independently to fit the MIMD parallel structure.
- SIMD single instruction stream multiple data stream
- the MIMD parallel structure has an advantage of using a pipeline more efficiently.
- Each of the plurality of T & I units 130 includes its own input buffer 185a and output buffer 185b. This is because ladles (eye rays and shading rays) generated from the same pixel are preferably processed in the same T & I unit 130.
- each of the plurality of T & I units 130 includes its own L1 cache 170. This is because the MIMD structure requires efficient cache memory.
- the T & I pipeline 135 performs (i) a traversal process, (ii) a triangle list fetch process, and (iii) a ray-triangle intersection test process. .
- the acceleration structure AS is assumed to correspond to the kd-tree.
- the T & I pipeline 135 finds leaf nodes that intersect the ray by searching for nodes in the acceleration structure AS. Since the visiting algorithm of the acceleration structure (AS) is well known to those skilled in the art, description thereof will be omitted.
- the T & I pipeline unit 135 reads the triangle list included in the intersecting leaf node.
- the T & I pipeline unit 135 reads coordinate information of a triangle list and performs a cross-test on a given ray.
- 6 and 7 are diagrams for describing the T & I pipeline part of FIG. 5.
- T & I pipeline unit 135 of FIG. 7 may use the same hardware at each stage of a traversal and an intersection test.
- Reference 1 and Reference 2 will be mainly described.
- FIG. 6 illustrates the number of operators and operators used in the visit process and the ray-triangle cross test process performed in the T & I pipeline unit 135.
- the visit process largely includes the Ray-Box Intersection Test and the Traversal.
- the top node 910 of the kd-tree corresponds to the Box node.
- the pipeline controller 710 controls the pipelines in the T & I pipeline 135.
- the calculators sequentially required in the ray-box crossover test include six floating point adders (FADDs), six floating point multipliers (FMULs), and three first floating points. Comparator (FCOMP, Floating Point Comparator), two second floating point comparator (FCOMP) and one third floating point comparator (FCOMP).
- the calculators required sequentially at the visit include one floating point adder (FADD), one floating point multiplier (FMUL) and two floating point comparators (FCOMP).
- the operations required sequentially at the visit include stack writes and stack reads to stack memory 185d.
- the calculators sequentially needed in the ray-triangular cross test are nine first floating point adders FADD, twelve first floating point multipliers FMUL, and six second floating point adders FADD. 12 second floating point multipliers (FMUL), 4 triple input floating point adders (TFADD, Tripple Input FADD), 1 floating point adder (FADD) and floating point divider (FDIV) and 2 floating point comparators ( FCOMP).
- the ray-triangular crossover test calculates the distance between the nearest triangle and eye position (or camera position) and the intersection point intersected by a given ray. If there is an intersected triangle, information about the intersected triangle is transmitted to the hit point calculator 140, and if not, the next visit step is performed.
- the ray-triangular intersection test is MOLLER, T., AND TRUMBORE, B. 1997. Fast, minimum storage ray-triangle intersection. You can use the algorithm presented in the Journal of Graphics Tools.
- FIG. 7 illustrates a configuration of the T & I pipeline unit 135 for performing a visit process, a triangle list import process, and a ray-triangle cross test process.
- the T & I pipeline unit 135 of FIG. 7 configures the pipeline to perform the visit process, the triangle import process, and the ray-triangle cross test process in the pipeline order of FIG. 6 using one integrated pipeline. do. That is, the pipeline stage included in 710 of FIG. 7 performs the visit process and the ray-triangle cross test process, and the other stages perform the cache access or the triangular list import process.
- the disclosed technique employs an integrated pipeline structure without the use of separate hardware depending on the modes of operation.
- FIG. 8 is a diagram for describing a memory system of the T & I unit of FIG. 1.
- each of the plurality of T & I portions 130 includes three L1 caches and uses a common L2 cache. Despite the two-level hierarchy of cache memory, the pipeline stall time due to cache misses is still high. Therefore, the disclosed technique uses the following two methods to solve this problem.
- the first approach is for L1 cache misses, and if an L1 cache miss occurs, the L1 cache miss is skipped without stall so that the L1 cache miss is resolved in the next loop.
- the pipeline controller 710 continues without stalling to the pipeline P2 of the next stage.
- the cache controller (not shown) fetches missed data from the L2 cache 175 or the external memory 1000 for reprocessing the pipeline P1. If pipeline P1 proceeds again after pipeline P18, access to the L1 cache occurs. If the cache miss is resolved, the pipeline controller 710 normally processes the pipeline P2 of the next stage, and if the cache miss occurs again, the pipeline controller 710 repeats the above process until the cache miss is resolved. .
- cache miss penalties due to cache misses can be significantly alleviated.
- the second solution is for L2 cache misses, and if an L2 cache miss occurs, the L2 cache miss is skipped without stall.
- a request for L2 cache access is input to the L1 Addr FIFO 810. If the L2 cache access by the current Ray's request in the L1 Addr FIFO 810 concludes a cache hit, then the address and data for the request are entered into the L1 Addr / Data FIFO 820. Otherwise, another request for external memory 1000 is entered into L2 Addr FIFO 810, and the request of the current ray in L1 Addr FIFO 610 is cleared. Cache access to the deleted request recurs in the next loop.
- Node L1 Cache 170 is taken as an example, the L1 List Cache and the L1 Tranular Coordinate Cache may operate similarly.
- the hit point calculator 140 calculates coordinate values of the ray-triangular hit point by using the distance from the triangle output from the T & I unit 130 and hit by the ray and the vector value of the given ray. Since only one ray-triangular hit point is generated per ray, the hit point calculator 140 may be implemented as one pipeline. In one embodiment, considering the cost efficiency, the heat point calculator 140 may be implemented in the T & I unit 130.
- the shading unit 150 calculates a color value of the ray-triangular hit point using information stored in the material memory 195c and the triangle information cache 180.
- the material memory 195c stores material information about triangles in the geometry data storage 1200, and in one embodiment, the material information includes a texture index, an ambient constant, and a dispersion constant. constant, reflection constant (specular constant), refractive index (refraction rate) (ie, alpha value), the angle of refraction (refraction angle) and the like.
- the triangular information cache 180 is a cache of the geometric data storage unit 1200.
- the triangular information cache 180 stores triangular information for the corresponding triangle required in the shading step, and the triangular information is a material index for reference of the material memory 195c. index) may be further included.
- the shading unit 150 may calculate the color value of the ray-triangular hit point through the Pong lighting and the texture mapping, add the calculated color value to the previous color in the shading buffer 185e, and add the calculated color value.
- the color value is stored in the shading buffer 185e.
- the shading buffer 185e stores color values and shading information accumulated by an eye ray, a shadow ray, or a derived ray generated from a given pixel.
- the shading information is used to determine whether a derived ray for the current ray is to be generated.
- the shading unit 150 obtains material information (ie, reflectance and refractive index) from the material memory based on the material index included in the triangle information on the hit triangle. If the reflectance does not correspond to zero, the ray generator 120 may generate a reflected ray. If the refractive index does not correspond to zero, the ray generator 120 may generate a refractive ray. In addition, the ray generator 120 may generate a shadow ray for a light source.
- the shading unit 150 transmits shading information including the coordinate value, the color value, and the shading ray type of the ray-triangular hit point to the setup processing unit 110.
- the Phong lighting is described in HARRIS, D. 2004 An exponentiation unit for an opengl lighting engine.
- the structure in IEEE Transactions on Computers] can be used, and texture mapping supports a bilinear filtering scheme and [HAKURA, ZS, AND GUPTA, A. 1997.
- the cache structure presented in SIGARCH Computer Architecture News] was chosen.
- FIG. 10 is a diagram illustrating a ray tracing board including the ray tracing core of FIG. 1.
- the ray tracing board 2000 includes first to second ray tracing subboards 2010a to 2010b, and the first ray tracing subboard 2010a includes ray tracing chips 2020a to 2020b.
- the second ray tracing subboard 2010b includes ray tracing chips 2020c to 2020d.
- the ray tracing core 2020 is substantially the same as the ray tracing core 100 of FIG. 1, the differences will be mainly described.
- the central processing unit (CPU) of the host computer runs scene management software 2005, and the scene management software 2005 builds an acceleration structure (AS), a USB interface and a bus functional model (BFM).
- the acceleration structure AS, the geometry data, and the texture data are sent to the memory 2030a to 2030d in the ray tracing chip 2020.
- the ray tracing cores 2020 then begin execution.
- the first ray tracing chip 2010a operates as a master.
- the XY generator 2040 in the first ray tracing chip 2010a sends a block address (ie, some blocks of the image) to the appropriate ray tracing core (eg, spare ray tracing chip) 2020.
- the ray tracing core 2020 selected by the XY generator 2040 performs rendering for a predetermined pixel block after receiving the block address. For example, a given pixel block may correspond to a 16 ⁇ 16 pixel block. After rendering is complete, the ray tracing core 2020 may request the next block address from the XY generator 2040.
- the final color value generated in each of the ray tracing cores 2020 is stored in the SRAM 2060 via the SRAM & LCD controller 2050.
- the disclosed technique can have the following effects. However, since a specific embodiment does not mean to include all of the following effects or only the following effects, it should not be understood that the scope of the disclosed technology is limited by this.
- the ray tracing core may support a multiple instruction stream multiple data stream (MIMD) parallel structure for efficient processing of ray tracing.
- MIMD multiple instruction stream multiple data stream
- the ray tracing core adopts an integrated pipeline structure suitable for the acceleration structure (AS) to efficiently perform the ray-box crossing, landing, and ray-triangle cross testing used in ray tracing.
- AS acceleration structure
- FIG. 1 is a block diagram illustrating a ray tracing core in accordance with one embodiment of the disclosed technology.
- 2 and 3 are views for explaining a ray tracing process.
- FIG. 4 is a diagram illustrating a block-based ray generation order and setup hardware of the setup processing unit of FIG. 1.
- FIG. 5 is a block diagram illustrating a plurality of T & I units of FIG. 1.
- 6 and 7 are diagrams for describing the T & I pipeline part of FIG. 5.
- FIG. 8 is a diagram for describing a memory system of the T & I unit of FIG. 1.
- FIG. 9 is a diagram for describing an acceleration structure and geometric data used in the ray tracing chip of FIG. 1.
- FIG. 10 is a diagram illustrating a ray tracing board including the ray tracing core of FIG. 1.
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
Description
Claims (17)
- 스크린 좌표 값을 포함하는 아이 레이 생성 정보를 기초로 적어도 하나의 아이 레이를 생성하는 레이 생성부; 및상기 적어도 하나의 아이 레이를 각각 입력받고, 가속 구조(AS, Accelaration Structure)에서 상기 입력받은 아이 레이와 교차되는 삼각형(상기 삼각형은 공간을 구성함)이 있는지 여부를 각각 체크하는 MIMD 구조(Multiple Instruction stream Multiple Data stream Architecture)를 가지는 복수의 T&I 부들(a plurality of Traversal & Intersection Units)을 포함하는 레이 트레이싱 코어(Ray Tracing Core).
- 제1항에 있어서, 상기 레이 트레이싱 코어(Ray Tracing Core)는상기 입력받은 아이 레이와 교차되는 삼각형이 있는 경우에는, 상기 교차되는 삼각형에서 상기 아이 레이가 히트되는 히트 포인트에 대하여 컬러 값을 계산하는 세이딩부를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제2항에 있어서, 상기 세이딩부는세이딩 레이가 생성될지 여부를 결정하기 위하여, 상기 히트 포인트의 좌표 값과 상기 계산된 컬러 값 및 세이딩 레이 타입을 포함하고 상기 세이딩 레이 타입에 따른 부가 정보를 포함할 수 있는 세이딩 정보를 생성하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제3항에 있어서, 상기 레이 생성부는상기 생성된 세이딩 정보를 기초로 세이딩 레이를 생성하거나 또는 상기 생성된 세이딩 정보를 기초로 최종 컬러 값을 저장하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제4항에 있어서, 레이 트레이싱 코어는 파생 레이를 저장하는 파생 레이 스택을 더 포함하고,상기 레이 생성부는상기 생성된 파생 레이의 개수가 2 이상인 경우에는 하나의 파생 레이를 상기 복수의 T&I 부들 중 하나에 할당하고, 나머지 파생 레이를 상기 파생 레이 스택에 저장하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제5항에 있어서, 상기 레이 생성부는상기 세이딩 레이 타입이 널 레이에 상응하는 경우에는 상기 파생 레이 스택에 저장된 파생 레이를 꺼내어 상기 복수의 T&I 부들 중 하나에 할당하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제1항에 있어서, 상기 복수의 T&I 부들 각각은상기 입력받은 아이 레이를 기초로 상기 가속 구조(AS)에 대한 방문 과정(traversal procedure), 삼각형 리스트 가져오기 과정(triangle list fetch procedure) 및 레이-삼각형 교차 테스트 과정(ray-triangle intersection test procedure)을 수행하는 T&I 파이프라인부(Traversal & Intersection Pipeline Unit)를 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제7항에 있어서, 상기 복수의 T&I 부들 각각은상기 MIMD 구조를 지원하기 위한 입력 버퍼와 출력 버퍼를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제1에 있어서, 상기 레이 트레이싱 코어는상기 복수의 T&I 부들 각각의 캐시 히트율을 증가시키기 위하여 스크린을 복수의 블록들로 분할하고 각 블록 기반의 아이 레이 생성 순서를 결정하는 셋업 프로세싱부를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제9에 있어서, 상기 셋업 프로세싱부는상기 스크린을 복수의 m X n (m과 n은 짝수) 픽셀 블록들(이하, 수퍼블록들)로 분할하고, 각 수퍼블록들을 동일한 크기를 가지는 N (N은 상기 복수의 T&I 부들 각각의 개수) 개의 픽셀 블록들(서브블록들)로 분할하며, 상기 서브블록들 기반의 상기 아이 레이 생성 순서를 결정하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제10에 있어서, 상기 셋업 프로세싱부는상기 아이 레이 생성 순서를 결정하기 위한 선형의 n 비트 카운터를 포함하고, 상기 선형의 n 비트 카운터의 제1 그룹(상기 제1 그룹은 연속되지 않은 적어도 하나의 비트를 포함할 수 있음)은 상기 서브블록의 x 좌표 값을 나타내고 상기 선형의 n 비트 카운터의 제2 그룹(상기 제2 그룹은 상기 제1 그룹에 속한 비트를 포함하지 않으며 연속되지 않은 적어도 하나의 비트를 포함할 수 있음)은 상기 서브블록의 y 좌표 값을 나타내는 것을 특징으로 하는 레이 트레이싱 코어.
- 아이 레이 생성 정보(eye ray generation information) 또는 세이딩 정보(shading information)(레이-삼각형 히트 포인트의 좌표 값과 컬러 값 및 세이딩 레이 타입을 포함함) 중 하나를 멀티플렉싱하는 셋업 프로세싱부;상기 아이 레이 생성 정보 또는 세이딩 정보를 기초로 적어도 하나의 아이 레이 또는 세이딩 레이를 생성하거나 또는 최종 컬러 값을 결정하는 레이 생성부; 및MIMD 구조(Multiple Instruction stream Multiple Data stream Architecture)를 채택하고, 가속 구조(AS, Acceleration Structure)에서 상기 생성된 적어도 하나의 아이 레이 또는 세이딩 레이와 교차되는 삼각형(상기 삼각형은 공간을 구성함)을 각각 결정하는 복수의 T&I 부들(a plurality of Traversal & Intersection Units)을 포함하는 레이 트레이싱 코어(Ray Tracing Core).
- 제12항에 있어서, 상기 레이 트레이싱 코어는상기 생성된 적어도 하나의 아이 레이 또는 세이딩 레이를 기초로 상기 교차되는 삼각형에서 레이-삼각형 히트 포인트의 좌표 값을 계산하는 히트 포인트 계산부를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제13항에 있어서, 상기 레이 트레이싱 코어는상기 계산된 레이-삼각형 히트 포인트의 컬러 값을 계산하고, 상기 계산된 레이-삼각형 히트 포인트의 좌표 값과 컬러 값 및 상기 세이딩 레이 타입을 포함하는 상기 세이딩 정보를 상기 셋업 프로세싱부에 전송하는 세이딩부를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 제12항에 있어서, 상기 복수의 T&I 부들 각각은상기 생성된 적어도 하나의 아이 레이 또는 세이딩 레이를 기초로 상기 가속 구조(AS)에 대한 방문 과정(traversal procedure), 삼각형 리스트 가져오기 과정(triangle list fetch procedure) 및 레이-삼각형 교차 테스트 과정(ray-triangle intersection test procedure)을 수행하는 T&I 파이프라인부(Traversal & Intersection Pipeline Unit)를 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
- 복수의 레이 트레이싱 코어들;상기 복수의 레이 트레이싱 코어들 중 적절한 레이 트레이싱 코어에 이미지의 일부 블록을 할당하는 XY 생성기; 및상기 복수의 레이 트레이싱 코어들 각각으로부터 출력된 최종 컬러 값을 저장하는 메모리를 포함하고,상기 복수의 레이 트레이싱 코어들 각각은스크린 좌표 값을 포함하는 아이 레이 생성 정보를 기초로 적어도 하나의 아이 레이를 생성하는 레이 생성부; 및상기 적어도 하나의 아이 레이를 각각 입력받고, 가속 구조(AS, Accelaration Structure)에서 상기 입력받은 아이 레이와 교차되는 삼각형(상기 삼각형은 공간을 구성함)이 있는지 여부를 각각 체크하는 MIMD 구조(Multiple Instruction stream Multiple Data stream Architecture)를 가지는 복수의 T&I 부들(a plurality of Traversal & Intersection Units)을 포함하는 레이 트레이싱 칩(ray tracing chip).
- 복수의 레이 트레이싱 코어들;상기 복수의 레이 트레이싱 코어들 중 적절한 레이 트레이싱 코어에 이미지의 일부 블록을 할당하는 XY 생성기; 및상기 복수의 레이 트레이싱 코어들 각각으로부터 출력된 최종 컬러 값을 저장하는 메모리를 포함하고,상기 복수의 레이 트레이싱 코어들 각각은아이 레이 생성 정보(eye ray generation information) 또는 세이딩 정보(shading information)(레이-삼각형 히트 포인트의 좌표 값과 컬러 값 및 세이딩 레이 타입을 포함함) 중 하나를 멀티플렉싱하는 셋업 프로세싱부;상기 아이 레이 생성 정보 또는 세이딩 정보를 기초로 적어도 하나의 아이 레이 또는 세이딩 레이를 생성하거나 또는 최종 컬러 값을 결정하는 레이 생성부; 및MIMD 구조(Multiple Instruction stream Multiple Data stream Architecture)를 채택하고, 가속 구조(AS, Acceleration Structure)에서 상기 생성된 적어도 하나의 아이 레이 또는 세이딩 레이와 교차되는 삼각형(상기 삼각형은 공간을 구성함)을 각각 결정하는 복수의 T&I 부들(a plurality of Traversal & Intersection Units)을 포함하는레이 트레이싱 칩(ray tracing chip).
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/375,112 US9311739B2 (en) | 2009-05-28 | 2010-05-19 | Ray tracing core and ray tracing chip having the same |
| EP10780733A EP2437217A2 (en) | 2009-05-28 | 2010-05-19 | Ray tracing core and ray tracing chip including same |
| JP2012512952A JP5828319B2 (ja) | 2009-05-28 | 2010-05-19 | レイトレーシングコア及びこれを含むレイトレーシングチップ |
| CN201080022742.4A CN102439632B (zh) | 2009-05-28 | 2010-05-19 | 光线跟踪内核及具有该光线跟踪内核的光线跟踪芯片 |
| US15/078,643 US9965889B2 (en) | 2009-05-28 | 2016-03-23 | Ray tracing core and ray tracing chip having the same |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2009-0046909 | 2009-05-28 | ||
| KR1020090046909A KR101004110B1 (ko) | 2009-05-28 | 2009-05-28 | 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/375,112 A-371-Of-International US9311739B2 (en) | 2009-05-28 | 2010-05-19 | Ray tracing core and ray tracing chip having the same |
| US15/078,643 Continuation US9965889B2 (en) | 2009-05-28 | 2016-03-23 | Ray tracing core and ray tracing chip having the same |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2010137822A2 true WO2010137822A2 (ko) | 2010-12-02 |
| WO2010137822A3 WO2010137822A3 (ko) | 2011-03-03 |
Family
ID=43223202
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2010/003173 Ceased WO2010137822A2 (ko) | 2009-05-28 | 2010-05-19 | 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US9311739B2 (ko) |
| EP (1) | EP2437217A2 (ko) |
| JP (1) | JP5828319B2 (ko) |
| KR (1) | KR101004110B1 (ko) |
| CN (1) | CN102439632B (ko) |
| WO (1) | WO2010137822A2 (ko) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015167159A1 (en) * | 2014-05-02 | 2015-11-05 | Samsung Electronics Co., Ltd. | Rendering system and method for generating ray |
| WO2016027910A1 (ko) * | 2014-08-18 | 2016-02-25 | 주식회사 실리콘아츠 | 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체 |
Families Citing this family (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8619078B2 (en) * | 2010-05-21 | 2013-12-31 | International Business Machines Corporation | Parallelized ray tracing |
| KR102042539B1 (ko) * | 2012-07-24 | 2019-11-08 | 삼성전자주식회사 | 레이 트레이싱 방법 및 장치 |
| KR20140023615A (ko) * | 2012-08-16 | 2014-02-27 | 삼성전자주식회사 | 병렬 파이프라인을 사용하는 그래픽 처리 방법 및 장치 |
| KR102080851B1 (ko) | 2012-09-17 | 2020-02-24 | 삼성전자주식회사 | 레이 추적의 스케쥴링을 위한 장치 및 방법 |
| KR102072515B1 (ko) | 2012-10-16 | 2020-02-03 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
| DE112013005255T5 (de) * | 2012-11-02 | 2015-09-24 | Imagination Technologies Ltd. | Bedarfsweise Geometrie- und Beschleunigungsstrukturerzeugung |
| KR20150039493A (ko) * | 2013-10-02 | 2015-04-10 | 삼성전자주식회사 | 레이 트레이싱 처리 장치 및 방법 |
| KR20150078003A (ko) * | 2013-12-30 | 2015-07-08 | 삼성전자주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
| US8928675B1 (en) | 2014-02-13 | 2015-01-06 | Raycast Systems, Inc. | Computer hardware architecture and data structures for encoders to support incoherent ray traversal |
| KR20150086718A (ko) * | 2014-01-20 | 2015-07-29 | 삼성전자주식회사 | 메모리를 이용하여 파이프라인이 데이터를 처리하는 방법 및 장치 |
| KR101560283B1 (ko) * | 2014-04-24 | 2015-10-15 | 세종대학교산학협력단 | 3차원 영상 생성 방법, 이를 수행하는 3차원 영상 생성 장치 및 이를 저장하는 기록매체 |
| KR102219289B1 (ko) | 2014-05-27 | 2021-02-23 | 삼성전자 주식회사 | 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법 |
| KR102166426B1 (ko) | 2014-07-07 | 2020-10-16 | 삼성전자주식회사 | 렌더링 시스템 및 이의 렌더링 방법 |
| CN104239647A (zh) * | 2014-09-25 | 2014-12-24 | 山东大学 | 一种实现光线追踪的硬件设计架构 |
| US9607425B2 (en) * | 2014-10-17 | 2017-03-28 | Qualcomm Incorporated | Ray-box intersection testing using dot product-based fixed function logic |
| KR20160071774A (ko) * | 2014-12-12 | 2016-06-22 | 삼성전자주식회사 | 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체 |
| KR102365112B1 (ko) | 2015-03-25 | 2022-02-18 | 삼성전자주식회사 | 레이 트레이싱 장치 및 방법 |
| KR20160125172A (ko) * | 2015-04-21 | 2016-10-31 | 삼성전자주식회사 | 레이 트레이싱 장치 및 방법 |
| KR102397001B1 (ko) * | 2015-06-02 | 2022-05-11 | 엘지전자 주식회사 | 그래픽 프로세서 |
| KR102493461B1 (ko) | 2015-08-31 | 2023-01-30 | 삼성전자 주식회사 | 렌더링 시스템 및 방법 |
| US11295506B2 (en) | 2015-09-16 | 2022-04-05 | Tmrw Foundation Ip S. À R.L. | Chip with game engine and ray trace engine |
| US10297068B2 (en) | 2017-06-06 | 2019-05-21 | Adshir Ltd. | Method for ray tracing augmented objects |
| US10614614B2 (en) | 2015-09-29 | 2020-04-07 | Adshir Ltd. | Path tracing system employing distributed accelerating structures |
| US10565776B2 (en) | 2015-12-12 | 2020-02-18 | Adshir Ltd. | Method for fast generation of path traced reflections on a semi-reflective surface |
| US10262456B2 (en) * | 2015-12-19 | 2019-04-16 | Intel Corporation | Method and apparatus for extracting and using path shading coherence in a ray tracing architecture |
| US12008704B2 (en) | 2016-01-28 | 2024-06-11 | Snap Inc. | System for photo-realistic reflections in augmented reality |
| US10614612B2 (en) | 2018-06-09 | 2020-04-07 | Adshir Ltd. | Fast path traced reflections for augmented reality |
| US9818221B2 (en) * | 2016-02-25 | 2017-11-14 | Qualcomm Incorporated | Start node determination for tree traversal for shadow rays in graphics processing |
| KR102853351B1 (ko) | 2016-11-04 | 2025-08-29 | 삼성전자주식회사 | 가속 구조를 생성하는 방법 및 장치 |
| US10409614B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
| KR101955552B1 (ko) | 2017-11-29 | 2019-03-07 | 세종대학교 산학협력단 | 사운드 트레이싱 코어 및 이를 포함하는 사운드 트레이싱 시스템 |
| US11301951B2 (en) | 2018-03-15 | 2022-04-12 | The Calany Holding S. À R.L. | Game engine and artificial intelligence engine on a chip |
| US10699468B2 (en) | 2018-06-09 | 2020-06-30 | Adshir Ltd. | Method for non-planar specular reflections in hybrid ray tracing |
| US10565773B1 (en) * | 2019-01-15 | 2020-02-18 | Nokia Technologies Oy | Efficient light field video streaming |
| CN113439265A (zh) | 2019-03-15 | 2021-09-24 | 英特尔公司 | 用于更新多gpu配置中的存储器侧高速缓存的系统和方法 |
| KR102151444B1 (ko) * | 2019-04-11 | 2020-09-03 | 주식회사 실리콘아츠 | Mimd 기반의 t&i 스케줄링을 이용한 레이 트레이싱 장치 |
| KR102169799B1 (ko) * | 2019-04-11 | 2020-10-26 | 주식회사 실리콘아츠 | 포터블 레이 트레이싱 장치 |
| US11625884B2 (en) | 2019-06-18 | 2023-04-11 | The Calany Holding S. À R.L. | Systems, methods and apparatus for implementing tracked data communications on a chip |
| US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
| KR102261250B1 (ko) * | 2019-12-03 | 2021-06-07 | 세종대학교산학협력단 | 장치들 간의 대역폭을 줄이는 레이 트레이싱 장치 및 방법 |
| KR102261257B1 (ko) * | 2019-12-03 | 2021-06-07 | 세종대학교산학협력단 | 장치들 간의 대역폭을 줄이는 레이 트레이싱 장치 및 방법 |
| KR102248809B1 (ko) * | 2019-12-03 | 2021-05-07 | 세종대학교산학협력단 | 장치들 간의 대역폭을 줄이는 레이 트레이싱 장치 및 방법 |
| US11017581B1 (en) | 2020-01-04 | 2021-05-25 | Adshir Ltd. | Method for constructing and traversing accelerating structures |
| US11908064B2 (en) * | 2021-05-14 | 2024-02-20 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
| US12494011B2 (en) | 2021-05-18 | 2025-12-09 | Bolt Graphics, Inc. | Ray tracing hardware and method |
| US12175588B2 (en) * | 2022-02-17 | 2024-12-24 | Nvidia Corporation | Techniques for avoiding self-intersections when rendering signed distance functions |
| US12517735B2 (en) | 2022-03-18 | 2026-01-06 | Intel Corporation | Apparatus and method for scheduling inference tasks |
| US12561753B2 (en) * | 2022-03-18 | 2026-02-24 | Intel Corporation | Node prefetching in a wide BVH traversal with a stack |
| US12620051B2 (en) | 2022-03-18 | 2026-05-05 | Intel Corporation | Apparatus and method for biased BVH traversal path |
| US12499606B2 (en) | 2022-03-18 | 2025-12-16 | Intel Corporation | Apparatus and method for accelerating BVH builds by merging bounding boxes |
| US12488530B2 (en) | 2022-03-18 | 2025-12-02 | Intel Corporation | Apparatus and method for acceleration data structure re-braiding with camera position |
| US12586146B2 (en) * | 2023-11-07 | 2026-03-24 | Advanced Micro Devices, Inc. | Progressive material caching |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01501178A (ja) * | 1986-09-11 | 1989-04-20 | ヒューズ・エアクラフト・カンパニー | 写実的画面形成用デジタル式視覚感知シミュレーション・システム |
| US6753878B1 (en) * | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
| US7952583B2 (en) * | 2000-06-19 | 2011-05-31 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
| US6956570B2 (en) * | 2001-06-27 | 2005-10-18 | Believe, Inc. | Object visibility control for ray tracing |
| KR100487461B1 (ko) * | 2002-07-31 | 2005-05-03 | 학교법인연세대학교 | 타일링 트래버설 방식의 주사변환 유닛 |
| DE102004007835A1 (de) | 2004-02-17 | 2005-09-15 | Universität des Saarlandes | Vorrichtung zur Darstellung von dynamischen komplexen Szenen |
| US20060017729A1 (en) * | 2004-07-22 | 2006-01-26 | International Business Machines Corporation | Method to improve photorealistic 3D rendering of dynamic viewing angle by embedding shading results into the model surface representation |
| KR100894136B1 (ko) * | 2006-08-31 | 2009-04-20 | 세종대학교산학협력단 | 광선 추적을 위한 비 스택 방식의 케이디 트리 탐색알고리즘을 적용한 영상검출 장치 및 방법 |
| US7969434B2 (en) * | 2006-09-19 | 2011-06-28 | Caustic Graphics, Inc. | Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering |
| US7884819B2 (en) * | 2006-09-27 | 2011-02-08 | International Business Machines Corporation | Pixel color accumulation in a ray tracing image processing system |
| US7940266B2 (en) * | 2006-10-13 | 2011-05-10 | International Business Machines Corporation | Dynamic reallocation of processing cores for balanced ray tracing graphics workload |
| US8139060B2 (en) * | 2006-11-28 | 2012-03-20 | International Business Machines Corporation | Ray tracing image processing system |
| US7719532B2 (en) * | 2007-02-09 | 2010-05-18 | International Business Machines Corporation | Efficient and flexible data organization for acceleration data structure nodes |
| US7773087B2 (en) * | 2007-04-19 | 2010-08-10 | International Business Machines Corporation | Dynamically configuring and selecting multiple ray tracing intersection methods |
| WO2009044282A2 (en) | 2007-10-04 | 2009-04-09 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
| US8006042B2 (en) * | 2007-11-26 | 2011-08-23 | Globalfoundries Inc. | Floating point bypass retry |
| US8212816B1 (en) * | 2007-12-17 | 2012-07-03 | Nvidia Corporation | System, method, and computer program product for parallel ray tracing traversal and intersection utilizing a single instruction multiple data (SIMD) processing architecture |
| US8411087B2 (en) * | 2008-02-28 | 2013-04-02 | Microsoft Corporation | Non-linear beam tracing for computer graphics |
| US8390618B2 (en) * | 2008-03-03 | 2013-03-05 | Intel Corporation | Technique for improving ray tracing performance |
| US20100064291A1 (en) * | 2008-09-05 | 2010-03-11 | Nvidia Corporation | System and Method for Reducing Execution Divergence in Parallel Processing Architectures |
-
2009
- 2009-05-28 KR KR1020090046909A patent/KR101004110B1/ko not_active Expired - Fee Related
-
2010
- 2010-05-19 US US13/375,112 patent/US9311739B2/en active Active
- 2010-05-19 EP EP10780733A patent/EP2437217A2/en not_active Withdrawn
- 2010-05-19 CN CN201080022742.4A patent/CN102439632B/zh not_active Expired - Fee Related
- 2010-05-19 WO PCT/KR2010/003173 patent/WO2010137822A2/ko not_active Ceased
- 2010-05-19 JP JP2012512952A patent/JP5828319B2/ja active Active
-
2016
- 2016-03-23 US US15/078,643 patent/US9965889B2/en active Active
Non-Patent Citations (2)
| Title |
|---|
| HAKURA, Z. S.; GUPTA, A.: "The design and analysis of a cache architecture for texture mapping", SIGARCH COMPUTER ARCHITECTURE NEWS, 1997 |
| MOLLER, T.; TRUMBORE, B.: "Fast, minimum storage ray-triangle intersection", JOURNAL OF GRAPHICS TOOLS, 1997 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015167159A1 (en) * | 2014-05-02 | 2015-11-05 | Samsung Electronics Co., Ltd. | Rendering system and method for generating ray |
| US10186071B2 (en) | 2014-05-02 | 2019-01-22 | Samsung Electronics Co., Ltd. | Rendering system and method for generating ray |
| WO2016027910A1 (ko) * | 2014-08-18 | 2016-02-25 | 주식회사 실리콘아츠 | 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102439632B (zh) | 2015-09-09 |
| US9311739B2 (en) | 2016-04-12 |
| US9965889B2 (en) | 2018-05-08 |
| KR101004110B1 (ko) | 2010-12-27 |
| WO2010137822A3 (ko) | 2011-03-03 |
| KR20100128493A (ko) | 2010-12-08 |
| JP5828319B2 (ja) | 2015-12-02 |
| EP2437217A2 (en) | 2012-04-04 |
| CN102439632A (zh) | 2012-05-02 |
| US20160203633A1 (en) | 2016-07-14 |
| US20120069023A1 (en) | 2012-03-22 |
| JP2012528377A (ja) | 2012-11-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101004110B1 (ko) | 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 | |
| CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
| CN101053013B (zh) | 低功率可编程处理器 | |
| US8102391B2 (en) | Hybrid rendering of image data utilizing streaming geometry frontend interconnected to physical rendering backend through dynamic accelerated data structure generator | |
| US8330765B2 (en) | Rolling context data structure for maintaining state data in a multithreaded image processing pipeline | |
| US9292965B2 (en) | Accelerated data structure positioning based upon view orientation | |
| CN110766778B (zh) | 使用散列执行并行路径空间滤波的方法和系统 | |
| US20130044117A1 (en) | Vector register file caching of context data structure for maintaining state data in a multithreaded image processing pipeline | |
| US20110063285A1 (en) | Rendering of stereoscopic images with multithreaded rendering software pipeline | |
| US20100239185A1 (en) | Accelerated Data Structure Optimization Based Upon View Orientation | |
| US8248412B2 (en) | Physical rendering with textured bounding volume primitive mapping | |
| CN111667542B (zh) | 适用于人工神经网络的用于处理压缩数据的解压缩技术 | |
| WO2009093836A2 (en) | Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model | |
| CN110807827B (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
| US20110292063A1 (en) | Rolling texture context data structure for maintaining texture data in a multithreaded image processing pipeline | |
| KR102151444B1 (ko) | Mimd 기반의 t&i 스케줄링을 이용한 레이 트레이싱 장치 | |
| US11893677B1 (en) | Bounding volume hierarchy (BVH) widening based on node compressibility | |
| US20220198746A1 (en) | Reservoir-based spatiotemporal importance resampling utilizing a global illumination data structure | |
| WO2009113811A2 (en) | Processing 3d graphics supporting fixed pipeline | |
| WO2016027910A1 (ko) | 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체 | |
| CN113822975B (zh) | 用于对图像进行有效采样的技术 | |
| US5724602A (en) | Multiprocessor apparatus | |
| WO2015053557A1 (en) | Apparatus and method of rendering frame by adjusting processing sequence of draw commands | |
| WO2011159085A2 (en) | Method and apparatus for ray tracing in a 3-dimensional image system | |
| CN121722489A (zh) | 数据处理装置、芯片、电子设备、处理器及方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 201080022742.4 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10780733 Country of ref document: EP Kind code of ref document: A2 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2012512952 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13375112 Country of ref document: US |
|
| REEP | Request for entry into the european phase |
Ref document number: 2010780733 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2010780733 Country of ref document: EP |