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

Rendering system and method for ray generation Download PDF

Info

Publication number
JP6665112B2
JP6665112B2 JP2016566233A JP2016566233A JP6665112B2 JP 6665112 B2 JP6665112 B2 JP 6665112B2 JP 2016566233 A JP2016566233 A JP 2016566233A JP 2016566233 A JP2016566233 A JP 2016566233A JP 6665112 B2 JP6665112 B2 JP 6665112B2
Authority
JP
Japan
Prior art keywords
ray
information
memory
generated
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.)
Expired - Fee Related
Application number
JP2016566233A
Other languages
Japanese (ja)
Other versions
JP2017517806A (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)

Description

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

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

一般的に、光線追跡法は、大きく光線生成部(Ray Generator)、加速構造探索(Acceleration Structure Traversal)、交差点検査(Intersection Test)及びシェーディング(Shading)の各段階を含む。光線生成部から生成された光線は、加速構造探索及び交差点検査によって交差点から情報を得た後、シェーディング過程を通じて最終的カラーが決定される。交差点の媒質によって、反射、屈折またはシャドウレイに該当するセカンダリ光線が光線生成部から生成されたプライマリ光線から派生される。光線生成部は、セカンダリ光線に対して加速構造探索及びその後の過程を行うためにセカンダリ光線を保存する。   In general, the ray tracing method generally includes a ray generator, an acceleration structure traversal, an intersection test, and a shading. The rays generated from the ray generator are obtained from the intersection by an accelerated structure search and an intersection inspection, and a final color is determined through a 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 by the ray generator. The ray generator stores the secondary rays to perform an acceleration structure search and subsequent processes for the secondary rays.

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

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

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

前記判断するステップは、前記第1レイがオブジェクトと交差し、前記第1レイがシャドウレイ(shadow ray)ではない場合、前記第1レイが前記少なくとも1つのセカンダリレイが生成することができると判断するステップを含んでよい。   The determining may include determining that the first ray can be generated by the at least one secondary ray if the first ray intersects an 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 does not generate a reflected ray or a refracted ray.

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

前記方法は、前記第1レイがシャドウレイである場合、前記第1レイのレンダリング結果をカラー値としてフレームバッファ(frame buffer)に保存するステップを更に含んでよい。   The method may further include, if the first ray is a shadow ray, 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 on the first ray may include information on a 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 generation unit that generates a first ray, a rendering unit that renders an image based on the generated first ray, a renderer, and a memory. Determining whether the first ray is capable of generating at least one secondary ray, and determining that the first ray is capable of generating the at least one secondary ray; A control unit that controls to store information about a ray in the memory and generates 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 with an object and the first ray is not a shadow ray.

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

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

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

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

前記第1レイに関する情報は、前記第1レイの方向ベクトルに関する情報を含んでよい。   The information on the first ray may include information on a 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, there is provided a method for performing a rendering process of a rendering system, comprising the steps of generating a primary ray for rendering an image, and a second ray from which the first ray is derived. storing information about the first ray if the second ray can be generated; and storing the information about the first ray if the first ray cannot be additionally generated. Deleting information.

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

前記派生され得る第2レイは、前記第1レイが生成した複数個の第2レイのうちの1つであってよく、前記保存するステップは、前記派生され得る第2レイをメモリのメインスタックに保存するステップと、前記派生され得る第2レイ及びシャドウレイではない前記複数個の第2レイを前記メモリの第2スタックに保存してよい。   The derivable second ray may be one of a plurality of second rays generated by the first ray, and the storing includes storing the derivable second ray in a main stack of a memory. And storing the derived second rays 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 may be derived may be a refraction ray or a reflection ray derived from the first ray, and the storing may include storing information about the refraction ray or information about the reflection ray in a main stack of a memory. Storing, if the reflected ray is stored in the main stack, storing the refracted ray in a second stack of the memory; and if the refracted ray is stored in the main stack, the second Storing information about said reflected ray in a stack.

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

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

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

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

