JP2017517806A - Rendering system and method for ray generation - Google Patents

Rendering system and method for ray generation Download PDF

Info

Publication number
JP2017517806A
JP2017517806A JP2016566233A JP2016566233A JP2017517806A JP 2017517806 A JP2017517806 A JP 2017517806A JP 2016566233 A JP2016566233 A JP 2016566233A JP 2016566233 A JP2016566233 A JP 2016566233A JP 2017517806 A JP2017517806 A JP 2017517806A
Authority
JP
Japan
Prior art keywords
ray
information
memory
shadow
rendering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016566233A
Other languages
Japanese (ja)
Other versions
JP6665112B2 (en
Inventor
キョン−ス・キム
ジェ−ウン・イ
イン−サン・チョ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority claimed from PCT/KR2015/003942 external-priority patent/WO2015167159A1/en
Publication of JP2017517806A publication Critical patent/JP2017517806A/en
Application granted granted Critical
Publication of JP6665112B2 publication Critical patent/JP6665112B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation

Landscapes

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

Abstract

レンダリングシステム及びそのレイ生成方法が開示される。本発明のレンダリングシステムのレイ処理実行方法によると、イメージをレンダリング(render)するための第1レイ(Ray)を生成するステップと、前記第1レイが少なくとも1つのセカンダリレイを生成することができるか否かを判断するステップと、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断された場合、前記第1レイに関する情報をメモリに保存するステップと、前記メモリに保存された前記第1レイに関する情報に基づいて前記少なくとも1つのセカンダリレイを生成するステップとを含む。A rendering system and its ray generation method are disclosed. According to the ray processing execution method of the rendering system of the present invention, a step of generating a first ray for rendering an image, and the first ray can generate at least one secondary ray. Determining whether the first ray can generate the at least one secondary ray, storing information about the first ray in a memory, and saving in the memory Generating the at least one secondary ray based on the information about the first ray that has been made.

Description

本発明の実施形態は、レイ生成及びレンダリングに関連する装置及び方法に関し、より詳細には、レイを生成してレンダリングするためのメモリを管理するための装置及び方法に関する。   Embodiments of the present invention relate to an apparatus and method related to ray generation and rendering, and more particularly to an apparatus and method for managing memory for generating and rendering rays.

光線追跡法(Ray Tracing)は、カメラの視点から仮想のスクリーンの各ピクセルに向かった光線に沿って光の経路を逆追跡して映像を生成する方法である。   Ray tracing is a method of generating an image by back-tracing the path of light along a ray from a camera viewpoint toward each pixel of a virtual screen.

一般的に、光線追跡法は、大きく光線生成部(Ray Generator)、加速構造探索(Acceleration Structure Traversal)、交差点検査(Intersection Test)及びシェーディング(Shading)の各段階を含む。光線生成部から生成された光線は、加速構造探索及び交差点検査によって交差点から情報を得た後、シェーディング過程を通じて最終的カラーが決定される。交差点の媒質によって、反射、屈折またはシャドウレイに該当するセカンダリ光線が光線生成部から生成されたプライマリ光線から派生される。光線生成部は、セカンダリ光線に対して加速構造探索及びその後の過程を行うためにセカンダリ光線を保存する。   In general, the ray tracing method mainly includes a ray generator, an acceleration structure traversal, an intersection test, and shading. The light generated from the light generation unit obtains information from the intersection by the acceleration structure search and the intersection inspection, and then the final color is determined through the shading process. Depending on the medium at the intersection, a secondary ray corresponding to reflection, refraction, or shadow ray is derived from the primary ray generated from the ray generator. The light beam generation unit stores the secondary light beam for performing the acceleration structure search and the subsequent process on the secondary light beam.

しかし、光源及びオブジェクトの数が多い場合、光線を保存するための空間が不足する場合が多い。光線を保存するための空間が不足すると、レンダリングシステム全体に対して膠着状態が発生するなど、レンダリングシステムの性能が低下する。
よって、レンダリングシステムの性能を向上させるために、メモリ使用を減少させるための技術が必要となる。
However, when the number of light sources and objects is large, the space for storing light rays is often insufficient. If there is not enough space to store the rays, the performance of the rendering system degrades, such as a stalemate condition for the entire rendering system.
Thus, techniques for reducing memory usage are needed to improve the performance of rendering systems.

そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、1つ以上の実施形態はメモリに保存する光線に対する情報の量を調節してメモリを効率的に使用し、レンダリングシステムの性能を向上させるためのレンダリングシステム及びそのレイ生成方法を提供することにある。   Accordingly, the present invention has been made in view of the above problems, and an object of the present invention is to make the memory more efficient by adjusting the amount of information for light rays stored in the memory in one or more embodiments. The present invention provides a rendering system and its ray generation method for improving the performance of the rendering system.

前記目的を達成するための本発明の一実施形態に係るレンダリングシステムのレンダリング処理を行うための方法において、前記方法は、イメージをレンダリング(render)するための第1レイ(ray)を生成するステップと、前記第1レイが少なくとも1つのセカンダリレイを生成することができるか否かを判断するステップと、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断された場合、前記第1レイに関する情報をメモリに保存するステップと、前記メモリに保存された前記第1レイに関する情報に基づいて前記少なくとも1つのセカンダリレイを生成するステップとを含む。   In order to achieve the above object, a method for performing a rendering process of a rendering system according to an embodiment of the present invention, wherein the method generates a first ray for rendering an image. Determining whether the first ray can generate at least one secondary ray; and if determining that the first ray can generate the at least one secondary ray, Storing information on the first ray in a memory and generating the at least one secondary ray based on the information on the first ray stored in the memory.

前記判断するステップは、前記第1レイがオブジェクトと交差し、前記第1レイがシャドウレイ(shadow ray)ではない場合、前記第1レイが前記少なくとも1つのセカンダリレイが生成することができると判断するステップを含んでよい。   The determining step determines that the first ray can be generated by the at least one secondary ray when the first ray intersects the object and the first ray is not a shadow ray. May include the step of:

前記方法は、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができないと判断された場合、前記メモリから前記第1レイに関する情報を削除するステップを更に含んでよい。   The method may further include deleting information about the first ray from the memory if it is determined that the first ray cannot generate the at least one secondary ray.

前記方法は、前記少なくとも1つのセカンダリレイがシャドウレイを生成し、反射レイまたは屈折レイを生成しないと判断された場合、前記メモリから前記第1レイに関する情報を削除するステップを更に含んでよい。   The method may further include deleting information about the first ray from the memory if it is determined that the at least one secondary ray generates a shadow ray and not a reflection ray or a refraction ray.

前記方法は、前記メモリがレイに関する情報を含むかを判断するステップと、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するステップとを更に含んでよい。   The method includes determining whether the memory includes information about a ray, and when there is a plurality of information stored in the memory, the method relates to a ray stored last in the memory among the plurality of information. Generating a secondary ray based on the information.

前記方法は、前記第1レイがシャドウレイである場合、前記第1レイのレンダリング結果をカラー値としてフレームバッファ(frame buffer)に保存するステップを更に含んでよい。   If the first ray is a shadow ray, the method may further include storing a rendering result of the first ray as a color value in a frame buffer.

前記方法は、前記メモリがレイに関する情報を含まない場合、前記レンダリング処理(process)を終了するステップを更に含んでよい。   The method may further include terminating the rendering process if the memory does not contain information about the ray.

前記第1レイに関する情報は、前記第1レイの方向ベクトルに関する情報を含んでよい。   The information regarding the first ray may include information regarding the direction vector of the first ray.

本発明の別の実施形態に係るレンダリングシステムは、第1レイを生成するレイ生成部と、前記生成された第1レイに基づいてイメージをレンダリング(rendering)するレンダリング部(renderer)と、メモリと、前記第1レイが少なくとも1つのセカンダリレイを生成することができるか否かを判断し、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断されると、前記第1レイに関する情報を前記メモリに保存するように制御し、前記メモリに保存された前記第1レイに関する情報に基づいて前記少なくとも1つのセカンダリレイを生成するように制御する制御部とを含む。   A rendering system according to another embodiment of the present invention includes a ray generating unit that generates a first ray, a rendering unit that renders an image based on the generated first ray, a memory, Determining whether the first ray can generate at least one secondary ray, and determining that the first ray can generate the at least one secondary ray; And a control unit that controls to store information about the ray in the memory, and controls to generate the at least one secondary ray based on the information about the first ray stored in the memory.

前記制御部は、前記第1レイがオブジェクトと交差し、前記第1レイがシャドウレイ(shadow ray)ではない場合、前記第1レイが前記セカンダリレイを生成することができると判断してよい。   The controller may determine that the first ray can generate the secondary ray when the first ray intersects the object and the first ray is not a shadow ray.

前記制御部は、前記少なくとも1つのセカンダリレイがセカンダリレイを生成しないと判断された場合、前記メモリから前記第1レイに関する情報を削除するように制御してよい。   The control unit may perform control so as to delete information on the first ray from the memory when it is determined that the at least one secondary ray does not generate a secondary ray.

前記制御部は、前記メモリがレイに関する情報を含むか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するように制御してよい。   The controller determines whether or not the memory includes information about a ray, and when there are a plurality of pieces of information stored in the memory, the control unit stores a ray stored last in the memory among the plurality of pieces of information. Control may be performed so as to generate the secondary ray based on the information regarding the secondary ray.

前記制御部は、前記第1レイがシャドウレイである場合、前記第1レイのレンダリング結果をフレームバッファ(frame buffer)に保存するように制御してよい。   When the first ray is a shadow ray, the control unit may control to save a rendering result of the first ray in a frame buffer.

前記制御部は、前記メモリがレイに関する情報を含むかを判断し、前記メモリにレイに関する情報が含まない場合、前記レンダリング処理を終了するように制御してよい。   The control unit may determine whether or not the memory includes information related to a ray, and may control to end the rendering process when the memory does not include information related to a ray.

前記第1レイに関する情報は、前記第1レイの方向ベクトルに関する情報を含んでよい。   The information regarding the first ray may include information regarding the direction vector of the first ray.

本発明の別の実施形態に係るレンダリングシステムのレンダリング処理実行方法は、イメージをレンダリングするための第1レイ(primary ray)を生成するステップと、前記第1レイが派生され得る第2レイ(derivable secondary ray)を生成することができる場合、前記第1レイに関する情報を保存するステップと、前記第1レイが追加的に派生され得る第2レイを生成することができない場合、前記第1レイに関する情報を削除するステップとを含む。   According to another embodiment of the present invention, a rendering system performing a rendering process includes generating a primary ray for rendering an image, and a second ray from which the first ray can be derived. secondary ray) can be generated, and information about the first ray can be stored; and if the first ray cannot be generated, the first ray can be generated. Deleting the information.

