KR20110059037A - Apparatus and method for ray-tracing using multi-level kernel - Google Patents

Apparatus and method for ray-tracing using multi-level kernel Download PDF

Info

Publication number
KR20110059037A
KR20110059037A KR1020090115640A KR20090115640A KR20110059037A KR 20110059037 A KR20110059037 A KR 20110059037A KR 1020090115640 A KR1020090115640 A KR 1020090115640A KR 20090115640 A KR20090115640 A KR 20090115640A KR 20110059037 A KR20110059037 A KR 20110059037A
Authority
KR
South Korea
Prior art keywords
ray
additional
kernel
pixel
pixels
Prior art date
Application number
KR1020090115640A
Other languages
Korean (ko)
Inventor
고영인
안민수
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090115640A priority Critical patent/KR20110059037A/en
Publication of KR20110059037A publication Critical patent/KR20110059037A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Abstract

PURPOSE: A ray tracing device and method thereof which uses a multi-level kernel are provided to reduce the generation of an idle code and to rapidly perform ray tracing by processing a kernel which is generated by level. CONSTITUTION: A common operation processing unit(210) performs a common operation about all pixels through an initialization kernel. A determining unit(220) determines the presence of a pixel. An addition operation processing unit(230) generates a new kernel about a pixel that is necessary for addition operation. The common operation allocates one core by pixel.

Description

Ray tracing device and method using multi-level kernel {APPARATUS AND METHOD FOR RAY-TRACING USING MULTI-LEVEL KERNEL}

Embodiments of the present invention relate to a ray tracing apparatus and method using a multi-level kernel, and more particularly, to a technique for generating and processing a separate kernel for each ray level operation.

Ray tracing is a method of calculating a visible object and calculating illuminance of a point by firing a ray in a virtual three-dimensional space in the direction of each pixel on the screen from a viewpoint. At this time, the ray fired at each time point is a shadow ray for calculating the presence or absence of a shadow at the moment of contact with the object, a reflection ray for obtaining a reflected image for a reflective surface, and a refracted surface for a refractive surface. Refraction rays and the like are generated recursively to obtain an image.

In the past, the entire process of obtaining the value of one pixel was set to one kernel, and these threads were created as the number of pixels and allocated to a plurality of computation cores in parallel.

However, if threads with different computational paths are applied to a Single Instruction Multiple Data (SIMD) structure, some cores are idle while others are performing their operations. This can happen.

Therefore, in order to maximize the utilization of the SIMD structure, research on an apparatus and a method for performing ray tracing using the core efficiently is required.

A ray tracing apparatus using a multi-level kernel according to an embodiment of the present invention is a device for performing ray tracing using a manicore, comprising: a common arithmetic unit that performs a common operation on all pixels through an initial kernel; A determination unit may be configured to determine whether there is a pixel that requires an additional operation, and an additional operation processor that generates a new kernel and performs an additional operation on the pixel that requires the additional operation.

In this case, the common operation may be performed on all the pixels by allocating one core for each pixel, and the additional operation may be performed by allocating one core for each pixel only for the pixel requiring the additional operation. have.

In addition, the common operation may include an intersection check on a primary ray and a shadow ray operation.

In addition, the additional operation may be an operation on at least one of a reflection ray and a reflection ray.

The additional arithmetic processor may include a pixel classifier for classifying a pixel in which an additional ray is generated, and an additional ray arithmetic unit for generating a new kernel for the classified pixel to perform an operation on the additional ray.

In addition, the pixel classifier and the additional ray calculator may perform the operation related to the pixel classification and the additional ray until the pixel in which the additional ray is generated does not exist.

In addition, the manifold may have a single instruction multiple data (SIMD) structure.

In a ray tracing method using a multi-level kernel according to an embodiment of the present invention, in a method of performing ray tracing using a mani core, performing a common operation on all pixels through an initial kernel, and further operations The method may include determining whether the required pixel exists, and generating a new kernel with respect to the pixel requiring the additional operation to perform the additional operation.

In this case, the generating of the new kernel and performing the additional operation may include classifying a pixel in which the additional ray is generated and generating a new kernel for the classified pixel to perform the operation on the additional ray. can do.