以下に添付図面を参照しながら、本発明の好適な実施形態についてより詳細に説明する。本発明を説明するうえで、関連の公知機能或いは構成に対する具体的な説明が、本発明の要旨を不要に曖昧とすると判断された場合には、その詳細な説明は省略する。そして、後述の用語は、本発明における機能を考慮して定義された用語として、それは使用者や運用者の意図または慣例等によって異なってよい。そのため、その定義は本明細書全般にわたる内容に基づいて下されるべきである。   Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, when it is determined that the detailed description of related known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. The terms described below are defined in consideration of the functions of the present invention, and may differ depending on the intention or custom of the user or the operator. Therefore, its 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 illustrating a configuration of a rendering system 100 according to an embodiment of the present invention. As shown 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 below. In addition, the secondary ray may include a shadow ray (Shadow Ray), a refraction ray (Refraction Ray), and a reflection ray (Reflection Ray). In addition. When generating a secondary ray, the ray generating unit 110 can generate a shadow ray first. After rendering on the shadow rays, ray generator 110 may generate refraction or reflection rays.

一方、参照メモリ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 this is only one embodiment and is not limited to the type of the memory.

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

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

例えば、光線追跡法(Ray Tracing)で使用される加速構造を探索し、交差点を検査してシェーディングを行うための構成要素がレンダリング部130に含まれてよい。   For example, the rendering unit 130 may include components for searching for an acceleration structure used in a ray tracing method, inspecting an intersection, and performing 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 controller 140 may determine whether a secondary ray can be generated based on the generated ray. Then, according to the result of the determination, the control unit 140 may perform control to store the information about the ray in the reference memory 120.

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

そして、生成されたレイがセカンダリレイを生成することができるレイと判断された場合、制御部140は、生成されたレイに関する情報を参照メモリ120に保存するように制御することができる。そして、制御部140は、参照メモリ120に保存されたレイに関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。   If it is determined that the generated ray is a ray that can generate a secondary ray, the control unit 140 may control to store information on the generated ray in the reference memory 120. The control unit 140 may control the ray generation unit 110 to generate a secondary ray based on the information about 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 may perform control to record a color value according to a rendering result of the generated ray in a frame buffer (Frame Buffer). That is, since the secondary ray is not generated by the shadow ray, the controller 140 may store the color value based on the rendering result of the shadow ray in the frame buffer and complete the rendering of the ray. In addition, the control unit 140 can determine whether or not there is information on the 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 may end the rendering.

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

そして、制御部140は、参照メモリ120から第1レイに関する情報を削除した後、参照メモリ120に保存された情報がある場合、参照メモリ120に最後に保存されたレイに関する情報に基づいて別のセカンダリレイを生成することができる。   Then, after deleting the information about the first ray from the reference memory 120, if there is information stored in the reference memory 120, the control unit 140 may determine 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 controller 140 may determine whether a secondary ray can be generated based on information about the most recently stored ray. If the most recently stored ray is capable of generating a secondary ray, the controller 140 may generate another secondary ray based on information about 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 above-described rendering system 100 allows a user to use the rendering system 100 that can efficiently manage and perform rendering while using a small-sized memory.

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

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

シャドウレイ210は、それ以上のセカンダリレイを生成しない。しかし、屈折レイ220及び反射レイ230は少なくとも1つのセカンダリレイを生成することができる。例えば、図2に示すように、屈折レイ220がセカンダリレイとしてシャドウレイ240、屈折レイ250及び反射レイ260を生成することができる。そして、反射レイ230がセカンダリレイとしてシャドウレイ270、屈折レイ280及び反射レイ290を生成することができる。   Shadow ray 210 does not generate any more secondary rays. However, refraction ray 220 and 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つの追加シャドウレイ、屈折レイ及び反射レイが生成されてよい。   In addition, 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 used as the secondary rays of the refraction rays 250 and 280 and the reflection rays 260 and 290 which are the respective secondary rays. May be generated.

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

図3は、本発明の一実施形態に係るセカンダリレイを生成して保存する方法を示す。   FIG. 3 illustrates a method of 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 a secondary ray 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. Then, 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. From the second refraction ray 370, a fourth shadow ray 380 and a fourth refraction ray 390 are generated. From the fourth refracted ray 390, a fifth shadow ray 400 is generated.

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

