KR20090065353A - Ray tracing device based on pixel processing element and method thereof - Google Patents

Ray tracing device based on pixel processing element and method thereof Download PDF

Info

Publication number
KR20090065353A
KR20090065353A KR1020070132853A KR20070132853A KR20090065353A KR 20090065353 A KR20090065353 A KR 20090065353A KR 1020070132853 A KR1020070132853 A KR 1020070132853A KR 20070132853 A KR20070132853 A KR 20070132853A KR 20090065353 A KR20090065353 A KR 20090065353A
Authority
KR
South Korea
Prior art keywords
ray
pixel
collision
processing element
light
Prior art date
Application number
KR1020070132853A
Other languages
Korean (ko)
Other versions
KR100924122B1 (en
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 KR1020070132853A priority Critical patent/KR100924122B1/en
Priority to US12/314,465 priority patent/US20090153556A1/en
Publication of KR20090065353A publication Critical patent/KR20090065353A/en
Application granted granted Critical
Publication of KR100924122B1 publication Critical patent/KR100924122B1/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

Landscapes

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

Abstract

A ray tracking device based on a pixel unit processing element and a method thereof are provided to prevent a CPU from calculating rendering, thereby reducing a burden of the CPU, consequently a rending-only hardware structure can be accomplished. An internal shared memory(205) inputs image data for performing rendering, and stores the inputted image data. A PPE(Pixel Processing Element) processor(202) performs ray tracking functions in parallel for each pixel with regard to the image data. A shading processor(204) accumulatively calculates color values of each pixel generated according to the ray tracking results, and determines final color values for each pixel. A hierarchical cache stores image data having high frequency of use from the image data, and provides the stored image data to the PPE processor.

Description

픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법{RAY TRACING DEVICE BASED ON PIXEL PROCESSING ELEMENT AND METHOD THEREOF}RAY TRACING DEVICE BASED ON PIXEL PROCESSING ELEMENT AND METHOD THEREOF}

본 발명은 광선 추적 방법에 관한 것으로, 특히, 픽셀별 병렬 처리를 통해 한 픽셀(pixel)에 대해 복수개의 광선 다발을 생성하여 렌더링(rendering) 할 그래픽 데이터(graphic data)가 존재하는 장면에서 생성된 복수개의 광선을 추적하고, 광선과 장면과의 충돌 검사(intersection test) 결과를 이용하여 픽셀의 컬러 값을 결정하는 쉐이딩 처리의 반복적 수행을 통해 광선 추적 속도를 높이도록 하는 픽셀 단위 처리 요소(pixel processing element : PPE) 기반의 광선 추적 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a ray tracing method, in particular, generated in a scene in which graphic data to be rendered by generating a plurality of ray bundles for one pixel through pixel-by-pixel parallel processing. Pixel processing that speeds up ray tracing by repeatedly performing shading that tracks multiple rays and determines the color values of pixels using the results of an intersection test between the rays and the scene. element: PPE) based ray tracing apparatus and method.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-045-02, 과제명 : 기능확장형 초고속 랜더러 개발].The present invention is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management No .: 2006-S-045-02, Task name: Development of a function-extended ultrafast renderer].

현재 그래픽 기술은 모델링, 애니메이션, 렌더링 기술로 나누어 보면 렌더링 기술에서 많은 시간이 소요되어 실시간 성이 요구되는 게임을 제외하고 영화나 광 고 TV 애니메이션 분야에서 렌더링 시간이 가장 많은 노력과 시간이 요구된다. 렌더링 기술은 모델링 과정을 거쳐 생성된 3차원 그래픽 데이터를 카메라가 보고 있는 시점에서 2차원 이미지를 만들어 내는 것을 말하며, 그 방법으로는 광선 추적법, 포톤 맵, 발광(irradiance) 캐싱 방법 등이 있다. 이중에서도 광선 추적법은 가장 많이 사용되고 있으나 프로덕션(production)에서는 시간이 많이 걸리는 이유로 사용을 꺼리고 있다. Currently, graphics technology can be divided into modeling, animation, and rendering technology, which requires a lot of time in rendering technology, and requires the most time and effort to render in film or advertising TV animation, except games that require real-time performance. Rendering technology refers to generating two-dimensional images of the three-dimensional graphic data generated through the modeling process at the point of view of the camera, and methods include ray tracing, photon map, and illumination caching. Ray tracing is the most popular of these, but it is reluctant to use it for production because it is time consuming.

이러한 상황에서 광선 추적법의 성능 향상 및 속도 향상은 필수적이라 할 수 있는데, 종래의 기술들은 대부분 실시간 광선 추적을 위한 하드웨어 구조들이 제안되고 있다. 특히 Sarland universty에서 연구 및 개발한 SaarCor chip과 독일의 ART VPS에서 개발한 RayBox 등이 상품화되고 있으며, 스텐포드와 유타 대학 등에서도 실시간 광선 추적을 그래픽 프로세싱 유닛(graphic processing unit : GPU)을 이용하여 가속하는 방법 등에 대하여 연구를 활발히 진행 중에 있다. 그러나, 이러한 연구들은 여전히 메모리 대역폭에 제한을 받고 있으며 이는 근본적인 병목점이 되어 왔다. In this situation, it is essential to improve the performance and speed of ray tracing, and in the related art, hardware structures for real-time ray tracing are mostly proposed. In particular, SaarCor chip researched and developed by Sarland universty and RayBox developed by ART VPS in Germany are commercialized.In addition, Stanford and the University of Utah have accelerated real-time ray tracing using graphic processing unit (GPU). We are actively researching methods. However, these studies are still limited in memory bandwidth, which has been a fundamental bottleneck.

이하에서는, 광선 추적을 이용한 종래의 렌더링 기술에 대하여 도 1을 참조하여 설명하기로 한다. Hereinafter, a conventional rendering technique using ray tracing will be described with reference to FIG. 1.

도 1은 종래의 광선 추적법의 개념을 도시한 도면으로, 위 도 1을 참조하면, 렌더링될 이미지는 이미지 평면(image plane)(100)이고, 이미지 평면(100)에 존재하는 픽셀의 컬러 값을 채우는 것이 렌더링이라고 한다면, 픽셀의 컬러 값은 이미지 평면(100)에 있는 그 픽셀을 통하여 들어오는 광선이 눈으로 들어오는 컬러 값 즉 빛의 세기 및 색깔이라고 할 수 있다. 1 is a diagram illustrating a conventional ray tracing concept. Referring to FIG. 1, the image to be rendered is an image plane 100, and color values of pixels existing in the image plane 100 are illustrated in FIG. If filling is the rendering, the color value of a pixel may be referred to as the color value, ie, the intensity and color of light, that light entering through the pixel in the image plane 100 enters the eye.

픽셀을 통해서 눈으로 들오는 컬러 값을 계산하기 위하여 광선 추적법을 사용함에 있어서는 눈에서 픽셀로 나아가는 광선을 생성하는데, 이를 제1차 광선(1st ray)(102)이라 한다. 이때, 제1차 광선(102)과 렌더링될 그래픽 물체(104)와 만나는 경우 충돌점(hitting point)(103)에서 표면의 노말 벡터(normal vector)(106)를 계산하고, 이를 이용하여 물체의 재질에 따라 반사광(reflection ray)(108) 또는 굴절광(혹은 투과광 : refraction ray)(110)을 발생시키며, 제1차 광선과 물체가 만나는 점에서 그림자가 생기는지 알아보기 위하여 광원(light)(113)으로 직접광(direct ray)(112)을 발생시킨다. In using ray tracing to calculate the color value coming into the eye through the pixel, a ray that goes from the eye to the pixel is generated, which is called the first ray 102. In this case, when the primary ray 102 meets the graphic object 104 to be rendered, the normal vector 106 of the surface is calculated at the hitting point 103, and is used to calculate the normal vector 106 of the object. Depending on the material, a reflection ray 108 or a refraction ray (or transmitted ray) 110 may be generated, and a light source 113 may be used to determine whether a shadow occurs at the point where the primary ray meets the object. Direct ray 112 is generated.

이렇게 생성된 광선을 제2차 광선이라고 하는데, 제2차 광선과 그래픽 물체(104)와 만나면 또 다른 제2차 광선을 생성하고 직접광을 생성한다. 이러한 과정을 계속 반복하여 재질의 컬러 값을 재귀적으로 계산하여 누적한 값이 그 픽셀을 통해서 들어오는 컬러 값으로 결정된다. 여기서 얼마나 제2차 광선을 반복하여 생성하느냐 하는 것은 렌더러 설계자 혹은 디자이너의 몫이다. 또한 부드러운 이미지 효과를 획득하기 위하여 반사광 및 굴절광과 직접광을 확률적인 샘플링 방법에 의하여 각각 1개 이상의 광선을 생성한다. The generated rays are called secondary rays, and when they meet the secondary rays and the graphic object 104, they generate another secondary ray and generate direct light. By repeating this process, the color value of the material is calculated recursively and the accumulated value is determined as the color value coming through the pixel. It is up to the renderer designer or designer to determine how many times the second ray is repeated. In addition, in order to obtain a smooth image effect, at least one light beam is generated for each of the reflected light, the refracted light, and the direct light by a probabilistic sampling method.

이때, 상기와 같은 종래 방법으로 광선 추적법을 행할 경우 제2차 광선의 생성 횟수가 늘어날수록 광선과 물체와의 충돌 검사 및 충돌점 계산량이 기하급수적으로 늘어나게 되는데, 이러한 계산은 재귀적으로 수행하기 때문에 병렬 계산을 하기 힘든 문제점이 있었다. In this case, when the ray tracing method is performed according to the conventional method as described above, as the number of generations of the second ray increases, the collision inspection and collision point calculation amount between the ray and the object increase exponentially, and this calculation is performed recursively. As a result, it was difficult to perform parallel computations.