According to an embodiment of the present invention, by generating a separate kernel for each level (level, depth) of the operation of the ray operation for each pixel, it performs fast ray tracing, reducing the generation of idle cores to efficiently core A ray tracing apparatus and method for use can be provided.

According to an embodiment of the present invention, by processing the operation sequentially for each pixel level by level, by allowing the viewer to view the screen rendered in stages, a ray that can reduce the rendering delay, and further improve the efficiency of real-time rendering And a tracing device and method.

Hereinafter, with reference to the contents described in the accompanying drawings will be described in detail the embodiments of the present invention. However, the present invention is not limited to or limited by the embodiments. Like reference numerals in the drawings denote like elements.

1 is a view for explaining a ray tracing operation according to an embodiment of the present invention.

Referring to FIG. 1, when the primary ray 110 is fired for the entire scene, the reflection ray 140, the refractive ray 130, and the shadow ray corresponding to the primary ray 110 are emitted. (shadow ray, 150) may occur. Here, the shadow ray 150 is a ray for calculating the presence or absence of a shadow at the moment of contact with the object, the refractive ray 130 is a ray for obtaining a refracted image in the case of the refractive surface, the reflection ray 140 is a reflection surface In this case, it is a ray to obtain the reflected image.

In this case, the generated secondary ray may be stored for each type of secondary ray. That is, the reflective ray 140, the refractive ray 130, and the shadow ray 150 may be separately stored.

In addition, the shadow ray generated corresponding to the primary may be calculated by calculating whether the primary ray emitted from the camera toward each pixel on the screen includes a shadow at the moment of contact with the object. In order to determine whether or not to belong to the laser beam from the point it can be determined whether there is another object between the light source. In this case, since the shadow rays have different starting points but the directing points are all the same as the light source, tracking the shadow rays back from the light source to the surface may all have the same starting point.

Here, since the shadow ray is a ray that is commonly generated for all pixels, calculation must be performed for all pixels. However, in the case of the reflection ray and the refraction ray, refraction or reflection does not occur depending on the pixels, It is not necessary to perform processing operations on the refractive ray and the reflective ray. Therefore, after performing operations that commonly occur for all pixels, only pixels requiring additional operations may be separately classified to perform additional operations, and in this case, pixels requiring additional operations may be classified for each level. In addition, when performing an additional operation, by generating a separate kernel for each level to process the operation, it is possible to efficiently utilize the core.

2 is a block diagram illustrating an apparatus for performing ray tracing using a multi-level kernel in performing ray tracing using a manicore according to an embodiment of the present invention.

Many-core architecture (Many-core architecture) is a architecture that has a large number of compute cores to perform operations in parallel, and improve the performance, the GPU (Graphics Processing Unit) that processes graphics operations at high speed It is a widely used architecture. In the case of ray tracing, the operation on each pixel can be performed independently, so that the mani-core architecture can be used to maximize the parallel processing effect.

In this case, the manicore architecture can be largely divided into a single instruction multiple data (SIMD) scheme and a multiple instruction multiple data (MIMD) scheme. In the case of SIMD, one control unit controls a plurality of computing cores, and in the case of MIMD, each computing core is equipped with an independent control unit. Most mani-core systems use a mix of both. That is, it may be configured to have a plurality of SIMD-style processors in the MIMD format, in which several lower computation cores are bundled. Hereinafter, an apparatus and a method for performing ray tracing according to an embodiment of a manicore system in which each multiprocessor has a SIMD structure and the multiprocessors are provided in a MIMD format will be described.

Referring to FIG. 2, the ray tracing apparatus 200 using the multi-level kernel may include a common operation processor 210, a determination unit 220, and an additional operation processor 230.

The common operation processor 210 may perform a common operation on all pixels through an initial kernel. Here, the common operation means an operation that all pixels must perform in common, and may include an intersection check on a primary ray and a shadow ray operation. In the above description, although not specifically mentioned, the common operation processing unit 210 may process operations that should be performed on all pixels in addition to the intersection check and shadow ray operations on the primary ray. In addition, one core is allocated to each pixel to process the common operation, so that the common operation may be preferentially performed on all the pixels.

