JP2017517806A - Rendering system and method for ray generation - Google Patents
Rendering system and method for ray generation Download PDFInfo
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 146
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 abstract description 4
- 230000001133 acceleration Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow 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.
以下に添付図面を参照しながら、本発明の好適な実施形態についてより詳細に説明する。本発明を説明するうえで、関連の公知機能或いは構成に対する具体的な説明が、本発明の要旨を不要に曖昧とすると判断された場合には、その詳細な説明は省略する。そして、後述の用語は、本発明における機能を考慮して定義された用語として、それは使用者や運用者の意図または慣例等によって異なってよい。そのため、その定義は本明細書全般にわたる内容に基づいて下されるべきである。 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
レイ生成部110は、レイを生成するための構成要素である。レイ生成部110は、レイ生成情報に基づいて少なくとも1つのレイを生成することができる。すなわち、レイ生成部110は、プライマリレイ(Primary Ray)を生成することができ、後述の保存されたレイ生成情報を基にセカンダリレイ(Secondary Ray)を生成することができる。なお、セカンダリレイは、シャドウレイ(Shadow Ray)、屈折レイ(Refraction Ray)及び反射レイ(Reflection Ray)を含んでよい。なお。セカンダリレイを生成する場合、レイ生成部110はシャドウレイを先に生成することができる。シャドウレイに対するレンダリングの後、レイ生成部110は屈折または反射レイを生成することができる。
The
一方、参照メモリ120は、レイに関する情報を保存するための構成要素である。すなわち、参照メモリ120は、セカンダリレイを生成するために必要な情報を保存することができる。参照メモリ120は、スタック(Stack)またはキュー(Queue)のようなメモリが使用されてよいが、それは一実施形態に過ぎず、メモリの種類に限定されない。
On the other hand, the
なお、参照メモリ120に保存されるレイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。具体的に、参照メモリ120は、三角インデックス、レイデプス(depth)、レイが派生された方向、位置そしてレイ及びオブジェクトが交差した位置に関する情報等を含んでよい。
It should be noted that the information regarding the ray stored in the
レンダリング部130は、レイ生成部110を介して生成されたレイをレンダリングするための構成要素である。すなわち、レンダリングを行うために必要な構成要素のうち、レンダリング部130はレイ生成部110を除く全ての構成要素を含んでよい。
The
例えば、光線追跡法(Ray Tracing)で使用される加速構造を探索し、交差点を検査してシェーディングを行うための構成要素がレンダリング部130に含まれてよい。
For example, the
一方、制御部140は、レンダリングシステム100の動作全般を制御する。特に、制御部140は、生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果に応じて、制御部140はレイに関する情報を参照メモリ120に保存するように制御してよい。
On the other hand, the
すなわち、制御部140は、生成されたレイがシャドウレイではないと同時にオブジェクトと交差した場合、セカンダリレイを生成することができるレイであると判断することができる。シャドウレイによってセカンダリレイが生成されない。そして、シャドウレイではないレイであっても、オブジェクトと交差しない場合、セカンダリレイを生成しない。よって、生成されたレイがシャドウレイではなく、オブジェクトと交差する場合、制御部140はセカンダリレイを生成することができるレイと判断することができる。
That is, when the generated ray is not a shadow ray and intersects with an object, the
そして、生成されたレイがセカンダリレイを生成することができるレイと判断された場合、制御部140は、生成されたレイに関する情報を参照メモリ120に保存するように制御することができる。そして、制御部140は、参照メモリ120に保存されたレイに関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。
When it is determined that the generated ray is a ray that can generate a secondary ray, the
一方、生成されたレイがシャドウレイである場合、制御部140は、生成されたレイのレンダリング結果によるカラー値をフレームバッファ(Frame Buffer)に記録するように制御することができる。すなわち、シャドウレイによってセカンダリレイが生成されないため、制御部140は、シャドウレイに対するレンダリング結果によるカラー値をフレームバッファに保存して当該レイに対するレンダリングを完了することができる。なお、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ120に保存された情報がないと判断された場合、制御部140はレンダリングを終了することができる。
On the other hand, when the generated ray is a shadow ray, the
レイによって少なくとも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
そして、制御部140は、参照メモリ120から第1レイに関する情報を削除した後、参照メモリ120に保存された情報がある場合、参照メモリ120に最後に保存されたレイに関する情報に基づいて別のセカンダリレイを生成することができる。
Then, the
すなわち、参照メモリ120に順次にレイに関する情報を保存する場合、制御部140は最も最近保存されたレイに関する情報を基にセカンダリレイを生成することができるか否かを判断することができる。そして、最も最近保存されたレイがセカンダリレイを生成することができる場合、制御部140は、判断されたレイに関する情報を基に別のセカンダリレイを生成することができる。
That is, when information about rays is sequentially stored in the
レイに関する情報を参照メモリ120に保存する方法及びレイに関する情報を参照メモリ120から削除する具体的な方法については後述する。
A method for storing information about rays in the
上述のようなレンダリングシステム100によって、ユーザは小さいサイズのメモリを利用しつつも、効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム100を利用することができるようになる。
The
以下では、図2ないし図4を参照し、レンダリングシステム100がレイに関する情報を参照メモリ120に保存しつつ、レンダリングを行う方法について具体的に説明する。
Hereinafter, with reference to FIGS. 2 to 4, a specific description will be given of a method in which the
図2は、レイ生成内容を示す図である。すなわち、プライマリレイ200はシャドウレイ210と、屈折レイ220及び反射レイ230のうち少なくとも1つを生成することができる。特に、プライマリレイ200は、シャドウレイ210を先に生成し、屈折レイ220または反射レイ230を生成することができる。
FIG. 2 is a diagram showing the contents of ray generation. That is, the
シャドウレイ210は、それ以上のセカンダリレイを生成しない。しかし、屈折レイ220及び反射レイ230は少なくとも1つのセカンダリレイを生成することができる。例えば、図2に示すように、屈折レイ220がセカンダリレイとしてシャドウレイ240、屈折レイ250及び反射レイ260を生成することができる。そして、反射レイ230がセカンダリレイとしてシャドウレイ270、屈折レイ280及び反射レイ290を生成することができる。
The
なお、各セカンダリレイである屈折レイ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
図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
図3は、ただ最初に生成されたレイ310をプライマリレイとして示しているが、セカンダリレイを生成する光線はセカンダリレイに関連するプライマリレイとして参照することができる。例えば、第1屈折レイ330及び第2屈折レイ350の間の関係で、第1屈折レイ330はプライマリレイであってよい。
Although FIG. 3 shows the
図4は、レイの生成手順による参照メモリ120の保存状態を示す図である。レイ生成部110を介してプライマリレイ310が生成された場合、制御部140は、生成されたプライマリレイ310がシャドウレイであるかを判断することができる。プライマリレイ310はシャドウレイではないため、制御部140はプライマリレイ310がオブジェクトと交差するか否かを判断する。
FIG. 4 is a diagram illustrating a storage state of the
生成されたプライマリレイ310がシャドウレイではなく、オブジェクトと交差すると判断された場合、プライマリレイ310からセカンダリレイが生成されてよい。よって、制御部140は、プライマリレイ310に関する情報を参照メモリ120に保存するように参照メモリ120を制御することができる。
If it is determined that the generated
具体的に、レイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。 Specifically, the information regarding the ray may include information regarding the direction vector of the ray.
そして、レイ生成部110は、参照メモリ120に保存されたプライマリレイ310に関する情報を基にセカンダリレイを生成することができる。シャドウレイがセカンダリレイの中で先に生成されてよい。すなわち、レイ生成部110は、セカンダリレイとしてシャドウレイを先に生成し、シャドウレイ生成の後、屈折または反射レイを生成することができる。
The
よって、セカンダリレイとして第1シャドウレイ320が生成された場合、制御部140は、第1シャドウレイ320によってそれ以上セカンダリレイが生成されないため、第1シャドウレイ320に関する情報を参照メモリ120に保存しないように制御することができる。結果的に、セカンダリレイとして第1シャドウレイ320が生成された後の参照メモリ120は第1シャドウレイ320の生成前の参照メモリ120と比較して変化が生じなくてよい。
Therefore, when the
そして、制御部140は、第1シャドウレイ320に対するレンダリング結果カラー値をフレームバッファ150に保存することができる。
Then, the
なお、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ120にプライマリレイ310に関する情報が保存されているため、制御部140はプライマリレイ310に関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。
Note that the
セカンダリレイとして第1屈折レイ330が生成された場合、制御部140は生成されたセカンダリレイがシャドウレイか否かを判断することができる。第1屈折レイ330はシャドウレイではないため、制御部140は第1屈折レイ330がオブジェクトと交差するか否かを判断することができる。第1屈折レイ330がオブジェクトと交差する場合、第1屈折レイ330によってセカンダリレイが更に生成され得るため、制御部140は第1屈折レイ330に関する情報を参照メモリ120に保存することができる。
When the
参照メモリ120に保存された第1屈折レイ330に関する情報に基づいてレイ生成部110がセカンダリレイとして第2シャドウレイ340を生成すると、第2シャドウレイ340によってそれ以上セカンダリレイが生成されないため、制御部140は生成された第2シャドウレイ340に関する情報を保存しなくてよい。よって、第2シャドウレイ340がセカンダリレイとして生成された時間T540に参照メモリ120の状態は第2シャドウレイ340が生成される前である時間T530に参照メモリの状態と比較して変更されなくてよい。
When the
本発明の一実施形態によると、参照メモリ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
そして、制御部140は、第2シャドウレイ340のレンダリング結果カラー値をフレームバッファ150に保存するように制御することができる。
Then, the
なお、制御部140は、参照メモリ120がレイに関する情報を含むかを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。
Note that the
しかし、第2シャドウレイ340に関する情報が保存されない。すなわち、参照メモリ120に最も最後に保存された情報は第1屈折レイ330に関する情報である。よって、制御部140は、参照メモリ120に保存された情報である第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。
However, information regarding the
参照メモリ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
なお、制御部140は、時間T550にセカンダリスタックに第2反射レイ370を保存して第2反射レイ370が第1反射レイ410にスタックされるようにすることができる。制御部140が、T560に第2屈折レイ350から派生された全てのセカンダリレイを処理することが終わる際、時間T570に制御部140がどのようなデータを処理するか判断するために制御部140はセカンダリスタックを参照することができる。
The
参照メモリ120に保存された第2屈折レイ350に関する情報を基にレイ生成部110がセカンダリレイとして第3シャドウレイ360を生成すると、制御部140は第3シャドウレイ360のレンダリング結果によるカラー値をフレームバッファ150に保存することができる。そして、保存された第2屈折レイ350をそれ以上処理する必要がないため、制御部140は保存された第2屈折レイ350に関する情報を時間T560に削除することができる。よって、参照メモリ120は、第1屈折レイ330及びプライマリレイ310に関する情報のみを時間T560に保存することができる。
When the
そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。
Then, the
第2屈折レイ350に関する情報を削除したため、時間T560に参照メモリ120に保存された最も最近の情報は第1屈折レイ330に関する情報である。よって、制御部140は、第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。
Since the information regarding the second refracted
参照メモリ120に保存された第1屈折レイ330に関する情報を基にレイ生成部110がセカンダリレイを生成することができる。特に、レイ生成部110は、参照メモリ120に保存された第1屈折レイ330に関する情報を基にセカンダリレイである第2シャドウレイ340を先に生成したため、反射または屈折レイをセカンダリレイとして生成することができる。
The
よって、レイ生成部110がセカンダリレイとして第2反射レイ370を生成すると、制御部140は生成された第2反射レイ370がシャドウレイか否かを判断することができる。第2反射レイ370はシャドウレイではないため、制御部140は第2反射レイ370がオブジェクトと交差するか否かを判断することができる。
Therefore, when the
第2反射レイ370がオブジェクトと交差する場合、第2反射レイ370によってセカンダリレイが更に生成されてよい。よって、制御部140は、第2反射レイ370に関する情報を時間T570に参照メモリ120に保存することができる。
If the
時間T570に、制御部140は第2屈折レイ350及び第2屈折レイ370の間に何がまだ処理されていないかを判断するために、セカンダリスタックを参照することができる。図4に示すように、セカンダリスタックは第2屈折レイ370が時間T570に処理されることを示す。制御部140は、セカンダリスタックから第2屈折レイ370をロードし、時間T570に参照メモリ120のメインスタックにそれを保存することができる。
At time T570, the
制御部140は、シャドウレイではない屈折または反射レイと判断された場合でも、屈折または反射レイがオブジェクトと交差しないと判断された場合、レイに関する情報を参照メモリ120に保存しなくてよい。
Even when it is determined that the refraction or reflection ray is not a shadow ray, the
そして、制御部140は、参照メモリ120に保存された第2反射レイ370に関する情報を基にセカンダリレイを生成するようにレイ生成部110を制御することができる。
Then, the
レイ生成部110が第2反射レイ370によるセカンダリレイとして先に第4シャドウレイ380を生成することができる。制御部140は、生成されたレイがシャドウレイか否かを判断することができる。そして、第4シャドウレイ380によってそれ以上セカンダリレイが生成されないため、制御部140は生成された第4シャドウレイ380に関する情報を時間T580に保存しなくてよい。よって、第4シャドウレイ380がセカンダリレイとして生成された時間T580に参照メモリ120の状態は、第4シャドウレイ380の生成前である時間T570に参照メモリ120の状態と比較して変化がない。
The
そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。
Then, the
なお、参照メモリ120に保存された第2反射レイ370に関する情報に基づいてレイ生成部110が第4屈折レイ390を生成し、第2反射レイ370によってそれ以上セカンダリレイが生成されないと判断された場合、制御部140は第2反射レイ370に関する情報を削除するように参照メモリ120を制御することができる。
Note that it is determined that the
よって、第4屈折レイ390のレンダリング結果、制御部140の制御によって参照メモリ120は時間T590に第2反射レイ370に関する情報を削除することができる。
Accordingly, the rendering result of the
そして、制御部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
そして、制御部140は、参照メモリ120に保存されたレイに関する情報があるか否かを判断することができる。図4に示すように、時間T600にプライマリレイ310が参照メモリ120に保存されているため、レイ生成部110は保存されたプライマリレイ310に関する情報を基にセカンダリレイを生成することができる。
Then, the
よって、制御部140は、参照メモリ120に保存されたプライマリレイ310に関する情報を基に第1反射レイ410をセカンダリレイとして生成することができる。例えば、制御部140は、時間T600の後にセカンダリスタックから第1反射レイ410をロードして参照メモリ120のメインスタックに保存することができる。それにより、制御部140は、第1屈折レイ330と第1反射レイ410との間で第1反射レイ140がまだ処理されていないことを判断することができ、時間T600の後に第1反射レイ410を進めることができる。そして、レンダリングシステム100は、第1反射レイによるセカンダリレイに対して上述のような過程を経てレンダリングを行うことができる。
Therefore, the
全てのセカンダリレイに対するレンダリングを行い、参照メモリ120にそれ以上保存されたレイに関する情報がない場合、レンダリングシステム100はレンダリングを終了することができる。
If all secondary rays are rendered and there is no more information about the stored rays in the
図4を参照して上述した例においては、制御部140がセカンダリスタックを用いて進行を判断することを例として挙げたが、それは単なる1つの例示に過ぎない。制御部140は、第1屈折レイ330に関する情報がメモリ120から削除されると、その削除に関する情報をメモリ120に別途に記録し、次の過程を進める際にそれを参照し、削除された記録がない過程を進める方式で次に進める過程を判断することもできる。この場合には、別途のセカンダリスタックが必要でなくなる。
In the example described above with reference to FIG. 4, the
図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
レンダリングシステム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
そして、レンダリングシステム100は、保存された第1レイに関する情報を基に第2レイを生成してレンダリングする(S650)。なお、レイに関する情報は、レイの方向ベクトルを含んでよい。よって、レンダリングシステム100は、保存されたレイの方向ベクトルに対する情報等を用いて、第1レイによるセカンダリレイである第2レイを生成することができる。特に、レンダリングシステム100は、セカンダリレイのうちシャドウレイを生成することができる。シャドウレイの生成後、レンダリングシステム100はセカンダリレイとして屈折レイまたは反射レイを生成することができる。
Then, the
一方、図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
シャドウレイではない場合でも、レイがオブジェクトと交差しない場合、セカンダリレイが生成されない。よって、レンダリングシステム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
レイがオブジェクトと交差する場合(S730−Y)、レンダリングシステム100はレイのセカンダリレイを生成するために、レイに関する情報を参照メモリ120に保存する(S740)。そして、レンダリングシステム100は、参照メモリ120に保存されたレイに関する情報を基にレイを生成することができる。このとき、レンダリングシステム100は、セカンダリレイのうちシャドウレイを先に生成することができる。例えば、レンダリングシステム100がセカンダリレイとしてシャドウレイ及び屈折レイを生成する場合、レンダリングシステム100はシャドウレイを先に生成することができる。
If the ray intersects the object (S730-Y), the
生成されたレイがシャドウレイである場合(S720−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S750)。そして、レンダリングシステム100は、参照メモリ120が空いているかを判断する(S760)。
When the generated ray is a shadow ray (S720-Y), the
なお、レイがオブジェクトと交差せずにシャドウレイではないと判断されると、レンダリングシステム100は参照メモリ120が空いているか判断することができる(S760)。
If it is determined that the ray does not intersect the object and is not a shadow ray, the
そして、レイによってセカンダリレイがそれ以上生成されないと判断された場合、レンダリングシステム100は参照メモリ120からレイに関する情報を削除することができる。
When it is determined that no more secondary rays are generated by the ray, the
よって、レンダリングシステム100は、レイ生成部110から生成するレイの量を一定に制御することができる。
Therefore, the
図7は、スタック構造またはスタック基板メモリ割当を用いた参照メモリ830を含むレンダリングシステム1000を示す。しかし、それは一実施形態に過ぎず、キューを含み多様な形態のメモリ構造またはメモリ割当方法の使用が可能である。
FIG. 7 shows a
レンダリングシステム1000は、図7のレイ生成部800を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム1000は、加速構造を探索し、交差点を検査してシェーディングを行うための構成要素が含まれたレンダラ810を介してレンダリングを行うことができる。
The
そして、参照メモリマネージャ820は、生成されたレイからセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、参照メモリマネージャ820は生成されたレイに関する情報を参照メモリ830に保存することができる。
Then, the
レイがシャドウレイではなくオブジェクトと交差すると、参照メモリマネージャ820はセカンダリレイを生成することができるレイであると判断することができる。
When a ray intersects an object instead of a shadow ray, the
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム1000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム1000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。
When rendering for a shadow ray is performed, the
参照メモリマネージャ820は、レンダリングを行ったレイからそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ830を制御することができる。
If the
一方、図8は、本発明の別の実施形態に係るレンダリングシステム2000を示す図である。図8に示すレンダリングシステム2000もレイ生成部900を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム2000は加速構造を探索し、交差点を検索してシェーディングを行うための構成要素が含まれたレンダラ910を介してレンダリングを行うことができる。
On the other hand, FIG. 8 is a diagram showing a
なお、レンダリングシステム2000は、レイリファレンスマネージャ920によって、レイに関する情報を管理することができる。具体的に、リファレンスデータカルキュレータ930は生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、リファレンスデータカルキュレータ930は生成されたレイに関する情報を演算し、演算された情報を参照メモリ940に保存することができる。生成されたレイがシャドウレイではなくオフジェクトと交差すると、リファレンスデータカルキュレータ930はセカンダリレイを生成することができるレイと判断し、生成されたレイに関する情報を演算することができる。例えば、リファレンスデータカルキュレータ930は生成されたレイに対して、三角インデックス、レイデプス、レイが派生された方向、位置、そしてレイ及びオブジェクトが交差した位置に関する情報を演算することができる。
Note that the
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム2000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム2000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。
When rendering for a shadow ray is performed, the
エリミネータ950は、レンダリングを行ったレイによってそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ940を制御することができる。すなわち、エリミネータ950は、参照メモリ940に保存されたレイに関する情報をプル(pull)し、レイに関する情報を削除することができる。例えば、レンダリングを行ったレイによってセカンダリレイとしてシャドウレイのみ生成された場合、エリミネータ950は参照メモリ940に保存されたレイに関する情報を削除することができる。
If it is determined that no more secondary rays can be generated by the rendered ray, the
よって、図8に示すようなレンダリングシステム2000によって、ユーザは参照メモリ940で効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム2000を利用することができるようになる。
Therefore, the
図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
レンダリングシステム100は、生成されたレイがシャドウレイかを判断する(S1020)。判断の結果、生成されたレイがシャドウレイではない場合(S1020−N)、レンダリングシステム100は生成されたレイがオブジェクトと交差するか否かを判断する(S1040)。
The
生成されたレイがオブジェクトと交差すると判断されると(S1040−Y)、レンダリングシステム100は生成されたレイに関する情報を演算する(S1050)。そして、演算された情報を参照メモリに保存する(S1060)。生成されたレイがシャドウレイではなく、オブジェクトと交差すると、セカンダリレイが生成されてよい。よって、レンダリングシステム100はセカンダリレイを生成するために、演算された情報を参照メモリに保存することができる。
If it is determined that the generated ray intersects the object (S1040-Y), the
生成されたレイがシャドウレイである場合(S1020−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S1030)。すなわち、レンダリングシステム100は、シャドウレイに対するレンダリング結果としてカラー値をフレームバッファ150に保存することができる。そして、レンダリングシステム100は、参照メモリが空いているかを判断する(S1070)。なお、レイがシャドウレイでなくても、オブジェクトと交差しない場合、レンダリングシステム100は参照メモリが空いているかを判断することができる(S1070)。
When the generated ray is a shadow ray (S1020-Y), the
参照メモリが空いている場合(S1070−Y)、レンダリングシステム100はレンダリングを終了することができる。ただ、参照メモリが空いていない場合(S1070−N)か、演算された情報が参照メモリに保存された場合(S1060)、レンダリングシステム100は参照メモリに保存された情報のうち、最後に保存された情報を獲得し(S1080)、シャドウレイを除くセカンダリレイが生成可能か否かを判断する(S1090)。シャドウレイを除くセカンダリレイが生成可能な場合とは、情報が保存されたレイがオブジェクトと交差する場合を意味することができる。
When the reference memory is free (S1070-Y), the
シャドウレイを除くセカンダリレイが生成不可と判断された場合(S1090−N)、レンダリングシステム100は獲得した情報を削除する(S1100)。
When it is determined that secondary rays other than the shadow ray cannot be generated (S1090-N), the
具体的に、獲得した情報に対するレイがそれ以上反射レイまたは屈折レイのようなセカンダリレイを生成しない場合、レンダリングシステム100は獲得した情報を削除することができる。そして、レンダリングシステム100は、獲得した情報に対するレイがセカンダリレイとして、ただシャドウレイのみを生成する場合でも、シャドウレイが生成されてレンダリングされると、獲得した情報に対するレイを削除することができる。
Specifically, the
シャドウレイを除くセカンダリレイが生成可能な場合(S1090−Y)、レンダリングシステム100は獲得した情報を基にレイを生成することができる(S1000)。すなわち、レンダリングシステム100は、参照メモリに保存された情報が全て削除されてなくなるまで、再帰的にレイを生成することができるようになる。
When a secondary ray excluding a shadow ray can be generated (S1090-Y), the
本発明の多様な実施形態によると、ユーザはメモリに保存されるレイに対する情報の量を制御することで、メモリを効果的に使用するレンダリングシステムを利用することができるため、それによって性能を向上させることができる。 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
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:
前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するステップと
を更に含むことを特徴とする請求項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に記載のレイ生成方法。 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レイの方向ベクトルに関する情報を含むことを特徴とする請求項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.
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)
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)
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 |
-
2014
- 2014-08-20 KR KR1020140108366A patent/KR102201834B1/en active IP Right Grant
-
2015
- 2015-04-21 JP JP2016566233A patent/JP6665112B2/en not_active Expired - Fee Related
- 2015-04-21 CN CN201580023530.0A patent/CN106462993B/en not_active Expired - Fee Related
Patent Citations (2)
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 |