前記派生され得る第2レイは、オブジェクトと交差する屈折レイまたは反射レイに対応してよい。   The second ray that can be derived may correspond to a refraction or reflection ray that intersects the object.

前記派生され得る第2レイは、前記第1レイが生成した複数個の第2レイのうちの1つであってよく、前記保存するステップは、前記派生され得る第2レイをメモリのメインスタックに保存するステップと、前記派生され得る第2レイ及びシャドウレイではない前記複数個の第2レイを前記メモリの第2スタックに保存してよい。   The second ray that can be derived may be one of a plurality of second rays generated by the first ray, and the storing step may include the second ray that may be derived from a main stack of a memory. And storing the second ray that can be derived and the plurality of second rays that are not shadow rays in a second stack of the memory.

前記派生され得る第2レイは、前記第1レイから派生された屈折レイまたは反射レイであってよく、前記保存するステップは、メモリのメインスタックに前記屈折レイに関する情報または前記反射レイに関する情報を保存するステップと、前記反射レイが前記メインスタックに保存された場合、前記メモリの第2スタックに前記屈折レイを保存するステップと、前記屈折レイが前記メインスタックに保存された場合、前記第2スタックに前記反射レイに関する情報を保存するステップとを含む。   The second ray that can be derived may be a refracted ray or a reflected ray derived from the first ray, and the storing step stores information on the refracted ray or information on the reflected ray in a main stack of a memory. Storing, when the reflected ray is stored in the main stack, storing the refracted ray in a second stack of the memory; and when storing the refracted ray in the main stack, the second Storing information about the reflected ray in a stack.

前記メモリは、前記第2スタックに保存された前記屈折レイに関する前記情報または前記反射レイに関する前記情報を前記メインスタックにローディングするステップを更に含んでよい。   The memory may further include loading the information regarding the refractive ray or the information regarding the reflection ray stored in the second stack into the main stack.

以上説明したように本発明によれば、レンダリングシステムのレンダリング処理実行方法を行うためのコンピュータによって実行され得るプログラムを保存する非一時的コンピュータ記録保存媒体を提供する。   As described above, according to the present invention, there is provided a non-transitory computer recording storage medium for storing a program that can be executed by a computer for performing the rendering processing execution method of the rendering system.

また、本発明の多様な実施形態によれば、ユーザはメモリに保存する光線に関する情報の量を調節してメモリを効率的に使用し、性能の向上されたレンダリングシステムを利用することができるようになる。   Also, according to various embodiments of the present invention, a user can adjust the amount of information about rays stored in the memory to efficiently use the memory and use a rendering system with improved performance. become.

本発明の一実施形態に係るレンダリングシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the rendering system which concerns on one Embodiment of this invention. 本発明の一実施形態に係るセカンダリレイ生成内容を示す図である。It is a figure which shows the secondary ray production | generation content which concerns on one Embodiment of this invention. 本発明の一実施形態に係るセカンダリレイ生成手順及び手順による保存方法を示す図である。It is a figure which shows the preservation | save method by the secondary ray production | generation procedure and procedure which concerns on one Embodiment of this invention. 本発明の一実施形態に係るセカンダリレイ生成手順及び手順による保存方法を示す図である。It is a figure which shows the preservation | save method by the secondary ray production | generation procedure and procedure which concerns on one Embodiment of this invention. 本発明の一実施形態に係るセカンダリレイ生成手順を示すフローチャートである。It is a flowchart which shows the secondary ray production | generation procedure which concerns on one Embodiment of this invention. 本発明の一実施形態に係る再帰的な(Recursive)セカンダリレイ生成手順を示すフローチャートである。6 is a flowchart illustrating a recursive secondary ray generation procedure according to an embodiment of the present invention. レンダリングシステムの構成を示す図である。It is a figure which shows the structure of a rendering system. レンダリングシステムの構成を示す図である。It is a figure which shows the structure of a rendering system. 本発明の一実施形態に係るレイ生成手順を示すフローチャートである。It is a flowchart which shows the ray production | generation procedure which concerns on one Embodiment of this invention.

以下に添付図面を参照しながら、本発明の好適な実施形態についてより詳細に説明する。本発明を説明するうえで、関連の公知機能或いは構成に対する具体的な説明が、本発明の要旨を不要に曖昧とすると判断された場合には、その詳細な説明は省略する。そして、後述の用語は、本発明における機能を考慮して定義された用語として、それは使用者や運用者の意図または慣例等によって異なってよい。そのため、その定義は本明細書全般にわたる内容に基づいて下されるべきである。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, if it is determined that a specific description of a related known function or configuration is unnecessarily ambiguous, a detailed description thereof will be omitted. The terms described below are terms defined in consideration of the functions in the present invention, and may be different depending on the intention or custom of the user or operator. Therefore, the definition should be made based on the contents throughout this specification.

図1は、本発明の一実施形態に係るレンダリングシステム100の構成を示すブロック図である。図1に示すように、レンダリングシステム100は、レイ生成部110と、参照メモリ120と、レンダリング部130と、制御部140及びフレームバッファ150を含む。   FIG. 1 is a block diagram showing a configuration of a rendering system 100 according to an embodiment of the present invention. As illustrated in FIG. 1, the rendering system 100 includes a ray generation unit 110, a reference memory 120, a rendering unit 130, a control unit 140, and a frame buffer 150.

レイ生成部110は、レイを生成するための構成要素である。レイ生成部110は、レイ生成情報に基づいて少なくとも1つのレイを生成することができる。すなわち、レイ生成部110は、プライマリレイ(Primary Ray)を生成することができ、後述の保存されたレイ生成情報を基にセカンダリレイ(Secondary Ray)を生成することができる。なお、セカンダリレイは、シャドウレイ(Shadow Ray)、屈折レイ(Refraction Ray)及び反射レイ(Reflection Ray)を含んでよい。なお。セカンダリレイを生成する場合、レイ生成部110はシャドウレイを先に生成することができる。シャドウレイに対するレンダリングの後、レイ生成部110は屈折または反射レイを生成することができる。   The ray generation unit 110 is a component for generating a ray. The ray generation unit 110 can generate at least one ray based on the ray generation information. That is, the ray generation unit 110 can generate a primary ray, and can generate a secondary ray based on stored ray generation information described later. The secondary ray may include a shadow ray, a refraction ray, and a reflection ray. Note that. When generating a secondary ray, the ray generation unit 110 can generate a shadow ray first. After rendering for the shadow ray, the ray generator 110 can generate a refraction or reflection ray.

一方、参照メモリ120は、レイに関する情報を保存するための構成要素である。すなわち、参照メモリ120は、セカンダリレイを生成するために必要な情報を保存することができる。参照メモリ120は、スタック(Stack)またはキュー(Queue)のようなメモリが使用されてよいが、それは一実施形態に過ぎず、メモリの種類に限定されない。   On the other hand, the reference memory 120 is a component for storing information about rays. That is, the reference memory 120 can store information necessary for generating a secondary ray. As the reference memory 120, a memory such as a stack or a queue may be used, but it is only an embodiment and is not limited to the type of the memory.

なお、参照メモリ120に保存されるレイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。具体的に、参照メモリ120は、三角インデックス、レイデプス(depth)、レイが派生された方向、位置そしてレイ及びオブジェクトが交差した位置に関する情報等を含んでよい。   It should be noted that the information regarding the ray stored in the reference memory 120 may include information regarding the direction vector of the ray. Specifically, the reference memory 120 may include information on a triangular index, a ray depth, a direction in which the ray is derived, a position, and a position where the ray and the object intersect.

レンダリング部130は、レイ生成部110を介して生成されたレイをレンダリングするための構成要素である。すなわち、レンダリングを行うために必要な構成要素のうち、レンダリング部130はレイ生成部110を除く全ての構成要素を含んでよい。   The rendering unit 130 is a component for rendering a ray generated via the ray generation unit 110. That is, the rendering unit 130 may include all the components except the ray generation unit 110 among the components necessary for rendering.

例えば、光線追跡法(Ray Tracing)で使用される加速構造を探索し、交差点を検査してシェーディングを行うための構成要素がレンダリング部130に含まれてよい。   For example, the rendering unit 130 may include components for searching for an acceleration structure used in ray tracing and inspecting an intersection to perform shading.

一方、制御部140は、レンダリングシステム100の動作全般を制御する。特に、制御部140は、生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果に応じて、制御部140はレイに関する情報を参照メモリ120に保存するように制御してよい。   On the other hand, the control unit 140 controls the overall operation of the rendering system 100. In particular, the control unit 140 can determine whether a secondary ray can be generated by the generated ray. Then, according to the determination result, the control unit 140 may perform control so as to store information on the ray in the reference memory 120.

すなわち、制御部140は、生成されたレイがシャドウレイではないと同時にオブジェクトと交差した場合、セカンダリレイを生成することができるレイであると判断することができる。シャドウレイによってセカンダリレイが生成されない。そして、シャドウレイではないレイであっても、オブジェクトと交差しない場合、セカンダリレイを生成しない。よって、生成されたレイがシャドウレイではなく、オブジェクトと交差する場合、制御部140はセカンダリレイを生成することができるレイと判断することができる。   That is, when the generated ray is not a shadow ray and intersects with an object, the control unit 140 can determine that the ray can generate a secondary ray. Secondary rays are not generated by shadow rays. If a ray that is not a shadow ray does not intersect with an object, a secondary ray is not generated. Therefore, when the generated ray is not a shadow ray but intersects with an object, the control unit 140 can determine that the ray can generate a secondary ray.