For example, if there are 10000 pixels and 100 cores, if one core is processed at each core, 10000 pixels can be computed 100 times 100 times, and common operations for 10000 pixels are performed. Can be processed preferentially.

In this case, a kernel may be initially generated for a common operation, and a common operation of all pixels may be performed through the generated kernel.

The determination unit 220 may determine whether there is a pixel that requires additional operation. Pixels in which reflection or refraction occur among all the pixels processed by the common operation processor 210 may correspond to a part of them. Thus, only some of the pixels where reflection or refraction occur require additional computation, so that the pixels requiring the additional computation can be classified separately. Here, as an example of pixels that require additional operations, the pixels in which reflection or refraction occur are illustrated, but pixels that require other additional operations may also be included. In addition, the addition operation may not only occur immediately after the common operation, but also may occur when reflection or refraction occurs again after the additional operation and a new additional operation is required. For each level, you can classify pixels that require additional computation.

For example, if there are 10000 pixels, a common operation is performed on all 10000 pixels, 5000 of which may be classified as requiring a first order addition operation. Thereafter, a first order addition operation may be performed on 5000 pixels, and the pixels requiring second order addition operations may be sorted again. In this way, pixels that require further computation can be classified recursively, and classification can continue until no more pixels need further computation.

The additional operation processor 230 may generate a new kernel for the pixel requiring the additional operation and perform the additional operation. That is, a new kernel can be generated for each pixel for the additional operation to perform the additional operation. Here, the additional operation processor 230 may include a pixel classifier 231 and an additional ray calculator 232.

The pixel classifier 231 may classify the pixel in which the additional ray is generated, and the additional ray calculator 232 may generate a new kernel for the classified pixel to perform the operation on the additional ray.

As described above, by generating a kernel for each level that requires an additional operation and processing the operation, the core can be efficiently utilized and the speed of ray tracing can be improved.

In addition, in real-time rendering, by outputting the result of the common operation to the screen first, and sequentially outputting the result of the additional operation, the viewer can think that the rendering is performed in a very fast time, User satisfaction can be improved.

3 is a diagram for describing a process of performing ray tracing by generating a plurality of kernels according to an embodiment of the present invention.

Referring to FIG. 3, when a process is performed on three pixels, primary rays may be emitted for each of the three pixels, and core 1 310 and core 2 may be emitted for the three primary rays. Common operations may be performed at 320 and core 3 330, respectively. In this case, kernel 1 may be generated to perform common operations, and operations may be performed through kernel 1. Here, the common operation may include the intersection and shadow ray processing for the primary ray, as mentioned above.

 Among the three primary rays on which the common operation is performed, refraction, reflection, and the like may be generated to classify the ray requiring the first additional operation. In FIG. It can be classified as a ray requiring further computation. Accordingly, kernel 2 may be generated for ray 2 and ray 3 to perform a first order addition operation in core 1 310 and core 2 320.

After the first addition operation, reflection or refraction may occur again to classify the ray requiring the second addition operation, and in FIG. 3, ray 3 may be classified as a ray requiring the second addition operation. Accordingly, a second additional operation may be performed in core 1 310 by generating kernel 3 for ray 3.

As described above, the common operation is first performed in the kernel, and for the additional operation, a separate kernel is generated at each level for the pixels requiring the additional operation to be performed sequentially, thereby reducing the occurrence of the idle core and reducing the core. It can be utilized efficiently to perform ray tracing.

4 is a diagram illustrating a pixel performing a ray tracing operation for each kernel according to an embodiment of the present invention.

Referring to FIG. 4, kernel 1 may process common operations for all pixels 410, and kernel 2 may add first order only to pixels 421, 422, and 423 that require additional operations after the common operations. You can perform the operation. Next, in kernel 3, after the first addition operation, the second addition operation may be performed only on the pixels 431 and 432 that require further operation.

5 is an operation flowchart of a ray tracing method using a multi-level kernel according to an embodiment of the present invention.