또한, 상기 종래 충돌 검사 방법에는 장면을 바운딩 볼륨 계층 구조로 구성하거나 kd-tree와 같은 이진트리(binary tree)로 구성하여 광선과 장면 내에 물체와 충돌을 가속하는 방법을 사용한다. 여기에서 장면 내에 물체가 매 프레임 마다 변형 혹은 이동 및 회전을 할 경우, 계층 구조 및 트리 구조를 재 생성해야 하는 문제점이 있었다. 이를 위해 종래에는 이러한 충돌 검사를 가속하기 위하여 전용 하드웨어를 이용하거나, GPU(graphic processing unit)를 이용하는 연구가 많이 진행되고 있으나, 전용 하드웨어 및 GPU의 경우 매 프레임마다 장면을 구성하는 트리 및 계층 구조가 바뀔 경우, 매 프레임 마다 전용하드웨어 및 GPU 보드 상 메모리에 저장해야 되므로 메모리 대역폭을 줄이는 문제점이 있었다.In addition, the conventional collision detection method uses a method of accelerating collision with an object in a scene by configuring a scene in a bounding volume hierarchy or a binary tree such as kd-tree. Here, when objects in the scene are transformed, moved or rotated every frame, there is a problem in that the hierarchical structure and the tree structure must be regenerated. To this end, in order to accelerate such collision detection, researches using a dedicated hardware or a graphic processing unit (GPU) have been much progressed. However, in the case of dedicated hardware and a GPU, a tree and a hierarchical structure constituting a scene is provided every frame. In case of change, it has to be stored in dedicated hardware and memory on GPU board every frame, thus reducing the memory bandwidth.

따라서 본 발명은 매 프레임마다 변하는 계층 및 트리구조에 대한 메모리 대역폭 문제를 해결하기 위하여 계층 구조와 트리구조를 병행하여 사용하고, GPU 및 광선 추적기를 일체화하여 디스플레이에 포함 시켜서 CPU 및 GPU간의 버스 병목을 원천 차단함으로서 메인 메모리 접근을 최소화하며, 또한 광선 추적을 병렬화하여 픽셀 단위로 처리함으로서 CPU의 광선 추적에 대한 계산 부담을 줄일 수 있도록 하는 픽셀 단위 처리 요소 기반의 광선추적 장치 및 방법을 제공하고자 한다.Therefore, in order to solve the memory bandwidth problem of the hierarchical and tree structures that change every frame, the present invention uses the hierarchical structure and the tree structure in parallel, and integrates the GPU and the ray tracker into the display to eliminate the bus bottleneck between the CPU and the GPU. In order to minimize the main memory access by blocking the source, and to parallelize ray tracing and to process pixel by pixel, a ray tracing device and method based on a pixel processing element for reducing the computational burden on ray tracing of the CPU are provided.

상술한 목적을 달성하기 위한 본 발명은 픽셀 단위 처리 요소 기반의 광선 추적 장치로서, 메인 메모리로부터 매 프레임 단위로 렌더링이 수행될 이미지 데이터를 입력받아 저장하는 내부 공유 메모리와, 상기 내부 공유 메모리로 입력되는 데이터 중 사용빈도가 많은 데이터를 저장하는 계층적 캐시와, 상기 계층적 캐시에 저장된 매 프레임 단위의 이미지 데이터에 대하여 픽셀별 병렬로 광선 추적을 행하는 픽셀 처리 요소(PPE) 처리부와, 상기 광선 추적 결과에 따른 각 픽셀의 다양한 컬러값을 누적 계산하여 픽셀별 컬러 값을 결정하는 쉐이딩 처리기를 포함하며,According to an aspect of the present invention, there is provided a ray tracing device based on a pixel-processing element, comprising: an internal shared memory configured to receive image data to be rendered on a frame-by-frame basis from a main memory, and to the internal shared memory; A hierarchical cache for storing frequently used data among the data, a pixel processing element (PPE) processing unit for performing ray tracing in parallel on a pixel-by-pixel basis for image data of every frame unit stored in the hierarchical cache, and the ray tracing It includes a shading processor that cumulatively calculates various color values of each pixel according to the result to determine color values for each pixel.

상기 픽셀 처리 요소 처리부는, 계층적 캐시로부터 입력된 샘플 테이블과 카메라 정보로부터 제1차 광선을 생성하는 제1차 광선 생성부와, 제1차 광선 생성부에서 출력된 제1광선과 장면 내에 물체와 충돌을 검사하는 전체 트리 및 계층 탐색 부(total tree traversal)와, 상기 전체 트리 및 계층 탐색부에서 결정된 충돌 정보와 충돌한 물체의 재질을 이용하여 상기 제1차 광선에 의한 반사광, 굴절광 및 직접광을 제2차 광선으로 생성하는 제2차 광선 생성부를 포함하는 것을 특징으로 한다.The pixel processing element processor may include a first ray generator that generates a first ray from a sample table and camera information input from a hierarchical cache, a first ray output from the first ray generator, and an object in a scene. And total tree traversal for checking collisions with and the reflected light, refraction light, and the like by using the material of the object collided with collision information determined by the entire tree and hierarchy search unit. And a second light beam generator configured to generate the direct light as the second light beam.

또한, 본 발명은 픽셀 단위 처리 요소 기반의 광선 추적 방법으로서, 매 프레임 단위로 렌더링 수행될 이미지 데이터를 입력받는 단계와, 상기 입력 데이터 중 사용빈도가 많은 데이터를 계층적 캐시에 저장하는 단계와, 상기 계층적 캐시에 저장된 매 프레임 단위의 이미지 데이터에 대하여 픽셀별 병렬로 광선 추적을 수행하는 단계와, 상기 광선 추적 결과에 따라 픽셀별 제1/제2차 광선 및 직접광으로부터 들어온 컬러값을 계산하고, 이를 누적하여 각 픽셀의 컬러값을 산출하는 단계를 포함하며,In addition, the present invention provides a ray tracing method based on a pixel-based processing element, the method comprising: receiving image data to be rendered every frame, storing frequently used data among the input data in a hierarchical cache; Performing ray tracing in parallel on a pixel-by-pixel basis for image data stored in the hierarchical cache every frame unit, and calculating color values from first and second light rays and direct light for each pixel according to the ray tracing result; Calculating the color values of each pixel by accumulating them,

상기 광선추적 단계는 상기 계층적 캐시로부터 입력된 샘플 테이블과 카메라 정보로부터 이미지 데이터 픽셀별 제1차 광선을 생성하는 단계와, 상기 제1차 광선이 장면 내에 물체와 충돌하는지를 검사하는 단계와, 상기 제1차 광선과 상기 물체의 충돌 시 상기 제1광선에 의한 제2차 광선으로 반사광, 굴절광 및 직접광을 생성하는 단계를 포함하는 것을 특징으로 한다.The ray tracing step may include generating a primary ray for each image data pixel from a sample table and camera information input from the hierarchical cache, inspecting whether the primary ray collides with an object in a scene, and And generating reflected light, refracted light, and direct light as the second light beam by the first light beam when the first light beam collides with the object.

본 발명에 의한 픽셀단위 처리에 기반한 광선 추적 장치 및 방법에 따르면 픽셀 단위 처리 요소를 이용하여 렌더링할 물체를 픽셀단위로 병렬로 처리할 수 있 어 스케일러블(scalable)한 구조를 제공할 수 있으며, 픽셀단위 처리 요소들과 디스플레이를 일체화시킴으로써, CPU(Central Processing Unit)와 GPU와의 버스 병목을 해소하고, CPU에서 렌더링을 계산을 하지 않기 때문에 CPU에 대한 부담을 줄여 렌더링 전용 하드웨어 구조가 가능한 효과가 있다.According to the ray tracing apparatus and method based on the pixel-by-pixel processing according to the present invention it is possible to provide a scalable structure by processing the object to be rendered in a pixel-by-pixel using a pixel-processing element, By integrating the display with pixel-based processing elements, it eliminates bus bottlenecks between the Central Processing Unit (CPU) and the GPU and reduces the burden on the CPU because it does not calculate rendering on the CPU. .

또한, 장면을 구성하는 계층 구조 및 트리 구조 탐색에 있어서 충돌 검사 이전에 광선과 충돌 검사할 물체 혹은 물체의 좌표계(로컬 좌표계)로 변환하는 좌표 변환기를 포함하고, 충돌검사 후 출력 단에는 좌표 역변환기를 포함하여 물체의 회전 및 이동에 대하여 트리 및 계층 구조를 갱신할 필요가 없다. 이에 따라 메인 메모리로부터 계층 구조 및 트리 구조를 다시 읽어올 필요가 없어 메모리 대역폭을 늘리는 효과가 있다. In addition, in the hierarchical and tree structure search of the scene, a coordinate converter for converting a ray or an object to be collided with a ray or a coordinate system (local coordinate system) before collision inspection is included. There is no need to update the tree and hierarchy for rotation and movement of objects. As a result, there is no need to reload hierarchies and tree structures from main memory, thereby increasing memory bandwidth.

이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the present invention. In the following description of the present invention, when it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.

본 발명의 구체적인 핵심 기술요지를 살펴보면, 3차원 그래픽에서 그래픽 데이터를 실시간으로 렌더링 하기 위한 광선 추적기법에서, 매 프레임마다 변하는 계 층 및 트리구조에 대한 메모리 대역폭 문제를 해결하기 위하여 계층 구조와 트리구조를 병행하여 사용하고, GPU 및 광선 추적기를 일체화하여 디스플레이에 포함 시켜서 CPU 및 GPU간의 버스 병목을 원천 차단함으로써, 메인 메모리 접근을 최소화하며, 또한 CPU의 광선 추적에 대한 계산 부담을 줄이기 위하여 광선 추적을 병렬화하여 픽셀 단위로 처리하는 기술을 통해 본 발명에서 이루고자 하는 바를 쉽게 달성할 수 있다.Looking at the specific core technical gist of the present invention, hierarchical structure and tree structure in order to solve the memory bandwidth problem of hierarchical and tree structure that changes every frame By paralleling and integrating the GPU and ray tracer into the display to eliminate bus bottlenecks between the CPU and the GPU, minimizing access to the main memory, and also reducing ray computation to reduce computational overhead for ray tracing. It is possible to easily accomplish what the present invention intends to achieve through the technique of parallelizing and processing on a pixel basis.

이하, 본 발명에 따른 픽셀 단위 처리 요소기반의 광선 추적 장치 및 시스템에 대해 도면을 참조하여 설명하기로 한다.Hereinafter, a ray tracing apparatus and system based on a pixel processing element according to the present invention will be described with reference to the drawings.

도 2는 본 발명을 적용하기 위한 광선 추적장치와 디스플레이 장치가 일체형으로 구성된 예시도로, 픽셀 단위 처리 요소(PPE)에서 렌더링 된 결과가 디스플레이 장치(200)에서 보여진다. FIG. 2 is an exemplary view in which the ray tracing device and the display device are integrated to apply the present invention, and the result rendered by the pixel processing element PPE is shown in the display device 200.

도 3은 본 발명에 의한 픽셀 단위 처리 요소 기반 광선 추적 장치(201)의 전체 하드웨어 블록 구성을 도시한 것이다.3 shows the overall hardware block configuration of the pixel-based processing element based ray tracing apparatus 201 according to the present invention.

이하, 도 3을 참조하면, 픽셀 단위 처리 요소 기반 광선 추적 장치(201)는 내부 공유 메모리(internal shared memory)(205), 계층적 캐시(hierarchical cache)(203), PPE 처리부(202), 쉐이딩 처리기(shading processing unit)(204), 그래픽 메모리(graphic memory)(206), 디스플레이 장치(display device)(207)로 구성된다.Hereinafter, referring to FIG. 3, the pixel-based processing element-based ray tracing device 201 includes an internal shared memory 205, a hierarchical cache 203, a PPE processing unit 202, and shading. And a processing unit 204, a graphics memory 206, and a display device 207.

동작을 살펴보면, 공유 메모리(205)는 메인 메모리(main memory)(208)로부터 매 프레임(frame) 단위로 렌더링이 수행될 이미지 데이터를 입력받아 저장한다. 계층적 캐시(203)는 내부 공유 메모리(205)로 입력되는 데이터 중 사용빈도가 많은 데이터를 저장한다. 픽셀 처리 요소(PPE) 처리부(202)는 계층적 캐시(203)에 저장된 매 프레임 단위의 이미지 데이터에 대하여 픽셀별 병렬로 광선 추적을 행한다. 쉐이딩 처리기(204)는 광선 추적 결과에 따른 각 픽셀의 다양한 컬러 값을 누적 계산하여 픽셀별 컬러 값을 결정한다.In operation, the shared memory 205 receives and stores image data to be rendered in units of frames from the main memory 208. The hierarchical cache 203 stores frequently used data among data input to the internal shared memory 205. The pixel processing element (PPE) processing unit 202 performs ray tracing in parallel on a pixel-by-pixel basis for image data in units of frames stored in the hierarchical cache 203. The shading processor 204 cumulatively calculates various color values of each pixel according to the ray tracing result to determine color values for each pixel.

즉, 픽셀 단위 처리 요소 기반 광선 추적 장치(201)는 메인 메모리(208)로부터 렌더링에 필요한 데이터를 받아서 내부 공유 메모리(205)에 저장하고, 픽셀 단위 처리 요소(202)들의 메모리 동시 접속을 막고 데이터의 재활용을 위하여 사용 빈도가 많은 데이터를 계층적 캐쉬(203)에 저장한다. 또한 픽셀 단위 처리 요소에서 계산된 결과 값은 쉐이딩 처리기(204)에서 컬러 값이 계산되어, 그 결과가 그래픽 메모리(206)에 저장되며, 이를 이용하여 디스플레이 장치(207)에서 최종 컬러 값으로 디스플레이 시키게 된다. That is, the pixel-based processing element based ray tracing device 201 receives data necessary for rendering from the main memory 208 and stores the data necessary for rendering in the internal shared memory 205, and prevents simultaneous access of the memory of the pixel processing elements 202 to the data. Frequently used data is stored in the hierarchical cache 203 for recycling. In addition, the result value calculated at the pixel-by-pixel processing element is calculated by the shading processor 204, the color value is stored in the graphics memory 206, which is used to display the final color value in the display device 207 do.

도 4는 본 발명에 따른 픽셀 단위 처리 기반 광선 추적 장치에서 PPE 처리부(202)의 기능 블록도를 도시한 것이다. 4 is a functional block diagram of the PPE processing unit 202 in the pixel-based processing based ray tracing apparatus according to the present invention.

이하, 도 4를 참조하여 PPE 처리부(202)에서의 동작을 상세히 설명하기로 한다. 먼저, 내부 공유 메모리(205)에서 픽셀에 대한 광선들이 주어지면 자주 사용되는 데이터의 주변에서 자주 메모리의 접근이 이루어지는 데이터의 로컬리티(locality)에 따라 캐시 메모리(203)에 자주 사용되는 데이터들이 저장된다. 이 때, 저장되는 데이터는 삼각형 데이터(Tris), 트리 또는 계층 구조 정보(TB Info), 샘플링 테이블(Sampling Table : S.T), 물체의 재질 정보(Material Infomation : Ma Info), 광원에 대한 정보(Light Information : Li Info), 카메라에 대한 정보(Camera Information : Cam Info) 등이 저장된다. Hereinafter, an operation of the PPE processing unit 202 will be described in detail with reference to FIG. 4. First, given light rays for a pixel in the internal shared memory 205, data that is frequently used in the cache memory 203 is stored according to the locality of the data where the memory is frequently accessed in the vicinity of the frequently used data. do. At this time, the data to be stored are triangular data (Tris), tree or hierarchical structure information (TB Info), sampling table (ST), material information (Material Infomation: Ma Info), and information on a light source (Light). Information: Li Info) and camera information (Cam Info) are stored.

그러면, PPE 처리부(202)에서는 위와 같이 캐시 메모리(203)에 저장되는 정보를 이용하여 제1차 광선 생성부(1st Ray Generator : RG1)(210)에서 제1차 광선을 샘플링 테이블(S.T)을 이용하여 발생시키며, 전체 트리 및 계층 탐색부(Total Tree Traversal : T.T.T)(230)에서 제1차 광선과 물체가 충돌하는 충돌 검사를 진행한다. 이때 제1차 광선과 물체가 충돌하는 것을 검사하여 쉐이딩에 필요한 데이터를 충돌 정보(Hitting Information : Hit Info)에 저장한다. 충돌 정보에 저장된 정보로부터 제2차 광선 생성부(2nd Ray Generator: RG2)(220)에서 반사광 및 굴절광 그리고 직접광을 생성한다. 이러한 과정을 광선 추적 깊이의 수만큼 계속적으로 반복하여 제2차 광선 및 직접광을 생성한다. Then, the PPE processing unit 202 uses the information stored in the cache memory 203 as described above, and the first ray generator RG1 210 generates a sampling table ST. And a collision test in which the first ray and the object collide with each other in the total tree traversal (TTT) 230. At this time, the collision between the primary ray and the object is examined, and the data necessary for shading is stored in the hit information (Hitting Info). The second ray generator RG2 220 generates reflected light, refracted light, and direct light from the information stored in the collision information. This process is repeated continuously by the number of ray tracing depths to produce secondary and direct light.

그런 후, 위와 같이 모든 광선에 대한 충돌 정보에 대한 저장이 끝이 나면 쉐이딩 처리기(204)에서 충돌 정보에 대한 정보와 재질 정보를 이용하여 컬러 값을 결정한다. 결정된 컬러 값은 그래픽 메모리(206)에 저장되고 이를 이용하여 디스플레이 장치(207)에서 쉐이딩 처리기(204)에서 결정된 컬러 값으로 물체의 컬러를 디스플레이 시킨다. Then, when the storing of the collision information for all the rays as described above is finished, the shading processor 204 determines the color value using the information on the collision information and the material information. The determined color value is stored in the graphic memory 206 to use the display device 207 to display the color of the object with the color value determined by the shading processor 204.

도 5는 PPE 처리부(202)의 제1차 광선 생성부(RG1)(210)에 대한 상세 블록도이다. 5 is a detailed block diagram of the primary ray generator RG1 210 of the PPE processor 202.

이하, 도 5를 참조하면, 제1차 광선 생성부(210)는 카메라에 대한 정보(Cam Info)와 샘플링 테이블(S.T)에서 데이터를 입력으로 받아 마이크로-픽셀 분리기(Micropixel divider)(310)에서 픽셀을 샘플링 개수에 따라 면적이 고르게 나누고, 샘플링 테이블로부터의 컬러 값을 확률적 기법을 사용하여 각 샘플링에 해당하는 컬러 값으로 할당한다. Hereinafter, referring to FIG. 5, the first ray generator 210 receives data from a camera Info and a sampling table ST, and inputs data from a micropixel divider 310. The pixels are divided evenly according to the number of sampling, and color values from the sampling table are assigned to color values corresponding to each sampling using a probabilistic technique.

이어 제1차 광선을 생성하는데, 이때 매 프레임마다 장면 내에 물체의 회전 및 이동시 트리 또는 계층 구조 정보(TB Info)가 갱신되는 단점을 제거하기 위하여 본 발명에서는 행렬곱셈기 혹은 좌표변환기(transformer)를 포함하여, 물체를 좌표 변환하는 것 대신, 광선을 좌표 변환하도록 함으로써 물체에 대한 트리 및 계층 정보를 그대로 유지하도록 한다. Subsequently, the first ray is generated, and in order to eliminate the disadvantage of updating the tree or the hierarchical structure information (TB Info) when the object is rotated and moved in the scene every frame, the present invention includes a matrix multiplier or a transformer. Instead of transforming the object, the ray is coordinated so that tree and hierarchical information about the object is maintained.

이때, 추적할 광선의 생성은 카메라 혹은 눈(eye)로부터 렌더링 될 이미지의 한 픽셀 내에 N개의 샘플을 포함하고, 카메라 렌즈 위의 혹은 카메라의 위치가 광선의 출발점이 된다. 마이크로-픽셀 분리기(320)는 이미지 평면의 한 픽셀을 여러 개의 동일한 면적을 갖는 서브 픽셀로 나누어준다.In this case, the generation of the ray to be traced includes N samples in one pixel of the image to be rendered from the camera or the eye, and the position of the camera on the camera lens or the position of the ray becomes the starting point of the ray. The micro-pixel separator 320 divides one pixel of the image plane into several subpixels having the same area.

광선 계산부(ray calculation)(320)는 마이크로-픽셀 내의 한 점을 샘플링 테이블을 이용하여 확률적 랜덤(random)샘플링을 행하고, 광선의 출발점으로부터 마이크로 픽셀 내에 샘플링된 점과 이어지는 방향으로 광선의 방향 벡터를 결정한다.Ray calculation 320 performs a random random sampling of a point in the micro-pixel using a sampling table, and the direction of the light beam in a direction that is connected to the point sampled in the micro pixel from the starting point of the light ray. Determine the vector.

도 6은 PPE 처리부(202)의 제2차 광선 생성부(RG2)(220)에 대한 상세 블록도이다. FIG. 6 is a detailed block diagram of the secondary ray generation unit RG2 220 of the PPE processing unit 202.

이하, 도 6을 참조하면, 제2차 광선 생성부(220)는 반사광 생성기(RLRG: Reflection Ray Generator)(420), 굴절광 생성기(RRRG: RefRaction Ray Generator)(410), 직접광 생성기(DLRG: Direct Light Ray Generator)(430)로 구성되고, 충돌 정보(Hit Info), 물체의 재질 정보(Ma Info), 광원에 대한 정보(Li Info)로부터 반사광, 굴절광, 직접광을 생성한다. Hereinafter, referring to FIG. 6, the secondary ray generator 220 may include a reflection ray generator (RLRG) 420, a refraction light generator (RRRG) 410, and a direct light generator (DLRG). Direct Light Ray Generator (430), and generates reflected light, refracted light, and direct light from collision information (Hit Info), material information of an object (Ma Info), and information on a light source (Li Info).

즉, 반사광 생성기(420)는 제1차 광선이 물체와 충돌하여 반사되는 반사광을 생성하고, 굴절광 생성기(410)는 제1차 광선이 물체와 충돌하여 굴절되는 굴절광을 생성한다. 또한 직접광 생성기(430) 제1차 광선이 물체와 충돌하는 지점에서 광원으로 향하는 직접광을 생성한다.That is, the reflected light generator 420 generates reflected light in which the primary ray collides with the object and is reflected, and the refractive light generator 410 generates refractive light in which the primary ray is refracted by the object. In addition, the direct light generator 430 generates direct light directed to the light source at the point where the first ray collides with the object.

도 7은 PPE 처리부(202)의 전체 트리 및 계층 탐색부(T.T.T)(230)에 대한 상세 블록도 이다.7 is a detailed block diagram of the entire tree and hierarchy search (T.T.T) 230 of the PPE processing unit 202.

위 도 7을 참조하면, 전체 트리 및 계층 탐색부(230)는 광선-바운딩 볼륨 충돌 처리기(Ray-Box Intersection Test :RBI)(510), 광선-물체 충돌 처리기(Ray-Triangle Intersection Test : RTI)(520) 그리고 비교기(comparator)(530)로 구성된다.Referring to FIG. 7 above, the entire tree and hierarchical search unit 230 includes a Ray-Box Intersection Test (RBI) 510 and a Ray-Triangle Intersection Test (RTI). 520 and a comparator 530.

RBI(510)에서는 장면을 구성하는 계층구조 혹은 트리 구조와 생성된 제1광선과 제2광선 및 계층 구조와 트리구조의 종단노드 내에 존재하는 물체를 입력으로 하고, 광선과 바운딩 볼륨과의 충돌을 처리한다. 즉, 제1광선 및 제2광선과 물체의 계층 구조를 이루는 바운딩 볼륨(여기서는 box라고 가정)이 충돌하는지 검사(S400)하고, 충돌이 일어나면 다음 계층으로 이동하여 계속 바운딩 볼륨을 탐색한다. The RBI 510 inputs an object existing in the hierarchical or tree structure constituting the scene, and the generated first and second light rays and the end node of the hierarchical structure and the tree structure, and collides with the light beam and the bounding volume. Process. That is, it is checked whether a bounding volume (assuming a box here) collides with the first ray and the second ray with the object in the hierarchical structure (S400).

이때, 바운딩 볼륨 내에 이진트리 구조가 있으면 이를 위하여 도 7에 보여지는 바와 같이 2의 동작으로 진입하여, 이진 트리를 탐색하기 위한 비교기(530)로 들어가서 계속 동작하여 최종 종단 노드(leaf node)를 찾는다. 그런 후, 찾아진 종단 노드 내에 존재하는 물체(여기서는 삼각형이라고 가정)와 광선과의 충돌을 RTI(520)에서 검사하며, 광선과 물체와 충돌이 일어나면 충돌 정보(hit info)를 저장한다.At this time, if there is a binary tree structure in the bounding volume, it enters the operation of 2 as shown in FIG. 7, enters the comparator 530 for searching the binary tree, and continues operation to find the final leaf node. . Then, the collision between the object (which is assumed to be a triangle here) and the ray existing in the found end node is examined by the RTI 520, and when the collision with the ray and the object occurs, the hit information is stored.

이때 입력으로는 삼각형 데이터, 트리 혹은 계층 구조 정보(TB Info), 제1차 광선 또는 제2차 광선 또는 제2차 광선에서 생성된 광선들이 입력되는데, 본 발명에서는 특히 트리 혹은 계층 구조 정보를 매 프레임마다 갱신하는 문제점을 해결하기 위하여 RBI(510), RTI(520), 비교기(530)에 광선을 물체의 로컬 좌표로 이동시키는 좌표 변환기(transformer)(515)를 포함하도록 한다.In this case, triangular data, tree or hierarchical structure information (TB Info), rays generated from the primary rays or the secondary rays or the secondary rays are input. In order to solve the problem of updating every frame, the RBI 510, the RTI 520, and the comparator 530 may include a coordinate transformer 515 for moving a ray to a local coordinate of an object.

이에 따라, 강체 운동 즉 회전 및 평행 이동하는 물체에 대한 트리 혹은 계층 구조 정보를 그대로 사용 가능하도록 함으로써, 매 프레임의 트리 혹은 계층 구조 정보를 메인 메모리(208)로부터 다시 읽어올 필요가 없어져 메모리 대역폭을 늘릴 수 있게 된다.As a result, the tree or hierarchical information on the rigid body motion, i.e., the rotating and parallel moving object, can be used as it is, thereby eliminating the need to reload the tree or hierarchical information of each frame from the main memory 208 to reduce the memory bandwidth. You can increase it.

도 8은 충돌 정보(hit Info)를 이용하여 픽셀의 컬러 값을 계산 및 결정하는 쉐이딩 처리기(204)의 상세 블록도 이다.8 is a detailed block diagram of the shading processor 204 that calculates and determines the color value of a pixel using hit info.

이하, 도 8을 참조하면, 본 발명의 쉐이딩 처리기(204)는 디코더(decoder)(610), 명령어 패치부(inspection fetch)(620), 메모리(630), 임시 저장 레지스터(temporaray register)(640)와 명령어에 따른 계산을 위한 연산 유 닛(alithematic unit : ALU)(650)과 SFU(special function unit)(660)로 구성된다. Hereinafter, referring to FIG. 8, the shading processor 204 of the present invention may include a decoder 610, an instruction fetch 620, a memory 630, and a temporary storage register 640. And an arithmetic unit (ALU) 650 and a special function unit (SFU) 660 for calculation according to instructions.

메모리(630)는 전체 트리 및 계층 탐색부(230)에서 출력된 충돌정보를 이용하여 물체의 재질에 따른 쉐이딩 명령어 코드(shade code)를 저장한다. 명령어 패치부(620)는 메모리(630)에 저장되는 쉐이딩 명령어 코드를 가져온다. 이때 쉐이딩 명령어 코드는 픽셀 단위 기반의 컬러 값을 사용자에 의해 선택된 효과에 대응되게 데이터 처리하기 위한 명령어 코드이다.The memory 630 stores the shading instruction code according to the material of the object by using the collision information output from the entire tree and the hierarchical search unit 230. The instruction patch unit 620 may obtain shading instruction codes stored in the memory 630. In this case, the shading command code is a command code for processing data corresponding to an effect selected by the user based on a pixel value.

디코더(610)는 명령어 패치부(620)로부터 읽어 들인 쉐이딩 명령어 코드를 디코딩하여 사용자에 의해 명령된 컬러 구현 효과를 분석한 후, 충돌정보(Hit info)와 광원에 대한 정보(Li info)를 이용하여 사용자에 의해 선택된 효과에 대응되는 컬러 값으로 처리되도록 한다.The decoder 610 decodes the shading instruction code read from the instruction patch unit 620 to analyze the effect of the color implementation commanded by the user, and then uses collision information and information about the light source (Li info). To process the color value corresponding to the effect selected by the user.

임시 저장 레지스터(640)는 쉐이딩 명령어 코드의 디코딩과정에서 발생하는 결과 값을 저장하며, 또한 디코더(610)로부터 분석된 쉐이딩 명령어에 따라 충돌정보와 광원 정보를 이용하여 픽셀의 컬러 값을 계산하는 연산 유닛(650)과 SFU(660)로부터 연산된 픽셀별 중간 컬러 계산값을 임시 저장한다.The temporary storage register 640 stores a result value generated during the decoding of the shading instruction code and calculates a color value of the pixel by using the collision information and the light source information according to the shading instruction analyzed by the decoder 610. The pixel-specific intermediate color calculation values calculated from the unit 650 and the SFU 660 are temporarily stored.

도 9a는 본 발명의 실시 예에 따라 광선 추적 깊이가 5인 경우에 생성된 광선들이 저장되는 버퍼의 종류와 각각 생성된 광선이 물체와 충돌할 경우 충돌 정보가 저장되는 버퍼의 종류 및 개수를 나타낸 예시도 이다. FIG. 9A illustrates the types of buffers in which light rays generated when ray tracing depth is 5 and the types and number of buffers in which collision information is stored when light rays collide with objects according to an embodiment of the present invention. It is an example.

위 도 9a를 참조하면, 픽셀당 제1차 광선(1st ray)은 1개 이상 생성되며, 제2차 광선(2nd ray)은 각각의 제1차 광선에 대하여 1개 이상씩 존재한다. 또한 생성된 광선은 정해진 버퍼에 저장되고, 충돌 정보를 이용하여 제2차 광선과 직접광 광 선이 생성된다. Referring to FIG. 9A, at least one primary ray 1st ray is generated per pixel, and at least one secondary ray 2nd ray exists for each primary ray. In addition, the generated light beam is stored in a predetermined buffer, and the secondary light beam and the direct light beam are generated using the collision information.

여기에서, Rk는 제1차 광선, 제2차 광선 및 직접광으로부터 들어온 컬러 값의 누적된 픽셀의 컬러 값을 의미하고, Ra b는 광선 추적 깊이에 따른 k번째 광선의 컬러 값을 의미한다. 제1차 광선이 n개 발생하였다면 k값은 0에서부터 n-1까지 변한다. 이때, a 값은 메모리 블록의 인덱스(index)를 의미하고 b 값은 광선에 대한 인덱스를 의미한다. Here, R k means the color value of the accumulated pixel of the color value from the primary ray, the secondary ray and the direct light, and R a b means the color value of the k th ray according to the ray tracing depth. . If n primary rays occur, the value of k varies from 0 to n-1. In this case, the value a means an index of the memory block, and the value b means an index with respect to the ray.

도 9b는 도 9a에 도시되는 버퍼에 저장되는 충돌 정보에 따라 픽셀의 컬러 값을 산출하기 위한 렌더링 방정식의 예를 도시한 것이다.FIG. 9B illustrates an example of a rendering equation for calculating a color value of a pixel according to collision information stored in a buffer shown in FIG. 9A.

이하, 도 9b를 참조하면, La bc는 충돌점에서 받는 광원의 빛의 량과 컬러 값을 의미하고, a는 메모리 블록의 인덱스이고, b는 직접광의 인덱스, c는 광원이 인덱스이다. 또한 fa bc는 BSDF(bidirectional scattering distribution function)이고 a, b, c등은 도 9a에서와 같이 메모리 블록의 인덱스를 나타낸다.Hereinafter, referring to FIG. 9B, L a bc denotes an amount of light and a color value of a light source received at a collision point, a is an index of a memory block, b is an index of direct light, and c is a light source index. In addition, f a bc is a bidirectional scattering distribution function (BSDF) and a, b, c, etc. represent the index of the memory block as shown in Figure 9a.

도 10은 본 발명의 실시 예에 따라 임의의 장면이 주어졌을 때 바운딩 볼륨에 대한 계층 구조와 바운딩 볼륨 내에 이진트리 생성 예를 도시한 것이다.FIG. 10 illustrates a hierarchical structure for bounding volumes and an example of generating a binary tree in a bounding volume when a given scene is given according to an embodiment of the present invention.

이하, 도 10을 참조하면, 장면1(700)에서 메쉬에 따라 독립적으로 바운딩 박스(여기서는 바운딩 박스로 예를 듦)가 b1, b2, b3로 생성되고, b1은 다시 b11, b12, b13, b14, b15 등으로 구성되며, b11∼b15 각각의 내부는 이진 트리(혹은 kd-tree)로 구성된다. Hereinafter, referring to FIG. 10, in scene 1 700, a bounding box (in this case, an example of a bounding box) according to a mesh is independently generated as b1, b2, and b3, and b1 is again b11, b12, b13, and b14. , b15 and the like, and each of b11 to b15 is composed of a binary tree (or kd-tree).

이때, 장면2(702)에서는 장면1(700)에 비하여 b1은 크기 및 위치가 변하였고, b2는 회전이 변하였으며, b3은 모양이 변한 것을 알 수 있다. 또한 b11∼b15는 회전 및 위치만 변한 것을 알 수 있다. 이러한 경우 장면의 계층 구조는 장면2(702)의 계층 구조 및 트리구조 중에서 참조번호 (710)부분은 장면1(700)과 비교하여 다른 점이 없기 때문에 재생성하지 않고 재활용할 수 있다. 그러나, 바운딩 볼륨의 크기가 변하거나 메쉬의 변형이 생기는 물체(720)의 경우 바운딩 박스의 내부를 갱신하여 주어야한다. In this case, it can be seen that in scene 2 702, b1 has changed size and position, b2 has changed rotation, and b3 has changed shape compared to scene 1 700. In addition, it turns out that b11-b15 changed only rotation and a position. In this case, the hierarchical structure of the scene may be recycled without regeneration because the reference numeral 710 of the hierarchical structure and the tree structure of the scene 2 702 is different from the scene 1 700. However, in the case of the object 720 in which the size of the bounding volume is changed or the mesh is deformed, the inside of the bounding box must be updated.

도 11은 광선-바운딩 볼륨 충돌 처리기(RBI)(510)의 세부 구조를 도시한 블록도 이고, 도 12는 광선-물체 충돌 처리기(RTI)(520)의 세부 구조를 도시한 블록도 이다. FIG. 11 is a block diagram showing the detailed structure of the ray-bound volume collision handler (RBI) 510, and FIG. 12 is a block diagram showing the detailed structure of the ray-object collision handler (RTI) 520. As shown in FIG.

이하, 도 11 및 도 12를 참조하면, 본 발명에선 s각 충돌 처리기(510, 520)의 입력단에 좌표 변환기(515)를 포함하고, 출력단에 좌표 역변환기(516)를 포함하고 있다. 따라서, 바운딩 볼륨 및 트리내의 물체와 광선과의 충돌 검사를 하기 전 광선을 좌표 변환기(515)에 의해 물체의 좌표계(로컬좌표계)로 변환한 다음, 충돌 검사(intersection testing)(517, 518)를 수행하고, 출력된 결과의 충돌 정보(hit Info)에 있는 노멀 벡터 및 충돌점 등은 좌표 역변환기(516)에 의해 역좌표 변환함으로써 물체의 회전 및 이동에 대하여 트리 및 계층 구조를 변화시키지 않도록 한다.Hereinafter, referring to FIGS. 11 and 12, the present invention includes a coordinate converter 515 at an input terminal of the s-angle collision processors 510 and 520, and a coordinate inverse transformer 516 at an output terminal. Therefore, the beam is converted to the object's coordinate system (local coordinate system) by the coordinate converter 515 before the collision checking between the bounding volume and the object and the ray in the tree, and then collision testing (517, 518) is performed. The normal vector and the collision point in the hit information of the output result are inverse coordinate transformed by the coordinate inverse transformer 516 so that the tree and the hierarchical structure are not changed with respect to the rotation and movement of the object. .

이에 따라 물체의 회전 및 이동에 대하여 트리 및 계층 구조를 갱신할 필요가 없어 메인 메모리로부터 계층 구조 및 트리 구조를 다시 읽어올 필요가 없게 되 어 메모리 대역폭을 늘릴 수 있게 되는 것이다. As a result, the tree and the hierarchical structure do not need to be updated for the rotation and movement of the object, thereby eliminating the need to reload the hierarchical structure and the tree structure from the main memory, thereby increasing the memory bandwidth.

한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.

도 1은 종래 광선이 물체와 충돌하여 물체 표면에서 제 2차 광선이 생성되는 과정을 보여주는 개념도,1 is a conceptual diagram illustrating a process in which a conventional ray collides with an object to generate a second ray on an object surface;

도 2는 본 발명에 따른 PPE 기반 광선 추적 렌더링 장치 예시도,2 is an exemplary diagram of a PPE-based ray tracing rendering apparatus according to the present invention;

도 3은 본 발명에 따른 PPE 기반 광선 추적 장치의 전체 블록 구성도,3 is a block diagram of an entire PPE-based ray tracing apparatus according to the present invention;

도 4는 본 발명에 따른 PPE의 상세 블록 구성도,4 is a detailed block diagram of a PPE according to the present invention;

도 5는 도 3에서의 RG1(first ray generation)의 블록 구성도,FIG. 5 is a block diagram of RG1 (first ray generation) in FIG. 3;

도 6은 도 3에서의 RG2(second ray generation) 블록 구성도,FIG. 6 is a block diagram of a second ray generation (RG2) block in FIG. 3;