そして、生成されたレイがセカンダリレイを生成することができるレイと判断された場合、制御部140は、生成されたレイに関する情報を参照メモリ120に保存するように制御することができる。そして、制御部140は、参照メモリ120に保存されたレイに関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。   When it is determined that the generated ray is a ray that can generate a secondary ray, the control unit 140 can perform control so as to save information about the generated ray in the reference memory 120. Then, the control unit 140 can control the ray generation unit 110 to generate a secondary ray based on the information regarding the ray stored in the reference memory 120.

一方、生成されたレイがシャドウレイである場合、制御部140は、生成されたレイのレンダリング結果によるカラー値をフレームバッファ(Frame Buffer)に記録するように制御することができる。すなわち、シャドウレイによってセカンダリレイが生成されないため、制御部140は、シャドウレイに対するレンダリング結果によるカラー値をフレームバッファに保存して当該レイに対するレンダリングを完了することができる。なお、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ120に保存された情報がないと判断された場合、制御部140はレンダリングを終了することができる。   On the other hand, when the generated ray is a shadow ray, the control unit 140 can control to record a color value based on a rendering result of the generated ray in a frame buffer. That is, since the secondary ray is not generated by the shadow ray, the control unit 140 can store the color value based on the rendering result for the shadow ray in the frame buffer and complete the rendering for the ray. Note that the control unit 140 can determine whether there is information about a ray stored in the reference memory 120. If it is determined that there is no information stored in the reference memory 120, the control unit 140 can end the rendering.

レイによって少なくとも1つのセカンダリレイが順次に生成され、生成された少なくとも1つのセカンダリレイが全てセカンダリレイをそれ以上生成しない場合、制御部140は参照メモリ120に保存されたレイに関する情報を削除することができる。すなわち、レイによってセカンダリレイがそれ以上生成されないと判断された場合、制御部140は参照メモリ120からレイに関する情報を削除することができる。   When at least one secondary ray is sequentially generated by a ray and all the generated at least one secondary ray does not generate any more secondary rays, the control unit 140 deletes information about the ray stored in the reference memory 120. Can do. That is, when it is determined that no more secondary rays are generated by a ray, the control unit 140 can delete information about the ray from the reference memory 120.

そして、制御部140は、参照メモリ120から第1レイに関する情報を削除した後、参照メモリ120に保存された情報がある場合、参照メモリ120に最後に保存されたレイに関する情報に基づいて別のセカンダリレイを生成することができる。   Then, the controller 140 deletes the information about the first ray from the reference memory 120, and if there is information stored in the reference memory 120, the control unit 140 determines another information based on the information about the ray last stored in the reference memory 120. A secondary ray can be generated.

すなわち、参照メモリ120に順次にレイに関する情報を保存する場合、制御部140は最も最近保存されたレイに関する情報を基にセカンダリレイを生成することができるか否かを判断することができる。そして、最も最近保存されたレイがセカンダリレイを生成することができる場合、制御部140は、判断されたレイに関する情報を基に別のセカンダリレイを生成することができる。   That is, when information about rays is sequentially stored in the reference memory 120, the control unit 140 can determine whether or not a secondary ray can be generated based on the information about the most recently saved ray. When the most recently stored ray can generate a secondary ray, the control unit 140 can generate another secondary ray based on the information regarding the determined ray.

レイに関する情報を参照メモリ120に保存する方法及びレイに関する情報を参照メモリ120から削除する具体的な方法については後述する。   A method for storing information about rays in the reference memory 120 and a specific method for deleting information about rays from the reference memory 120 will be described later.

上述のようなレンダリングシステム100によって、ユーザは小さいサイズのメモリを利用しつつも、効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム100を利用することができるようになる。   The rendering system 100 as described above enables the user to use the rendering system 100 that can efficiently manage the memory and perform rendering while using a small-sized memory.

以下では、図2ないし図4を参照し、レンダリングシステム100がレイに関する情報を参照メモリ120に保存しつつ、レンダリングを行う方法について具体的に説明する。   Hereinafter, with reference to FIGS. 2 to 4, a specific description will be given of a method in which the rendering system 100 performs rendering while storing information about rays in the reference memory 120.

図2は、レイ生成内容を示す図である。すなわち、プライマリレイ200はシャドウレイ210と、屈折レイ220及び反射レイ230のうち少なくとも1つを生成することができる。特に、プライマリレイ200は、シャドウレイ210を先に生成し、屈折レイ220または反射レイ230を生成することができる。   FIG. 2 is a diagram showing the contents of ray generation. That is, the primary ray 200 can generate the shadow ray 210 and at least one of the refraction ray 220 and the reflection ray 230. In particular, the primary ray 200 can generate the shadow ray 210 first and the refraction ray 220 or the reflection ray 230.

シャドウレイ210は、それ以上のセカンダリレイを生成しない。しかし、屈折レイ220及び反射レイ230は少なくとも1つのセカンダリレイを生成することができる。例えば、図2に示すように、屈折レイ220がセカンダリレイとしてシャドウレイ240、屈折レイ250及び反射レイ260を生成することができる。そして、反射レイ230がセカンダリレイとしてシャドウレイ270、屈折レイ280及び反射レイ290を生成することができる。   The shadow ray 210 does not generate any more secondary rays. However, the refraction ray 220 and the reflection ray 230 can generate at least one secondary ray. For example, as shown in FIG. 2, the refraction ray 220 can generate a shadow ray 240, a refraction ray 250, and a reflection ray 260 as secondary rays. Then, the reflection ray 230 can generate a shadow ray 270, a refraction ray 280, and a reflection ray 290 as secondary rays.

なお、各セカンダリレイである屈折レイ250及び280、並びに反射レイ260及び290のセカンダリレイとして、屈折レイ250及び280、並びに反射レイ260及び290から少なくとも1つの追加シャドウレイ、屈折レイ及び反射レイが生成されてよい。   As secondary rays of the refraction rays 250 and 280 and the reflection rays 260 and 290, which are secondary rays, at least one additional shadow ray, refraction ray, and reflection ray from the refraction rays 250 and 280 and the reflection rays 260 and 290 are included. May be generated.

結果的に、図2に示すように、セカンダリレイの数は急増するようになる。よって、生成されるセカンダリレイに関する情報を順次にスタックまたはキューのようなメモリに保存する場合、メモリが不足してレイの一部を損失したり、レンダリングシステムそのものに膠着状態が発生するおそれがある。なお、生成されるレイの数が一定ではないため、レンダリング部130の作業量の変動が大きくなりかねない。   As a result, as shown in FIG. 2, the number of secondary rays increases rapidly. Therefore, when information about the generated secondary ray is sequentially stored in a memory such as a stack or a queue, there is a risk that a part of the ray may be lost due to insufficient memory, or a stalemate state may occur in the rendering system itself. . Note that since the number of generated rays is not constant, the amount of work of the rendering unit 130 may vary greatly.

図3は、本発明の一実施形態に係るセカンダリレイを生成して保存する方法を示す。   FIG. 3 illustrates a method for generating and storing a secondary ray according to an embodiment of the present invention.

プライマリレイ310のセカンダリレイとして、第1シャドウレイ320、第1屈折レイ330及び第1反射レイ410がプライマリレイ310から生成される。そして、第1屈折レイ330のセカンダリレイとして第2シャドウレイ340、第2屈折レイ350及び第2反射レイ370が第1屈折レイ300から生成される。第2屈折レイ370のセカンダリレイとして第2屈折レイ370から第3シャドウレイ360が生成される。第2屈折レイ370から第4シャドウレイ380及び第4屈折レイ390が生成される。第4屈折レイ390から第5シャドウレイ400が生成される。   As secondary rays of the primary ray 310, a first shadow ray 320, a first refraction ray 330, and a first reflection ray 410 are generated from the primary ray 310. A second shadow ray 340, a second refraction ray 350, and a second reflection ray 370 are generated from the first refraction ray 300 as secondary rays of the first refraction ray 330. A third shadow ray 360 is generated from the second refraction ray 370 as a secondary ray of the second refraction ray 370. A fourth shadow ray 380 and a fourth refraction ray 390 are generated from the second refraction ray 370. A fifth shadow ray 400 is generated from the fourth refraction ray 390.

図3は、ただ最初に生成されたレイ310をプライマリレイとして示しているが、セカンダリレイを生成する光線はセカンダリレイに関連するプライマリレイとして参照することができる。例えば、第1屈折レイ330及び第2屈折レイ350の間の関係で、第1屈折レイ330はプライマリレイであってよい。   Although FIG. 3 shows the ray 310 that was generated first as the primary ray, the ray that generates the secondary ray can be referred to as the primary ray associated with the secondary ray. For example, the first refraction ray 330 may be a primary ray due to the relationship between the first refraction ray 330 and the second refraction ray 350.

図4は、レイの生成手順による参照メモリ120の保存状態を示す図である。レイ生成部110を介してプライマリレイ310が生成された場合、制御部140は、生成されたプライマリレイ310がシャドウレイであるかを判断することができる。プライマリレイ310はシャドウレイではないため、制御部140はプライマリレイ310がオブジェクトと交差するか否かを判断する。   FIG. 4 is a diagram illustrating a storage state of the reference memory 120 according to the ray generation procedure. When the primary ray 310 is generated via the ray generation unit 110, the control unit 140 can determine whether the generated primary ray 310 is a shadow ray. Since the primary ray 310 is not a shadow ray, the control unit 140 determines whether or not the primary ray 310 intersects with the object.

生成されたプライマリレイ310がシャドウレイではなく、オブジェクトと交差すると判断された場合、プライマリレイ310からセカンダリレイが生成されてよい。よって、制御部140は、プライマリレイ310に関する情報を参照メモリ120に保存するように参照メモリ120を制御することができる。   If it is determined that the generated primary ray 310 intersects with an object instead of a shadow ray, a secondary ray may be generated from the primary ray 310. Therefore, the control unit 140 can control the reference memory 120 so as to store information about the primary ray 310 in the reference memory 120.

具体的に、レイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。   Specifically, the information regarding the ray may include information regarding the direction vector of the ray.