Referring to FIG. 5, in operation 510, a common operation may be performed on all pixels through an initial kernel. In this case, the common operation may include an intersection check on a primary ray and a shadow ray operation.

In addition, the common operation may be performed on all the pixels by allocating one core for each pixel, and the additional operation may be performed by allocating one core for each pixel only in a pixel requiring the additional operation. have.

In operation 520, it may be determined whether there are pixels that require additional operations. Here, the additional operation may be an operation on at least one of a reflection ray and a reflection ray. In this case, step 520 may include classifying the pixels in which the additional ray is generated, and generating a new kernel for the classified pixels to perform the operation on the additional ray.

In operation 530, a new kernel may be generated for the pixels requiring additional operations to perform additional operations. In other words, a new kernel can be created for each level to perform additional operations.

5 may refer to descriptions of FIGS. 1 to 4.

As described above, by generating and processing a separate kernel for each pixel for each ray level, a rapid ray tracing can be performed, and the generation of idle cores can be reduced to efficiently use cores.

In addition, by processing the operation sequentially for each pixel level by level, allowing the viewer to view the screen rendered in stages, it is possible to reduce the rendering delay and to improve the efficiency of real-time rendering.

Ray tracing method using a multi-level kernel according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Although one embodiment of the present invention as described above has been described by a limited embodiment and drawings, one embodiment of the present invention is not limited to the above-described embodiment, which is a general knowledge in the field of the present invention Those having a variety of modifications and variations are possible from these descriptions. Accordingly, one embodiment of the invention should be understood only by the claims set forth below, all equivalent or equivalent modifications will be within the scope of the invention idea.

1 is a view for explaining a ray tracing operation according to an embodiment of the present invention.

2 is a block diagram of a ray tracing device using a multi-level kernel, in accordance with an embodiment of the invention.

3 is a diagram for describing a process of performing ray tracing by generating a plurality of kernels according to an embodiment of the present invention.

4 is a diagram illustrating a pixel performing a ray tracing operation for each kernel according to an embodiment of the present invention.

5 is an operation flowchart of a ray tracing method using a multi-level kernel according to an embodiment of the present invention.

Claims (15)

In a device for performing ray tracing using a mani core, A common operation processor which performs a common operation on all pixels through an initial kernel; A determination unit which determines whether a pixel that requires additional operation exists; And An additional arithmetic processing unit that generates a new kernel for the pixel requiring the additional arithmetic and performs the additional arithmetic Ray tracing device using a multi-level kernel, characterized in that it comprises a. The method of claim 1, The common operation is One core is assigned to each pixel and performed for all the pixels, The additional operation, Only a pixel that requires the additional operation, one core is allocated to each pixel, the ray tracing device using a multi-level kernel, characterized in that performed. The method of claim 1, The common operation is An apparatus for ray tracing using a multilevel kernel, comprising an intersection check on a primary ray and a shadow ray operation. The method of claim 1, The additional operation, Ray tracing device using a multi-level kernel, characterized in that the operation on at least one of reflection ray and reflection ray. The method of claim 1, The additional operation processing unit, A pixel classifier classifying a pixel in which an additional ray is generated; And An additional ray calculator configured to generate a new kernel with respect to the classified pixels and perform an operation on the additional ray Ray tracing device using a multi-level kernel, characterized in that it comprises a. The method of claim 5, The pixel classification unit and the additional ray calculator, And computing the pixel classification and the additional ray operation repeatedly until there are no pixels where the additional ray occurs. The method of claim 1, The manicore is Ray tracing device using a multi-level kernel, characterized in that the SIMD (Single Instruction Multiple Data) structure. In a method of performing ray tracing using a manicore, Performing a common operation on the first kernel through all the pixels; Determining whether a pixel that requires additional operation exists; Generating a new kernel for the pixel requiring the additional operation and performing the additional operation; Ray tracing method using a multi-level kernel including. The method of claim 8, The common operation is One core is assigned to each pixel and performed for all the pixels, The additional operation, Only a pixel requiring the additional operation, one core is allocated to each pixel, and performing the ray tracing method. The method of claim 8, The common operation is A method for ray tracing using a multilevel kernel, comprising an intersection check on a primary ray and a shadow ray operation. The method of claim 8, The additional operation, Ray tracing method using a multi-level kernel, characterized in that the operation on at least one of reflection ray and reflection ray. The method of claim 8, Generating the new kernel and performing additional operations, Classifying pixels for which additional rays are generated; And Generating a new kernel for the classified pixels and performing operations on the additional ray Ray tracing method using a multi-level kernel, characterized in that it comprises a. The method of claim 12, The classifying and performing the operation on the additional ray, And repetitively performing until there are no pixels generating the additional ray. The method of claim 8, The manicore is Ray tracing method using a multi-level kernel, characterized in that the SIMD (Single Instruction Multiple Data) structure. A computer-readable recording medium in which a program for executing the method of any one of claims 8 to 14 is recorded.
KR1020090115640A 2009-11-27 2009-11-27 Apparatus and method for ray-tracing using multi-level kernel KR20110059037A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090115640A KR20110059037A (en) 2009-11-27 2009-11-27 Apparatus and method for ray-tracing using multi-level kernel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090115640A KR20110059037A (en) 2009-11-27 2009-11-27 Apparatus and method for ray-tracing using multi-level kernel