도 7은 도 3에서의 TTT(total tree traversal) 블록 구성도,FIG. 7 is a block diagram illustrating a total tree traversal (TTT) block in FIG. 3;

도 8은 도 3에서의 쉐이딩 처리기의 상세 블록 구성도,8 is a detailed block diagram of a shading processor in FIG. 3;

도 9a는 본 발명에 따른 계층적 캐시의 구조도,9A is a structural diagram of a hierarchical cache according to the present invention;

도 9b는 도 9a의 렌더링 방정식 예시도,9B is an exemplary view of the rendering equation of FIG. 9A;

도 10은 본 발명에 따른 두 장면에서의 트리 구조 생성 및 변화 예시도,10 is a diagram illustrating a tree structure generation and change in two scenes according to the present invention;

도 11은 본 발명에 따른 이동 및 회전에 재생성하지 않은 트리 구조에 대한 광선과 박스간에 충돌 테스트 블록도,11 is a collision test block diagram between a ray and a box for a tree structure not regenerated in movement and rotation in accordance with the present invention;

도 12는 본 발명에 따른 이동 및 회전에 재생성하지 않은 트리 구조에 대한 광선과 삼각형간에 충돌 테스트 블록도.12 is a collision test block diagram between light and triangle for a tree structure not regenerated in movement and rotation in accordance with the present invention.

<도면의 주요 부호에 대한 간략한 설명><Brief description of the major symbols in the drawings>

201 : 광선 추적 장치 202 : PPE 처리부201: ray tracing device 202: PPE processing unit

203 : 계층적 캐시 메모리 204 : 쉐이딩 처리기203: hierarchical cache memory 204: shading handler

205 : 내부 공유 메모리 206 : 그래픽 메모리205: internal shared memory 206: graphics memory

207 : 디스플레이 장치 220 : 제2차 광선 생성부207: display device 220: secondary ray generating unit

210 : 제1차 광선 생성부 230 : 전체 트리 탐색부210: first ray generating unit 230: whole tree search unit

Claims (26)

렌더링이 수행될 이미지 데이터를 입력받아 저장하는 내부 공유 메모리와,An internal shared memory that receives and stores image data to be rendered; 상기 이미지 데이터에 대하여 픽셀별 병렬로 광선 추적을 행하는 픽셀 처리 요소(PPE) 처리부와,A pixel processing element (PPE) processing unit for performing ray tracing in parallel on a pixel basis with respect to the image data; 상기 광선 추적 결과에 따라 생성되는 각 픽셀의 컬러 값을 누적 계산하여 픽셀별 최종 컬러 값을 결정하는 쉐이딩 처리기Shading processor for determining the final color value for each pixel by cumulative calculation of the color value of each pixel generated according to the ray trace result 를 포함하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray tracking device based on a pixel-by-pixel processing element comprising a. 제 1 항에 있어서,The method of claim 1, 상기 내부 공유 메모리로부터 입력되는 이미지 데이터 중 사용빈도가 많은 이미지 데이터를 저장하여 상기 픽셀 처리 요소 처리부로 제공하는 계층적 캐시를 더 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.And a hierarchical cache for storing image data with a high frequency of use among the image data input from the internal shared memory and providing the image data to the pixel processing element processor. 제 2 항에 있어서, The method of claim 2, 상기 계층적 캐시에 저장되는 입력 데이터는,Input data stored in the hierarchical cache, 매 프레임 장면을 구성하는 물체, 장면을 구성하는 계층 구조 및 트리구조, 광선 샘플링을 위한 샘플링 테이블, 상기 물체의 재질 정보, 광원 정보 또는 카메 라정보를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Object-based pixel-based processing element, characterized in that it comprises an object constituting each frame scene, a hierarchical structure and a tree structure constituting the scene, a sampling table for ray sampling, material information of the object, light source information or camera information Ray tracing device. 제 1 항에 있어서,The method of claim 1, 상기 광선 추적 장치는,The ray tracing device, 상기 쉐이딩 처리기에서 결정된 픽셀별 컬러값을 저장하는 그래픽 메모리와,A graphics memory for storing pixel values determined by the shading processor; 상기 그래픽 메모리에 저장된 픽셀별 컬러값을 표시하는 디스플레이 장치를 더 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.And a display device for displaying the color value of each pixel stored in the graphic memory. 제 3 항에 있어서, The method of claim 3, wherein 상기 픽셀 처리 요소 처리부는,The pixel processing element processing unit, 상기 계층적 캐시로부터 입력된 샘플 테이블과 카메라 정보로부터 제1차 광선을 생성하는 제1차 광선 생성부와, A first ray generator for generating a first ray from a sample table and camera information input from the hierarchical cache; 제1차 광선 생성부에서 출력된 제1광선과 장면 내에 물체와 충돌을 검사하는 전체 트리 및 계층 탐색부(total tree traversal)와,A total tree traversal for checking collisions with objects in the scene and the first light beams output from the primary light beam generation unit, 상기 전체 트리 및 계층 탐색부에서 결정된 충돌 정보와 충돌한 물체의 재질을 이용하여 상기 제1차 광선에 의한 반사광, 굴절광 및 직접광을 제2차 광선으로 생성하는 제2차 광선 생성부A secondary ray generator which generates reflected light, refracted light, and direct light by the primary ray as a secondary ray by using a material of an object collided with collision information determined by the entire tree and hierarchical searcher; 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray-trace apparatus based on a pixel-by-pixel processing element comprising a. 제 5 항에 있어서, The method of claim 5, wherein 상기 제1차 광선 생성부는,The first ray generating unit, 카메라 정보와, 샘플링 테이블을 이용하여 이미지 평면의 한 픽셀을 여러 개의 동일한 면적을 갖는 마이크로 픽셀로 나누는 마이크로-픽셀 분리기와,A micro-pixel splitter that uses camera information and a sampling table to divide a pixel in an image plane into multiple pixels having the same area, 상기 마이크로 픽셀 내의 한 점을 상기 샘플링 테이블을 이용하여 확률적 랜덤 샘플링을 행하고, 광선의 출발점으로부터 상기 마이크로 픽셀 내에 샘플링된 점과 이어지는 방향으로 광선의 방향 벡터를 결정하는 광선 계산부A ray computation unit that performs random random sampling of a point in the micropixel by using the sampling table and determines a direction vector of the ray in a direction subsequent to a point sampled in the micropixel from a starting point of the ray. 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray-trace apparatus based on a pixel-by-pixel processing element comprising a. 제 5 항에 있어서,The method of claim 5, wherein 상기 제2차 광선 생성부는,The second ray generating unit, 상기 제1차 광선이 상기 물체와 충돌하여 반사되는 반사광을 생성하는 반사광 생성기와,A reflected light generator for generating reflected light reflected by the first ray colliding with the object; 상기 제1차 광선이 상기 물체와 충돌하여 굴절되는 굴절광을 생성하는 굴절 광 생성기와,A refractive light generator for generating refractive light in which the primary ray collides with the object and is refracted; 상기 제1차 광선이 상기 물체와 충돌하는 지점에서 광원으로 향하는 직접광을 생성하는 직접광 생성기A direct light generator for generating direct light directed to a light source at a point where the primary ray collides with the object 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray-trace apparatus based on a pixel-by-pixel processing element comprising a. 제 5 항에 있어서, The method of claim 5, wherein 상기 전체 트리 및 계층 탐색부는,The entire tree and hierarchical search unit, 상기 제1차 광선과 상기 물체의 계층 구조를 이루는 바운딩 볼륨과의 충돌을 검사하는 광선-바운딩 볼륨 충돌 처리기(RBI)와,A ray-bounding volume collision processor (RBI) for inspecting collisions between the primary rays and a bounding volume forming a hierarchical structure of the object; 상기 제1차 광선과 상기 물체와의 충돌을 검사하여 충돌 정보를 저장하는 광선-물체 충돌 처리기(RTI)와,A ray-object collision processor (RTI) for checking collision between the primary ray and the object and storing collision information; 상기 제1차 광선과 상기 바운딩 볼륨간 충돌시 상기 제1/제2차 광선에 대한 이진 트리 탐색을 수행하여 상기 바운딩 볼륨의 최종 종단 노드에서의 충돌인지를 판단하는 비교기A comparator for determining whether the collision is at the last end node of the bounding volume by performing a binary tree search for the first / secondary beam when the primary ray collides with the bounding volume 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray-trace apparatus based on a pixel-by-pixel processing element comprising a. 제 8 항에 있어서,The method of claim 8, 상기 광선-물체 충돌 처리기는, The ray-object collision handler, 상기 비교기로부터 상기 제1차 광선과 상기 바운딩 볼륨간 최종 종단 노드에서의 충돌 정보를 입력받아 상기 광선과 물체간 충돌을 검사하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.The ray tracing device based on the pixel-by-pixel processing element, characterized in that the collision information between the first ray and the bounding volume received from the comparator at the last end node receives the collision information. 제 8 항에 있어서,The method of claim 8, 상기 광선-바운딩 볼륨 충돌 처리기와, 광선-물체 충돌 처리기 및 비교기는,The beam-bounding volume collision handler, the beam-object collision handler and the comparator, 상기 제1차 광선을 상기 광선과 충돌 검사할 바운딩 볼륨의 로컬 좌표로 변환하는 좌표 변환기를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.And a coordinate converter for converting the first ray into local coordinates of a bounding volume to be collision checked with the ray. 제 10 항에 있어서, The method of claim 10, 상기 광선-바운딩 볼륨 충돌 처리기는,The ray-bound volume collision handler is, 상기 좌표 변환기를 통해 바운딩 볼륨의 로컬 좌표로 변환한 제1/제2차 광선과 바운딩 볼륨간 충돌을 검사한 후, 상기 바운딩 볼륨에 대한 트리 및 계층 구조가 그대로 유지되도록 해당 광선에 대해 좌표 역변환을 수행하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.After checking the collision between the bounding volume and the first / secondary ray transformed into the local coordinates of the bounding volume through the coordinate converter, the coordinate inverse transformation is performed for the corresponding ray so that the tree and hierarchy of the bounding volume are maintained. Ray tracing device based on a pixel-by-pixel processing element, characterized in that performing. 제 10 항에 있어서, The method of claim 10, 상기 광선-물체 충돌 처리기는,The ray-object collision handler, 상기 좌표 변환기를 통해 물체의 로컬 좌표로 변환한 제1/제2차 광선과 상기 물체간 충돌을 검사한 후, 상기 물체에 대한 트리 및 계층 구조가 그대로 유지되도록 해당 광선에 대해 좌표 역변환을 수행하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.After checking the collision between the object and the first / second ray converted to the local coordinates of the object through the coordinate converter, performing coordinate inverse transformation for the ray so that the tree and hierarchy of the object are maintained Ray tracing device based on a pixel-by-pixel processing element. 제 5 항에 있어서, The method of claim 5, wherein 상기 쉐이딩 처리기는,The shading processor, 상기 전체 트리 및 계층 탐색부에서 출력된 충돌정보를 이용하여 물체의 재질에 따른 쉐이딩 명령어 코드를 저장하는 메모리와,A memory for storing shading instruction codes according to materials of objects by using collision information output from the entire tree and hierarchical search unit; 쉐이딩 명령어 코드를 가져오는 명령어 패치부와,Instruction patch section to get the shading instruction code, 상기 쉐이딩 명령어 코드를 디코딩하는 디코더와,A decoder for decoding the shading instruction code; 상기 쉐이딩 명령어 코드의 디코딩과정에서 발생하는 결과값을 저장하는 임시 저장 레지스터와,A temporary storage register for storing a result value generated during the decoding of the shading instruction code; 광원에 대한 정보를 입력받아 상기 쉐이딩 명령어에 따른 쉐이딩 계산을 수행하여 픽셀별 컬러 값을 연산하는 연산 유닛(ALU)과, An arithmetic unit (ALU) that receives information about a light source and calculates a color value for each pixel by performing shading calculation according to the shading command; 상기 쉐이딩 계산에 사용되는 특별 계산 로그, 삼각함수 또는 파워를 계산하는 SFU 유닛과,An SFU unit for calculating a special calculation log, trigonometric function or power used for the shading calculation, 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray-trace apparatus based on a pixel-by-pixel processing element comprising a. 제 13 항에 있어서,The method of claim 13, 상기 연산 유닛은, The computing unit, 상기 광원 정보와 충돌 정보를 통해 픽셀별 제1/제2차 광선 및 직접광으로부터 들어온 컬러값을 계산하고, 이를 누적하여 각 픽셀의 컬러값을 결정하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.Ray tracing based on a pixel-by-pixel processing element characterized by calculating color values from first and second light rays and direct light for each pixel based on the light source information and collision information, and determining the color values of each pixel by accumulating them. Device. 제 14 항에 있어서,The method of claim 14, 상기 픽셀별 제1차 광선은, 1개 이상 생성되고, 제2차 광선은 각각의 제1차 광선에 대하여 1개 이상 생성되는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.And at least one primary ray for each pixel, and at least one secondary ray for each primary ray. 제 15 항에 있어서,The method of claim 15, 상기 제1차 광선의 수가 N개인 경우, 광선 탐색깊이 I에서 상기 제1차 광선 또는 제2차 광선에 의하여 계산되는 충돌정보의 개수는 2i-1*N인 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 장치.If the number of the first ray is N, the number of collision information calculated by the first ray or the second ray at the ray search depth I is 2 i-1 * N. Ray tracer based device. 픽셀 단위 처리 요소 기반의 광선 추적 방법으로서,A ray tracing method based on pixel-by-pixel processing elements, (a)매 프레임 단위로 렌더링 수행될 이미지 데이터를 입력받는 단계와,(a) receiving image data to be rendered on a frame-by-frame basis; (b)상기 입력 데이터 중 사용빈도가 많은 데이터를 계층적 캐시에 저장하는 단계와,(b) storing frequently used data among the input data in a hierarchical cache; (c)상기 계층적 캐시에 저장된 매 프레임 단위의 이미지 데이터에 대하여 픽셀별 병렬로 광선 추적을 수행하는 단계와,(c) performing ray tracing in parallel on a pixel-by-pixel basis for image data of every frame unit stored in the hierarchical cache; (d)상기 광선 추적 결과에 따라 픽셀별 제1/제2차 광선 및 직접광으로부터 들어온 컬러값을 계산하고, 이를 누적하여 각 픽셀의 컬러값을 산출하는 단계(d) calculating color values from the first and second rays and the direct light of each pixel according to the ray tracing result, and accumulating them to calculate color values of each pixel; 를 포함하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 17 항에 있어서, The method of claim 17, 상기 (b)단계에서, 상기 계층적 캐시에 저장되는 입력 데이터는,In the step (b), the input data stored in the hierarchical cache, 매 프레임 장면을 구성하는 물체, 장면을 구성하는 계층 구조 및 트리구조, 광선 샘플링을 위한 샘플링 테이블, 상기 물체의 재질 정보, 광원 정보 또는 카메라정보를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Rays based on pixel-by-pixel processing elements comprising objects constituting every frame scene, hierarchical and tree structures constituting the scene, sampling tables for ray sampling, material information of the objects, light source information or camera information Tracking method. 제 17 항에 있어서, The method of claim 17, 상기 (c)단계는, Step (c) is, (c1)상기 계층적 캐시로부터 입력된 샘플 테이블과 카메라 정보로부터 이미지 데이터 픽셀별 제1차 광선을 생성하는 단계와, (c1) generating a first ray for each image data pixel from a sample table and camera information input from the hierarchical cache; (c2)상기 제1차 광선이 장면 내에 물체와 충돌하는지를 검사하는 단계와,(c2) checking whether the primary ray collides with an object in the scene; (c3)상기 제1차 광선과 상기 물체의 충돌 시 상기 제1광선에 의한 제2차 광선으로 반사광, 굴절광 및 직접광을 생성하는 단계(c3) generating reflected light, refracted light, and direct light as a secondary light beam caused by the first light beam when the primary light beam collides with the object; 를 포함하는 것을 특징으로 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 19 항에 있어서, The method of claim 19, 상기 (c1)단계는, Step (c1), (c11)카메라 정보와, 샘플링 테이블을 이용하여 이미지 평면의 한 픽셀을 여러 개의 동일한 면적을 갖는 마이크로 픽셀로 나누는 단계와,(c11) dividing a pixel of the image plane into several pixels having the same area by using camera information and a sampling table; (c12)상기 마이크로 픽셀 내의 한 점을 상기 샘플링 테이블을 이용하여 확률 적 랜덤 샘플링을 행하고, 제1차 광선의 출발점으로부터 상기 마이크로 픽셀 내에 샘플링된 점과 이어지는 방향으로 제1차 광선의 방향 벡터를 결정하는 단계(c12) Stochastic random sampling is performed on the point in the micropixel using the sampling table, and the direction vector of the first ray is determined from the starting point of the first ray to the point sampled in the micropixel. Steps to 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 19 항에 있어서,The method of claim 19, 상기 (c2)단계는,Step (c2), (c21)상기 제1차 광선과 상기 물체의 계층 구조를 이루는 바운딩 볼륨과의 충돌을 검사하는 단계와,(c21) checking a collision between the primary ray and a bounding volume forming a hierarchical structure of the object; (c22)상기 제1차 광선과 상기 물체와의 충돌을 검사하여 충돌 정보를 저장하는 단계와,(c22) checking collision between the primary ray and the object and storing collision information; (c23)상기 제1차 광선과 상기 바운딩 볼륨간 충돌시 상기 제1차 광선에 대한 이진 트리 탐색을 수행하여 상기 바운딩 볼륨의 최종 종단 노드에서의 충돌인지를 판단하여 상기 물체와의 충돌을 검사하는 단계(c23) when collision between the primary ray and the bounding volume is performed, a binary tree search is performed on the primary ray to determine whether the collision is at a final end node of the bounding volume, and thus collision with the object is examined. step 를 포함하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 19 항에 있어서,The method of claim 19, 상기 (c3)단계는,Step (c3), (c31)상기 제1차 광선이 상기 물체와 충돌하여 반사되는 반사광을 생성하는 단계와,(c31) generating reflected light in which the first ray collides with the object and is reflected; (c32)상기 제1차 광선이 상기 물체와 충돌하여 굴절되는 굴절광을 생성하는 단계와,(c32) generating refractive light in which the first ray collides with the object and is refracted; (c33)상기 제1차 광선이 상기 물체와 충돌하는 지점에서 광원으로 향하는 직접광을 생성하는 단계(c33) generating direct light directed to a light source at the point where the first ray collides with the object 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 19 항에 있어서,The method of claim 19, 상기 (d)단계는,In step (d), (d1)상기 충돌정보를 이용하여 물체의 재질에 따른 쉐이딩 명령어 코드를 읽어들이는 단계와,(d1) reading the shading instruction code according to the material of the object by using the collision information; (d2)상기 쉐이딩 명령어 코드를 디코딩하는 단계와,(d2) decoding the shading instruction code; (d3)광원에 대한 정보를 입력받아 상기 쉐이딩 명령어에 따른 쉐이딩 계산을 수행하여 픽셀별 컬러 값을 연산하는 단계(d3) calculating color values for each pixel by receiving information on a light source and performing shading calculation according to the shading command; 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 23 항에 있어서,The method of claim 23, 상기 (d3)단계는,Step (d3), (d31)상기 광원 정보와 충돌 정보를 통해 픽셀별 제1/제2차 광선 및 직접광으로부터 들어온 컬러값을 계산하는 단계와,(d31) calculating color values from the first / second order light and the direct light for each pixel based on the light source information and the collision information; (d32)상기 광선에 따라 계산된 컬러값을 누적하여 각 픽셀의 컬러값을 결정하는 단계(d32) determining a color value of each pixel by accumulating the color values calculated according to the light rays; 를 포함하는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.Ray tracing method based on a pixel-by-pixel processing element comprising a. 제 24 항에 있어서,The method of claim 24, 상기 (d31)단계에서, 상기 픽셀별 제1차 광선은, 1개 이상 생성되고, 제2차 광선은 각각의 제1차 광선에 대하여 1개 이상 생성되는 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.In the step (d31), at least one primary ray for each pixel is generated, and at least one secondary ray is generated for each primary ray. Ray tracing method. 제 25 항에 있어서,The method of claim 25, 상기 제1차 광선의 수가 N개인 경우, 광선 탐색깊이 I에서 상기 제1차 광선 또는 제2차 광선에 의하여 계산되는 충돌정보의 개수는 2i-1*N인 것을 특징으로 하는 픽셀 단위 처리 요소 기반의 광선 추적 방법.If the number of the first ray is N, the number of collision information calculated by the first ray or the second ray at the ray search depth I is 2 i-1 * N. Ray tracing method based.
KR1020070132853A 2007-12-17 2007-12-17 Ray tracing device based on pixel processing element and method thereof KR100924122B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070132853A KR100924122B1 (en) 2007-12-17 2007-12-17 Ray tracing device based on pixel processing element and method thereof
US12/314,465 US20090153556A1 (en) 2007-12-17 2008-12-11 Ray tracing device based on a pixel processing element and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132853A KR100924122B1 (en) 2007-12-17 2007-12-17 Ray tracing device based on pixel processing element and method thereof