そして、レイ生成部110は、参照メモリ120に保存されたプライマリレイ310に関する情報を基にセカンダリレイを生成することができる。シャドウレイがセカンダリレイの中で先に生成されてよい。すなわち、レイ生成部110は、セカンダリレイとしてシャドウレイを先に生成し、シャドウレイ生成の後、屈折または反射レイを生成することができる。   The ray generation unit 110 can generate a secondary ray based on information about the primary ray 310 stored in the reference memory 120. The shadow ray may be generated first in the secondary ray. That is, the ray generation unit 110 can generate a shadow ray as a secondary ray first, and generate a refraction or reflection ray after the shadow ray is generated.

よって、セカンダリレイとして第1シャドウレイ320が生成された場合、制御部140は、第1シャドウレイ320によってそれ以上セカンダリレイが生成されないため、第1シャドウレイ320に関する情報を参照メモリ120に保存しないように制御することができる。結果的に、セカンダリレイとして第1シャドウレイ320が生成された後の参照メモリ120は第1シャドウレイ320の生成前の参照メモリ120と比較して変化が生じなくてよい。   Therefore, when the first shadow ray 320 is generated as a secondary ray, the control unit 140 does not store any more information about the first shadow ray 320 in the reference memory 120 because no more secondary rays are generated by the first shadow ray 320. Can be controlled. As a result, the reference memory 120 after the first shadow ray 320 is generated as the secondary ray does not need to change compared to the reference memory 120 before the generation of the first shadow ray 320.

そして、制御部140は、第1シャドウレイ320に対するレンダリング結果カラー値をフレームバッファ150に保存することができる。   Then, the control unit 140 can store the rendering result color value for the first shadow ray 320 in the frame buffer 150.

なお、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ120にプライマリレイ310に関する情報が保存されているため、制御部140はプライマリレイ310に関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。   Note that the control unit 140 can determine whether there is information about a ray stored in the reference memory 120. Since the information about the primary ray 310 is stored in the reference memory 120, the control unit 140 can control the ray generation unit 110 to generate the secondary ray based on the information about the primary ray 310.

セカンダリレイとして第1屈折レイ330が生成された場合、制御部140は生成されたセカンダリレイがシャドウレイか否かを判断することができる。第1屈折レイ330はシャドウレイではないため、制御部140は第1屈折レイ330がオブジェクトと交差するか否かを判断することができる。第1屈折レイ330がオブジェクトと交差する場合、第1屈折レイ330によってセカンダリレイが更に生成され得るため、制御部140は第1屈折レイ330に関する情報を参照メモリ120に保存することができる。   When the first refraction ray 330 is generated as the secondary ray, the control unit 140 can determine whether the generated secondary ray is a shadow ray or not. Since the first refraction ray 330 is not a shadow ray, the control unit 140 can determine whether or not the first refraction ray 330 intersects the object. When the first refracted ray 330 intersects the object, a secondary ray can be further generated by the first refracted ray 330, and thus the control unit 140 can store information regarding the first refracted ray 330 in the reference memory 120.

参照メモリ120に保存された第1屈折レイ330に関する情報に基づいてレイ生成部110がセカンダリレイとして第2シャドウレイ340を生成すると、第2シャドウレイ340によってそれ以上セカンダリレイが生成されないため、制御部140は生成された第2シャドウレイ340に関する情報を保存しなくてよい。よって、第2シャドウレイ340がセカンダリレイとして生成された時間T540に参照メモリ120の状態は第2シャドウレイ340が生成される前である時間T530に参照メモリの状態と比較して変更されなくてよい。   When the ray generation unit 110 generates the second shadow ray 340 as the secondary ray based on the information regarding the first refraction ray 330 stored in the reference memory 120, the secondary shadow is not generated by the second shadow ray 340. The unit 140 does not have to store information regarding the generated second shadow ray 340. Therefore, the state of the reference memory 120 is not changed compared to the state of the reference memory at the time T530 before the second shadow ray 340 is generated at the time T540 when the second shadow ray 340 is generated as the secondary ray. Good.

本発明の一実施形態によると、参照メモリ120はセカンダリスタック(secondary stack)を更に含んでよい。このとき、セカンダリスタックを除く参照メモリ120の残りの領域はメインスタックであってよい。また、セカンダリスタックは、参照メモリ120と区分された保存部に実現されてよい。制御部140は、第1屈折レイ410を時間T530にセカンダリスタックに保存することができる。制御部140が時間T600に第1屈折レイ330から派生された全てのセカンダリレイ処理を終えた際、T600の後に制御部140がどのようなデータを処理するかを判断するために、制御部140はセカンダリスタックを参照することができる。   According to an embodiment of the present invention, the reference memory 120 may further include a secondary stack. At this time, the remaining area of the reference memory 120 excluding the secondary stack may be the main stack. Further, the secondary stack may be realized in a storage unit that is separated from the reference memory 120. The controller 140 may store the first refractive ray 410 in the secondary stack at time T530. When the controller 140 finishes all secondary ray processing derived from the first refraction ray 330 at time T600, the controller 140 determines what data the controller 140 will process after T600. Can refer to the secondary stack.

そして、制御部140は、第2シャドウレイ340のレンダリング結果カラー値をフレームバッファ150に保存するように制御することができる。   Then, the control unit 140 can control the rendering result color value of the second shadow ray 340 to be stored in the frame buffer 150.

なお、制御部140は、参照メモリ120がレイに関する情報を含むかを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。   Note that the control unit 140 can determine whether the reference memory 120 includes information regarding a ray. If there is a ray stored in the reference memory 120 as a result of the determination, the control unit 140 can control the ray generation unit 110 to generate a secondary ray.

しかし、第2シャドウレイ340に関する情報が保存されない。すなわち、参照メモリ120に最も最後に保存された情報は第1屈折レイ330に関する情報である。よって、制御部140は、参照メモリ120に保存された情報である第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。   However, information regarding the second shadow ray 340 is not stored. That is, the information stored last in the reference memory 120 is information regarding the first refraction ray 330. Therefore, the control unit 140 can perform control so as to generate a secondary ray based on information regarding the first refractive ray 330 that is information stored in the reference memory 120.

参照メモリ120に保存された第1屈折レイ330に関する情報に基づいてレイ生成部110がセカンダリレイとして第2屈折レイ350を生成すると、制御部140は生成された第2屈折レイ350がシャドウレイか否かを判断することができる。第2屈折レイ350はシャドウレイではないため、制御部140は第2屈折レイ350がオブジェクトと交差するか否かを判断することができる。第2屈折レイ350がオブジェクトと交差する場合、第2屈折レイ350によってセカンダリレイが更に生成され得るため、制御部140は第2屈折レイ350に関する情報を参照メモリ120に時間T550に保存することができる。   When the ray generator 110 generates the second refracted ray 350 as a secondary ray based on the information about the first refracted ray 330 stored in the reference memory 120, the controller 140 determines whether the generated second refracted ray 350 is a shadow ray. It can be determined whether or not. Since the second refraction ray 350 is not a shadow ray, the control unit 140 can determine whether or not the second refraction ray 350 intersects the object. When the second refracted ray 350 intersects the object, a secondary ray may be further generated by the second refracted ray 350, and thus the control unit 140 may store information on the second refracted ray 350 in the reference memory 120 at time T550. it can.

なお、制御部140は、時間T550にセカンダリスタックに第2反射レイ370を保存して第2反射レイ370が第1反射レイ410にスタックされるようにすることができる。制御部140が、T560に第2屈折レイ350から派生された全てのセカンダリレイを処理することが終わる際、時間T570に制御部140がどのようなデータを処理するか判断するために制御部140はセカンダリスタックを参照することができる。   The controller 140 may store the second reflection ray 370 in the secondary stack at time T550 so that the second reflection ray 370 is stacked on the first reflection ray 410. When the control unit 140 finishes processing all secondary rays derived from the second refraction ray 350 at T560, the control unit 140 determines what data the control unit 140 will process at time T570. Can refer to the secondary stack.

参照メモリ120に保存された第2屈折レイ350に関する情報を基にレイ生成部110がセカンダリレイとして第3シャドウレイ360を生成すると、制御部140は第3シャドウレイ360のレンダリング結果によるカラー値をフレームバッファ150に保存することができる。そして、保存された第2屈折レイ350をそれ以上処理する必要がないため、制御部140は保存された第2屈折レイ350に関する情報を時間T560に削除することができる。よって、参照メモリ120は、第1屈折レイ330及びプライマリレイ310に関する情報のみを時間T560に保存することができる。   When the ray generation unit 110 generates the third shadow ray 360 as a secondary ray based on the information regarding the second refraction ray 350 stored in the reference memory 120, the control unit 140 determines the color value based on the rendering result of the third shadow ray 360. It can be stored in the frame buffer 150. And since it is not necessary to process the stored 2nd refraction ray 350 any more, the control part 140 can delete the information regarding the preserve | saved 2nd refraction ray 350 at time T560. Therefore, the reference memory 120 can store only information regarding the first refractive ray 330 and the primary ray 310 at time T560.

そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。   Then, the control unit 140 can determine whether there is information regarding the ray stored in the reference memory 120. If there is a ray stored in the reference memory 120 as a result of the determination, the control unit 140 can control the ray generation unit 110 to generate a secondary ray.

第2屈折レイ350に関する情報を削除したため、時間T560に参照メモリ120に保存された最も最近の情報は第1屈折レイ330に関する情報である。よって、制御部140は、第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。   Since the information regarding the second refracted ray 350 is deleted, the latest information stored in the reference memory 120 at time T560 is information regarding the first refracted ray 330. Therefore, the control unit 140 can perform control so as to generate a secondary ray based on information regarding the first refractive ray 330.

参照メモリ120に保存された第1屈折レイ330に関する情報を基にレイ生成部110がセカンダリレイを生成することができる。特に、レイ生成部110は、参照メモリ120に保存された第1屈折レイ330に関する情報を基にセカンダリレイである第2シャドウレイ340を先に生成したため、反射または屈折レイをセカンダリレイとして生成することができる。   The ray generator 110 can generate a secondary ray based on the information regarding the first refractive ray 330 stored in the reference memory 120. In particular, the ray generation unit 110 generates the second shadow ray 340 that is the secondary ray based on the information about the first refraction ray 330 stored in the reference memory 120, and thus generates the reflection or refraction ray as the secondary ray. be able to.