図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 a ray generation procedure. When the primary ray 310 is generated through 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 the primary ray 310 intersects with the object.

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

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

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

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

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

なお、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ120にプライマリレイ310に関する情報が保存されているため、制御部140はプライマリレイ310に関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。   In addition, the control unit 140 can determine whether or not there is information on the ray stored in the reference memory 120. Since 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 a 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 a secondary ray, the controller 140 may determine whether the generated secondary ray is a shadow ray. Since the first refraction ray 330 is not a shadow ray, the control unit 140 can determine whether the first refraction ray 330 intersects the object. When the first refraction ray 330 intersects with the object, the control unit 140 may store information about the first refraction ray 330 in the reference memory 120 because a secondary ray may be further generated by the first refraction ray 330.

参照メモリ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 on the first refraction ray 330 stored in the reference memory 120, the second shadow ray 340 does not generate any more secondary rays, so the control is performed. The unit 140 does not need to store the information about the generated second shadow ray 340. Therefore, at time T540 when the second shadow ray 340 is generated as the secondary ray, the state of the reference memory 120 is not changed compared with the state of the reference memory at time T530 before the second shadow ray 340 is generated. Good.

本発明の一実施形態によると、参照メモリ120はセカンダリスタック(secondary stack)を更に含んでよい。このとき、セカンダリスタックを除く参照メモリ120の残りの領域はメインスタックであってよい。また、セカンダリスタックは、参照メモリ120と区分された保存部に実現されてよい。制御部140は、第1屈折レイ410を時間T530にセカンダリスタックに保存することができる。制御部140が時間T600に第1屈折レイ330から派生された全てのセカンダリレイ処理を終えた際、T600の後に制御部140がどのようなデータを処理するかを判断するために、制御部140はセカンダリスタックを参照することができる。   According to an exemplary embodiment, 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. In addition, the secondary stack may be implemented in a storage unit separated from the reference memory 120. The controller 140 may store the first refracted ray 410 in the secondary stack at time T530. When the control unit 140 completes all the secondary ray processing derived from the first refraction ray 330 at time T600, the control unit 140 may determine what data to process after T600. Can refer to the secondary stack.

そして、制御部140は、第2シャドウレイ340のレンダリング結果カラー値をフレームバッファ150に保存するように制御することができる。   In addition, the controller 140 may 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 about a ray. As a result of the determination, if there is a ray stored in the reference memory 120, the controller 140 may control the ray generator 110 to generate a secondary ray.

しかし、第2シャドウレイ340に関する情報が保存されない。すなわち、参照メモリ120に最も最後に保存された情報は第1屈折レイ330に関する情報である。よって、制御部140は、参照メモリ120に保存された情報である第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。   However, information about 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 control the secondary ray to be generated based on the information on the first refraction ray 330, which is the 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 generation unit 110 generates the second refraction ray 350 as the secondary ray based on the information about the first refraction ray 330 stored in the reference memory 120, the control unit 140 determines whether the generated second refraction ray 350 is a shadow ray. Can be determined. Since the second refraction ray 350 is not a shadow ray, the control unit 140 can determine whether the second refraction ray 350 intersects the object. When the second refraction ray 350 intersects with the object, the controller 140 may store information about the second refraction ray 350 in the reference memory 120 at time T550 because a secondary ray may be further generated by the second refraction ray 350. it can.

なお、制御部140は、時間T550にセカンダリスタックに第2反射レイ370を保存して第2反射レイ370が第1反射レイ410にスタックされるようにすることができる。制御部140が、T560に第2屈折レイ350から派生された全てのセカンダリレイを処理することが終わる際、時間T570に制御部140がどのようなデータを処理するか判断するために制御部140はセカンダリスタックを参照することができる。   In addition, the controller 140 may store the second reflection ray 370 in the secondary stack at a 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 may determine what data the control unit 140 processes 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 the secondary ray based on the information about the second refraction ray 350 stored in the reference memory 120, the control unit 140 may calculate the color value according to the rendering result of the third shadow ray 360. It can be stored in the frame buffer 150. Since the stored second refracted ray 350 does not need to be further processed, the controller 140 may delete the stored information about the second refracted ray 350 at time T560. Therefore, the reference memory 120 can store only the information regarding the first refraction 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 about the ray stored in the reference memory 120. As a result of the determination, if there is a ray stored in the reference memory 120, the controller 140 may control the ray generator 110 to generate a secondary ray.

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

参照メモリ120に保存された第1屈折レイ330に関する情報を基にレイ生成部110がセカンダリレイを生成することができる。特に、レイ生成部110は、参照メモリ120に保存された第1屈折レイ330に関する情報を基にセカンダリレイである第2シャドウレイ340を先に生成したため、反射または屈折レイをセカンダリレイとして生成することができる。   The ray generator 110 may generate a secondary ray based on the information on the first refraction ray 330 stored in the reference memory 120. In particular, since the ray generation unit 110 generates the second shadow ray 340, which is the secondary ray, based on the information about the first refraction ray 330 stored in the reference memory 120, the ray generation unit 110 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 the secondary ray, the control unit 140 can determine whether 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 the second reflection ray 370 intersects with the object.

第2反射レイ370がオブジェクトと交差する場合、第2反射レイ370によってセカンダリレイが更に生成されてよい。よって、制御部140は、第2反射レイ370に関する情報を時間T570に参照メモリ120に保存することができる。   If the second reflected ray 370 intersects with the object, the second reflected ray 370 may further generate a secondary ray. Therefore, the control unit 140 can store the 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 controller 140 can refer to the secondary stack to determine what has not yet been processed between the second refraction ray 350 and the second refraction ray 370. As shown in FIG. 4, the secondary stack shows 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 store it in the main stack of the reference memory 120 at time T570.

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

そして、制御部140は、参照メモリ120に保存された第2反射レイ370に関する情報を基にセカンダリレイを生成するようにレイ生成部110を制御することができる。   The controller 140 may control the ray generator 110 to generate a secondary ray based on the information about 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 may first generate the fourth shadow ray 380 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 the secondary shadow is not generated any more by the fourth shadow ray 380, the control unit 140 does not need to store the generated information on the fourth shadow ray 380 at the time T580. Therefore, the state of the reference memory 120 at the time T580 when the fourth shadow ray 380 is generated as the secondary ray does not change compared to the state of the reference memory 120 at the time T570 before the generation of the fourth shadow ray 380.

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

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

よって、第4屈折レイ390のレンダリング結果、制御部140の制御によって参照メモリ120は時間T590に第2反射レイ370に関する情報を削除することができる。   Therefore, as a result of the rendering of the fourth refraction ray 390, the reference memory 120 may delete information about 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 control unit 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. If the fourth refraction ray 390 intersects with the object, the ray generation unit 110 may generate a secondary ray based on the fourth refraction ray 390. The ray generation unit 110 can first generate a shadow ray as a secondary ray. Accordingly, when the fifth shadow ray 500 is generated as the secondary ray, the controller 140 may control the rendering result color value of the fifth shadow ray 500 to be stored in the frame buffer 150. Since the secondary ray is not further generated by the first refraction ray 330, the controller 140 may control the reference memory 120 to delete the information about 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 about 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 a secondary ray based on the information on 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 the first reflection ray 410 in the main stack of the reference memory 120. Accordingly, the controller 140 may determine that the first reflection ray 140 has not been processed between the first refraction ray 330 and the first reflection ray 410, and after the time T600, the first reflection ray 140. 410 can proceed. The rendering system 100 may perform rendering on the secondary ray based on the first reflection ray through the above-described process.

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

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

図5は、本発明の一実施形態に係るセカンダリレイ生成手順を示すフローチャートである。まず、レンダリングシステム100は、第1レイを生成し(S610)、生成された第1レイをレンダリングする(S620)。   FIG. 5 is a flowchart illustrating 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に保存することができる。   If it is determined that the secondary ray can be generated by the first ray (S630-Y), the rendering system 100 stores information about the first ray in the reference memory 120 (S640). Specifically, when the generated ray is not a shadow ray and intersects with the object at the same time, the rendering system 100 may determine that the ray is a ray that can generate a secondary ray. If it is determined that a secondary ray can be generated based on the generated ray, the rendering system 100 may store information about 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 on the first ray (S650). Note that the information on the ray may include a direction vector of the ray. Therefore, the rendering system 100 may generate a second ray, which is a secondary ray based on the first ray, using the stored information on the direction vector of the ray. In particular, the rendering system 100 may generate a shadow ray among the secondary rays. After generating the shadow rays, rendering system 100 may generate refraction or reflection rays as secondary rays.

一方、図6は、本発明の一実施形態に係る再帰的なセカンダリレイ生成手順を示す具体的なフローチャートである。   FIG. 6 is a specific flowchart illustrating 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)。   If the ray does not intersect the object, even if it is not a shadow ray, no secondary ray is created. Therefore, the rendering system 100 determines whether the ray intersects the object (S730).

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

生成されたレイがシャドウレイである場合(S720−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S750)。そして、レンダリングシステム100は、参照メモリ120が空いているかを判断する(S760)。   If 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 with the object and is not a shadow ray, the rendering system 100 can determine whether the reference memory 120 is free (S760).

そして、レイによってセカンダリレイがそれ以上生成されないと判断された場合、レンダリングシステム100は参照メモリ120からレイに関する情報を削除することができる。   If it is determined that no secondary ray is generated by the ray, the rendering system 100 may 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 generation unit 110 to be constant.

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

レンダリングシステム1000は、図7のレイ生成部800を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム1000は、加速構造を探索し、交差点を検査してシェーディングを行うための構成要素が含まれたレンダラ810を介してレンダリングを行うことができる。   The rendering system 1000 may generate a ray via the ray generation unit 800 of FIG. The rendering system 1000 may perform rendering on the generated light 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 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 may store information about the generated ray in the reference memory 830.

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

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

参照メモリマネージャ820は、レンダリングを行ったレイからそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ830を制御することができる。   If the reference memory manager 820 determines that no more secondary ray 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を介してレンダリングを行うことができる。   FIG. 8 is a diagram illustrating a rendering system 2000 according to another embodiment of the present invention. The rendering system 2000 shown in FIG. 8 can also generate rays via the ray generation unit 900. Then, the rendering system 2000 may perform rendering on the generated light through a renderer 910 including components for searching for an acceleration structure, searching for an intersection, and performing shading.

なお、レンダリングシステム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 may determine whether a secondary ray can be generated based on 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 on the generated ray, and stores the calculated information in the reference memory 940. Can be saved. If the generated ray intersects with the object instead of the shadow ray, the reference data calculator 930 may determine that the secondary ray can be generated and calculate information about the generated ray. For example, the reference data calculator 930 may calculate information on a generated ray, such as a triangular index, a ray depth, a direction from which the ray is derived, a position, and a position where the ray and the object intersect.

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

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

よって、図8に示すようなレンダリングシステム2000によって、ユーザは参照メモリ940で効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム2000を利用することができるようになる。   Accordingly, the rendering system 2000 as shown in FIG. 8 allows the user to use the rendering system 2000 that can efficiently manage 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 exemplary embodiment. First, the rendering system 100 generates a ray (S1000), and renders the generated ray (S1010). Then, the rendering system 100 may store the color values according to the rendering result of the generated ray in the frame buffer 150 and complete the rendering of the ray.

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

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

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

参照メモリが空いている場合(S1070−Y)、レンダリングシステム100はレンダリングを終了することができる。ただ、参照メモリが空いていない場合(S1070−N)か、演算された情報が参照メモリに保存された場合(S1060)、レンダリングシステム100は参照メモリに保存された情報のうち、最後に保存された情報を獲得し(S1080)、シャドウレイを除くセカンダリレイが生成可能か否かを判断する(S1090)。シャドウレイを除くセカンダリレイが生成可能な場合とは、情報が保存されたレイがオブジェクトと交差する場合を意味することができる。   If the reference memory is free (S1070-Y), the rendering system 100 can end the rendering. However, if the reference memory is not empty (S1070-N) or if the calculated information is stored in the reference memory (S1060), the rendering system 100 stores the last information among the information stored in the reference memory. The obtained information is obtained (S1080), and it is determined whether a secondary ray excluding a shadow ray 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)。   If it is determined that a secondary ray other than a shadow ray cannot be generated (S1090-N), the rendering system 100 deletes the acquired information (S1100).

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

シャドウレイを除くセカンダリレイが生成可能な場合(S1090−Y)、レンダリングシステム100は獲得した情報を基にレイを生成することができる(S1000)。すなわち、レンダリングシステム100は、参照メモリに保存された情報が全て削除されてなくなるまで、再帰的にレイを生成することができるようになる。   If a secondary ray other than 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 not deleted.

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

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

以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。   As described above, the preferred embodiments of the present invention have been described in detail with reference to the accompanying drawings, but the present invention is not limited to the above embodiments. It is apparent that those skilled in the art to which the present invention pertains can conceive various changes or modifications within the scope of the technical spirit described in the claims. 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 レンダリングシステム
Reference Signs List 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 Refracted ray 340 Shadow ray 350 Refracted ray 360 Shadow ray 370 Reflected ray 380 Shadow ray 390 Refracted ray 400 Shadow ray 410 Reflected ray 800 Ray generator 810 Renderer 820 Reference memory manager 830 Reference memory 900 Ray generator 910 Renderer 920 Ray reference manager 930 Reference data calculator 940 Reference memory 95 Eliminator 1000 rendering system 2000 rendering system

Claims (12)

レンダリングシステムのレンダリング処理を行うための方法において、
イメージをレンダリング(render)するためのレイ(Primary Ray)を生成するステップと、
記レがセカンダリレイを生成することができるか否かを判断するステップと、
記レイが前記セカンダリレイを生成することができると判断された場合、前記レに基づいて算出された第1情報をメモリに保存するステップと、
前記メモリに保存された前記第1情報に基づいて第1セカンダリレイを生成するステップと
前記第1セカンダリレイによって前記セカンダリレイを生成することができるか否かを判断するステップと、
前記第1セカンダリレイによって前記セカンダリレイを生成することができると判断された場合、前記第1セカンダリレイに基づいて算出された第2情報を前記メモリに保存するステップと、
前記メモリに保存された前記第2情報に基づいて第2セカンダリレイを生成するステップと、
前記第2セカンダリレイがシャドウレイか、前記第1セカンダリレイが屈折レイ及び反射レイを含む前記セカンダリレイを生成しないと判断されると、前記メモリに保存された第2情報を削除するステップと、
前記メモリに保存された第1情報に基づいて前記レイによってセカンダリレイを生成することができるか否かを判断し、前記レイによってセカンダリレイを生成することができる場合、前記メモリに保存された第1情報に基づいて第3セカンダリレイを生成するステップと
を含むレイ生成方法。
In a method for performing a rendering process of a rendering system,
The method comprising the steps of: generating a rendering (render) Les for Lee (Primary Ray) the image,
And determining whether it is possible to generate a pre sharp Lee Gase Kandarirei,
A step before sharp b is to be saved before when it is determined that it is possible to generate a xenon Kandarirei, the first information that is calculated based on the previous sharp Lee in the memory,
Generating a first secondary ray based on the first information stored in the memory ;
Determining whether the secondary ray can be generated by the first secondary ray;
When it is determined that the secondary ray can be generated by the first secondary ray, storing the second information calculated based on the first secondary ray in the memory;
Generating a second secondary ray based on the second information stored in the memory;
Deleting the second information stored in the memory when it is determined that the second secondary ray is a shadow ray or the first secondary ray does not generate the secondary ray including a refraction ray and a reflection ray;
It is determined whether a secondary ray can be generated by the ray based on the first information stored in the memory. If a secondary ray can be generated by the ray, the second ray stored in the memory is determined. Generating a third secondary ray based on the first information .
前記判断するステップは、
記レイがオブジェクトと交差し、前記レイがシャドウレイ(shadow ray)ではない場合、前記レイは前記セカンダリレイを生成することができると判断するステップを含むことを特徴とする請求項1に記載のレイ生成方法。
The step of determining
Before crossing sharp b is an object, and wherein the front case sharp Lee is not a shadow ray (shadow ray), the previous sharp b includes the step of determining that it is possible to generate a pre-xenon Kandarirei The method of generating rays according to claim 1.
前記メモリに保存されたレイに関する情報があるか否かを判断するステップと、
前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するステップとを更に含むことを特徴とする請求項に記載のレイ生成方法。
Determining whether there is information about the ray stored in the memory;
If information stored in the memory is a plurality, and further comprising the step of generating the secondary ray based on the information about the last saved lay in the memory of the plurality of information The method of generating rays according to claim 1 .
記レイがシャドウレイである場合、前記レイのレンダリング結果をカラー値としてフレームバッファ(frame buffer)に保存するステップを更に含むことを特徴とする請求項1に記載のレイ生成方法。 Before if sharp Lee is the shadow ray, ray generating method according to claim 1, characterized in that before further comprising storing the result of rendering sharp Lee in the frame buffer (frame buffer) as the color value. 前記メモリにレイに対する保存された情報がない場合、前記レンダリング処理(process)を終了するステップを含むことを特徴とする請求項1に記載のレイ生成方法。   The method of claim 1, further comprising terminating the rendering process if there is no stored information for the ray in the memory. 記レに基づいて算出された第1情報は、
記レイの方向ベクトルに関する情報を含むことを特徴とする請求項1に記載のレイ生成方法。
First information calculated based on the previous sharp stomach,
Ray generation method according to claim 1 before, characterized in that it comprises information about the direction vector of the sharp Lee.
レンダリングシステムにおいて、
イを生成するレイ生成部と、
前記生成されたレイに基づいてイメージをレンダリング(rendering)するレンダリング部(renderer)と、
メモリと、
記レがセカンダリレイを生成することができるか否かを判断し、前記レイが前記セカンダリレイを生成することができると判断されると、前記レイに基づいて算出された第1情報を前記メモリに保存するように制御し、前記メモリに保存された前記第1情報に基づいて第1セカンダリレイを生成するように制御し、前記第1セカンダリレイによって前記セカンダリレイを生成することができるか否かを判断し、前記第1セカンダリレイによって前記セカンダリレイを生成することができると判断された場合、前記第1セカンダリレイに基づいて算出された第2情報を前記メモリに保存するように制御し、前記メモリに保存された前記第2情報に基づいて第2セカンダリレイを生成するように制御し、前記第2セカンダリレイがシャドウレイか、前記第1セカンダリレイが屈折レイ及び反射レイを含む前記セカンダリレイを生成しないと判断されると、前記メモリに保存された第2情報を削除し、前記メモリに保存された第1情報に基づいて前記レイによってセカンダリレイを生成することができるか否かを判断し、前記レイによってセカンダリレイを生成することができる場合、前記メモリに保存された第1情報に基づいて第3セカンダリレイを生成するように制御する制御部と
を含むレンダリングシステム。
In the rendering system,
And Ray generation unit for generating a Tray,
Rendering unit for rendering (rendering) image based on the generated Tray and (renderer),
Memory and
Determines whether it is possible to generate a pre sharp Lee Gase Kandarirei, before the sharp Lee is determined that it is possible to generate a pre-xenon Kandarirei is calculated based on the previous sharp Lee The first information stored in the memory is controlled to generate a first secondary ray based on the first information stored in the memory, and the secondary ray is generated by the first secondary ray. It is determined whether or not the secondary ray can be generated. If it is determined that the secondary ray can be generated by the first secondary ray, the second information calculated based on the first secondary ray is stored in the memory. And the second secondary ray is controlled to generate a second secondary ray based on the second information stored in the memory. Alternatively, if it is determined that the first secondary ray does not generate the secondary ray including the refraction ray and the reflection ray, the second information stored in the memory is deleted, and the first information stored in the memory is deleted. Determining whether a secondary ray can be generated based on the ray based on the first ray, and if a secondary ray can be generated based on the ray, determining a third secondary ray based on the first information stored in the memory. And a control unit for controlling the generation .
前記制御部は、
記レイがオブジェクトと交差し、前記レイがシャドウレイ(shadow ray)ではない場合、前記レイが前記少なくとも1つのセカンダリレイを生成することができると判断することを特徴とする請求項に記載のレンダリングシステム。
The control unit includes:
Before sharp Lee crosses the object, before if sharp Lee is not a shadow ray (shadow ray), before sharp Lee is and determines that it is possible to generate the at least one secondary ray The rendering system according to claim 7 .
前記制御部は、
前記メモリに保存されたレイに関する情報があるか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するように制御することを特徴とする請求項に記載のレンダリングシステム。
The control unit includes:
It is determined whether there is information about the ray stored in the memory. The rendering system according to claim 7 , wherein control is performed to generate the secondary ray based on the secondary ray.
前記制御部は、
記レイがシャドウレイである場合、前記レイのレンダリング結果をフレームバッファ(frame buffer)に保存するように制御することを特徴とする請求項に記載のレンダリングシステム。
The control unit includes:
Before if sharp Lee is the shadow ray, rendering system of claim 7, wherein the controller controls so as to store the rendering result of the previous sharp Lee in the frame buffer (frame buffer).
前記制御部は、
前記メモリに保存されたレイに関する情報があるかを判断し、前記メモリにレイに対する保存された情報がない場合、前記レンダリングシステムのレンダリング処理を終了するように制御することを特徴とする請求項に記載のレンダリングシステム。
The control unit includes:
Determining whether there is information about the stored lay in the memory, the case where there is no information stored for the example in the memory, claim and controls to end the rendering process of the rendering system 7 The rendering system according to 1.
記レイに基づいて算出された第1情報は、
記レイの方向ベクトルに関する情報を含むことを特徴とする請求項に記載のレンダリングシステム。
First information calculated based on the previous sharp stomach,
Rendering system of claim 7, characterized in that it comprises information related to the direction vectors before sharp Lee.
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 JP2017517806A (en) 2017-06-29
JP6665112B2 true 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)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8018457B2 (en) * 2006-09-19 2011-09-13 Caustic Graphics, Inc. Ray tracing system architectures and methods
WO2010033942A1 (en) * 2008-09-22 2010-03-25 Caustic Graphics, Inc. Systems and methods for a ray tracing shader api
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US11138782B2 (en) Systems and methods for rendering optical distortion effects
KR102080851B1 (en) Apparatus and method for scheduling of ray tracing
US9483864B2 (en) System and method for photorealistic imaging using ambient occlusion
US10553013B2 (en) Systems and methods for reducing rendering latency
US20150091895A1 (en) Method and apparatus for accelerating ray tracing
US9842424B2 (en) Volume rendering using adaptive buckets
KR102244619B1 (en) Method for generating and traverse acceleration structure
US8441477B2 (en) Apparatus and method of enhancing ray tracing speed
US10699467B2 (en) Computer-graphics based on hierarchical ray casting
US9390545B2 (en) Apparatus and method for traversing hierarchical acceleration structure
KR101399472B1 (en) Method and apparatus for rendering processing by using multiple processings
US20190318529A1 (en) Systems and Methods for Rendering Foveated Effects
US10403034B2 (en) Image processing method and apparatus for rendering an image based on virtual point light (VPL) samplings
US20220004405A1 (en) 3D API Redirection for Virtual Desktop Infrastructure
KR20160011485A (en) Data processing method and apparatus
US20150091894A1 (en) Method and apparatus for tracing ray using result of previous rendering
CN115210767A (en) Partial residence bounding box hierarchy
KR102252374B1 (en) Ray-tracing Unit and Method for processing ray data
US9230294B2 (en) Preserving and reusing intermediate data
KR20220164442A (en) Graphics processing
KR102042539B1 (en) Method and apparatus for ray tracing
JP2015114775A (en) Image processor and image processing method
JP6665112B2 (en) Rendering system and method for ray generation
US10761741B1 (en) Method and system for managing and sharing data using smart pointers
KR20150034062A (en) Method and Apparatus for routing data included in same group and re-configuring rendering unit

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