Publications (2)

Publication Number Publication Date
KR20090065353A true KR20090065353A (en) 2009-06-22
KR100924122B1 KR100924122B1 (en) 2009-10-29

Family

ID=40752596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132853A KR100924122B1 (en) 2007-12-17 2007-12-17 Ray tracing device based on pixel processing element and method thereof

Country Status (2)

Country Link
US (1) US20090153556A1 (en)
KR (1) KR100924122B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110136059A (en) * 2010-06-14 2011-12-21 삼성전자주식회사 Method and apparatus for ray tracing in three-dimension image system
US8836695B2 (en) 2010-02-01 2014-09-16 Samsung Electronics Co., Ltd. Image processing apparatus and method of rendering using a ray tracing scheme
US8963920B2 (en) 2010-09-28 2015-02-24 Samsung Electronics Co., Ltd. Image processing apparatus and method
US8970580B2 (en) 2010-02-12 2015-03-03 Samsung Electronics Co., Ltd. Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics
KR20150045817A (en) * 2013-10-21 2015-04-29 삼성전자주식회사 Method and apparatus for performing ray tracing for rendering a frame
US9761039B2 (en) 2014-07-22 2017-09-12 Samsung Electronics Co., Ltd. Method and apparatus for hybrid rendering
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290882B2 (en) * 2008-10-09 2012-10-16 Microsoft Corporation Evaluating decision trees on a GPU
US9390539B2 (en) * 2009-11-04 2016-07-12 Intel Corporation Performing parallel shading operations
US20110283059A1 (en) * 2010-05-11 2011-11-17 Progeniq Pte Ltd Techniques for accelerating computations using field programmable gate array processors
DE112011105927T5 (en) * 2011-12-07 2014-09-11 Intel Corporation Graphic rendering method for autostereoscopic three-dimensional display
KR101993835B1 (en) 2013-02-25 2019-06-27 삼성전자주식회사 Method and apparatus for adaptive stack management
US9947132B2 (en) * 2013-03-15 2018-04-17 Nvidia Corporation Material representation data structure and method of representing a material for digital image synthesis
US9519992B2 (en) * 2013-08-12 2016-12-13 Samsung Electronics Co., Ltd. Apparatus and method for processing image
KR102176511B1 (en) * 2013-08-12 2020-11-09 삼성전자주식회사 Apparatus and Method for processing image
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
KR102166426B1 (en) 2014-07-07 2020-10-16 삼성전자주식회사 Rendering system and rendering method thereof
KR102370617B1 (en) * 2015-04-23 2022-03-04 삼성전자주식회사 Method and apparatus for processing a image by performing adaptive sampling
WO2017039027A1 (en) * 2015-08-31 2017-03-09 Siliconarts Inc. Method of processing global illumination and apparatus performing the same
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US10636201B2 (en) * 2017-05-05 2020-04-28 Disney Enterprises, Inc. Real-time rendering with compressed animated light fields
CN112116693B (en) * 2020-08-20 2023-09-15 中山大学 CPU-based biomolecule visual ray tracing rendering method
CN113888704B (en) * 2021-12-01 2022-03-04 中国电子科技集团公司第二十八研究所 Low-delay interaction-oriented micro scene hierarchical time-sharing drawing optimization method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
US6014143A (en) * 1997-05-30 2000-01-11 Hewlett-Packard Company Ray transform method for a fast perspective view volume rendering
US8411088B2 (en) * 2000-06-19 2013-04-02 Nvidia Corporation Accelerated ray tracing
US7432935B2 (en) * 2002-11-19 2008-10-07 Mental Images Gmbh Image synthesis methods and systems for generating sample points in a graphics scene
JP2003187264A (en) 2001-12-17 2003-07-04 Denso Corp Image display device
JP4467267B2 (en) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント Image processing method, image processing apparatus, and image processing system
DE102004007835A1 (en) * 2004-02-17 2005-09-15 Universität des Saarlandes Device for displaying dynamic complex scenes
US7570267B2 (en) * 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US20060098009A1 (en) * 2004-10-28 2006-05-11 Miguel Zuniga Method and apparatus for ray and range queries using wide object isolation techniques
US7289119B2 (en) * 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US8884959B2 (en) * 2005-06-03 2014-11-11 Siemens Aktiengesellschaft Gradient free shading for volume rendering using shadow information
KR100791411B1 (en) 2006-12-07 2008-01-07 한국전자통신연구원 Apparatus and method for processing graphics
US8355021B2 (en) * 2007-05-17 2013-01-15 Siemens Aktiengesellschaft Fused volume rendering
US8063902B2 (en) * 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8836695B2 (en) 2010-02-01 2014-09-16 Samsung Electronics Co., Ltd. Image processing apparatus and method of rendering using a ray tracing scheme
US8970580B2 (en) 2010-02-12 2015-03-03 Samsung Electronics Co., Ltd. Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics
KR20110136059A (en) * 2010-06-14 2011-12-21 삼성전자주식회사 Method and apparatus for ray tracing in three-dimension image system
US8963920B2 (en) 2010-09-28 2015-02-24 Samsung Electronics Co., Ltd. Image processing apparatus and method
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing
KR20150045817A (en) * 2013-10-21 2015-04-29 삼성전자주식회사 Method and apparatus for performing ray tracing for rendering a frame
US9619921B2 (en) 2013-10-21 2017-04-11 Samsung Electronics Co., Ltd. Method and apparatus for performing ray tracing for rendering image
US9761039B2 (en) 2014-07-22 2017-09-12 Samsung Electronics Co., Ltd. Method and apparatus for hybrid rendering

Also Published As

Publication number Publication date
KR100924122B1 (en) 2009-10-29
US20090153556A1 (en) 2009-06-18

Similar Documents

Publication Publication Date Title
KR100924122B1 (en) Ray tracing device based on pixel processing element and method thereof
US11069124B2 (en) Systems and methods for reducing rendering latency
US9710954B2 (en) Processor with ray test instructions performed by special purpose units
US11138782B2 (en) Systems and methods for rendering optical distortion effects
US11302056B2 (en) Techniques for traversing data employed in ray tracing
US8018453B2 (en) Deferred acceleration data structure optimization for improved performance
JP4954005B2 (en) Method for invalidating data in a memory cache, computer readable medium and image processing system
CN110827387A (en) Method for traversing intersection point by continuous hierarchical bounding box without shader intervention
CN110766778B (en) Method and system for performing parallel path spatial filtering using hashing
Woop et al. B-kd trees for hardware accelerated ray tracing of dynamic scenes
CN113808241B (en) Hardware acceleration of ray traced primitives sharing vertices
CN111383161A (en) Unified architecture for BVH construction based on hardware pre-ordering and parallel reconfigurable cluster array
Meister et al. Parallel locally-ordered clustering for bounding volume hierarchy construction
US10553012B2 (en) Systems and methods for rendering foveated effects
US11373358B2 (en) Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry
CN112041894B (en) Enhancing realism of a scene involving a water surface during rendering
US8102389B2 (en) Box casting using an integrated acceleration data structure
KR100939212B1 (en) Method and system for parallel?ray tracing by using ray set
Hu et al. GPU accelerated fast multipole methods for vortex particle simulation
Garrett et al. Gpu-accelerated descriptor extraction process for 3d registration in augmented reality
Mensmann et al. Accelerating Volume Raycasting using Occlusion Frustums.
Torres et al. Ray Casting using a Roped BVH with CUDA
Barboza et al. GPU-based data structure for a parallel ray tracing illumination algorithm
CN110827385B (en) Query-specific behavior modification for tree traversal
US20230351667A1 (en) Method and apparatus for performing high speed parallel locally order clustering for a bounding volume hierarchy

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130923

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee