WO2016027912A1 - Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same - Google Patents

Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same Download PDF

Info

Publication number
WO2016027912A1
WO2016027912A1 PCT/KR2014/007695 KR2014007695W WO2016027912A1 WO 2016027912 A1 WO2016027912 A1 WO 2016027912A1 KR 2014007695 W KR2014007695 W KR 2014007695W WO 2016027912 A1 WO2016027912 A1 WO 2016027912A1
Authority
WO
WIPO (PCT)
Prior art keywords
sub
ray tracing
scenes
scene
generating
Prior art date
Application number
PCT/KR2014/007695
Other languages
French (fr)
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 PCT/KR2014/007695 priority Critical patent/WO2016027912A1/en
Publication of WO2016027912A1 publication Critical patent/WO2016027912A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Definitions

  • the present invention relates to a ray tracing technology, and more particularly, to a ray tracing method that can shorten the overall execution time by performing a ray tracing at the time of tree generation, a ray tracing apparatus for performing the same and a recording medium for storing the same will be.
  • Three-dimensional graphics technology is a graphics technology that uses a three-dimensional representation of geometric data stored in computing, and is widely used in various industries today, including the media industry and the game industry.
  • three-dimensional graphics technology requires a separate high performance graphics processor due to the large amount of computation.
  • a ray tracing technique that can generate realistic three-dimensional graphics according to recent developments of processors has been studied.
  • Ray tracing technology is a rendering method based on global illumination, and the reflection, refraction, and shadow effects are natural in consideration of the influence of light reflected or refracted by another object on the current object image. 3D image can be generated realistically.
  • Korean Patent No. 10-1284324 discloses a ray tracing core and a ray tracing method capable of accelerating displacement mapping. Such a technique determines a start level by performing a bit operation set at a start point and an end point on a ray defined as a start point and an end point, and selectively increases the level by checking node crossing for the determined start level. In this way, the search time of the pyramid displacement map can be reduced and a realistic scene can be generated.
  • Korean Laid-Open Patent Publication No. 10-2014-0013292 discloses a ray tracing calculation system configured to calculate ray tracing for generating a three-dimensional image in which an optical effect is reflected. This technique can reduce the size of the ray tracing unit and increase the utilization of the graphics processing unit, thereby reducing the cost of building the ray tracing calculation system.
  • One embodiment of the present invention is to provide a ray tracing method that can shorten the overall execution time by performing ray tracing at the time of tree generation.
  • An embodiment of the present invention is to provide a ray tracing method that can improve the quality of the tree by updating the tree according to the computational complexity of ray tracing.
  • An embodiment of the present invention is to provide a ray tracing method that can accelerate the performance of ray tracing according to the improvement of the quality of the tree.
  • the ray tracing method may include generating a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion, performing ray tracing on the plurality of first sub-scenes, and If the computational complexity for the ray tracing exceeds a specific criterion, re-segmenting the space for the scene according to a second criterion to generate a plurality of second sub-scenes.
  • the generating of the plurality of first sub-scenes may include performing spatial division on the scene based on one of a central division, a median division, and a search division.
  • the generating of the plurality of first sub-scenes may include generating a first reference tree associated with an internal node of an acceleration structure (AS) through the spatial division.
  • AS acceleration structure
  • Generating the plurality of first sub-scenes may include inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree to generate the acceleration structure.
  • performing ray tracing may include performing ray tracing of the scene based on the generated acceleration structure when insertion of the primitive nodes is completed.
  • generating the plurality of second sub-scenes may include adjusting a first reference tree in the generated acceleration structure based on the amount of computation and computation time for the ray tracing.
  • the generating of the plurality of second sub-scenes may include performing a re-segmentation of the space based on the one other than the first criterion among the center division, the median division, and the search division.
  • the generating of the plurality of second sub-scenes may include generating a second reference tree associated with an internal node of an acceleration structure (AS) through the spatial division.
  • AS acceleration structure
  • Generating the plurality of second sub-scenes may include inserting primitive nodes associated with the plurality of second sub-scenes into the second reference tree to generate the acceleration structure.
  • the method may include performing ray tracing on the scene based on the generated acceleration structure in the insertion of the primitive nodes.
  • the method may include repeating a process of performing ray tracing on the scene based on an acceleration structure associated with the reference tree until the computational complexity of the ray tracing does not exceed a specific criterion.
  • the ray tracing apparatus may perform a segmentation on a scene according to a first criterion to generate a plurality of first sub-scenes and a ray tracing of the plurality of first sub-scenes.
  • a ray tracing performing unit configured to generate a plurality of second sub-scenes by performing spatial segmentation on the scene according to a second criterion when the computational complexity of the ray tracing exceeds a specific criterion. It features.
  • a computer-readable recording medium having a program for implementing a ray tracing method recorded thereon may be configured to generate a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion.
  • the ray tracing method according to an embodiment of the present invention may shorten the overall execution time by simultaneously performing ray tracing during tree generation.
  • the ray tracing method according to an embodiment of the present invention may improve the quality of the tree by updating the tree according to the computational complexity of ray tracing.
  • Ray tracing method can accelerate the performance of the ray tracing according to the improvement of the quality of the tree.
  • FIG. 1 is a block diagram illustrating a ray tracing apparatus according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a ray tracing process performed by the ray tracing apparatus of FIG. 1.
  • FIG. 3 is a diagram illustrating a criterion of space division for a scene performed in the ray tracing apparatus of FIG. 1.
  • FIG. 4 is a diagram illustrating a reference tree generated by the ray tracing apparatus of FIG. 1.
  • FIG. 5 is a graph illustrating a relationship between quality of a sub-scene according to ray tracing performed in the ray tracing apparatus of FIG. 1.
  • first and second are intended to distinguish one component from another component, 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.
  • an identification code (e.g., a, b, c, etc.) is used for convenience of description, and the identification code does not describe the order of the steps, and each step clearly indicates a specific order in context. Unless stated otherwise, they may occur out of the order noted. 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.
  • the present invention can be embodied as computer readable code on a computer readable recording medium
  • the computer readable recording medium includes all kinds of recording devices in which data can be read by a computer system.
  • Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • the present invention was carried out from September 1, 2013 to August 31, 2014 at Silicon Arts Co., Ltd. with the support of Seoul Patents Industry Development Institute, Patent Technology Commercialization Technology Development Support Project, Seoul, Korea. Development of Software Kit for Development "(Task No. PA130017).
  • FIG. 1 is a block diagram illustrating a ray tracing apparatus according to an embodiment of the present invention.
  • the ray tracing apparatus 100 includes a sub scene generation unit 110, a ray tracing performing unit 120, and a controller 130.
  • the sub scene generation unit 110 generates a plurality of first sub scenes by performing spatial division on the scene according to the first criterion.
  • the first criterion may be determined as one of a central partition, a median partition, and a search partition.
  • the central partition is to divide at the center of the space
  • the median partition is to divide around the middle of the plurality of objects constituting the scene
  • the search partition is to split based on the search cost of the reference tree.
  • center division, median division, and search division will be described in detail with reference to FIG. 3.
  • the plurality of first sub-scenes may each include one entity constituting the scene.
  • the sub-scene generation unit 110 may determine one of the center division, the median division, and the search division except for the first criterion as the second criterion, and re-segment the space for the scene based on the second criterion.
  • the sub-scene generator 110 may re-segment the space for the scene.
  • the sub-scene generator 110 may generate a first reference tree associated with an internal node of an acceleration structure (AS) through spatial division of the scene.
  • the acceleration structure includes a k-depth tree (kd-tree) or a bounding volume hierarchy (BVH) commonly used in ray tracing.
  • the acceleration structure uses BVH.
  • the BVH includes a box node, an inner node, and a leaf node, and the leaf node includes a triangle list for pointing at least one triangle information included in the geometric data.
  • the geometric data includes information about a triangle for ray tracing (hereinafter referred to as triangle information).
  • the triangle information may include texture coordinates and normal vectors for three triangle points.
  • the first reference tree may be implemented as a binary tree capable of hierarchical parallelism.
  • at least one node may be arranged such that the first reference tree corresponds to each level (eg, box node corresponds to level 0, internal node corresponds to level 1 to N-1, and leaf node corresponds to level N). Can be.
  • the sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree. Primitive nodes may be classified to the left or right of the inner node along the first reference tree and passed to the leaf node.
  • the sub scene generation unit 110 may calculate a computational complexity for ray tracing when ray tracing of the plurality of first sub scenes is performed.
  • the computation complexity may be calculated based on the amount of computation and the computation time. For example, the computation complexity may increase as the computation amount increases and the computation time increases.
  • the sub scene generation unit 110 may adjust the first reference tree in the acceleration structure based on the calculation amount and the calculation time for ray tracing. That is, the sub-scene generation unit 110 re-spatially divides the scene according to a second criterion (the second criterion corresponds to one except the first criterion among the center division, the median division, and the search division). Sub-scenes may be generated, and a second reference tree associated with an internal node of the acceleration structure may be generated through spatial partitioning of the scene.
  • the sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of second sub-scenes into the second reference tree.
  • the sub-scene generator 110 generates a reference tree associated with the internal node of the acceleration structure based on the plurality of sub-scenes generated by spatial division of the scene until the computational complexity for ray tracing does not exceed a specific criterion. Primitive nodes associated with a plurality of sub-scenes may be inserted into a reference tree to generate an acceleration structure.
  • the ray tracing performing unit 120 performs ray tracing on the plurality of first sub-scenes.
  • the ray tracing performing unit 120 may perform ray tracing on the scene based on the acceleration structure associated with the first reference tree when insertion of the primitive nodes is completed.
  • the ray tracing performing unit 120 performs ray tracing on the plurality of second sub-scenes.
  • the ray tracing performing unit 120 may perform ray tracing on the scene based on the acceleration structure associated with the second reference tree during the insertion of the primitive nodes.
  • the ray tracing performing unit 120 may repeat the process of performing ray tracing on the scene based on the acceleration structure associated with the reference tree until the computational complexity of the ray tracing does not exceed a specific criterion.
  • the controller 130 may control the overall operation of the ray tracing apparatus 100 and may control a control flow or data flow between the sub-scene generator 110 and the ray tracing performer 120.
  • FIG. 2 is a flowchart illustrating a ray tracing process performed by the ray tracing apparatus of FIG. 1.
  • the sub scene generation unit 110 performs spatial division on a scene according to a specific criterion (step S201).
  • the particular criterion may be determined as one of a central partition, a median partition, and a search partition.
  • the sub-scene generator 110 generates a reference tree associated with an internal node of an acceleration structure (AS) through spatial division of a scene, and inserts primitive nodes associated with a plurality of sub-scenes into a reference tree to accelerate the scene. You can create a structure.
  • AS acceleration structure
  • the ray tracing performing unit 120 performs ray tracing on the plurality of sub-scenes (step S202).
  • the ray tracing performing unit 120 performs ray tracing after the insertion of the primitive nodes is completed if ray tracing is the first, and ray tracing during the insertion process of the primitive nodes if the ray tracing is not the first. Can be performed.
  • the sub scene generation unit 110 determines a computational complexity for ray tracing (step S203).
  • the sub-scene generation unit 110 changes a specific criterion of spatial division for the scene (in which the specific criterion corresponds to a criterion different from the specific criterion of step S201) when the computational complexity for ray tracing exceeds a specific criterion ( Steps S204 and S205).
  • the sub scene generation unit 110 repeats the above steps until the computational complexity for ray tracing does not exceed a specific criterion.
  • FIG. 3 is a diagram illustrating a criterion of space division for a scene performed in the ray tracing apparatus of FIG. 1.
  • the sub-scene generation unit 110 determines one of the center division (a), the median division (b), and the search division (c) based on the scene determined based on the one determined based on the spatial division of the scene. Space partitioning can be performed.
  • Split in the Middle is to divide a scene in the center of the space, and the split can be performed faster than other splits, but it can inefficiently generate an acceleration structure.
  • Split at the Median splits a scene around an object in the intermediate order of a plurality of objects constituting the scene, and can perform a sort operation and create a balanced tree.
  • Cost-Optimized Split divides a scene according to a search cost of a reference tree, and can generate a tree in consideration of its position and size and efficiently generate an acceleration structure.
  • the search cost (Cost-Optimized Split) (c) may be determined based on the probability of visiting the internal node of the acceleration structure.
  • the search cost may be determined according to the following equation.
  • KT and KI correspond to constants
  • SA (VL) corresponds to the left surface area of the acceleration structure
  • SA (VR) corresponds to the right surface area of the acceleration structure
  • SA (V ) Corresponds to the total surface area of the acceleration structure
  • NL and NR correspond to the number of left and right nodes, respectively.
  • FIG. 4 is a diagram illustrating a reference tree generated by the ray tracing apparatus of FIG. 1.
  • the sub-scene generation unit 110 includes an internal node 410 of an acceleration structure (AS) through spatial division of a scene (here, the internal node includes a box node and a leaf node). And a first reference tree associated with it). The first reference tree may be adjusted to the second reference tree (or Nth reference tree) according to the computational complexity for ray tracing.
  • AS acceleration structure
  • the sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree.
  • Primitive nodes may be stored in the primitive node list, output sequentially (eg, in the form of a queue algorithm), and inserted into the first reference tree.
  • the sub scene generation unit 110 may insert the initialization node 420 to initialize the first reference tree before inserting the primitive nodes into the first reference tree.
  • the sub-scene generator 110 may sequentially insert the primitive nodes 430 to deliver the primitive nodes 430 to the last (ie, leaf nodes) of the internal nodes.
  • the sub-scene generator 110 may generate an acceleration structure by passing the primitive node 430 to the last of the internal node.
  • FIG. 5 is a graph illustrating a relationship between quality of a sub-scene according to ray tracing performed in the ray tracing apparatus of FIG. 1.
  • the ray tracing apparatus 100 generates a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion in the sub-scene generating unit 110 and is associated with an internal node of an acceleration structure.
  • the first graph tree has the same quality as the first graph 510.
  • the Nth reference tree is generated (where N is a natural number). It may have the same quality as the three graphs 520 and 530. This means that each reference tree is implemented independently.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

The present invention relates to a ray tracing method comprising the steps of: generating multiple first sub-scenes by performing a space division of a scene according to a first reference; performing ray tracing with respect to the multiple first sub-scenes; and generating multiple second sub-scenes by re-performing the space division with respect to the scene according to a second reference when computational complexity for the ray tracing exceeds a particular reference. Therefore, the present invention can reduce a total performance time by performing ray tracing at the same time as when generating a tree.

Description

레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체Ray tracing method, ray tracing device for performing the same and a recording medium storing the same
본 발명은 레이 트레이싱 기술에 관한 것으로, 보다 상세하게는, 트리 생성시 레이 트레이싱을 동시에 수행하여 전체 수행 시간을 단축시킬 수 있는 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체에 관한 것이다.The present invention relates to a ray tracing technology, and more particularly, to a ray tracing method that can shorten the overall execution time by performing a ray tracing at the time of tree generation, a ray tracing apparatus for performing the same and a recording medium for storing the same will be.
3차원 그래픽 기술은 컴퓨팅에 저장된 기하 데이터(Geometric Data)의 3차원 표현을 사용하는 그래픽 기술로, 오늘날 미디어 산업과 게임 산업을 포함하는 다양한 산업에서 널리 사용되고 있다. 일반적으로 3 차원 그래픽 기술은 많은 연산량으로 인하여 별개의 고성능 그래픽 프로세서를 요구한다. 특히, 최근 프로세서의 발전에 따라 현실적인 3차원 그래픽을 생성할 수 있는 레이 트레이싱(Ray Tracing) 기술이 연구되고 있다.Three-dimensional graphics technology is a graphics technology that uses a three-dimensional representation of geometric data stored in computing, and is widely used in various industries today, 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. In particular, a ray tracing technique that can generate realistic three-dimensional graphics according to recent developments of processors has been studied.
레이 트레이싱(Ray Tracing) 기술은 전역 조명(Global Illumination)에 따른 렌더링(Rendering)방식으로, 다른 물체에서 반사되거나 굴절된 빛이 현재 물체의 영상에 미치는 영향을 고려하여 반사, 굴절, 그림자 효과가 자연적으로 제공되기 때문에 현실감 있는 3D 영상을 생성할 수 있다.Ray tracing technology is a rendering method based on global illumination, and the reflection, refraction, and shadow effects are natural in consideration of the influence of light reflected or refracted by another object on the current object image. 3D image can be generated realistically.
한국등록특허 제10-1284324호는 변위 매핑을 가속화할 수 있는 레이 트레이싱 코어 및 레이 트레이싱 방법을 개시한다. 이러한 기술은 시점과 종점으로 정의된 레이(Ray)에 대하여 시점과 종점에 기 설정된 비트연산을 수행하여 시작 레벨을 결정하고 결정된 시작 레벨에 대하여 노드 크로싱(Node Crossing)을 체크하여 레벨을 선택적으로 증가시킴으로써, 피라미드 변위 맵의 탐색 시간을 줄일 수 있고 사실감 있는 장면을 생성할 수 있다.Korean Patent No. 10-1284324 discloses a ray tracing core and a ray tracing method capable of accelerating displacement mapping. Such a technique determines a start level by performing a bit operation set at a start point and an end point on a ray defined as a start point and an end point, and selectively increases the level by checking node crossing for the determined start level. In this way, the search time of the pyramid displacement map can be reduced and a realistic scene can be generated.
한국공개특허 제10-2014-0013292호는 광 효과(Optical Effect)가 반영된 3차원 영상을 생성하기 위한 레이 트레이싱을 연산하도록 구성된 레이 트레이싱 연산 시스템을 개시한다. 이러한 기술은 레이 트레이싱 유닛의 크기를 감소시키고 그래픽 처리 유닛의 활용도를 높여 레이 트레이싱 연산 시스템의 구축 비용을 감소시킬 수 있다.Korean Laid-Open Patent Publication No. 10-2014-0013292 discloses a ray tracing calculation system configured to calculate ray tracing for generating a three-dimensional image in which an optical effect is reflected. This technique can reduce the size of the ray tracing unit and increase the utilization of the graphics processing unit, thereby reducing the cost of building the ray tracing calculation system.
본 발명의 일 실시예는 트리 생성시 레이 트레이싱을 동시에 수행하여 전체 수행 시간을 단축시킬 수 있는 레이 트레이싱 방법을 제공하고자 한다.One embodiment of the present invention is to provide a ray tracing method that can shorten the overall execution time by performing ray tracing at the time of tree generation.
본 발명의 일 실시예는 레이 트레이싱에 대한 연산 복잡도에 따라 트리의 업데이트를 수행하여 트리의 품질을 향상시킬 수 있는 레이 트레이싱 방법을 제공하고자 한다.An embodiment of the present invention is to provide a ray tracing method that can improve the quality of the tree by updating the tree according to the computational complexity of ray tracing.
본 발명의 일 실시예는 트리의 품질 향상에 따라 레이 트레이싱의 성능을 가속화시킬 수 있는 레이 트레이싱 방법을 제공하고자 한다.An embodiment of the present invention is to provide a ray tracing method that can accelerate the performance of ray tracing according to the improvement of the quality of the tree.
실시예들 중에서, 레이 트레이싱 방법은 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 단계, 상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 단계 및 상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 단계를 포함한다.Among the embodiments, the ray tracing method may include generating a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion, performing ray tracing on the plurality of first sub-scenes, and If the computational complexity for the ray tracing exceeds a specific criterion, re-segmenting the space for the scene according to a second criterion to generate a plurality of second sub-scenes.
일 실시예에서, 상기 복수의 제1 서브 장면들을 생성하는 단계는 중앙 분할, 메디안 분할 및 탐색 분할 중 하나를 기초로 상기 장면에 대한 공간 분할을 수행하는 단계를 포함할 수 있다.In an embodiment, the generating of the plurality of first sub-scenes may include performing spatial division on the scene based on one of a central division, a median division, and a search division.
상기 복수의 제1 서브 장면들을 생성하는 단계는 상기 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 제1 기준 트리를 생성하는 단계를 포함할 수 있다.The generating of the plurality of first sub-scenes may include generating a first reference tree associated with an internal node of an acceleration structure (AS) through the spatial division.
상기 복수의 제1 서브 장면들을 생성하는 단계는 상기 복수의 제1 서브 장면들과 연관된 프리미티브 노드들을 상기 제1 기준 트리에 삽입하여 상기 가속 구조를 생성하는 단계를 포함할 수 있다.Generating the plurality of first sub-scenes may include inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree to generate the acceleration structure.
일 실시예에서, 상기 레이 트레이싱을 수행하는 단계는 상기 프리미티브 노드들의 삽입들이 완료되면 상기 생성된 가속 구조를 기초로 상기 장면에 대한 레이 트레이싱을 수행하는 단계를 포함할 수 있다.In one embodiment, performing ray tracing may include performing ray tracing of the scene based on the generated acceleration structure when insertion of the primitive nodes is completed.
일 실시예에서, 상기 복수의 제2 서브 장면들을 생성하는 단계는 상기 레이 트레이싱에 대한 연산량 및 연산 시간을 기초로 상기 생성된 가속 구조에 있는 제1 기준 트리를 조정하는 단계를 포함할 수 있다.In one embodiment, generating the plurality of second sub-scenes may include adjusting a first reference tree in the generated acceleration structure based on the amount of computation and computation time for the ray tracing.
상기 복수의 제2 서브 장면들을 생성하는 단계는 중앙 분할, 메디안 분할 및 탐색 분할 중 상기 제1 기준을 제외한 하나를 기초로 상기 장면에 대한 공간 분할을 재수행하는 단계를 포함할 수 있다.The generating of the plurality of second sub-scenes may include performing a re-segmentation of the space based on the one other than the first criterion among the center division, the median division, and the search division.
상기 복수의 제2 서브 장면들을 생성하는 단계는 상기 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 제2 기준 트리를 생성하는 단계를 포함할 수 있다.The generating of the plurality of second sub-scenes may include generating a second reference tree associated with an internal node of an acceleration structure (AS) through the spatial division.
상기 복수의 제2 서브 장면들을 생성하는 단계는 상기 복수의 제2 서브 장면들과 연관된 프리미티브 노드들을 상기 제2 기준 트리에 삽입하여 상기 가속 구조를 생성하는 단계를 포함할 수 있다.Generating the plurality of second sub-scenes may include inserting primitive nodes associated with the plurality of second sub-scenes into the second reference tree to generate the acceleration structure.
일 실시예에서, 상기 프리미티브 노드들의 삽입 과정에서 상기 생성된 가속 구조를 기초로 상기 장면에 대한 레이 트레이싱을 수행하는 단계를 포함할 수 있다.In an embodiment, the method may include performing ray tracing on the scene based on the generated acceleration structure in the insertion of the primitive nodes.
일 실시예에서, 상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하지 않을 때까지 기준 트리와 연관된 가속 구조를 기초로 장면에 대한 레이 트레이싱을 수행하는 과정을 반복하는 단계를 포함할 수 있다.In an embodiment, the method may include repeating a process of performing ray tracing on the scene based on an acceleration structure associated with the reference tree until the computational complexity of the ray tracing does not exceed a specific criterion.
실시예들 중에서, 레이 트레이싱 장치는 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 서브 장면 생성부 및 상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 레이 트레이싱 수행부를 포함하고, 상기 서브 장면 생성부는 상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 것을 특징으로 한다.Among the embodiments, the ray tracing apparatus may perform a segmentation on a scene according to a first criterion to generate a plurality of first sub-scenes and a ray tracing of the plurality of first sub-scenes. And a ray tracing performing unit configured to generate a plurality of second sub-scenes by performing spatial segmentation on the scene according to a second criterion when the computational complexity of the ray tracing exceeds a specific criterion. It features.
실시예들 중에서, 레이 트레이싱 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체는 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 기능, 상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 기능 및 상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 기능을 포함한다.In one or more embodiments, a computer-readable recording medium having a program for implementing a ray tracing method recorded thereon may be configured to generate a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion. A function of performing ray tracing on the first sub-scenes of the at least one sub-scene, and performing a segmentation on the scene according to a second criterion if the computational complexity of the ray tracing exceeds a specific criterion to generate a plurality of second sub-scenes. It includes the function to do it.
본 발명의 일 실시예에 따른 레이 트레이싱 방법은 트리 생성시 레이 트레이싱을 동시에 수행하여 전체 수행 시간을 단축시킬 수 있다.The ray tracing method according to an embodiment of the present invention may shorten the overall execution time by simultaneously performing ray tracing during tree generation.
본 발명의 일 실시예에 따른 레이 트레이싱 방법은 레이 트레이싱에 대한 연산 복잡도에 따라 트리의 업데이트를 수행하여 트리의 품질을 향상시킬 수 있다.The ray tracing method according to an embodiment of the present invention may improve the quality of the tree by updating the tree according to the computational complexity of ray tracing.
본 발명의 일 실시예에 따른 레이 트레이싱 방법은 트리의 품질 향상에 따라 레이 트레이싱의 성능을 가속화시킬 수 있다.Ray tracing method according to an embodiment of the present invention can accelerate the performance of the ray tracing according to the improvement of the quality of the tree.
도 1은 본 발명의 일 실시예에 따른 레이 트레이싱 장치를 설명하는 블록도이다.1 is a block diagram illustrating a ray tracing apparatus according to an embodiment of the present invention.
도 2는 도 1에 있는 레이 트레이싱 장치에서 수행되는 레이 트레이싱 과정을 설명하는 순서도이다.FIG. 2 is a flowchart illustrating a ray tracing process performed by the ray tracing apparatus of FIG. 1.
도 3은 도 1에 있는 레이 트레이싱 장치에서 수행되는 장면에 대한 공간 분할의 기준을 예시하는 도면이다.FIG. 3 is a diagram illustrating a criterion of space division for a scene performed in the ray tracing apparatus of FIG. 1.
도 4는 도 1에 있는 레이 트레이싱 장치에서 생성하는 기준 트리를 예시하는 도면이다.FIG. 4 is a diagram illustrating a reference tree generated by the ray tracing apparatus of FIG. 1.
도 5는 도 1에 있는 레이 트레이싱 장치에서 수행되는 레이 트레이싱에 따른 서브 장면과 품질 간의 관계를 설명하는 그래프이다.FIG. 5 is a graph illustrating a relationship between quality of a sub-scene according to ray tracing performed in the ray tracing apparatus of FIG. 1.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Description of the present invention is only an embodiment for structural or functional description, the scope of the present invention should not be construed as limited by the embodiments described in the text. That is, since the embodiments may be variously modified and may have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, the objects or effects presented in the present invention does not mean that a specific embodiment should include all or only such effects, the scope of the present invention should not be understood as being limited thereby.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.On the other hand, the meaning of the terms described in the present application should be understood as follows.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are intended to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, the first component may be named a second component, and similarly, the second component may also be named a first component.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that there may be other components in between, although it may be directly connected to the other component. On the other hand, when a component is referred to as being "directly connected" to another component, it should be understood that there is no other component in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as "comprise" or "have" refer to a feature, number, step, operation, component, part, or feature thereof. It is to be understood that the combination is intended to be present and does not exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, an identification code (e.g., a, b, c, etc.) is used for convenience of description, and the identification code does not describe the order of the steps, and each step clearly indicates a specific order in context. Unless stated otherwise, they may occur out of the order noted. 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.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all kinds of recording devices in which data can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. Generally, the terms defined in the dictionary used are to be interpreted to coincide with the meanings in the context of the related art, and should not be interpreted as having ideal or excessively formal meanings unless clearly defined in the present application.
본 발명은 서울특별시 서울산업진흥원 2013년도 「특허기술상품화 기술개발 지원사업」의 지원을 받아 (주)실리콘아츠에서 2013년 9월 1일 부터 2014년 8월 31일까지 진행한 "광선추적 렌더링 콘텐츠 개발용 소프트웨어 킷 개발" (과제번호 PA130017) 과제의 결과물 입니다.The present invention was carried out from September 1, 2013 to August 31, 2014 at Silicon Arts Co., Ltd. with the support of Seoul Patents Industry Development Institute, Patent Technology Commercialization Technology Development Support Project, Seoul, Korea. Development of Software Kit for Development "(Task No. PA130017).
도 1은 본 발명의 일 실시예에 따른 레이 트레이싱 장치를 설명하는 블록도이다.1 is a block diagram illustrating a ray tracing apparatus according to an embodiment of the present invention.
도 1을 참조하면, 레이 트레이싱 장치(100)는 서브 장면 생성부(110), 레이 트레이싱 수행부(120) 및 제어부(130)를 포함한다.Referring to FIG. 1, the ray tracing apparatus 100 includes a sub scene generation unit 110, a ray tracing performing unit 120, and a controller 130.
서브 장면 생성부(110)는 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성한다. 제1 기준은 중앙 분할, 메디안 분할 및 탐색 분할 중 하나로 결정될 수 있다. 중앙 분할은 공간의 중심에서 분할하는 것이고, 메디안 분할은 장면을 구성하는 복수의 개체들 중 중간 순서에 해당하는 개체를 중심으로 분할하는 것이고, 탐색 분할은 기준 트리의 탐색 비용을 기초로 분할하는 것이다. 이하, 중앙 분할, 메디안 분할 및 탐색 분할은 도 3에서 상세하게 설명한다. 복수의 제1 서브 장면들은 각각 장면을 구성하는 하나의 개체를 포함할 수 있다.The sub scene generation unit 110 generates a plurality of first sub scenes by performing spatial division on the scene according to the first criterion. The first criterion may be determined as one of a central partition, a median partition, and a search partition. The central partition is to divide at the center of the space, the median partition is to divide around the middle of the plurality of objects constituting the scene, and the search partition is to split based on the search cost of the reference tree. . Hereinafter, center division, median division, and search division will be described in detail with reference to FIG. 3. The plurality of first sub-scenes may each include one entity constituting the scene.
서브 장면 생성부(110)는 중앙 분할, 메디안 분할 및 탐색 분할 중 제1 기준을 제외한 하나를 제2 기준으로 결정하여 제2 기준을 기초로 장면에 대한 공간 분할을 재수행할 수 있다. 여기에서, 서브 장면 생성부(110)는 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 장면에 대한 공간 분할을 재수행할 수 있다.The sub-scene generation unit 110 may determine one of the center division, the median division, and the search division except for the first criterion as the second criterion, and re-segment the space for the scene based on the second criterion. Here, when the computational complexity of ray tracing exceeds a specific criterion, the sub-scene generator 110 may re-segment the space for the scene.
서브 장면 생성부(110)는 장면에 대한 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 제1 기준 트리를 생성할 수 있다. 가속 구조는 레이 트레이싱에서 일반적으로 사용되는 kd-tree(k-depth tree) 또는 BVH(Bounding Volume Hierarchy)를 포함한다.The sub-scene generator 110 may generate a first reference tree associated with an internal node of an acceleration structure (AS) through spatial division of the scene. The acceleration structure includes a k-depth tree (kd-tree) or a bounding volume hierarchy (BVH) commonly used in ray tracing.
본 발명에서, 가속 구조는 BVH를 사용한다고 가정한다. BVH는 박스 노드(Box Node), 내부 노드(Inner Node) 및 리프 노드(Leaf Node)를 포함하고, 리프 노드는 기하 데이터에 포함된 적어도 하나의 삼각형 정보를 포인팅하기 위한 삼각형 리스트를 포함한다. 기하 데이터는 레이 트레이싱을 위한 삼각형에 관한 정보(이하, 삼각형 정보)를 포함한다. 예를 들어, 삼각형 정보는 삼각형 세 점에 대한 텍스처 좌표(Texture Coordinate)와 법선 벡터(Normal Vector)를 포함할 수 있다. 일 실시예에서, 제1 기준 트리는 계층적 병렬화가 가능한 바이너리 트리(Binary Tree)로 구현될 수 있다. 예를 들어, 제1 기준 트리는 각각의 레벨(예를 들어, 박스 노드는 레벨0, 내부 노드는 레벨1~N-1, 리프 노드는 레벨N에 해당함)에 대응하도록 적어도 하나의 노드가 배치될 수 있다.In the present invention, it is assumed that the acceleration structure uses BVH. The BVH includes a box node, an inner node, and a leaf node, and the leaf node includes a triangle list for pointing at least one triangle information included in the geometric data. The geometric data includes information about a triangle for ray tracing (hereinafter referred to as triangle information). For example, the triangle information may include texture coordinates and normal vectors for three triangle points. In one embodiment, the first reference tree may be implemented as a binary tree capable of hierarchical parallelism. For example, at least one node may be arranged such that the first reference tree corresponds to each level (eg, box node corresponds to level 0, internal node corresponds to level 1 to N-1, and leaf node corresponds to level N). Can be.
서브 장면 생성부(110)는 복수의 제1 서브 장면들과 연관된 프리미티브 노드들을 제1 기준 트리에 삽입하여 가속 구조를 생성할 수 있다. 프리미티브 노드들은 제1 기준 트리를 따라 내부 노드의 왼쪽 또는 오른쪽으로 분류되어 리프 노드에 전달될 수 있다.The sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree. Primitive nodes may be classified to the left or right of the inner node along the first reference tree and passed to the leaf node.
서브 장면 생성부(110)는 복수의 제1 서브 장면들에 대한 레이 트레이싱이 수행되면 레이 트레이싱에 대한 연산 복잡도를 산출할 수 있다. 연산 복잡도는 연산량 및 연산 시간을 기초로 산출될 수 있다. 예를 들어, 연산 복잡도는 연산량이 많을수록 연산 시간이 길수록 증가할 수 있다. 서브 장면 생성부(110)는 레이 트레이싱에 대한 연산량 및 연산 시간을 기초로 가속 구조에 있는 제1 기준 트리를 조정할 수 있다. 즉, 서브 장면 생성부(110)는 제2 기준(제2 기준은 중앙 분할, 메디안 분할 및 탐색 분할 중 제1 기준을 제외한 하나에 해당함)에 따라 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하고, 장면에 대한 공간 분할을 통해 가속 구조의 내부 노드와 연관된 제2 기준 트리를 생성할 수 있다.The sub scene generation unit 110 may calculate a computational complexity for ray tracing when ray tracing of the plurality of first sub scenes is performed. The computation complexity may be calculated based on the amount of computation and the computation time. For example, the computation complexity may increase as the computation amount increases and the computation time increases. The sub scene generation unit 110 may adjust the first reference tree in the acceleration structure based on the calculation amount and the calculation time for ray tracing. That is, the sub-scene generation unit 110 re-spatially divides the scene according to a second criterion (the second criterion corresponds to one except the first criterion among the center division, the median division, and the search division). Sub-scenes may be generated, and a second reference tree associated with an internal node of the acceleration structure may be generated through spatial partitioning of the scene.
서브 장면 생성부(110)는 복수의 제2 서브 장면들과 연관된 프리미티브 노드들을 제2 기준 트리에 삽입하여 가속 구조를 생성할 수 있다.The sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of second sub-scenes into the second reference tree.
서브 장면 생성부(110)는 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하지 않을 때까지 장면에 대한 공간 분할으로 생성된 복수의 서브 장면들을 기초로 가속 구조의 내부 노드와 연관된 기준 트리를 생성하고 복수의 서브 장면들과 연관된 프리미티브 노드들을 기준 트리에 삽입하여 가속 구조를 생성할 수 있다.The sub-scene generator 110 generates a reference tree associated with the internal node of the acceleration structure based on the plurality of sub-scenes generated by spatial division of the scene until the computational complexity for ray tracing does not exceed a specific criterion. Primitive nodes associated with a plurality of sub-scenes may be inserted into a reference tree to generate an acceleration structure.
레이 트레이싱 수행부(120)는 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행한다. 일 실시예에서, 레이 트레이싱 수행부(120)는 프리미티브 노드들의 삽입들이 완료되면 제1 기준 트리와 연관된 가속 구조를 기초로 장면에 대한 레이 트레이싱을 수행할 수 있다.The ray tracing performing unit 120 performs ray tracing on the plurality of first sub-scenes. In one embodiment, the ray tracing performing unit 120 may perform ray tracing on the scene based on the acceleration structure associated with the first reference tree when insertion of the primitive nodes is completed.
레이 트레이싱 수행부(120)는 복수의 제2 서브 장면들에 대한 레이 트레이싱을 수행한다. 일 실시예에서, 레이 트레이싱 수행부(120)는 프리미티브 노드들의 삽입 과정에서 제2 기준 트리와 연관된 가속 구조를 기초로 장면에 대한 레이 트레이싱을 수행할 수 있다. The ray tracing performing unit 120 performs ray tracing on the plurality of second sub-scenes. In an embodiment, the ray tracing performing unit 120 may perform ray tracing on the scene based on the acceleration structure associated with the second reference tree during the insertion of the primitive nodes.
레이 트레이싱 수행부(120)는 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하지 않을 때까지 기준 트리와 연관된 가속 구조를 기초로 장면에 대한 레이 트레이싱을 수행하는 과정을 반복할 수 있다.The ray tracing performing unit 120 may repeat the process of performing ray tracing on the scene based on the acceleration structure associated with the reference tree until the computational complexity of the ray tracing does not exceed a specific criterion.
제어부(130)는 레이 트레이싱 장치(100)의 전체적인 동작을 제어하고, 서브 장면 생성부(110) 및 레이 트레이싱 수행부(120) 간의 제어 흐름 또는 데이터 흐름을 제어할 수 있다.The controller 130 may control the overall operation of the ray tracing apparatus 100 and may control a control flow or data flow between the sub-scene generator 110 and the ray tracing performer 120.
도 2는 도 1에 있는 레이 트레이싱 장치에서 수행되는 레이 트레이싱 과정을 설명하는 순서도이다.FIG. 2 is a flowchart illustrating a ray tracing process performed by the ray tracing apparatus of FIG. 1.
도 2를 참조하면, 서브 장면 생성부(110)는 특정 기준에 따라 장면에 대한 공간 분할을 수행한다(단계 S201).Referring to FIG. 2, the sub scene generation unit 110 performs spatial division on a scene according to a specific criterion (step S201).
일 실시예에서 특정 기준은 중앙 분할, 메디안 분할 및 탐색 분할 중 하나로 결정될 수 있다.In one embodiment, the particular criterion may be determined as one of a central partition, a median partition, and a search partition.
서브 장면 생성부(110)는 장면에 대한 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 기준 트리를 생성하고, 복수의 서브 장면들과 연관된 프리미티브 노드들을 기준 트리에 삽입하여 가속 구조를 생성할 수 있다.The sub-scene generator 110 generates a reference tree associated with an internal node of an acceleration structure (AS) through spatial division of a scene, and inserts primitive nodes associated with a plurality of sub-scenes into a reference tree to accelerate the scene. You can create a structure.
레이 트레이싱 수행부(120)는 복수의 서브 장면들에 대한 레이 트레이싱을 수행한다(단계 S202).The ray tracing performing unit 120 performs ray tracing on the plurality of sub-scenes (step S202).
레이 트레이싱 수행부(120)는 레이 트레이싱의 수행이 첫 번째에 해당하면 프리미티브 노드들의 삽입들이 완료된 후 레이 트레이싱을 수행하고, 레이 트레이싱의 수행이 첫 번째에 해당하지 않으면 프리미티브 노드들의 삽입 과정에서 레이 트레이싱을 수행할 수 있다.The ray tracing performing unit 120 performs ray tracing after the insertion of the primitive nodes is completed if ray tracing is the first, and ray tracing during the insertion process of the primitive nodes if the ray tracing is not the first. Can be performed.
서브 장면 생성부(110)는 복수의 서브 장면들에 대한 레이 트레이싱이 수행되면 레이 트레이싱에 대한 연산 복잡도를 결정한다(단계 S203).When the ray tracing for the plurality of sub-scenes is performed, the sub scene generation unit 110 determines a computational complexity for ray tracing (step S203).
서브 장면 생성부(110)는 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 장면에 대한 공간 분할의 특정 기준(여기에서, 특정 기준은 단계 S201의 특정 기준과 다른 기준에 해당함)을 변경한다(단계 S204 및 S205).The sub-scene generation unit 110 changes a specific criterion of spatial division for the scene (in which the specific criterion corresponds to a criterion different from the specific criterion of step S201) when the computational complexity for ray tracing exceeds a specific criterion ( Steps S204 and S205).
서브 장면 생성부(110)는 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하지 않을 때까지 상기 단계들을 반복한다.The sub scene generation unit 110 repeats the above steps until the computational complexity for ray tracing does not exceed a specific criterion.
도 3은 도 1에 있는 레이 트레이싱 장치에서 수행되는 장면에 대한 공간 분할의 기준을 예시하는 도면이다.FIG. 3 is a diagram illustrating a criterion of space division for a scene performed in the ray tracing apparatus of FIG. 1.
도 3을 참조하면, 서브 장면 생성부(110)는 중앙 분할(a), 메디안 분할(b) 및 탐색 분할(c) 중 하나를 장면에 대한 공간 분할의 기준으로 결정하여 결정된 하나를 기초로 장면에 대한 공간 분할을 수행할 수 있다.Referring to FIG. 3, the sub-scene generation unit 110 determines one of the center division (a), the median division (b), and the search division (c) based on the scene determined based on the one determined based on the spatial division of the scene. Space partitioning can be performed.
중앙 분할(Split in the Middle)(a)은 공간의 중앙에서 장면을 분할하는 것으로, 다른 분할에 비해 분할을 빠르게 수행할 수 있지만 가속 구조를 비효율적으로 생성할 수 있다. 메디안 분할(Split at the Median)(b)은 장면을 구성하는 복수의 개체들의 중간 순서에 있는 개체를 중심으로 장면을 분할하는 것으로, 정렬 연산을 수행할 수 있고 트리를 균형적으로 생성할 수 있다. 탐색 분할(Cost-Optimized Split)(c)은 기준 트리의 탐색 비용에 따라 장면을 분할하는 것으로, 위치 및 크기를 고려하여 트리를 생성할 수 있고 가속 구조를 효율적으로 생성할 수 있다.Split in the Middle (a) is to divide a scene in the center of the space, and the split can be performed faster than other splits, but it can inefficiently generate an acceleration structure. Split at the Median (b) splits a scene around an object in the intermediate order of a plurality of objects constituting the scene, and can perform a sort operation and create a balanced tree. . Cost-Optimized Split (c) divides a scene according to a search cost of a reference tree, and can generate a tree in consideration of its position and size and efficiently generate an acceleration structure.
일 실시예에서, 탐색 분할(Cost-Optimized Split)(c)은 가속 구조의 내부 노드를 방문할 확률을 기초로 탐색 비용이 결정될 수 있다. 예를 들어, 탐색 비용은 하기의 수학식에 따라 결정될 수 있다.In one embodiment, the search cost (Cost-Optimized Split) (c) may be determined based on the probability of visiting the internal node of the acceleration structure. For example, the search cost may be determined according to the following equation.
[수학식][Equation]
Figure PCTKR2014007695-appb-I000001
Figure PCTKR2014007695-appb-I000001
여기에서, KT 및 KI 는 상수(Constant)에 해당하고, SA(VL)은 가속 구조의 왼쪽 표면적(Surface Area)에 해당하고, SA(VR)은 가속 구조의 오른쪽 표면적에 해당하고, SA(V)은 가속 구조의 전체 표면적에 해당하며, NL 및 NR은 각각 왼쪽 노드 수와 오른쪽 노드 수에 해당한다.Here, KT and KI correspond to constants, SA (VL) corresponds to the left surface area of the acceleration structure, SA (VR) corresponds to the right surface area of the acceleration structure, and SA (V ) Corresponds to the total surface area of the acceleration structure, and NL and NR correspond to the number of left and right nodes, respectively.
도 4는 도 1에 있는 레이 트레이싱 장치에서 생성하는 기준 트리를 예시하는 도면이다.FIG. 4 is a diagram illustrating a reference tree generated by the ray tracing apparatus of FIG. 1.
도 4a를 참조하면, 서브 장면 생성부(110)는 장면에 대한 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드(410)(여기에서, 내부 노드는 박스 노드 및 리프 노드를 포함하는 것으로 설명함)와 연관된 제1 기준 트리를 생성할 수 있다. 제1 기준 트리는 레이 트레이싱에 대한 연산 복잡도에 따라 제2 기준 트리(또는 제N 기준 트리)로 조정될 수 있다.Referring to FIG. 4A, the sub-scene generation unit 110 includes an internal node 410 of an acceleration structure (AS) through spatial division of a scene (here, the internal node includes a box node and a leaf node). And a first reference tree associated with it). The first reference tree may be adjusted to the second reference tree (or Nth reference tree) according to the computational complexity for ray tracing.
도 4b를 참조하면, 서브 장면 생성부(110)는 복수의 제1 서브 장면들과 연관된 프리미티브 노드들을 제1 기준 트리에 삽입하여 가속 구조를 생성할 수 있다. 프리미티브 노드들은 프리미티브 노드 리스트에 저장되어 순차적으로(예를 들어, 큐(Queue) 알고리즘 형식) 출력되어 제1 기준 트리에 삽입될 수 있다.Referring to FIG. 4B, the sub-scene generator 110 may generate an acceleration structure by inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree. Primitive nodes may be stored in the primitive node list, output sequentially (eg, in the form of a queue algorithm), and inserted into the first reference tree.
서브 장면 생성부(110)는 프리미티브 노드들을 제1 기준 트리에 삽입하기 전에, 초기화 노드(420)를 삽입하여 제1 기준 트리를 초기화시킬 수 있다. 서브 장면 생성부(110)는 제1 기준 트리가 순차적으로 초기화되면 프리미티브 노드(430)를 순차적으로 삽입하여 내부 노드의 마지막(즉, 리프 노드)으로 프리미티브 노드(430)를 전달할 수 있다. 서브 장면 생성부(110)는 프리미티브 노드(430)가 내부 노드의 마지막으로 전달됨으로써 가속 구조를 생성할 수 있다.The sub scene generation unit 110 may insert the initialization node 420 to initialize the first reference tree before inserting the primitive nodes into the first reference tree. When the first reference tree is sequentially initialized, the sub-scene generator 110 may sequentially insert the primitive nodes 430 to deliver the primitive nodes 430 to the last (ie, leaf nodes) of the internal nodes. The sub-scene generator 110 may generate an acceleration structure by passing the primitive node 430 to the last of the internal node.
도 5는 도 1에 있는 레이 트레이싱 장치에서 수행되는 레이 트레이싱에 따른 서브 장면과 품질 간의 관계를 설명하는 그래프이다.FIG. 5 is a graph illustrating a relationship between quality of a sub-scene according to ray tracing performed in the ray tracing apparatus of FIG. 1.
도 5를 참조하면, 레이 트레이싱 장치(100)는 서브 장면 생성부(110)에서 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하고 가속 구조의 내부 노드와 연관된 제1 기준 트리를 생성하며 가속 구조를 생성하면 제1 그래프(510)와 같은 품질을 가지고, 제1 기준 트리 생성 후, 제N 기준 트리를 생성하면(여기에서, N은 자연수) 제2 및 제3 그래프(520, 530)와 같은 품질을 가질 수 있다. 이는 각각의 기준 트리가 독립적으로 구현됨을 의미한다.Referring to FIG. 5, the ray tracing apparatus 100 generates a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion in the sub-scene generating unit 110 and is associated with an internal node of an acceleration structure. When the first reference tree is generated and the acceleration structure is generated, the first graph tree has the same quality as the first graph 510. After the first reference tree is generated, the Nth reference tree is generated (where N is a natural number). It may have the same quality as the three graphs 520 and 530. This means that each reference tree is implemented independently.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to the preferred embodiment of the present application, those skilled in the art various modifications and changes to the present application without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (13)

  1. 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 단계;Generating a plurality of first sub-scenes by performing spatial division on the scene according to the first criterion;
    상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 단계; 및Performing ray tracing on the plurality of first sub-scenes; And
    상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 단계를 포함하는 레이 트레이싱 방법.If the computational complexity for ray tracing exceeds a specific criterion, re-segmenting the spatial segmentation for the scene according to a second criterion to generate a plurality of second sub-scenes.
  2. 제1항에 있어서, 상기 복수의 제1 서브 장면들을 생성하는 단계는The method of claim 1, wherein the generating of the plurality of first sub-scenes comprises:
    중앙 분할, 메디안 분할 및 탐색 분할 중 하나를 기초로 상기 장면에 대한 공간 분할을 수행하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And performing spatial segmentation on the scene based on one of center segmentation, median segmentation, and search segmentation.
  3. 제1항에 있어서, 상기 복수의 제1 서브 장면들을 생성하는 단계는The method of claim 1, wherein the generating of the plurality of first sub-scenes comprises:
    상기 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 제1 기준 트리를 생성하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And generating a first reference tree associated with an internal node of an acceleration structure (AS) through the spatial partitioning.
  4. 제3항에 있어서, 상기 복수의 제1 서브 장면들을 생성하는 단계는The method of claim 3, wherein the generating of the plurality of first sub-scenes comprises:
    상기 복수의 제1 서브 장면들과 연관된 프리미티브 노드들을 상기 제1 기준 트리에 삽입하여 상기 가속 구조를 생성하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.Inserting primitive nodes associated with the plurality of first sub-scenes into the first reference tree to generate the acceleration structure.
  5. 제4항에 있어서, 상기 레이 트레이싱을 수행하는 단계는The method of claim 4, wherein performing ray tracing
    상기 프리미티브 노드들의 삽입들이 완료되면 상기 생성된 가속 구조를 기초로 상기 장면에 대한 레이 트레이싱을 수행하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And performing ray tracing on the scene based on the generated acceleration structure when insertions of the primitive nodes are completed.
  6. 제4항에 있어서, 상기 복수의 제2 서브 장면들을 생성하는 단계는The method of claim 4, wherein the generating of the plurality of second sub-scenes comprises:
    상기 레이 트레이싱에 대한 연산량 및 연산 시간을 기초로 상기 생성된 가속 구조에 있는 제1 기준 트리를 조정하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And adjusting a first reference tree in the generated acceleration structure based on the amount of computation and the computation time for the ray tracing.
  7. 제1항에 있어서, 상기 복수의 제2 서브 장면들을 생성하는 단계는The method of claim 1, wherein the generating of the plurality of second sub-scenes comprises:
    중앙 분할, 메디안 분할 및 탐색 분할 중 상기 제1 기준을 제외한 하나를 기초로 상기 장면에 대한 공간 분할을 재수행하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And re-segmenting the spatial segmentation for the scene based on one of the center segment, the median segmentation, and the search segment except the first criterion.
  8. 제7항에 있어서, 상기 복수의 제2 서브 장면들을 생성하는 단계는The method of claim 7, wherein generating the plurality of second sub-scenes
    상기 공간 분할을 통해 가속 구조(AS, Acceleration Structure)의 내부 노드와 연관된 제2 기준 트리를 생성하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And generating a second reference tree associated with an internal node of an acceleration structure (AS) through the spatial partitioning.
  9. 제8항에 있어서, 상기 복수의 제2 서브 장면들을 생성하는 단계는The method of claim 8, wherein the generating of the plurality of second sub-scenes comprises:
    상기 복수의 제2 서브 장면들과 연관된 프리미티브 노드들을 상기 제2 기준 트리에 삽입하여 상기 가속 구조를 생성하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.Inserting primitive nodes associated with the plurality of second sub-scenes into the second reference tree to generate the acceleration structure.
  10. 제9항에 있어서,The method of claim 9,
    상기 프리미티브 노드들의 삽입 과정에서 상기 생성된 가속 구조를 기초로 상기 장면에 대한 레이 트레이싱을 수행하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.And performing ray tracing on the scene based on the generated acceleration structure during insertion of the primitive nodes.
  11. 제1항에 있어서,The method of claim 1,
    상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하지 않을 때까지 기준 트리와 연관된 가속 구조를 기초로 장면에 대한 레이 트레이싱을 수행하는 과정을 반복하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 방법.Repeating the process of performing ray tracing on the scene based on the acceleration structure associated with the reference tree until the computational complexity for the ray tracing does not exceed a particular criterion.
  12. 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 서브 장면 생성부; 및A sub-scene generator for generating a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion; And
    상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 레이 트레이싱 수행부를 포함하고,A ray tracing performing unit configured to perform ray tracing on the plurality of first sub-scenes,
    상기 서브 장면 생성부는The sub scene generation unit
    상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 것을 특징으로 하는 레이 트레이싱 장치.And if the computational complexity of the ray tracing exceeds a specific criterion, re-segment the spatial segmentation of the scene according to a second criterion to generate a plurality of second sub-scenes.
  13. 제1 기준에 따라 장면에 대한 공간 분할을 수행하여 복수의 제1 서브 장면들을 생성하는 기능;Generating a plurality of first sub-scenes by performing spatial division on a scene according to a first criterion;
    상기 복수의 제1 서브 장면들에 대한 레이 트레이싱을 수행하는 기능; 및Performing ray tracing on the plurality of first sub-scenes; And
    상기 레이 트레이싱에 대한 연산 복잡도가 특정 기준을 초과하면 제2 기준에 따라 상기 장면에 대한 공간 분할을 재수행하여 복수의 제2 서브 장면들을 생성하는 기능을 포함하는 레이 트레이싱 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.A program for implementing a ray tracing method including a function of generating a plurality of second sub-scenes by performing spatial division on the scene according to a second criterion when the computational complexity of the ray tracing exceeds a specific criterion; Computer-readable recording media.
PCT/KR2014/007695 2014-08-19 2014-08-19 Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same WO2016027912A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/007695 WO2016027912A1 (en) 2014-08-19 2014-08-19 Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/007695 WO2016027912A1 (en) 2014-08-19 2014-08-19 Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same

Publications (1)

Publication Number Publication Date
WO2016027912A1 true WO2016027912A1 (en) 2016-02-25

Family

ID=55350850

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/007695 WO2016027912A1 (en) 2014-08-19 2014-08-19 Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same

Country Status (1)

Country Link
WO (1) WO2016027912A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102269648B1 (en) * 2020-10-13 2021-06-25 세종대학교산학협력단 Ray tracing device and method with improved performance

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100077423A (en) * 2008-12-29 2010-07-08 삼성전자주식회사 Apparatus and method for enhancing ray tracing speed
US20110246141A1 (en) * 2010-03-31 2011-10-06 Tokyo Electron Limited Method of optical metrology optimization using ray tracing
US20120075300A1 (en) * 2009-05-29 2012-03-29 Siliconarts, Inc. Ray tracing apparatus and method
WO2012111864A1 (en) * 2011-02-14 2012-08-23 주식회사 실리콘아츠 Ray tracing core and method for processing ray tracing
US8284188B1 (en) * 2007-10-29 2012-10-09 Nvidia Corporation Ray tracing system, method, and computer program product for simultaneously traversing a hierarchy of rays and a hierarchy of objects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8284188B1 (en) * 2007-10-29 2012-10-09 Nvidia Corporation Ray tracing system, method, and computer program product for simultaneously traversing a hierarchy of rays and a hierarchy of objects
KR20100077423A (en) * 2008-12-29 2010-07-08 삼성전자주식회사 Apparatus and method for enhancing ray tracing speed
US20120075300A1 (en) * 2009-05-29 2012-03-29 Siliconarts, Inc. Ray tracing apparatus and method
US20110246141A1 (en) * 2010-03-31 2011-10-06 Tokyo Electron Limited Method of optical metrology optimization using ray tracing
WO2012111864A1 (en) * 2011-02-14 2012-08-23 주식회사 실리콘아츠 Ray tracing core and method for processing ray tracing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102269648B1 (en) * 2020-10-13 2021-06-25 세종대학교산학협력단 Ray tracing device and method with improved performance
WO2022080580A1 (en) * 2020-10-13 2022-04-21 세종대학교산학협력단 Ray tracing apparatus and method with improved performance

Similar Documents

Publication Publication Date Title
US11631239B2 (en) Iterative spatio-temporal action detection in video
US11074717B2 (en) Detecting and estimating the pose of an object using a neural network model
WO2022050473A1 (en) Apparatus and method for estimating camera pose
CN110176054B (en) Generation of composite images for training neural network models
WO2010137822A2 (en) Ray tracing core and ray tracing chip including same
CN109472858B (en) Differential rendering pipeline for inverse graphics
WO2021085784A1 (en) Learning method of object detection model, and object detection device in which object detection model is executed
CN101331523B (en) Method and apparatus for binary image classification and segmentation
US7598952B1 (en) Three-dimensional image compositing on a GPU utilizing multiple transformations
US11463272B2 (en) Scalable in-network computation for massively-parallel shared-memory processors
WO2009093836A2 (en) Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
WO2010137821A2 (en) Ray tracing device and method
CN111143174A (en) Optimal operating point estimator for hardware operating under shared power/thermal constraints
CN111667542B (en) Decompression technique for processing compressed data suitable for artificial neural network
CN110569019A (en) random rounding of values
WO2015163720A1 (en) Three-dimensional image creating method, three-dimensional image creating apparatus performing same, and recording medium storing same
US11010963B2 (en) Realism of scenes involving water surfaces during rendering
WO2023106710A1 (en) Method and device for generating time series three-dimensional visualization data
WO2016027910A1 (en) Ray tracing method, ray tracing device for performing same, and recording medium for storing same
CN113822975B (en) Techniques for efficient sampling of images
WO2016027912A1 (en) Ray tracing method, ray tracing apparatus for performing same, and recording medium for storing same
WO2022131531A1 (en) Concentration-based ray tracing method and device for dynamic scene
CN113254070A (en) Acceleration unit, system on chip, server, data center and related methods
WO2015108257A1 (en) Method and apparatus for processing data by using memory
WO2014178544A1 (en) Method for aligning computer-executable data, data alignment system for executing same, and recording medium for storing same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14900182

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 06.07.2017)

122 Ep: pct application non-entry in european phase

Ref document number: 14900182

Country of ref document: EP

Kind code of ref document: A1