Publications (1)

Publication Number Publication Date
KR20110059037A true KR20110059037A (en) 2011-06-02

Family

ID=44394237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090115640A KR20110059037A (en) 2009-11-27 2009-11-27 Apparatus and method for ray-tracing using multi-level kernel

Country Status (1)

Country Link
KR (1) KR20110059037A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016093470A1 (en) * 2014-12-12 2016-06-16 삼성전자 주식회사 Image processing apparatus and method for processing images, and recording medium
US9619921B2 (en) 2013-10-21 2017-04-11 Samsung Electronics Co., Ltd. Method and apparatus for performing ray tracing for rendering image
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing
US9619921B2 (en) 2013-10-21 2017-04-11 Samsung Electronics Co., Ltd. Method and apparatus for performing ray tracing for rendering image
WO2016093470A1 (en) * 2014-12-12 2016-06-16 삼성전자 주식회사 Image processing apparatus and method for processing images, and recording medium

Similar Documents

Publication Publication Date Title
US11631239B2 (en) Iterative spatio-temporal action detection in video
US20230038061A1 (en) Convergence among concurrently executing threads
Yi et al. Heimdall: mobile GPU coordination platform for augmented reality applications
CN111143174B (en) Optimum operating point estimator for hardware operating under shared power/thermal constraints
CN110796588A (en) Simultaneous computation and graph scheduling
CN111210498B (en) Reducing the level of detail of a polygonal mesh to reduce complexity of rendered geometry
CN110766778B (en) Method and system for performing parallel path spatial filtering using hashing
US11645533B2 (en) IR drop prediction with maximum convolutional neural network
KR20160109992A (en) Automated computed kernel fusion, resizing, and interleave
CN111798450A (en) Segmentation using unsupervised neural network training techniques
Budge et al. Out‐of‐core data management for path tracing on hybrid resources
US20140375645A1 (en) Stencil mapped shadowing system
US20230298254A1 (en) Apparatus and method for accelerating bvh builds by merging bounding boxes
JP2018124986A (en) Device and method for scene rendering by path tracing with complex lighting
KR20230027083A (en) Initial culling for ray tracing
CN111445003A (en) Neural network generator
CN112041894B (en) Enhancing realism of a scene involving a water surface during rendering
Nguyen et al. A software-based dynamic-warp scheduling approach for load-balancing the Viola–Jones face detection algorithm on GPUs
US20230298255A1 (en) Apparatus and method for acceleration data structure re-braiding with camera position
US11443173B2 (en) Hardware-software co-design for accelerating deep learning inference
KR20110059037A (en) Apparatus and method for ray-tracing using multi-level kernel
US11397615B2 (en) Methods and apparatuses for coalescing function calls for ray-tracing
US9117306B2 (en) Method of stencil mapped shadowing
CN116108952A (en) Parallel processing for combinatorial optimization
US11908064B2 (en) Accelerated processing via a physically based rendering engine

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination