WO2012111864A1 - 레이 트레이싱 코어 및 레이 트레이싱 처리 방법 - Google Patents

레이 트레이싱 코어 및 레이 트레이싱 처리 방법 Download PDF

Info

Publication number
WO2012111864A1
WO2012111864A1 PCT/KR2011/001083 KR2011001083W WO2012111864A1 WO 2012111864 A1 WO2012111864 A1 WO 2012111864A1 KR 2011001083 W KR2011001083 W KR 2011001083W WO 2012111864 A1 WO2012111864 A1 WO 2012111864A1
Authority
WO
WIPO (PCT)
Prior art keywords
ray tracing
unit
tree
complexity
spatial
Prior art date
Application number
PCT/KR2011/001083
Other languages
English (en)
French (fr)
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 US13/985,125 priority Critical patent/US8836702B2/en
Publication of WO2012111864A1 publication Critical patent/WO2012111864A1/ko
Priority to US14/456,055 priority patent/US20140347355A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Definitions

  • the disclosed technique relates to three-dimensional graphics processing, and more particularly, to a ray tracing core and a ray tracing processing method.
  • Three-dimensional graphics technology is a graphics technology that uses a three-dimensional representation of geometric data stored in computing, and is widely used today in various industries including the media industry and the game industry. In general, three-dimensional graphics technology requires a separate high performance graphics processor due to the large amount of computation.
  • Ray tracing technology 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.
  • the ray tracing core includes a ray tracing unit (RTU), a control unit and a tree build unit (TBU).
  • the ray tracing unit performs ray tracing based on a spatial partitioning structure.
  • the control unit monitors the load state of the ray tracing unit to calculate the complexity of the spatial partition structure.
  • the tree build unit builds a spatial partition structure having the calculated complexity.
  • the load state may be determined based on a frame rate processed in the unit.
  • the spatial partitioning structure may apply a Bounding Volume Hierarchy (BVH) or a K-Dimensional Tree (KD tree).
  • BBVH Bounding Volume Hierarchy
  • KD tree K-Dimensional Tree
  • the complexity may vary according to the maximum primitive number and / or tree depth of the leaf node for the structure of the BVH or KD tree.
  • the ray tracing core may include a primitive cache that provides a primitive scene to the tree build unit, and an AS result buffer that receives processing results for the primitive scene from the tree build unit. Acceleration Structure Result Buffer) may be further included.
  • the ray tracing core may include an AS structure (Acceleration Structure Cache) for providing tree construction information for the primitive scene processed by the tree build unit to the ray tracing unit, and a texture to the ray tracing unit.
  • the apparatus may further include a texture cache provided to a tracing unit and a color result buffer for receiving processing results of the tree construction information and the texture from the ray tracing unit.
  • the ray tracing processing method monitors a load state of a ray tracing unit (RTU) and a tree build unit (TBU), and the load of the ray tracing unit If the load is greater than the load, the spatial partitioning structure is adjusted to reduce the complexity. If the load of the ray tracing unit is less than the load of the tree build unit, the complexity of the spatial partitioning structure is adjusted. Provide the adjusted complexity to the tree build unit. For example, the ray tracing unit may perform ray tracing based on a spatial partitioning structure, and the tree build unit may build a spatial partitioning structure.
  • the ray tracing processing method may check the frame processing speed of the ray tracing unit, the frame processing speed of the tree build unit, and the frame processed by the ray tracing unit and the tree build unit per unit time
  • the ratio of the processed frames can be calculated, and the load state can be determined based on the calculated frame rate.
  • the spatial partition structure may comprise a Bounding Volume Hierarchy (BVH) or a K-Dimensional Tree, and the complexity is the maximum primitive of the leaf node for the structure of the BVH or KD tree. It can be changed according to the number (Maximum Primitive Number) and / or tree depth (Tree Depth).
  • the ray tracing processing method is characterized in that the complexity of the spatial partition structure is increased by increasing the maximum number of primitives and / or reducing the tree depth when the load of the ray tracing unit is greater than the load of the tree build unit. Can be lowered.
  • the ray tracing processing method may further include reducing the maximum number of primitives and / or increasing tree depth if the load of the ray tracing unit is less than that of the tree build unit. It can increase the complexity.
  • the ray tracing processing apparatus includes a central processing unit (CPU), system memory, and dynamic ray tracing accelerator (DRTX).
  • the CPU runs a three-dimensional application.
  • the system memory stores graphic data information required for the 3D application.
  • the DRTX constructs a spatial partition structure based on the graphic data information, performs ray tracing based on the generated spatial partition structure, transmits the result of the ray tracing to the CPU, and transmits the ray tracing speed. Monitor and reconstruct the spatial partition structure for the graphic data information.
  • the ray tracing processing device interlocks with the DRTX, stores an acceleration structure of a spatial partition structure constructed according to graphic data required for the application, and stores the acceleration structure of the spatial partition structure in the DRTX. It may further include an external memory provided by.
  • the system memory may include a PSS (Primitive Static Scene) area storing fixed scene information required for the 3D application and a PDS (Primitive Dynamic Scene) storing dynamic scene information required for the 3D application. ) And a texture map area for storing a mip map (MIP-MAP) for the area and texture mapping.
  • PSS Primary Static Scene
  • PDS Primary Dynamic Scene
  • MIP-MAP mip map
  • the DRTX may include a ray tracing unit (RTU) for performing ray tracing on a fixed scene and / or a dynamic scene based on a spatial partitioning structure;
  • a control unit for calculating the complexity of the spatial partition structure by monitoring the load state of the ray tracing unit and a tree build unit (TBU) for building a spatial partition structure having the calculated complexity for the dynamic scene Can be.
  • the ray tracing processing apparatus stores an acceleration structure of a spatial division structure constructed according to a corresponding fixed scene and / or a dynamic scene constructed in the tree building unit, and accelerates the structure of the spatial division structure. It may further include an external memory for providing to the ray tracing unit.
  • FIG. 1 is a block diagram illustrating a ray tracing core in accordance with one embodiment of the disclosed technology.
  • FIG. 2 is a block diagram illustrating a ray tracing apparatus including the ray tracing core of FIG. 1.
  • FIG. 3 is a flowchart illustrating a ray tracing processing method performed in FIG. 1.
  • FIG. 4 is a flowchart illustrating a specific example of FIG. 3.
  • FIG. 5 is a diagram illustrating a process of ray tracing.
  • FIG. 6 is a diagram illustrating acceleration structures and geometric data used in the disclosed technology.
  • first and second are intended to distinguish one component from another, and the scope of rights should not be limited by these terms.
  • first component may be named a second component, and similarly, the second component may also be named a first component.
  • first item, second item and / or third item should be understood to include all combinations that can be suggested from one or more related items.
  • first item, second item and / or third item may be given from two or more of the first, second or third items as well as the first, second or third items. Any combination of the possible items.
  • the identifiers (e.g., a, b, c, ...) are used for convenience of description, and the identifiers do not describe the order of the steps, and each step is clearly contextual. Unless stated in a specific order, it may occur differently from the stated order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
  • FIG. 1 is a block diagram illustrating a ray tracing core in accordance with one embodiment of the disclosed technology.
  • the ray tracing core 100 includes a ray tracing unit (RTU) 110, a control unit 120, and a tree build unit (TBU) 130.
  • RTU ray tracing unit
  • TBU tree build unit
  • the ray tracing unit 110 performs ray tracing based on a spatial partitioning structure. A method of performing ray tracing will be described in more detail below.
  • the control unit 120 monitors the load state of the ray tracing unit to calculate the complexity of the spatial partition structure.
  • the load state may be determined based on a frame rate processed by the ray tracing unit 110 and / or the tree build unit 130.
  • the tree building unit 130 builds a spatial partitioning structure having a complexity calculated by the control unit 120.
  • the spatial partitioning structure may be implemented as a bounding volume hierarchy (BVH) or a K-dimensional tree (KD-Tree).
  • the complexity is the Maximum Primitive Number and / or Tree Depth of the Leaf Node for the structure of BVH or KD-Tree. Subject to change. The description of BVH or KD-Tree will be described in more detail below.
  • increasing the maximum number of primitives of a leaf node or lowering the total tree depth may degrade the quality of the accelerated structure (AS), but may increase the processing speed of the tree build unit 130 and consequently the performance of ray tracing. Can be.
  • reducing the maximum number of primitives of a leaf node or deepening the overall tree depth can improve the quality of the accelerated structure (AS), resulting in higher ray tracing performance but slower processing of the tree build unit 130. Therefore, when the performance of the tree build unit 130 is degraded, it can be controlled to improve the processing speed, and when the performance of the tree build unit 130 is sufficient, it can be controlled to improve the quality.
  • FIG. 5 is a diagram illustrating a process of ray tracing.
  • a primary ray P is generated from a camera 510 position for each pixel, and a calculation is performed to find an object 520 that meets the ray P.
  • FIG. When the object encountered with the ray P is the object 520 having the property of refraction or the objects 531 and 532 having the property of reflection, the refraction effect is exerted at the position where the object is met with the ray P. Create a Refraction Ray (F) and / or a Reflection Ray (R) for the reflection effect, and generate a Shadow Ray (S) in the direction of the light 550. .
  • the shadow may be generated at the point where the shadow ray S is generated.
  • FIG. 6 is a diagram illustrating acceleration structures and geometric data used in the disclosed technology.
  • KD-tree is a type of spatial partitioning structure and can be used for Ray-Triangle Intersection Test.
  • the KD-tree may include a box node 610, an inner node 620, and a leaf node 630.
  • the leaf node 630 may include a triangle list for pointing at least one triangle information included in the geometric data.
  • the triangle information may include vertex coordinates, normal vectors and / or texture coordinates for three points of the triangle.
  • the triangle list included in the leaf node may correspond to the array index.
  • FIG. 3 is a flowchart illustrating a ray tracing processing method performed in FIG. 1.
  • control unit 120 may monitor load states of a ray tracing unit (RTU) 110 and a tree build unit (TBU) 130 (step S310).
  • RTU ray tracing unit
  • TBU tree build unit 130
  • control unit 120 adjusts to reduce the complexity of the spatial partitioning structure and the ray tracing unit 110. If the load is smaller than the load of the tree building unit 130, it may be adjusted to increase the complexity of the spatial partition structure (step S320).
  • the control unit 120 may provide the adjusted complexity to the tree build unit 130 (step S330).
  • the tree build unit 130 may be reconfigured in the control unit 120 to reconstruct the spatial partition structure according to the complexity provided.
  • FIG. 2 is a block diagram illustrating a ray tracing apparatus including the ray tracing core of FIG. 1.
  • the ray tracing apparatus 200 includes a central processing unit (CPU) 210, a system memory 220, a dynamic ray tracing accelerator and an external memory 240. It may include.
  • the CPU 210 may process a 3D application, and may include an application 211 such as a 3D game engine, an application programming interface (API) 212, and / or a scene manager.
  • an application 211 such as a 3D game engine, an application programming interface (API) 212, and / or a scene manager.
  • API application programming interface
  • the system memory 220 may store graphic data information required for a three-dimensional application, and may store a PPS area 221 storing a primitive static scene and a primitive dynamic scene.
  • a texture map area 223 that stores a PDS area 222 and / or a mip map (MIP-MAP) for texture mapping may be included.
  • the DRTX 230 includes the ray tracing core 100 of FIG. 1, and includes a bus interface unit 231, an accelerated structure result buffer 232, and a primitive cache ( 233, Working Memory 234, Accelerated Structure Cache 235, Texture Cache 236, Color Result Buffer 237 and / or Stack Memory (Stack Memory) 238 may be further included.
  • a spatial segmentation structure is constructed based on the graphic data information, ray tracing is performed based on the generated spatial segmentation structure, the results of the ray tracing performed are transmitted to the CPU 210, and the ray tracing speed Can be used to reconstruct the spatial partitioning structure for the graphical data information.
  • the external memory 240 may temporarily store information processed by the DRTX 230, and may include a geometric information storage area 241, a fixed scene acceleration structure storage area 242, a dynamic scene acceleration structure storage area 243, and a texture. Map storage area 244 and / or color information storage area 245.
  • FIG. 4 is a flowchart illustrating a specific example of FIG. 3.
  • the scene manager 213 transmits the fixed scene, the dynamic scene, and the texture map to the system memory 220 through the API 212. You can perform preprocessing to save in each area of).
  • the CPU 210, the system memory 220, and the DRTX 230 may transmit data via a high speed bus.
  • the DRTX 230 transmits the fixed scene stored in the system memory 220 to the tree build unit 130 through the bus interface unit 231, and the tree build unit 130 builds the tree for the fixed scene (step)
  • the fixed scene tree structure may be stored in the fixed scene acceleration structure storage area 242 of the external memory 240 through the acceleration structure result buffer 232.
  • the DRTX 230 transmits the dynamic scene stored in the system memory 220 to the tree build unit 130 through the bus interface unit 231, and the tree build unit 130 builds a tree for the dynamic scene (step)
  • the constructed dynamic scene tree structure may be stored in the dynamic scene acceleration structure storage area 243 of the external memory 240 through the acceleration structure result buffer 232.
  • the DRTX 230 stores the fixed scene tree structure and the dynamic scene tree structure in the external memory 240 while storing the geometric information of each structure in the geometric information storage area 241 of the external memory 240.
  • the DRTX 230 may interwork the working memory 234 in the process of generating a tree structure of each scene.
  • the ray tracing unit 110 may call the fixed scene tree structure and the dynamic scene tree structure stored in the external memory 240 through the acceleration structure cache 235 to perform ray tracing (step S403).
  • the ray tracing unit 110 may perform ray tracing using the stack memory 238.
  • the texture map stored in the texture map area 223 of the system memory 220 is stored in the texture map storage area 244 of the external memory 240 and then laid out through the texture cache 236 as needed. And may be transmitted to the tracing unit 110.
  • the control unit 120 may monitor the load states of the ray tracing unit 110 and the tree build unit 130 (step S405). ). In one embodiment, the control unit 120 checks the frame processing speed of the ray tracing unit 110 and the frame processing speed of the tree build unit 130, and the frames and trees processed by the ray tracing unit 110 per unit time. The ratio of the frames processed by the build unit 130 may be calculated, and the load state may be determined based on the calculated frame rate.
  • the control unit 120 may determine that the tree build unit 130 takes a lot of load, and the tree In order to reduce the load of the build unit 130, the tree build unit 130 may be controlled to lower the complexity of the spatial partition structure structure (step S407). In one embodiment, the control of the tree build unit 130 to lower the complexity of the spatial partition structure structure may be performed by increasing the maximum number of primitives or reducing the tree depth.
  • control unit 120 may determine that there is room in the load of the tree build unit 130.
  • the tree building unit 130 may be controlled to increase the complexity of the spatial partition structure structure (step S408).
  • control of the tree build unit 130 that increases the complexity of the spatial partition structure structure may be performed by reducing the maximum number of primitives or increasing the tree depth.
  • the tree build unit 130 may rebuild the tree structure of the dynamic scene under the control of the control unit 120 (step S409).
  • Steps 405 through 409 by the ray tracing unit 110, the control unit 120, and the tree build unit 130 may be repeatedly performed until the request of the 3D application or the end of the 3D application is completed. Can be.
  • the disclosed technique can have the following effects. However, since a specific embodiment does not mean to include all of the following effects or only the following effects, it should not be understood that the scope of the disclosed technology is limited by this.
  • the ray tracing core and the ray tracing processing method according to an embodiment may improve ray tracing performance.
  • the ray tracing core and the ray tracing processing method according to an embodiment may improve performance of an apparatus for processing a 3D image. This is because the image processing of the rendering method according to global illumination can be performed in real time by improving the processing speed of ray tracing.
  • the ray tracing core and the ray tracing processing method according to an embodiment may be easily applied to the three-dimensional image processing apparatus being used as well as the three-dimensional image processing apparatus currently being developed. This is because the disclosed technology can be performed by only replacing the ray tracing core according to the disclosed technology or updating the program.

Landscapes

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

Abstract

레이 트레이싱 코어는 레이 트레이싱 유닛(Ray Tracing Unit, RTU), 컨트롤 유닛 및 트리 빌드 유닛(Tree Build Unit, TBU)을 포함한다. 상기 레이 트레이싱 유닛은 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행한다. 상기 컨트롤 유닛은 상기 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산한다. 상기 트리 빌드 유닛 상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축한다. 일 실시예에서, 상기 부하 상태는 해당 유닛에서 처리되는 프레임 비율(Frame Rate)을 기초로 결정될 수 있다. 다른 일 실시예에서, 상기 공간 분할 구조체는 KD 트리(K-Dimensional Tree)를 적용할 수 있다. 예를 들어, 상기 복잡도는 KD 트리 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경될 수 있다.

Description

레이 트레이싱 코어 및 레이 트레이싱 처리 방법
개시된 기술은 3차원 그래픽 처리에 관한 것으로, 특히 레이 트레이싱 코어 및 레이 트레이싱 처리 방법에 관한 것이다.
3차원 그래픽 기술은 컴퓨팅에 저장된 기하학적 데이터(Geometric data)의 3차원 표현을 사용하는 그래픽 기술로, 오늘날 미디어 산업과 게임 산업을 포함하는 다양한 산업에서 널리 사용되고 있다. 일반적으로 3차원 그래픽 기술은 많은 연산량으로 인하여 별개의 고성능 그래픽 프로세서를 요구한다.
최근 프로세서의 발전에 따라 매우 현실적인 3차원 그래픽을 생성할 수 있는 레이 트레이싱(Ray Tracing) 기술이 연구되고 있다.
레이 트레이싱(Ray Tracing) 기술은 전역 조명(Global Illumination)에 따른 렌더링(Rendering)방식으로, 다른 물체에서 반사되거나 굴절된 빛이 현재 물체의 영상에 미치는 영향을 고려하여 반사, 굴절, 그림자 효과가 자연적으로 제공되기 때문에 현실감 있는 3D 영상을 생성할 수 있다.
실시예들 중에서, 레이 트레이싱 코어는 레이 트레이싱 유닛(Ray Tracing Unit, RTU), 컨트롤 유닛 및 트리 빌드 유닛(Tree Build Unit, TBU)을 포함한다. 상기 레이 트레이싱 유닛은 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행한다. 상기 컨트롤 유닛은 상기 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산한다. 상기 트리 빌드 유닛은 상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축한다. 일 실시예에서, 상기 부하 상태는 해당 유닛에서 처리되는 프레임 처리율(Frame Rate)을 기초로 결정될 수 있다. 다른 일 실시예에서, 상기 공간 분할 구조체는 BVH(Bounding Volume Hierarchy) 또는 KD 트리(K-Dimensional Tree)를 적용할 수 있다. 예를 들어, 상기 복잡도는 BVH 또는 KD 트리의 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경될 수 있다. 일 실시예에서, 상기 레이 트레이싱 코어는 프리미티브 씬(Primitive Scene)을 상기 트리 빌드 유닛에 제공하는 프리미티브 캐시(Primitive Cache) 및 상기 트리 빌드 유닛으로부터 상기 프리미티브 씬에 대한 처리 결과를 전송받는 AS 결과 버퍼(Acceleration Structure Result Buffer)를 더 포함할 수 있다. 다른 일 실시예에서, 상기 레이 트레이싱 코어는 상기 트리 빌드 유닛에 의해 처리된 프리미티브 씬에 대한 트리구축정보를 상기 레이 트레이싱 유닛에 제공하는 AS 캐시(Acceleration Structure Cache)와, 텍스쳐(Texture)를 상기 레이 트레이싱 유닛에 제공하는 텍스쳐 캐시 및 상기 레이 트레이싱 유닛으로부터 상기 트리구축정보 및 텍스쳐에 대한 처리 결과를 전송받는 컬러 결과 버퍼(Color Result Buffer)를 더 포함할 수 있다.
실시예들 중에서, 레이 트레이싱 처리 방법은 레이 트레이싱 유닛(Ray Tracing Unit, RTU) 및 트리 빌드 유닛(Tree Build Unit, TBU)의 부하 상태를 모니터링하며, 상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 큰 경우에는 상기 공간 분할 구조체(Spatial Partitioning Tree)의 복잡도를 낮추도록 조절하고, 상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 작은 경우에는 상기 공간 분할 구조체의 복잡도를 높이도록 조절하며, 상기 조절된 복잡도를 상기 트리 빌드 유닛에 제공한다. 예를 들어, 상기 레이 트레이싱 유닛은 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행할 수 있고, 상기 트리 빌드 유닛은 공간 분할 구조체를 구축할 수 있다. 일 실시예에서, 레이 트레이싱 처리 방법은 레이 트레이싱 유닛의 프레임 처리 속도를 확인할 수 있고, 트리 빌드 유닛의 프레임 처리 속도를 확인할 수 있으며, 단위 시간당 상기 레이 트레이싱 유닛에서 처리되는 프레임과 상기 트리 빌드 유닛에서 처리되는 프레임의 비율을 산출할 수 있고, 상기 산출된 프레임 비율(Frame Rate)을 기초로 부하 상태를 판단할 수 있다. 예를 들어, 상기 공간 분할 구조체는 BVH(Bounding Volume Hierarchy) 또는 KD 트리(K-Dimensional Tree)를 포함할 수 있고, 상기 복잡도는 BVH 또는 KD 트리의 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경될 수 있다. 일 실시예에서, 레이 트레이싱 처리 방법은 상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 큰 경우에는 최대 프리미티브 수의 증가 및/또는 트리 깊이(Tree Depth)의 감소로 상기 공간 분할 구조체의 복잡도를 낮출 수 있다. 다른 일 실시예에서, 레이 트레이싱 처리 방법은 상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 작은 경우에는 최대 프리미티브 수의 감소 및/또는 트리 깊이(Tree Depth)의 증가로 상기 공간 분할 구조체의 복잡도를 높일 수 있다.
실시예들 중에서, 레이 트레이싱 처리 장치는 CPU(Central Processing Unit), 시스템 메모리, DRTX(Dynamic Ray Tracing Accelerator)를 포함한다. CPU는 3차원 어플리케이션을 실행한다. 시스템 메모리는 상기 3차원 어플리케이션에 필요한 그래픽 데이터 정보를 저장한다. 상기 DRTX는 상기 그래픽 데이터 정보를 기초로 공간 분할 구조체를 구축하고, 상기 생성된 공간 분할 구조체를 기초로 레이 트레이싱을 수행하며, 상기 수행된 레이 트레이싱의 결과를 상기 CPU로 전송하고, 상기 레이 트레이싱 속도를 모니터링하여 상기 그래픽 데이터 정보에 대한 공간 분할 구조체를 재구축한다. 예를 들어, 상기 레이 트레이싱 처리 장치는 상기 DRTX와 연동하며, 상기 어플리케이션에 필요한 그래픽 데이터에 따라 구축된 공간 분할 구조체의 가속 구조(Acceleration Structure)를 저장하고, 상기 공간 분활 구조체의 가속 구조를 상기 DRTX로 제공하는 외부 메모리를 더 포함할 수 있다. 일 실시예에서, 상기 시스템 메모리는 상기 3차원 어플리케이션에 필요한 고정 씬(Scene) 정보를 저장하는 PSS(Primitive Static Scene) 영역과, 상기 3차원 어플리케이션에 필요한 동적 씬 정보를 저장하는 PDS(Primitive Dynamic Scene) 영역 및 텍스처 매핑을 위한 밉맵(MIP-MAP)을 저장하는 텍스처 맵(Texture Map) 영역을 포함할 수 있다. 다른 일 실시예에서, 상기 DRTX는 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 고정 씬 및/또는 동적씬에 대한 레이 트레이싱(Ray Tracing)을 수행하는 레이 트레이싱 유닛(Ray Tracing Unit, RTU)과, 상기 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산하는 컨트롤 유닛 및 동적 씬에 대하여 상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축하는 트리 빌드 유닛(Tree Build Unit, TBU)을 포함할 수 있다. 예를 들어, 상기 레이 트레이싱 처리 장치는 상기 트리 빌드 유닛에서 구축된 해당 고정 씬 및/또는 동적 씬에 따라 구축된 공간 분할 구조체의 가속 구조(Acceleration Structure)를 저장하고, 상기 공간 분활 구조체의 가속 구조를 상기 레이 트레이싱 유닛으로 제공하는 외부 메모리를 더 포함할 수 있다.
도 1은 개시된 기술의 일 실시예에 따른 레이 트레이싱 코어를 설명하는 블록도이다.
도 2는 도 1의 레이 트레이싱 코어를 포함하는 레이 트레이싱 장치를 설명하는 블록도이다.
도 3은 도 1에서 수행되는 레이 트레이싱 처리 방법을 설명하는 흐름도이다.
도 4는 도 3의 구체적인 예를 설명하는 순서도이다.
도 5는 레이 트레이싱의 과정을 설명하는 도면이다.
도 6은 개시된 기술에서 사용되는 가속 구조와 기하학적 데이터를 설명하는 도면이다.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
“제1”, “제2” 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
“및/또는”의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, “제1 항목, 제2 항목 및/또는 제3 항목”의 의미는 제1, 제2 또는 제3 항목뿐만 아니라 제1, 제2 또는 제3 항목들 중 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c, ...)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 개시된 기술의 일 실시예에 따른 레이 트레이싱 코어를 설명하는 블록도이다.
도 1을 참조하면, 레이 트레이싱 코어(100)는 레이 트레이싱 유닛(Ray Tracing Unit, RTU)(110), 컨트롤 유닛(120) 및 트리 빌드 유닛(Tree Build Unit, TBU)(130)을 포함한다.
레이 트레이싱 유닛(110)은 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행한다. 레이 트레이싱을 수행하는 방법은 하기에 보다 상세히 설명하기로 한다.
컨트롤 유닛(120)은 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산한다. 예를 들어, 부하 상태는 레이 트레이싱 유닛(110) 및/또는 트리 빌드 유닛(130)에서 처리되는 프레임 비율(Frame Rate)을 기초로 결정될 수 있다.
트리 빌드 유닛(130)은 컨트롤 유닛(120)에서 계산된 복잡도를 가지는 공간 분할 구조체(Spatial Partitioning Structure)를 구축한다. 예를 들어, 공간 분할 구조체는 BVH(Bounding Volume Hierarchy) 또는 KD-Tree(K-Dimensional Tree)로 구현될 수 있다. 일 실시예에서, BVH 또는 KD-Tree를 적용하였을 때, 복잡도는 BVH 또는 KD-Tree의 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경될 수 있다. BVH 또는 KD-Tree에 대한 설명은 하기에서 보다 상세히 설명하기로 한다. 예를 들어, 리프 노드의 최대 프리미티브 수를 늘리거나 전체 트리 깊이를 낮추면 가속 구조(AS)의 품질이 저하되지만 트리 빌드 유닛(130)의 처리 속도는 향상될 수 있고 결과적으로 레이 트레이싱의 성능은 저하될 수 있다. 다른 예로, 리프 노드의 최대 프리미티브 수를 줄이거나 전체 트리 깊이를 깊게하면 가속 구조(AS)의 품질이 향상되어 결과적으로 레이 트레이싱의 성능은 높아질 수 있지만 트리 빌드 유닛(130)의 처리 속도는 느려질 수 있다.따라서, 트리 빌드 유닛(130)의 성능이 저하되면 처리 속도를 향상시키도록 제어할 수 있고, 트리 빌드 유닛(130)의 성능이 충분한 경우에는 품질을 향상시키도록 제어할 수 있다.
도 5는 레이 트레이싱의 과정을 설명하는 도면이다.
도 5를 참조하면, 각 픽셀(Pixel) 당 카메라(510) 위치로부터 최초 레이(Primary Ray)(P)를 생성하여 레이(P)와 만나는 물체(520)를 찾기 위한 계산을 수행한다. 해당 레이(P)와 만나게 된 물체가 굴절의 성질을 갖는 물체(520)나 반사의 성질을 갖는 물체(531)(532)인 경우에는, 해당 레이(P)와 물체가 만난 위치에서 굴절효과를 위한 굴절 레이(Refraction Ray)(F) 및/또는 반사 효과를 위한 반사 레이(Reflection Ray)(R)를 생성하고, 라이트(550) 방향으로 그림자 레이(Shadow Ray)(S)를 생성할 수 있다. 일 실시예에서, 그림자 레이(S)가 다른 물체(540)와 만나면 해당 그림자 레이(S)가 생성된 지점에 그림자가 생성될 수 있다.
도 6은 개시된 기술에서 사용되는 가속 구조와 기하학적 데이터를 설명하는 도면이다.
도 6에서, 가속 구조(Acceleration Structure, AS)는 KD-tree를 사용한다고 가정하였다. KD-tree는 공간 분할 구조체(Spatial Partitioning Structure)의 일종으로, 레이-삼각형 교차 테스트(Ray-Triangle Intersection Test)를 위하여 사용 될 수 있다. 예를 들어, KD-tree는 박스 노드(Box Node)(610), 내부 노드(Inner Node)(620) 및 리프 노드(Leaf Node)(630)를 포함할 수 있다. 일 실시예에서, 리프 노드(630)는 기하학적 데이터에 포함된 적어도 하나의 삼각형 정보를 포인팅 하기 위한 삼각형 리스트를 포함할 수 있다. 예를 들어, 삼각형 정보는 삼각형의 세 점에 대한 정점 좌표, 법선 벡터 및/또는 텍스처 좌표를 포함할 수 있다. 일 실시예에서, 기하학적 데이터에 포함된 삼각형 정보가 배열로 구현된 경우에는 리프 노드에 포함된 삼각형 리스트는 배열 인덱스에 상응할 수 있다.
도 3은 도 1에서 수행되는 레이 트레이싱 처리 방법을 설명하는 흐름도이다.
도 3에서, 컨트롤 유닛(120)은 레이 트레이싱 유닛(Ray Tracing Unit, RTU)(110) 및 트리 빌드 유닛(Tree Build Unit, TBU)(130)의 부하 상태를 모니터링할 수 있다(단계 S310). 예를 들어, 레이 트레이싱 유닛(110)은 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행하고, 트리 빌드 유닛(130)은 공간 분할 구조체를 구축할 수 있다.
컨트롤 유닛(120)은 레이 트레이싱 유닛(110)의 부하가 트리 빌드 유닛(130)의 부하보다 큰 경우에는, 공간 분할 구조체(Spatial Partitioning Structure)의 복잡도를 낮추도록 조절하고, 레이 트레이싱 유닛(110)의 부하가 트리 빌드 유닛(130)의 부하보다 작은 경우에는 공간 분할 구조체의 복잡도를 높이도록 조절할 수 있다(단계 S320).
컨트롤 유닛(120)은 조절된 복잡도를 트리 빌드 유닛(130)에 제공할 수 있다(단계 S330). 일 실시예에서, 트리 빌드 유닛(130)은 컨트롤 유닛(120)에서 조절되어 제공된 복잡도에 상응하여 공간 분할 구조체를 재구성할 수 있다.
도 2는 도 1의 레이 트레이싱 코어를 포함하는 레이 트레이싱 장치를 설명하는 블록도이다.
도 2를 참조하면, 레이 트레이싱 장치(200)는 CPU(Central Processing Unit) (210), 시스템 메모리(System Memory)(220), DRTX(Dynamic Ray Tracing Accelerator) 및 외부 메모리(External Memory)(240)를 포함할 수 있다.
CPU(210)는 3차원 어플리케이션을 처리할 수 있으며, 3차원 게임 엔진 등의 어플리케이션(211), API(Application Programming Interface)(212) 및/또는 씬 매니저(Scene Manager)를 포함할 수 있다.
시스템 메모리(220)는 3차원 어플리케이션에 필요한 그래픽 데이터 정보를 저장할 수 있으며, 원시 고정 씬(Primitive Static Scene)을 저장하는 PPS 영역(221), 프리미티브(원시) 동작 씬(Primitive Dynamic Scene)을 저장하는 PDS 영역(222) 및/또는 텍스처 매핑을 위한 밉맵(MIP-MAP)을 저장하는 텍스처 맵(Texture Map) 영역(223)을 포함할 수 있다.
DRTX(230)는 도 1의 레이 트레이싱 코어(100)를 포함하며, 버스 인터페이스 유닛(Bus Interface Unit)(231), 가속 구조 결과 버퍼(AS Result Buffer)(232), 프리미티브 캐시(Primitive Cache)(233), 작업 메모리(Working Memory)(234), 가속 구조 캐시(AS Cache)(235), 텍스처 캐시(Texture Cache)(236), 컬러 결과 버퍼(Color Result Buffer)(237) 및/또는 스텍 메모리(Stack Memory)(238)를 더 포함할 수 있다. 일 실시예에서, 그래픽 데이터 정보를 기초로 공간 분할 구조체를 구축하고, 생성된 공간 분할 구조체를 기초로 레이 트레이싱을 수행하며, 수행된 레이 트레이싱의 결과를 CPU(210)로 전송하고, 레이 트레이싱 속도를 모니터링하여 그래픽 데이터 정보에 대한 공간 분할 구조체를 재구축할 수 있다.
외부 메모리(240)는 DRTX(230)에서 처리되는 정보를 임시로 저장할 수 있으며, 기하학적 정보 저장 영역(241), 고정 씬 가속 구조 저장 영역(242), 동적 씬 가속 구조 저장 영역(243), 텍스처 맵 저장 영역(244) 및/또는 컬러 정보 저장 영역(245)을 포함할 수 있다.
도 4는 도 3의 구체적인 예를 설명하는 순서도이다.
도 4에서 도 2의 구성을 참조하여 설명하면, CPU(210)의 어플리케이션(211)이 구동되면 씬 메니저(213)는 API(212)를 통해 고정 씬, 동적 씬, 텍스처 맵을 시스템 메모리(220)의 각 영역에 저장하는 전처리과정을 수행할 수 있다. 일 실시예에서, CPU(210)와 시스템 메모리(220) 및 DRTX(230)는 고속 버스(High Speed Bus)를 통해 데이터를 전송할 수 있다.
DRTX(230)는 버스 인터페이스 유닛(231)를 통해 시스템 메모리(220)에 저장된 고정 씬을 트리 빌드 유닛(130)으로 전송하고, 트리 빌드 유닛(130)은 고정 씬에 대한 트리를 구축하며(단계 S401), 구축된 고정 씬 트리 구조는 가속 구조 결과 버퍼(232)를 통해 외부 메모리(240)의 고정 씬 가속 구조 저장 영역(242)에 저장할 수 있다.
DRTX(230)는 버스 인터페이스 유닛(231)를 통해 시스템 메모리(220)에 저장된 동적 씬을 트리 빌드 유닛(130)으로 전송하고, 트리 빌드 유닛(130)은 동적 씬에 대한 트리를 구축하며(단계 S402), 구축된 동적 씬 트리 구조는 가속 구조 결과 버퍼(232)를 통해 외부 메모리(240)의 동적 씬 가속 구조 저장 영역(243)에 저장할 수 있다.
DRTX(230)는 고정 씬 트리 구조와 동적 씬 트리 구조를 외부 메모리(240)에 저장하면서 각 구조의 기하학적 정보를 외부 메모리(240)의 기하학적 정보 저장 영역(241)에 저장할 수 있다. 또한, DRTX(230)는 각 씬의 트리 구조를 생성하는 과정에서 작업 메모리(234)를 연동할 수 있다.
레이 트레이싱 유닛(110)은 가속 구조 캐시(235)를 통해 외부 메모리(240)에 저장된 고정 씬 트리 구조와 동적 씬 트리 구조를 호출하여 레이 트레이싱을 수행할 수 있다(단계 S403). 예를 들어, 레이 트레이싱 유닛(110)은 스텍 메모리(238)를 이용하여 레이 트레이싱을 수행할 수 있다. 일 실시예에서, 시스템 메모리(220)의 텍스처 맵 영역(223)에 저장된 텍스처 맵은 외부 메모리(240)의 텍스처 맵 저장 영역(244)에 저장된 후, 필요에 따라 텍스처 캐시(236)를 통해 레이 트레이싱 유닛(110)으로 전송될 수 있다.
3차원 어플리케이션이 종료되지 않고 레이 트레이싱이 지속적으로 수행되는 경우(단계 S404), 컨트롤 유닛(120)은 레이 트레이싱 유닛(110)과 트리 빌드 유닛(130)의 부하 상태를 모니터링할 수 있다(단계 S405). 일 실시예에서, 컨트롤 유닛(120)은 레이 트레이싱 유닛(110)의 프레임 처리 속도와 트리 빌드 유닛(130)의 프레임 처리 속도를 확인하고, 단위 시간당 레이 트레이싱 유닛(110)에서 처리되는 프레임과 트리 빌드 유닛(130)에서 처리되는 프레임의 비율을 산출하며, 산출된 프레임 비율(Frame Rate)을 기초로 부하 상태를 판단할 수 있다.
컨트롤 유닛(120)은 레이 트레이싱 유닛(110)의 성능이 트리 빌드 유닛(130)의 성능보다 높은 경우에는(단계 S406), 트리 빌드 유닛(130)에 부하가 많이 걸리는 것으로 판단할 수 있고, 트리 빌드 유닛(130)의 부하를 줄이기 위하여 공간 분할 구조체 구조의 복잡도를 낮추도록 트리 빌드 유닛(130)을 제어할 수 있다(단계 S407). 일 실시예에서, 공간 분할 구조체 구조의 복잡도를 낮추는 트리 빌드 유닛(130)의 제어는, 최대 프리미티브 수를 증가시키거나 트리 깊이(Tree Depth)를 감소시킴으로써 수행할 수 있다.
컨트롤 유닛(120)은 레이 트레이싱 유닛(110)의 성능이 트리 빌드 유닛(130)의 성능보다 낮은 경우에는(단계 S406), 트리 빌드 유닛(130)의 부하에 여유가 있는 것으로 판단할 수 있고, 가속 구조(AS)의 품질을 향상시키기 위하여 공간 분할 구조체 구조의 복잡도를 높이도록 트리 빌드 유닛(130)을 제어할 수 있다(단계 S408). 일 실시예에서, 공간 분할 구조체 구조의 복잡도를 높이는 트리 빌드 유닛(130)의 제어는, 최대 프리미티브 수를 감소키거나 트리 깊이(Tree Depth)를 증가시킴으로써 수행할 수 있다.
트리 빌드 유닛(130)은 컨트롤 유닛(120)의 제어 하에 동적 씬의 트리 구조를 재구축할 수 있다(단계 S409).
레이 트레이싱 유닛(110)과 컨트롤 유닛(120) 및 트리 빌드 유닛(130)에 의한 단계 "405" 내지 단계 "409"는 3차원 어플리케이션의 요청 또는 3차원 어플리케이션의 종료가 이루어지는 시점까지 반복하여 수행될 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
일 실시예에 따른 레이 트레이싱 코어 및 레이 트레이싱 처리 방법은 레이 트레이싱 성능을 개선할 수 있다. 레이 트레이싱 유닛 및 트리 빌드 유닛을 모니터링하고, 트리 빌드 유닛을 제어함으로써, 각 유닛에서 요구되는 자원의 부족이나 낭비를 방지할 수 있기 때문이다.
또한, 일 실시예에 따른 레이 트레이싱 코어 및 레이 트레이싱 처리 방법은 3차원 영상을 처리하는 장치의 성능을 향상시킬 수 있다. 레이 트레이싱의 처리 속도를 향상시킴으로써, 전역 조명(Global Illumination)에 따른 렌더링(Rendering) 방식의 영상처리를 실시간으로 수행할 수 있기 때문이다.
또한, 일 실시예에 따른 레이 트레이싱 코어 및 레이 트레이싱 처리 방법은 현재 개발되고 있는 3차원 영상 처리 장치는 물론, 사용되고 있는 3차원 영상 처리장치에도 쉽게 적용할 수 있다. 기존의 장치에서 개시된 기술에 따른 레이 트레이싱 코어만을 교체하거나, 프로그램을 업데이트하는 것만으로도 개시된 기술을 수행할 수 있기 때문이다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 출원의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (17)

  1. 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행하는 레이 트레이싱 유닛(Ray Tracing Unit, RTU);
    상기 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산하는 컨트롤 유닛; 및
    상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축하는 트리 빌드 유닛(Tree Build Unit, TBU)을 포함하는 레이 트레이싱 코어(Ray Tracing Core).
  2. 제1항에 있어서, 상기 부하 상태는
    해당 유닛에서 처리되는 프레임 비율(Frame Rate)을 기초로 결정되는 것을 특징으로 하는 레이 트레이싱 코어.
  3. 제1항에 있어서, 상기 공간 분할 구조체는 BVH(Bounding Volume Hierarchy) 또는 KD 트리(K-Dimensional Tree)인 것을 특징으로 하는 레이 트레이싱 코어.
  4. 제3항에 있어서, 상기 복잡도는
    상기 BVH 또는 KD 트리의 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경되는 것을 특징으로 하는 레이 트레이싱 코어.
  5. 제1항에 있어서, 상기 레이 트레이싱 코어는
    프리미티브 씬(Primitive Scene)을 상기 트리 빌드 유닛에 제공하는 프리미티브 캐시(Primitive Cache); 및
    상기 트리 빌드 유닛으로부터 상기 프리미티브 씬에 대한 처리 결과를 전송받는 AS 결과 버퍼(Acceleration Structure Result Buffer)를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
  6. 제1항에 있어서, 상기 레이 트레이싱 코어는
    상기 트리 빌드 유닛에 의해 처리된 프리미티브 씬에 대한 트리구축정보를 상기 레이 트레이싱 유닛에 제공하는 AS 캐시(Acceleration Structure Cache);
    텍스쳐(Texture)를 상기 레이 트레이싱 유닛에 제공하는 텍스쳐 캐시; 및
    상기 레이 트레이싱 유닛으로부터 상기 트리구축정보 및 텍스쳐에 대한 처리 결과를 전송받는 컬러 결과 버퍼(Color Result Buffer)를 더 포함하는 것을 특징으로 하는 레이 트레이싱 코어.
  7. (a) 공간 분할 구조체(Spatial Partitioning Structure)를 기초로 레이 트레이싱(Ray Tracing)을 수행하는 단계;
    (b) 상기 레이 트레이싱이 수행될 때의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산하는 단계; 및
    (c) 상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축하는 단계를 포함하는 레이 트레이싱 처리 장치에서 수행되는 레이 트레이싱 방법.
  8. 제7항에 있어서, 상기 (b) 단계는
    (b1) 상기 레이 트레이싱 유닛 및 트리 빌드 유닛의 부하 상태를 모니터링하는 단계; 및
    (b2) 상기 레이 트레이싱 유닛(Ray Tracing Unit, RTU) 및 트리 빌드 유닛(Tree Build Unit, TBU)의 부하를 비교하여 상기 공간 분할 구조체의 복잡도를 조절하는 단계; 및
    (b3) 상기 조절된 복잡도를 상기 트리 빌드 유닛에 제공하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 처리 방법.
  9. 제8항에 있어서, 상기 (b1) 단계는
    (b1-1) 레이 트레이싱 유닛의 프레임 처리 속도를 확인하는 단계;
    (b1-2) 트리 빌드 유닛의 프레임 처리 속도를 확인하는 단계;
    (b1-3) 단위 시간당 상기 레이 트레이싱 유닛에서 처리되는 프레임과 상기 트리 빌드 유닛에서 처리되는 프레임의 비율을 산출하는 단계; 및
    (b1-4) 상기 산출된 프레임 비율(Frame Rate)을 기초로 부하 상태를 판단하는 단계를 포함하는 것을 특징으로 하는 레이 트레이싱 처리 방법.
  10. 제8항에 있어서, 상기 공간 분할 구조체는 BVH(Bounding Volume Hierarchy) 또는 KD 트리(K-Dimensional Tree)를 포함하고,
    상기 복잡도는 상기 BVH 또는 KD 트리의 구조에 대한 리프노드(Leaf Node)의 최대 프리미티브 수(Maximum Primitive Number) 및/또는 트리 깊이(Tree Depth)에 따라 변경되는 것을 특징으로 하는 레이 트레이싱 처리 방법.
  11. 제10항에 있어서, 상기 (b2) 단계는
    상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 큰 경우에는 최대 프리미티브 수의 증가 및/또는 트리 깊이(Tree Depth)의 감소로 상기 공간 분할 구조체의 복잡도를 낮추는 것을 특징으로 하는 레이 트레이싱 처리 방법.
  12. 제10항에 있어서, 상기 (b2) 단계는
    상기 레이 트레이싱 유닛의 부하가 상기 트리 빌드 유닛의 부하보다 작은 경우에는 최대 프리미티브 수의 감소 및/또는 트리 깊이(Tree Depth)의 증가로 상기 공간 분할 구조체의 복잡도를 높이는 것을 특징으로 하는 레이 트레이싱 처리 방법.
  13. 3차원 어플리케이션을 실행하는 CPU(Central Processing Unit);
    상기 3차원 어플리케이션에 필요한 그래픽 데이터를 저장하는 시스템 메모리; 및
    상기 그래픽 데이터 정보를 기초로 공간 분할 구조체를 구축하고, 상기 생성된 공간 분할 구조체를 기초로 레이 트레이싱을 수행하며, 상기 레이 트레이싱 속도를 모니터링하여 상기 그래픽 데이터 정보에 대한 공간 분할 구조체를 재구축하는 DRTX(Dynamic Ray Tracing Accelerator)를 포함하는 레이 트레이싱 처리 장치.
  14. 제13항에 있어서, 상기 레이 트레이싱 처리 장치는
    상기 DRTX와 연동하며, 상기 어플리케이션에 필요한 그래픽 데이터에 따라 구축된 공간 분할 구조체의 가속 구조(Acceleration Structure)를 저장하고, 상기 공간 분활 구조체의 가속 구조를 상기 DRTX로 제공하는 외부 메모리를 더 포함하는 것을 특징으로 하는 레이 트레이싱 처리 장치.
  15. 제13항에 있어서, 상기 시스템 메모리는
    상기 3차원 어플리케이션에 필요한 고정 씬(Scene) 정보를 저장하는 PSS(Primitive Static Scene) 영역;
    상기 3차원 어플리케이션에 필요한 동적 씬 정보를 저장하는 PDS(Primitive Dynamic Scene) 영역; 및
    텍스처 매핑을 위한 밉맵(MIP-MAP)을 저장하는 텍스처 맵(Texture Map) 영역을 포함하는 것을 특징으로 하는 레이 트레이싱 처리 장치.
  16. 제13항에 있어서, 상기 DRTX는
    공간 분할 구조체(Spatial Partitioning Tree)를 기초로 고정 씬 및/또는 동적씬에 대한 레이 트레이싱(Ray Tracing)을 수행하는 레이 트레이싱 유닛(Ray Tracing Unit, RTU);
    상기 레이 트레이싱 유닛의 부하 상태를 모니터링하여 공간 분할 구조체의 복잡도를 계산하는 컨트롤 유닛; 및
    동적 씬에 대하여 상기 계산된 복잡도를 가지는 공간 분할 구조체를 구축하는 트리 빌드 유닛(Tree Build Unit, TBU)을 포함하는 것을 특징으로 하는 레이 트레이싱 처리 장치.
  17. 제16항에 있어서, 상기 레이 트레이싱 처리 장치는
    상기 트리 빌드 유닛에서 구축된 해당 고정 씬 및/또는 동적 씬에 따라 구축된 공간 분할 구조체의 가속 구조(Acceleration Structure)를 저장하고, 상기 공간 분할 구조체의 가속 구조를 상기 레이 트레이싱 유닛으로 제공하는 외부 메모리를 더 포함하는 것을 특징으로 하는 레이 트레이싱 처리 장치.
PCT/KR2011/001083 2011-02-14 2011-02-18 레이 트레이싱 코어 및 레이 트레이싱 처리 방법 WO2012111864A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/985,125 US8836702B2 (en) 2011-02-14 2011-02-18 Ray tracing core and method for processing ray tracing
US14/456,055 US20140347355A1 (en) 2011-02-14 2014-08-11 Ray tracing core and method for processing ray tracing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110012860A KR101281157B1 (ko) 2011-02-14 2011-02-14 레이 트레이싱 코어 및 레이 트레이싱 처리 방법
KR10-2011-0012860 2011-02-14

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/985,125 A-371-Of-International US8836702B2 (en) 2011-02-14 2011-02-18 Ray tracing core and method for processing ray tracing
US14/456,055 Continuation-In-Part US20140347355A1 (en) 2011-02-14 2014-08-11 Ray tracing core and method for processing ray tracing

Publications (1)

Publication Number Publication Date
WO2012111864A1 true WO2012111864A1 (ko) 2012-08-23

Family

ID=46672762

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/001083 WO2012111864A1 (ko) 2011-02-14 2011-02-18 레이 트레이싱 코어 및 레이 트레이싱 처리 방법

Country Status (3)

Country Link
US (1) US8836702B2 (ko)
KR (1) KR101281157B1 (ko)
WO (1) WO2012111864A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015167159A1 (en) * 2014-05-02 2015-11-05 Samsung Electronics Co., Ltd. Rendering system and method for generating ray
WO2016006786A1 (en) * 2014-07-07 2016-01-14 Samsung Electronics Co., Ltd. Rendering system and rendering method thereof
WO2016027912A1 (ko) * 2014-08-19 2016-02-25 주식회사 실리콘아츠 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102169799B1 (ko) * 2019-04-11 2020-10-26 주식회사 실리콘아츠 포터블 레이 트레이싱 장치
CN113034338B (zh) * 2019-12-24 2023-03-17 深圳市海思半导体有限公司 一种用于gpu的bvh构造方法、装置及存储介质
KR102269648B1 (ko) * 2020-10-13 2021-06-25 세종대학교산학협력단 성능이 개선된 레이 트레이싱 장치 및 방법
KR102537319B1 (ko) * 2020-12-15 2023-05-26 세종대학교산학협력단 동적 장면에 대한 집중도 기반의 레이 트레이싱 방법 및 장치
KR102539910B1 (ko) * 2020-12-15 2023-06-05 세종대학교산학협력단 포비티드 렌더링에 관한 집중도 기반의 레이 트레이싱 방법 및 장치
US11869117B2 (en) 2021-03-18 2024-01-09 Samsung Electronics Co., Ltd. Systems and methods of adaptive, variable-rate, hybrid ray tracing
US20230410426A1 (en) * 2022-06-17 2023-12-21 Advanced Micro Devices, Inc. Volume intersection using rotated bounding volumes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080079714A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US20080088622A1 (en) * 2006-10-13 2008-04-17 Robert Allen Shearer Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
US6593925B1 (en) * 2000-06-22 2003-07-15 Microsoft Corporation Parameterized animation compression methods and arrangements
US8400448B1 (en) * 2007-12-05 2013-03-19 The United States Of America, As Represented By The Secretary Of The Navy Real-time lines-of-sight and viewsheds determination system
US8587594B2 (en) * 2010-05-21 2013-11-19 International Business Machines Corporation Allocating resources based on a performance statistic

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US20080079714A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US20080088622A1 (en) * 2006-10-13 2008-04-17 Robert Allen Shearer Dynamic reallocation of processing cores for balanced ray tracing graphics workload

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015167159A1 (en) * 2014-05-02 2015-11-05 Samsung Electronics Co., Ltd. Rendering system and method for generating ray
US10186071B2 (en) 2014-05-02 2019-01-22 Samsung Electronics Co., Ltd. Rendering system and method for generating ray
WO2016006786A1 (en) * 2014-07-07 2016-01-14 Samsung Electronics Co., Ltd. Rendering system and rendering method thereof
US10008025B2 (en) 2014-07-07 2018-06-26 Samsung Electronics Co., Ltd. Rendering system and rendering method thereof
WO2016027912A1 (ko) * 2014-08-19 2016-02-25 주식회사 실리콘아츠 레이 트레이싱 방법, 이를 수행하는 레이 트레이싱 장치 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
KR101281157B1 (ko) 2013-07-02
US8836702B2 (en) 2014-09-16
KR20120092926A (ko) 2012-08-22
US20130314420A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
WO2012111864A1 (ko) 레이 트레이싱 코어 및 레이 트레이싱 처리 방법
CN112270756B (zh) 一种应用于bim模型文件的数据渲染方法
US8773449B2 (en) Rendering of stereoscopic images with multithreaded rendering software pipeline
US8102391B2 (en) Hybrid rendering of image data utilizing streaming geometry frontend interconnected to physical rendering backend through dynamic accelerated data structure generator
CN103914868B (zh) 虚拟现实下的海量模型数据动态调度与实时异步加载方法
US7737974B2 (en) Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US7940266B2 (en) Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US8013857B2 (en) Method for hybrid rasterization and raytracing with consistent programmable shading
US8243081B2 (en) Methods and systems for partitioning a spatial index
WO2010137821A2 (ko) 레이 트레이싱 장치 및 방법
US9633467B2 (en) Stencil mapped shadowing system
KR101681056B1 (ko) 정점 처리 방법 및 장치
CN113822788B (zh) 光线追踪硬件中对资源的早期释放
US10846908B2 (en) Graphics processing apparatus based on hybrid GPU architecture
WO2008037615A1 (en) Workload distribution in a ray tracing image processing system
US11763514B1 (en) Hard ware-assisted emulation of graphics pipeline
CN112001993A (zh) 一种面向大场景的多gpu城市仿真系统
US20140347355A1 (en) Ray tracing core and method for processing ray tracing
CN103426199A (zh) 一种三维几何场景的低噪声实时全局光照绘制方法
CN115701305A (zh) 阴影筛选
US20170140569A1 (en) System and method for optimized sparse volume rendering
US9117306B2 (en) Method of stencil mapped shadowing
KR101281156B1 (ko) 레이 트레이싱 코어 및 레이 트레이싱 처리 방법
CN115880127A (zh) 一种渲染格式选择方法及其相关设备
CN116912395B (zh) 基于OpenGL的图形混合渲染方法、装置及存储介质

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: 11858674

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13985125

Country of ref document: US

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 16-12-2013)

122 Ep: pct application non-entry in european phase

Ref document number: 11858674

Country of ref document: EP

Kind code of ref document: A1