よって、レイ生成部110がセカンダリレイとして第2反射レイ370を生成すると、制御部140は生成された第2反射レイ370がシャドウレイか否かを判断することができる。第2反射レイ370はシャドウレイではないため、制御部140は第2反射レイ370がオブジェクトと交差するか否かを判断することができる。   Therefore, when the ray generation unit 110 generates the second reflection ray 370 as a secondary ray, the control unit 140 can determine whether or not the generated second reflection ray 370 is a shadow ray. Since the second reflection ray 370 is not a shadow ray, the control unit 140 can determine whether or not the second reflection ray 370 intersects with the object.

第2反射レイ370がオブジェクトと交差する場合、第2反射レイ370によってセカンダリレイが更に生成されてよい。よって、制御部140は、第2反射レイ370に関する情報を時間T570に参照メモリ120に保存することができる。   If the second reflection ray 370 intersects the object, a second ray may be further generated by the second reflection ray 370. Therefore, the control unit 140 can store information on the second reflection ray 370 in the reference memory 120 at time T570.

時間T570に、制御部140は第2屈折レイ350及び第2屈折レイ370の間に何がまだ処理されていないかを判断するために、セカンダリスタックを参照することができる。図4に示すように、セカンダリスタックは第2屈折レイ370が時間T570に処理されることを示す。制御部140は、セカンダリスタックから第2屈折レイ370をロードし、時間T570に参照メモリ120のメインスタックにそれを保存することができる。   At time T570, the control unit 140 may refer to the secondary stack to determine what has not yet been processed between the second refractive ray 350 and the second refractive ray 370. As shown in FIG. 4, the secondary stack indicates that the second refractive ray 370 is processed at time T570. The controller 140 may load the second refraction ray 370 from the secondary stack and save it in the main stack of the reference memory 120 at time T570.

制御部140は、シャドウレイではない屈折または反射レイと判断された場合でも、屈折または反射レイがオブジェクトと交差しないと判断された場合、レイに関する情報を参照メモリ120に保存しなくてよい。   Even when it is determined that the refraction or reflection ray is not a shadow ray, the control unit 140 does not have to store information regarding the ray in the reference memory 120 if it is determined that the refraction or reflection ray does not intersect the object.

そして、制御部140は、参照メモリ120に保存された第2反射レイ370に関する情報を基にセカンダリレイを生成するようにレイ生成部110を制御することができる。   Then, the control unit 140 can control the ray generation unit 110 to generate a secondary ray based on the information regarding the second reflection ray 370 stored in the reference memory 120.

レイ生成部110が第2反射レイ370によるセカンダリレイとして先に第4シャドウレイ380を生成することができる。制御部140は、生成されたレイがシャドウレイか否かを判断することができる。そして、第4シャドウレイ380によってそれ以上セカンダリレイが生成されないため、制御部140は生成された第4シャドウレイ380に関する情報を時間T580に保存しなくてよい。よって、第4シャドウレイ380がセカンダリレイとして生成された時間T580に参照メモリ120の状態は、第4シャドウレイ380の生成前である時間T570に参照メモリ120の状態と比較して変化がない。   The ray generation unit 110 can generate the fourth shadow ray 380 first as a secondary ray by the second reflection ray 370. The control unit 140 can determine whether the generated ray is a shadow ray. Since no further secondary rays are generated by the fourth shadow ray 380, the control unit 140 does not need to store information on the generated fourth shadow ray 380 at time T580. Therefore, the state of the reference memory 120 at time T580 when the fourth shadow ray 380 is generated as a secondary ray is not changed compared to the state of the reference memory 120 at time T570 before generation of the fourth shadow ray 380.

そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。   Then, the control unit 140 can determine whether there is information regarding the ray stored in the reference memory 120. If there is a ray stored in the reference memory 120 as a result of the determination, the control unit 140 can control the ray generation unit 110 to generate a secondary ray.

なお、参照メモリ120に保存された第2反射レイ370に関する情報に基づいてレイ生成部110が第4屈折レイ390を生成し、第2反射レイ370によってそれ以上セカンダリレイが生成されないと判断された場合、制御部140は第2反射レイ370に関する情報を削除するように参照メモリ120を制御することができる。   Note that it is determined that the ray generation unit 110 generates the fourth refraction ray 390 based on the information regarding the second reflection ray 370 stored in the reference memory 120, and no further secondary ray is generated by the second reflection ray 370. In this case, the control unit 140 may control the reference memory 120 to delete information related to the second reflection ray 370.

よって、第4屈折レイ390のレンダリング結果、制御部140の制御によって参照メモリ120は時間T590に第2反射レイ370に関する情報を削除することができる。   Accordingly, the rendering result of the fourth refraction ray 390 and the reference memory 120 can delete the information regarding the second reflection ray 370 at time T590 under the control of the control unit 140.

そして、制御部140は、第4屈折レイ390がシャドウレイか否かを判断することができる。第4屈折レイ390はシャドウレイではないため、制御部140は第4屈折レイ390がオブジェクトと交差すると判断することができる。第4屈折レイ390がオブジェクトと交差する場合、レイ生成部110は第4屈折レイ390によるセカンダリレイを生成することができる。レイ生成部110は、セカンダリレイとしてシャドウレイを先に生成することができる。よって、セカンダリレイとして第5シャドウレイ500が生成されると、制御部140は第5シャドウレイ500のレンダリング結果カラー値をフレームバッファ150に保存するように制御することができる。そして、第1屈折レイ330によってセカンダリレイがそれ以上生成されないため、制御部140は時間T600に第1屈折レイ330に関する情報を削除するように参照メモリ120を制御することができる。   Then, the controller 140 can determine whether the fourth refraction ray 390 is a shadow ray. Since the fourth refraction ray 390 is not a shadow ray, the control unit 140 can determine that the fourth refraction ray 390 intersects the object. When the fourth refraction ray 390 intersects the object, the ray generation unit 110 can generate a secondary ray by the fourth refraction ray 390. The ray generation unit 110 can generate a shadow ray first as a secondary ray. Therefore, when the fifth shadow ray 500 is generated as the secondary ray, the control unit 140 can control to store the rendering result color value of the fifth shadow ray 500 in the frame buffer 150. Since no more secondary rays are generated by the first refraction ray 330, the control unit 140 can control the reference memory 120 to delete information regarding the first refraction ray 330 at time T600.

そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。図4に示すように、時間T600にプライマリレイ310が参照メモリ120に保存されているため、レイ生成部110は保存されたプライマリレイ310に関する情報を基にセカンダリレイを生成することができる。   Then, the control unit 140 can determine whether there is information regarding the ray stored in the reference memory 120. As shown in FIG. 4, since the primary ray 310 is stored in the reference memory 120 at time T600, the ray generation unit 110 can generate a secondary ray based on the stored information about the primary ray 310.

よって、制御部140は、参照メモリ120に保存されたプライマリレイ310に関する情報を基に第1反射レイ410をセカンダリレイとして生成することができる。例えば、制御部140は、時間T600の後にセカンダリスタックから第1反射レイ410をロードして参照メモリ120のメインスタックに保存することができる。それにより、制御部140は、第1屈折レイ330と第1反射レイ410との間で第1反射レイ140がまだ処理されていないことを判断することができ、時間T600の後に第1反射レイ410を進めることができる。そして、レンダリングシステム100は、第1反射レイによるセカンダリレイに対して上述のような過程を経てレンダリングを行うことができる。   Therefore, the control unit 140 can generate the first reflection ray 410 as the secondary ray based on the information regarding the primary ray 310 stored in the reference memory 120. For example, the controller 140 may load the first reflection ray 410 from the secondary stack after the time T600 and store it in the main stack of the reference memory 120. Accordingly, the control unit 140 can determine that the first reflection ray 140 has not yet been processed between the first refraction ray 330 and the first reflection ray 410, and the first reflection ray 140 after the time T600. 410 can proceed. The rendering system 100 can perform rendering on the secondary ray by the first reflection ray through the above-described process.

全てのセカンダリレイに対するレンダリングを行い、参照メモリ120にそれ以上保存されたレイに関する情報がない場合、レンダリングシステム100はレンダリングを終了することができる。   If all secondary rays are rendered and there is no more information about the stored rays in the reference memory 120, the rendering system 100 can finish the rendering.

図4を参照して上述した例においては、制御部140がセカンダリスタックを用いて進行を判断することを例として挙げたが、それは単なる1つの例示に過ぎない。制御部140は、第1屈折レイ330に関する情報がメモリ120から削除されると、その削除に関する情報をメモリ120に別途に記録し、次の過程を進める際にそれを参照し、削除された記録がない過程を進める方式で次に進める過程を判断することもできる。この場合には、別途のセカンダリスタックが必要でなくなる。   In the example described above with reference to FIG. 4, the control unit 140 uses the secondary stack to determine the progress, but this is merely an example. When the information regarding the first refraction ray 330 is deleted from the memory 120, the control unit 140 records the information regarding the deletion separately in the memory 120, refers to the information when the next process proceeds, and deletes the recorded information. It is also possible to determine the next process by a method of proceeding with no process. In this case, a separate secondary stack is not necessary.

図5は、本発明の一実施形態に係るセカンダリレイ生成手順を示すフローチャートである。まず、レンダリングシステム100は、第1レイを生成し(S610)、生成された第1レイをレンダリングする(S620)。   FIG. 5 is a flowchart showing a secondary ray generation procedure according to an embodiment of the present invention. First, the rendering system 100 generates a first ray (S610), and renders the generated first ray (S620).

レンダリングシステム100は、第1レイによってセカンダリレイが生成され得ると判断されると(S630−Y)、第1レイに関する情報を参照メモリ120に保存する(S640)。具体的に、生成されたレイがシャドウレイではないと同時にオブジェクトと交差する場合、レンダリングシステム100はセカンダリレイを生成することができるレイと判断することができる。そして、生成されたレイによってセカンダリレイが生成され得ると判断された場合、レンダリングシステム100は生成されたレイに関する情報を参照メモリ120に保存することができる。   When it is determined that the secondary ray can be generated by the first ray (S630-Y), the rendering system 100 stores information on the first ray in the reference memory 120 (S640). Specifically, when the generated ray is not a shadow ray and intersects the object, the rendering system 100 can determine that the ray can generate a secondary ray. When it is determined that a secondary ray can be generated by the generated ray, the rendering system 100 can store information regarding the generated ray in the reference memory 120.

そして、レンダリングシステム100は、保存された第1レイに関する情報を基に第2レイを生成してレンダリングする(S650)。なお、レイに関する情報は、レイの方向ベクトルを含んでよい。よって、レンダリングシステム100は、保存されたレイの方向ベクトルに対する情報等を用いて、第1レイによるセカンダリレイである第2レイを生成することができる。特に、レンダリングシステム100は、セカンダリレイのうちシャドウレイを生成することができる。シャドウレイの生成後、レンダリングシステム100はセカンダリレイとして屈折レイまたは反射レイを生成することができる。   Then, the rendering system 100 generates and renders a second ray based on the stored information about the first ray (S650). Note that the information regarding the ray may include a direction vector of the ray. Therefore, the rendering system 100 can generate a second ray, which is a secondary ray of the first ray, using information about the stored ray direction vector. In particular, the rendering system 100 can generate a shadow ray among the secondary rays. After the generation of the shadow ray, the rendering system 100 can generate a refraction ray or a reflection ray as a secondary ray.

一方、図6は、本発明の一実施形態に係る再帰的なセカンダリレイ生成手順を示す具体的なフローチャートである。   On the other hand, FIG. 6 is a specific flowchart showing a recursive secondary ray generation procedure according to an embodiment of the present invention.

まず、レンダリングシステム100はレイを生成し(S700)、生成されたレイをレンダリングする(S710)。そして、レンダリングシステム100は、生成されたレイがシャドウレイか否かを判断する(S720)。   First, the rendering system 100 generates a ray (S700), and renders the generated ray (S710). Then, the rendering system 100 determines whether the generated ray is a shadow ray (S720).

シャドウレイではない場合でも、レイがオブジェクトと交差しない場合、セカンダリレイが生成されない。よって、レンダリングシステム100は、レイがオブジェクトと交差するか否かを判断する(S730)。   Even if it is not a shadow ray, a secondary ray is not generated if the ray does not intersect the object. Therefore, the rendering system 100 determines whether the ray intersects with the object (S730).

レイがオブジェクトと交差する場合(S730−Y)、レンダリングシステム100はレイのセカンダリレイを生成するために、レイに関する情報を参照メモリ120に保存する(S740)。そして、レンダリングシステム100は、参照メモリ120に保存されたレイに関する情報を基にレイを生成することができる。このとき、レンダリングシステム100は、セカンダリレイのうちシャドウレイを先に生成することができる。例えば、レンダリングシステム100がセカンダリレイとしてシャドウレイ及び屈折レイを生成する場合、レンダリングシステム100はシャドウレイを先に生成することができる。   If the ray intersects the object (S730-Y), the rendering system 100 stores information about the ray in the reference memory 120 to generate a secondary ray of the ray (S740). The rendering system 100 can generate a ray based on information about the ray stored in the reference memory 120. At this time, the rendering system 100 can generate the shadow ray first among the secondary rays. For example, if the rendering system 100 generates a shadow ray and a refraction ray as a secondary ray, the rendering system 100 can generate the shadow ray first.

生成されたレイがシャドウレイである場合(S720−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S750)。そして、レンダリングシステム100は、参照メモリ120が空いているかを判断する(S760)。   When the generated ray is a shadow ray (S720-Y), the rendering system 100 stores the rendering result in the frame buffer 150 (S750). Then, the rendering system 100 determines whether the reference memory 120 is free (S760).

なお、レイがオブジェクトと交差せずにシャドウレイではないと判断されると、レンダリングシステム100は参照メモリ120が空いているか判断することができる(S760)。   If it is determined that the ray does not intersect the object and is not a shadow ray, the rendering system 100 can determine whether the reference memory 120 is free (S760).

そして、レイによってセカンダリレイがそれ以上生成されないと判断された場合、レンダリングシステム100は参照メモリ120からレイに関する情報を削除することができる。   When it is determined that no more secondary rays are generated by the ray, the rendering system 100 can delete information about the ray from the reference memory 120.

よって、レンダリングシステム100は、レイ生成部110から生成するレイの量を一定に制御することができる。   Therefore, the rendering system 100 can control the amount of rays generated from the ray generator 110 to be constant.

図7は、スタック構造またはスタック基板メモリ割当を用いた参照メモリ830を含むレンダリングシステム1000を示す。しかし、それは一実施形態に過ぎず、キューを含み多様な形態のメモリ構造またはメモリ割当方法の使用が可能である。   FIG. 7 shows a rendering system 1000 that includes a reference memory 830 using a stack structure or stack substrate memory allocation. However, it is only one embodiment, and various forms of memory structures or memory allocation methods can be used, including queues.

レンダリングシステム1000は、図7のレイ生成部800を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム1000は、加速構造を探索し、交差点を検査してシェーディングを行うための構成要素が含まれたレンダラ810を介してレンダリングを行うことができる。   The rendering system 1000 can generate a ray via the ray generation unit 800 of FIG. Then, the rendering system 1000 can perform rendering on the generated ray through a renderer 810 including components for searching for an acceleration structure, inspecting an intersection, and performing shading.

そして、参照メモリマネージャ820は、生成されたレイからセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、参照メモリマネージャ820は生成されたレイに関する情報を参照メモリ830に保存することができる。   Then, the reference memory manager 820 can determine whether or not a secondary ray can be generated from the generated ray. If it is determined that the generated ray is a ray that can generate a secondary ray, the reference memory manager 820 can store information about the generated ray in the reference memory 830.

レイがシャドウレイではなくオブジェクトと交差すると、参照メモリマネージャ820はセカンダリレイを生成することができるレイであると判断することができる。   When a ray intersects an object instead of a shadow ray, the reference memory manager 820 can determine that the ray can generate a secondary ray.

なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム1000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム1000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。   When rendering for a shadow ray is performed, the rendering system 1000 can store the rendering result for the shadow ray in the frame buffer 150. That is, the rendering system 1000 can store the color value for the shadow ray in the frame buffer 150.

参照メモリマネージャ820は、レンダリングを行ったレイからそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ830を制御することができる。   If the reference memory manager 820 determines that no more secondary rays can be generated from the rendered ray, the reference memory manager 820 can control the reference memory 830 to delete information about the ray.

一方、図8は、本発明の別の実施形態に係るレンダリングシステム2000を示す図である。図8に示すレンダリングシステム2000もレイ生成部900を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム2000は加速構造を探索し、交差点を検索してシェーディングを行うための構成要素が含まれたレンダラ910を介してレンダリングを行うことができる。   On the other hand, FIG. 8 is a diagram showing a rendering system 2000 according to another embodiment of the present invention. The rendering system 2000 shown in FIG. 8 can also generate a ray via the ray generation unit 900. The rendering system 2000 can search the generated ray for an acceleration structure, and can perform rendering via a renderer 910 that includes components for performing shading by searching for an intersection.

なお、レンダリングシステム2000は、レイリファレンスマネージャ920によって、レイに関する情報を管理することができる。具体的に、リファレンスデータカルキュレータ930は生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、リファレンスデータカルキュレータ930は生成されたレイに関する情報を演算し、演算された情報を参照メモリ940に保存することができる。生成されたレイがシャドウレイではなくオフジェクトと交差すると、リファレンスデータカルキュレータ930はセカンダリレイを生成することができるレイと判断し、生成されたレイに関する情報を演算することができる。例えば、リファレンスデータカルキュレータ930は生成されたレイに対して、三角インデックス、レイデプス、レイが派生された方向、位置、そしてレイ及びオブジェクトが交差した位置に関する情報を演算することができる。   Note that the rendering system 2000 can manage information about rays by the ray reference manager 920. Specifically, the reference data calculator 930 can determine whether a secondary ray can be generated by the generated ray. If it is determined that the generated ray is a ray that can generate a secondary ray, the reference data calculator 930 calculates information about the generated ray, and the calculated information is used as a reference memory 940. Can be saved. When the generated ray intersects with an object instead of a shadow ray, the reference data calculator 930 determines that the ray can generate a secondary ray, and can calculate information regarding the generated ray. For example, the reference data calculator 930 may calculate information about the generated ray with respect to the triangular index, ray depth, direction in which the ray was derived, position, and the position where the ray and the object intersect.

なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム2000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム2000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。   When rendering for a shadow ray is performed, the rendering system 2000 can store the rendering result for the shadow ray in the frame buffer 150. That is, the rendering system 2000 can store the color value for the shadow ray in the frame buffer 150.

エリミネータ950は、レンダリングを行ったレイによってそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ940を制御することができる。すなわち、エリミネータ950は、参照メモリ940に保存されたレイに関する情報をプル(pull)し、レイに関する情報を削除することができる。例えば、レンダリングを行ったレイによってセカンダリレイとしてシャドウレイのみ生成された場合、エリミネータ950は参照メモリ940に保存されたレイに関する情報を削除することができる。   If it is determined that no more secondary rays can be generated by the rendered ray, the eliminator 950 can control the reference memory 940 so as to delete information regarding the ray. That is, the eliminator 950 can pull information on the ray stored in the reference memory 940 and delete the information on the ray. For example, when only the shadow ray is generated as the secondary ray by the rendered ray, the eliminator 950 can delete the information regarding the ray stored in the reference memory 940.

よって、図8に示すようなレンダリングシステム2000によって、ユーザは参照メモリ940で効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム2000を利用することができるようになる。   Therefore, the rendering system 2000 as shown in FIG. 8 enables the user to use the rendering system 2000 that can efficiently manage the memory in the reference memory 940 and perform rendering.

図9は、本発明の一実施形態に係るレンダリングシステムのレイ生成方法を示すフローチャートである。まず、レンダリングシステム100は、レイを生成し(S1000)、生成されたレイをレンダリングする(S1010)。そして、レンダリングシステム100は、生成されたレイに対するレンダリング結果によるカラー値をフレームバッファ150に保存して当該レイに対するレンダリングを完了することができる。   FIG. 9 is a flowchart illustrating a ray generation method of the rendering system according to an embodiment of the present invention. First, the rendering system 100 generates a ray (S1000), and renders the generated ray (S1010). The rendering system 100 can store the color value based on the rendering result for the generated ray in the frame buffer 150 and complete the rendering for the ray.

レンダリングシステム100は、生成されたレイがシャドウレイかを判断する(S1020)。判断の結果、生成されたレイがシャドウレイではない場合(S1020−N)、レンダリングシステム100は生成されたレイがオブジェクトと交差するか否かを判断する(S1040)。   The rendering system 100 determines whether the generated ray is a shadow ray (S1020). As a result of the determination, if the generated ray is not a shadow ray (S1020-N), the rendering system 100 determines whether the generated ray intersects the object (S1040).

生成されたレイがオブジェクトと交差すると判断されると(S1040−Y)、レンダリングシステム100は生成されたレイに関する情報を演算する(S1050)。そして、演算された情報を参照メモリに保存する(S1060)。生成されたレイがシャドウレイではなく、オブジェクトと交差すると、セカンダリレイが生成されてよい。よって、レンダリングシステム100はセカンダリレイを生成するために、演算された情報を参照メモリに保存することができる。   If it is determined that the generated ray intersects the object (S1040-Y), the rendering system 100 calculates information about the generated ray (S1050). Then, the calculated information is stored in the reference memory (S1060). A secondary ray may be generated when the generated ray intersects an object rather than a shadow ray. Therefore, the rendering system 100 can store the calculated information in the reference memory in order to generate the secondary ray.

生成されたレイがシャドウレイである場合(S1020−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S1030)。すなわち、レンダリングシステム100は、シャドウレイに対するレンダリング結果としてカラー値をフレームバッファ150に保存することができる。そして、レンダリングシステム100は、参照メモリが空いているかを判断する(S1070)。なお、レイがシャドウレイでなくても、オブジェクトと交差しない場合、レンダリングシステム100は参照メモリが空いているかを判断することができる(S1070)。   When the generated ray is a shadow ray (S1020-Y), the rendering system 100 stores the rendering result in the frame buffer 150 (S1030). That is, the rendering system 100 can store color values in the frame buffer 150 as rendering results for shadow rays. Then, the rendering system 100 determines whether the reference memory is free (S1070). If the ray is not a shadow ray but does not intersect the object, the rendering system 100 can determine whether the reference memory is free (S1070).

参照メモリが空いている場合(S1070−Y)、レンダリングシステム100はレンダリングを終了することができる。ただ、参照メモリが空いていない場合(S1070−N)か、演算された情報が参照メモリに保存された場合(S1060)、レンダリングシステム100は参照メモリに保存された情報のうち、最後に保存された情報を獲得し(S1080)、シャドウレイを除くセカンダリレイが生成可能か否かを判断する(S1090)。シャドウレイを除くセカンダリレイが生成可能な場合とは、情報が保存されたレイがオブジェクトと交差する場合を意味することができる。   When the reference memory is free (S1070-Y), the rendering system 100 can finish the rendering. However, when the reference memory is not free (S1070-N) or when the calculated information is stored in the reference memory (S1060), the rendering system 100 stores the last of the information stored in the reference memory. Information is acquired (S1080), and it is determined whether secondary rays excluding shadow rays can be generated (S1090). The case where a secondary ray excluding a shadow ray can be generated can mean a case where a ray in which information is stored intersects with an object.

シャドウレイを除くセカンダリレイが生成不可と判断された場合(S1090−N)、レンダリングシステム100は獲得した情報を削除する(S1100)。   When it is determined that secondary rays other than the shadow ray cannot be generated (S1090-N), the rendering system 100 deletes the acquired information (S1100).

具体的に、獲得した情報に対するレイがそれ以上反射レイまたは屈折レイのようなセカンダリレイを生成しない場合、レンダリングシステム100は獲得した情報を削除することができる。そして、レンダリングシステム100は、獲得した情報に対するレイがセカンダリレイとして、ただシャドウレイのみを生成する場合でも、シャドウレイが生成されてレンダリングされると、獲得した情報に対するレイを削除することができる。   Specifically, the rendering system 100 can delete the acquired information if a ray for the acquired information no longer generates a secondary ray such as a reflection ray or a refraction ray. The rendering system 100 can delete the ray for the acquired information when the ray for the acquired information is the secondary ray and only the shadow ray is generated and the shadow ray is generated and rendered.

シャドウレイを除くセカンダリレイが生成可能な場合(S1090−Y)、レンダリングシステム100は獲得した情報を基にレイを生成することができる(S1000)。すなわち、レンダリングシステム100は、参照メモリに保存された情報が全て削除されてなくなるまで、再帰的にレイを生成することができるようになる。   When a secondary ray excluding a shadow ray can be generated (S1090-Y), the rendering system 100 can generate a ray based on the acquired information (S1000). That is, the rendering system 100 can generate rays recursively until all the information stored in the reference memory is deleted.

本発明の多様な実施形態によると、ユーザはメモリに保存されるレイに対する情報の量を制御することで、メモリを効果的に使用するレンダリングシステムを利用することができるため、それによって性能を向上させることができる。   According to various embodiments of the present invention, a user can take advantage of a rendering system that effectively uses memory by controlling the amount of information for rays stored in memory, thereby improving performance. Can be made.

それに限られるものではないが、1つ以上の実施形態はコンピュータ読取可能な記録媒体にコンピュータが読取可能なコードで実現されてよい。コンピュータ読取可能な記録媒体は、コンピュータシステムによって読み取られ得るデータが保存される全種類の記録装置を含む。コンピュータ読取可能記録媒体の例は、読取専用メモリ(ROM)、ランダムアクセルメモリ(RAM)、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置を含む。コンピュータ読取可能記録媒体は、コンピュータ読取可能コードが分散方式で保存された実行されるように、ネットワークで接続されたコンピュータシステムに分散されてよい。なお、一実施形態は、搬送波(carrier wave)のようなコンピュータ読取可能な伝送媒体を通じて伝送されたコンピュータプログラムで記録されてよく、プログラムを実行する汎用または特殊の目的のデジタルコンピュータに受信されて実現されてよい。なお、実施形態において、上述の装置の1つ以上のユニットは、回路、プロセッサ、マイクロプロセッサ等を含んでよく、コンピュータ読取可能媒体に保存されたコンピュータプログラムを実行することができると理解される。   Without being limited thereto, one or more embodiments may be implemented as computer readable code on a computer readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. Examples of the computer readable recording medium include a read only memory (ROM), a random accelerator memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer readable recording medium may be distributed over a networked computer system so that the computer readable code is stored and executed in a distributed fashion. One embodiment may be recorded by a computer program transmitted through a computer readable transmission medium such as a carrier wave and received by a general purpose or special purpose digital computer executing the program. May be. Note that in embodiments, one or more units of the above-described apparatus may include circuits, processors, microprocessors, etc., and are understood to be able to execute computer programs stored on computer-readable media.

以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。   The preferred embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but the present invention is not limited to the above embodiments. It is obvious that a person having ordinary knowledge in the technical field to which the present invention belongs can come up with various changes or modifications within the scope of the technical spirit described in the claims. Of course, it is understood that these also belong to the technical scope of the present invention.

100 レンダリングシステム
110 レイ生成部
120 参照メモリ
130 レンダリング部
140 制御部
150 フレームバッファ
200 プライマリレイ
210 シャドウレイ
220 屈折レイ
230 反射レイ
240 シャドウレイ
250 屈折レイ
260 反射レイ
270 シャドウレイ
280 屈折レイ
290 反射レイ
310 プライマリレイ
320 シャドウレイ
330 屈折レイ
340 シャドウレイ
350 屈折レイ
360 シャドウレイ
370 反射レイ
380 シャドウレイ
390 屈折レイ
400 シャドウレイ
410 反射レイ
800 レイ生成部
810 レンダラ
820 参照メモリマネージャ
830 参照メモリ
900 レイ生成部
910 レンダラ
920 レイリファレンスマネージャ
930 リファレンスデータカルキュレータ
940 参照メモリ
950 エリミネータ
1000 レンダリングシステム
2000 レンダリングシステム
100 Rendering System 110 Ray Generation Unit 120 Reference Memory 130 Rendering Unit 140 Control Unit 150 Frame Buffer 200 Primary Ray 210 Shadow Ray 220 Refraction Ray 230 Reflection Ray 240 Shadow Ray 250 Refraction Ray 260 Reflection Ray 270 Shadow Ray 280 Refraction Ray 290 Reflection Ray 310 Primary ray 320 Shadow ray 330 Refraction ray 340 Shadow ray 350 Refraction ray 360 Shadow ray 370 Reflection ray 380 Shadow ray 390 Refraction ray 400 Shadow ray 410 Reflection ray 800 Ray generation unit 810 Renderer 820 Reference memory manager 830 Reference memory 900 Ray generation unit 910 Renderer 920 Ray reference manager 930 Reference data calculator 940 Reference memory 95 Eliminator 1000 rendering system 2000 rendering system

Claims (15)

レンダリングシステムのレンダリング処理を行うための方法において、
イメージをレンダリング(render)するための第1レイ(Primary Ray)を生成するステップと、
前記第1レイが少なくとも1つのセカンダリレイを生成することができるか否かを判断するステップと、
前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断された場合、前記第1レイに関する情報をメモリに保存するステップと、
前記メモリに保存された前記第1レイに関する情報に基づいて前記少なくとも1つのセカンダリレイを生成するステップと
を含むレイ生成方法。
In a method for performing a rendering process of a rendering system,
Generating a first ray for rendering an image;
Determining whether the first ray can generate at least one secondary ray;
If it is determined that the first ray can generate the at least one secondary ray, storing information about the first ray in a memory;
Generating the at least one secondary ray based on information about the first ray stored in the memory.
前記判断するステップは、
前記第1レイがオブジェクトと交差し、前記第1レイがシャドウレイ(shadow ray)ではない場合、前記第1レイは前記少なくとも1つのセカンダリレイを生成することができると判断するステップを含むことを特徴とする請求項1に記載のレイ生成方法。
The step of determining includes
Determining that the first ray can generate the at least one secondary ray if the first ray intersects the object and the first ray is not a shadow ray; The ray generation method according to claim 1, wherein:
前記第1レイが前記少なくとも1つのセカンダリレイを生成することができないと判断された場合、前記メモリから前記第1レイに関する情報を削除するステップを更に含むことを特徴とする請求項1に記載のレイ生成方法。   The method of claim 1, further comprising: deleting information about the first ray from the memory when it is determined that the first ray cannot generate the at least one secondary ray. Ray generation method. 前記少なくとも1つのセカンダリレイがシャドウレイを生成し、屈折レイまたは反射レイを生成しないと判断された場合、前記メモリから前記第1レイに関する情報を削除するステップを更に含むことを特徴とする請求項1に記載のレイ生成方法。   The method of claim 1, further comprising: deleting information about the first ray from the memory when it is determined that the at least one secondary ray generates a shadow ray and does not generate a refraction ray or a reflection ray. The ray generation method according to 1. 前記メモリに保存されたレイに関する情報があるか否かを判断するステップと、
前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するステップと
を更に含むことを特徴とする請求項4に記載のレイ生成方法。
Determining whether there is information about a ray stored in the memory;
When there is a plurality of pieces of information stored in the memory, the method further includes generating a secondary ray based on information about a ray last stored in the memory among the plurality of pieces of information. The ray generation method according to claim 4.
前記第1レイがシャドウレイである場合、前記第1レイのレンダリング結果をカラー値としてフレームバッファ(frame buffer)に保存するステップを更に含むことを特徴とする請求項1に記載のレイ生成方法。   The method of claim 1, further comprising: storing a rendering result of the first ray as a color value in a frame buffer when the first ray is a shadow ray. 前記メモリにレイに対する保存された情報がない場合、前記レンダリング処理(process)を終了するステップを含むことを特徴とする請求項1に記載のレイ生成方法。   The ray generation method according to claim 1, further comprising a step of ending the rendering process when there is no stored information for the ray in the memory. 前記第1レイに関する情報は、
前記第1レイの方向ベクトルに関する情報を含むことを特徴とする請求項1に記載のレイ生成方法。
Information about the first ray is
The ray generation method according to claim 1, further comprising information on a direction vector of the first ray.
レンダリングシステムにおいて、
第1レイを生成するレイ生成部と、
前記生成された第1レイに基づいてイメージをレンダリング(rendering)するレンダリング部(renderer)と、
メモリと、
前記第1レイが少なくとも1つのセカンダリレイを生成することができるか否かを判断し、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断されると、前記第1レイに関する情報を前記メモリに保存するように制御し、前記メモリに保存された前記第1レイに関する情報に基づいて前記少なくとも1つのセカンダリレイを生成するように制御する制御部と
を含むレンダリングシステム。
In the rendering system,
A ray generator for generating a first ray;
A renderer for rendering an image based on the generated first ray;
Memory,
It is determined whether or not the first ray can generate at least one secondary ray, and when it is determined that the first ray can generate the at least one secondary ray, the first ray is generated. A control unit that controls to store information on the memory in the memory, and controls to generate the at least one secondary ray based on the information about the first ray stored in the memory.
前記制御部は、
前記第1レイがオブジェクトと交差し、前記第1レイがシャドウレイ(shadow ray)ではない場合、前記第1レイが前記少なくとも1つのセカンダリレイを生成することができると判断することを特徴とする請求項9に記載のレンダリングシステム。
The controller is
When the first ray intersects with an object and the first ray is not a shadow ray, it is determined that the first ray can generate the at least one secondary ray. The rendering system according to claim 9.
前記制御部は、
前記第1レイが前記少なくとも1つのセカンダリレイを生成することができないと判断された場合、前記メモリから前記第1レイに関する情報を削除するように制御することを特徴とする請求項9に記載のレンダリングシステム。
The controller is
10. The control according to claim 9, wherein when it is determined that the first ray cannot generate the at least one secondary ray, control is performed to delete information on the first ray from the memory. Rendering system.
前記制御部は、
前記メモリに保存されたレイに関する情報があるか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するように制御することを特徴とする請求項11に記載のレンダリングシステム。
The controller is
It is determined whether there is information about a ray stored in the memory, and when there is a plurality of information stored in the memory, information about a ray last stored in the memory among the plurality of information. The rendering system according to claim 11, wherein the control is performed so as to generate a secondary ray based on the method.
前記制御部は、
前記第1レイがシャドウレイである場合、前記第1レイのレンダリング結果をフレームバッファ(frame buffer)に保存するように制御することを特徴とする請求項9に記載のレンダリングシステム。
The controller is
10. The rendering system of claim 9, wherein when the first ray is a shadow ray, the rendering system controls to save a rendering result of the first ray in a frame buffer. 11.
前記制御部は、
前記メモリに保存されたレイに関する情報があるかを判断し、前記メモリにレイに対する保存された情報がない場合、前記レンダリングシステムのレンダリング処理を終了するように制御することを特徴とする請求項9に記載のレンダリングシステム。
The controller is
10. The method of determining whether there is information about a ray stored in the memory and controlling the rendering process of the rendering system to end when there is no information stored for the ray in the memory. The rendering system described in
前記第1レイに関する情報は、
前記第1レイの方向ベクトルに関する情報を含むことを特徴とする請求項9に記載のレンダリングシステム。
Information about the first ray is
The rendering system according to claim 9, further comprising information on a direction vector of the first ray.
JP2016566233A 2014-05-02 2015-04-21 Rendering system and method for ray generation Expired - Fee Related JP6665112B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR10-2014-0053472 2014-05-02
KR20140053472 2014-05-02
KR1020140108366A KR102201834B1 (en) 2014-05-02 2014-08-20 Rendering system for manufacturing ray and method thereof
KR10-2014-0108366 2014-08-20
PCT/KR2015/003942 WO2015167159A1 (en) 2014-05-02 2015-04-21 Rendering system and method for generating ray

Publications (2)

Publication Number Publication Date
JP2017517806A true JP2017517806A (en) 2017-06-29
JP6665112B2 JP6665112B2 (en) 2020-03-13

Family

ID=54605729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016566233A Expired - Fee Related JP6665112B2 (en) 2014-05-02 2015-04-21 Rendering system and method for ray generation

Country Status (3)

Country Link
JP (1) JP6665112B2 (en)
KR (1) KR102201834B1 (en)
CN (1) CN106462993B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502395A (en) * 2008-09-10 2012-01-26 コースティック グラフィックス インコーポレイテッド Ray tracing system architecture and method
JP2012503259A (en) * 2008-09-22 2012-02-02 コースティック グラフィックス インコーポレイテッド System and method for ray tracing shader API

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101511281B1 (en) * 2008-12-29 2015-04-13 삼성전자주식회사 Apparatus and method for enhancing ray tracing speed
KR101076807B1 (en) * 2009-05-29 2011-10-25 주식회사 실리콘아츠 Ray tracing apparatus and method
US8189001B2 (en) * 2010-01-04 2012-05-29 Adshir Ltd. Method and apparatus for parallel ray-tracing employing modular space division
CN103080981B (en) * 2010-08-27 2016-03-02 矽锂铬艺术有限公司 Select the method for MIP-map level and utilize the texturing system of the method
US8866813B2 (en) * 2011-06-30 2014-10-21 Dreamworks Animation Llc Point-based guided importance sampling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502395A (en) * 2008-09-10 2012-01-26 コースティック グラフィックス インコーポレイテッド Ray tracing system architecture and method
JP2012503259A (en) * 2008-09-22 2012-02-02 コースティック グラフィックス インコーポレイテッド System and method for ray tracing shader API

Also Published As

Publication number Publication date
CN106462993B (en) 2020-06-19
JP6665112B2 (en) 2020-03-13
KR102201834B1 (en) 2021-01-12
KR20150126264A (en) 2015-11-11
CN106462993A (en) 2017-02-22

Similar Documents

Publication Publication Date Title
US9483864B2 (en) System and method for photorealistic imaging using ambient occlusion
US20150091895A1 (en) Method and apparatus for accelerating ray tracing
US8952970B2 (en) Rendering processing apparatus and method using multiprocessing
US20100328310A1 (en) Systems and methods of defining rays for ray tracing rendering
US11727632B2 (en) Shader binding management in ray tracing
US10403034B2 (en) Image processing method and apparatus for rendering an image based on virtual point light (VPL) samplings
US10740153B2 (en) Generating duplicate apparatuses for managing computing resources based on number of processing tasks
US9390545B2 (en) Apparatus and method for traversing hierarchical acceleration structure
TW201626218A (en) Techniques for passing dependencies in an API
CN110222410B (en) Electromagnetic environment simulation method based on Hadoop MapReduce
CN115210767A (en) Partial residence bounding box hierarchy
US9230294B2 (en) Preserving and reusing intermediate data
JP2015114775A (en) Image processor and image processing method
US10761741B1 (en) Method and system for managing and sharing data using smart pointers
US9934605B2 (en) Depth buffering for subsequent scene rendering
JP2017517806A (en) Rendering system and method for ray generation
US20120262456A1 (en) Line Space Gathering for Single Scattering in Large Scenes
CN115496835A (en) Point cloud data coloring method and system based on CPU and GPU heterogeneous parallel architecture
US9401038B2 (en) Information processing apparatus, generation method, and storage medium
US11176721B2 (en) Multiplex pixel distribution for multi-machine rendering
US8952971B2 (en) Rendering processing apparatus and method using multiprocessing
US10186071B2 (en) Rendering system and method for generating ray
KR20110059037A (en) Apparatus and method for ray-tracing using multi-level kernel
Vasilakis et al. Variable k-buffer using Importance Maps.
CA2810821A1 (en) Distributed element rendering

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200219

R150 Certificate of patent or registration of utility model

Ref document number: 6665112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees