JP6665112B2 - Rendering system and method for ray generation - Google Patents
Rendering system and method for ray generation Download PDFInfo
- 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
Links
- 238000009877 rendering Methods 0.000 title claims description 144
- 238000000034 method Methods 0.000 title claims description 56
- 239000013598 vector Substances 0.000 claims description 8
- 229910052724 xenon Inorganic materials 0.000 claims 3
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical compound [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 claims 3
- 210000002784 stomach Anatomy 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission 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)
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.
以下に添付図面を参照しながら、本発明の好適な実施形態についてより詳細に説明する。本発明を説明するうえで、関連の公知機能或いは構成に対する具体的な説明が、本発明の要旨を不要に曖昧とすると判断された場合には、その詳細な説明は省略する。そして、後述の用語は、本発明における機能を考慮して定義された用語として、それは使用者や運用者の意図または慣例等によって異なってよい。そのため、その定義は本明細書全般にわたる内容に基づいて下されるべきである。 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
レイ生成部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)、レイが派生された方向、位置そしてレイ及びオブジェクトが交差した位置に関する情報等を含んでよい。
The information on 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 the object at the same time, the
そして、生成されたレイがセカンダリレイを生成することができるレイと判断された場合、制御部140は、生成されたレイに関する情報を参照メモリ120に保存するように制御することができる。そして、制御部140は、参照メモリ120に保存されたレイに関する情報に基づいてセカンダリレイを生成するようにレイ生成部110を制御することができる。
If 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からレイに関する情報を削除することができる。
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
そして、制御部140は、参照メモリ120から第1レイに関する情報を削除した後、参照メモリ120に保存された情報がある場合、参照メモリ120に最後に保存されたレイに関する情報に基づいて別のセカンダリレイを生成することができる。
Then, after deleting the information about the first ray from 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 above-described
以下では、図2ないし図4を参照し、レンダリングシステム100がレイに関する情報を参照メモリ120に保存しつつ、レンダリングを行う方法について具体的に説明する。
Hereinafter, a method of performing rendering while the
図2は、レイ生成内容を示す図である。すなわち、プライマリレイ200はシャドウレイ210と、屈折レイ220及び反射レイ230のうち少なくとも1つを生成することができる。特に、プライマリレイ200は、シャドウレイ210を先に生成し、屈折レイ220または反射レイ230を生成することができる。
FIG. 2 is a diagram showing ray generation contents. That is, the
シャドウレイ210は、それ以上のセカンダリレイを生成しない。しかし、屈折レイ220及び反射レイ230は少なくとも1つのセカンダリレイを生成することができる。例えば、図2に示すように、屈折レイ220がセカンダリレイとしてシャドウレイ240、屈折レイ250及び反射レイ260を生成することができる。そして、反射レイ230がセカンダリレイとしてシャドウレイ270、屈折レイ280及び反射レイ290を生成することができる。
なお、各セカンダリレイである屈折レイ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
図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
図3は、ただ最初に生成されたレイ310をプライマリレイとして示しているが、セカンダリレイを生成する光線はセカンダリレイに関連するプライマリレイとして参照することができる。例えば、第1屈折レイ330及び第2屈折レイ350の間の関係で、第1屈折レイ330はプライマリレイであってよい。
Although FIG. 3 only shows the initially generated
図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 about the ray may include information about the direction vector of the ray.
そして、レイ生成部110は、参照メモリ120に保存されたプライマリレイ310に関する情報を基にセカンダリレイを生成することができる。シャドウレイがセカンダリレイの中で先に生成されてよい。すなわち、レイ生成部110は、セカンダリレイとしてシャドウレイを先に生成し、シャドウレイ生成の後、屈折または反射レイを生成することができる。
Then, 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を制御することができる。
In addition, 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 exemplary embodiment, the
そして、制御部140は、第2シャドウレイ340のレンダリング結果カラー値をフレームバッファ150に保存するように制御することができる。
In addition, the
なお、制御部140は、参照メモリ120がレイに関する情報を含むかを判断することができる。判断の結果、参照メモリ120に保存されたレイがある場合、制御部140はセカンダリレイを生成するようにレイ生成部110を制御することができる。
Note that the
しかし、第2シャドウレイ340に関する情報が保存されない。すなわち、参照メモリ120に最も最後に保存された情報は第1屈折レイ330に関する情報である。よって、制御部140は、参照メモリ120に保存された情報である第1屈折レイ330に関する情報を基にセカンダリレイを生成するように制御することができる。
However, information about 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はセカンダリスタックを参照することができる。
In addition, 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 on 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 second
時間T570に、制御部140は第2屈折レイ350及び第2屈折レイ370の間に何がまだ処理されていないかを判断するために、セカンダリスタックを参照することができる。図4に示すように、セカンダリスタックは第2屈折レイ370が時間T570に処理されることを示す。制御部140は、セカンダリスタックから第2屈折レイ370をロードし、時間T570に参照メモリ120のメインスタックにそれを保存することができる。
At time T570, the
制御部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
そして、制御部140は、参照メモリ120に保存された第2反射レイ370に関する情報を基にセカンダリレイを生成するようにレイ生成部110を制御することができる。
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を制御することができる。
The
よって、第4屈折レイ390のレンダリング結果、制御部140の制御によって参照メモリ120は時間T590に第2反射レイ370に関する情報を削除することができる。
Therefore, as a result of the rendering 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 rendering is performed on all the secondary rays and there is no information about the rays stored in the
図4を参照して上述した例においては、制御部140がセカンダリスタックを用いて進行を判断することを例として挙げたが、それは単なる1つの例示に過ぎない。制御部140は、第1屈折レイ330に関する情報がメモリ120から削除されると、その削除に関する情報をメモリ120に別途に記録し、次の過程を進める際にそれを参照し、削除された記録がない過程を進める方式で次に進める過程を判断することもできる。この場合には、別途のセカンダリスタックが必要でなくなる。
In the example described above with reference to FIG. 4, the case where the
図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
レンダリングシステム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
そして、レンダリングシステム100は、保存された第1レイに関する情報を基に第2レイを生成してレンダリングする(S650)。なお、レイに関する情報は、レイの方向ベクトルを含んでよい。よって、レンダリングシステム100は、保存されたレイの方向ベクトルに対する情報等を用いて、第1レイによるセカンダリレイである第2レイを生成することができる。特に、レンダリングシステム100は、セカンダリレイのうちシャドウレイを生成することができる。シャドウレイの生成後、レンダリングシステム100はセカンダリレイとして屈折レイまたは反射レイを生成することができる。
Then, the
一方、図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
シャドウレイではない場合でも、レイがオブジェクトと交差しない場合、セカンダリレイが生成されない。よって、レンダリングシステム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
レイがオブジェクトと交差する場合(S730−Y)、レンダリングシステム100はレイのセカンダリレイを生成するために、レイに関する情報を参照メモリ120に保存する(S740)。そして、レンダリングシステム100は、参照メモリ120に保存されたレイに関する情報を基にレイを生成することができる。このとき、レンダリングシステム100は、セカンダリレイのうちシャドウレイを先に生成することができる。例えば、レンダリングシステム100がセカンダリレイとしてシャドウレイ及び屈折レイを生成する場合、レンダリングシステム100はシャドウレイを先に生成することができる。
If the ray intersects with the object (S730-Y), the
生成されたレイがシャドウレイである場合(S720−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S750)。そして、レンダリングシステム100は、参照メモリ120が空いているかを判断する(S760)。
If the generated ray is a shadow ray (S720-Y), the
なお、レイがオブジェクトと交差せずにシャドウレイではないと判断されると、レンダリングシステム100は参照メモリ120が空いているか判断することができる(S760)。
If it is determined that the ray does not intersect with the object and is not a shadow ray, the
そして、レイによってセカンダリレイがそれ以上生成されないと判断された場合、レンダリングシステム100は参照メモリ120からレイに関する情報を削除することができる。
If it is determined that no secondary ray is generated by the ray, the
よって、レンダリングシステム100は、レイ生成部110から生成するレイの量を一定に制御することができる。
Therefore, the
図7は、スタック構造またはスタック基板メモリ割当を用いた参照メモリ830を含むレンダリングシステム1000を示す。しかし、それは一実施形態に過ぎず、キューを含み多様な形態のメモリ構造またはメモリ割当方法の使用が可能である。
FIG. 7 illustrates a
レンダリングシステム1000は、図7のレイ生成部800を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム1000は、加速構造を探索し、交差点を検査してシェーディングを行うための構成要素が含まれたレンダラ810を介してレンダリングを行うことができる。
The
そして、参照メモリマネージャ820は、生成されたレイからセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、参照メモリマネージャ820は生成されたレイに関する情報を参照メモリ830に保存することができる。
Then, the
レイがシャドウレイではなくオブジェクトと交差すると、参照メモリマネージャ820はセカンダリレイを生成することができるレイであると判断することができる。
If the ray intersects the object instead of the shadow ray, the
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム1000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム1000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。
When the rendering of the shadow ray is performed, the
参照メモリマネージャ820は、レンダリングを行ったレイからそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ830を制御することができる。
If the
一方、図8は、本発明の別の実施形態に係るレンダリングシステム2000を示す図である。図8に示すレンダリングシステム2000もレイ生成部900を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム2000は加速構造を探索し、交差点を検索してシェーディングを行うための構成要素が含まれたレンダラ910を介してレンダリングを行うことができる。
FIG. 8 is a diagram illustrating a
なお、レンダリングシステム2000は、レイリファレンスマネージャ920によって、レイに関する情報を管理することができる。具体的に、リファレンスデータカルキュレータ930は生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、リファレンスデータカルキュレータ930は生成されたレイに関する情報を演算し、演算された情報を参照メモリ940に保存することができる。生成されたレイがシャドウレイではなくオフジェクトと交差すると、リファレンスデータカルキュレータ930はセカンダリレイを生成することができるレイと判断し、生成されたレイに関する情報を演算することができる。例えば、リファレンスデータカルキュレータ930は生成されたレイに対して、三角インデックス、レイデプス、レイが派生された方向、位置、そしてレイ及びオブジェクトが交差した位置に関する情報を演算することができる。
Note that the
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム2000はシャドウレイに対するレンダリング結果をフレームバッファ150に保存することができる。すなわち、レンダリングシステム2000は、シャドウレイに対するカラー値をフレームバッファ150に保存することができる。
When the rendering of the shadow ray is performed, the
エリミネータ950は、レンダリングを行ったレイによってそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ940を制御することができる。すなわち、エリミネータ950は、参照メモリ940に保存されたレイに関する情報をプル(pull)し、レイに関する情報を削除することができる。例えば、レンダリングを行ったレイによってセカンダリレイとしてシャドウレイのみ生成された場合、エリミネータ950は参照メモリ940に保存されたレイに関する情報を削除することができる。
The
よって、図8に示すようなレンダリングシステム2000によって、ユーザは参照メモリ940で効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム2000を利用することができるようになる。
Accordingly, the
図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
レンダリングシステム100は、生成されたレイがシャドウレイかを判断する(S1020)。判断の結果、生成されたレイがシャドウレイではない場合(S1020−N)、レンダリングシステム100は生成されたレイがオブジェクトと交差するか否かを判断する(S1040)。
The
生成されたレイがオブジェクトと交差すると判断されると(S1040−Y)、レンダリングシステム100は生成されたレイに関する情報を演算する(S1050)。そして、演算された情報を参照メモリに保存する(S1060)。生成されたレイがシャドウレイではなく、オブジェクトと交差すると、セカンダリレイが生成されてよい。よって、レンダリングシステム100はセカンダリレイを生成するために、演算された情報を参照メモリに保存することができる。
If it is determined that the generated ray intersects with the object (S1040-Y), the
生成されたレイがシャドウレイである場合(S1020−Y)、レンダリングシステム100はレンダリング結果をフレームバッファ150に保存する(S1030)。すなわち、レンダリングシステム100は、シャドウレイに対するレンダリング結果としてカラー値をフレームバッファ150に保存することができる。そして、レンダリングシステム100は、参照メモリが空いているかを判断する(S1070)。なお、レイがシャドウレイでなくても、オブジェクトと交差しない場合、レンダリングシステム100は参照メモリが空いているかを判断することができる(S1070)。
If the generated ray is a shadow ray (S1020-Y), the
参照メモリが空いている場合(S1070−Y)、レンダリングシステム100はレンダリングを終了することができる。ただ、参照メモリが空いていない場合(S1070−N)か、演算された情報が参照メモリに保存された場合(S1060)、レンダリングシステム100は参照メモリに保存された情報のうち、最後に保存された情報を獲得し(S1080)、シャドウレイを除くセカンダリレイが生成可能か否かを判断する(S1090)。シャドウレイを除くセカンダリレイが生成可能な場合とは、情報が保存されたレイがオブジェクトと交差する場合を意味することができる。
If the reference memory is free (S1070-Y), the
シャドウレイを除くセカンダリレイが生成不可と判断された場合(S1090−N)、レンダリングシステム100は獲得した情報を削除する(S1100)。
If it is determined that a secondary ray other than a shadow ray cannot be generated (S1090-N), the
具体的に、獲得した情報に対するレイがそれ以上反射レイまたは屈折レイのようなセカンダリレイを生成しない場合、レンダリングシステム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
シャドウレイを除くセカンダリレイが生成可能な場合(S1090−Y)、レンダリングシステム100は獲得した情報を基にレイを生成することができる(S1000)。すなわち、レンダリングシステム100は、参照メモリに保存された情報が全て削除されてなくなるまで、再帰的にレイを生成することができるようになる。
If a secondary ray other than a shadow ray can be generated (S1090-Y), the
本発明の多様な実施形態によると、ユーザはメモリに保存されるレイに対する情報の量を制御することで、メモリを効果的に使用するレンダリングシステムを利用することができるため、それによって性能を向上させることができる。 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 レンダリングシステム
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.
前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するステップとを更に含むことを特徴とする請求項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 .
前記レイの方向ベクトルに関する情報を含むことを特徴とする請求項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つのセカンダリレイを生成することができると判断することを特徴とする請求項7に記載のレンダリングシステム。 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 .
前記メモリに保存されたレイに関する情報があるか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するように制御することを特徴とする請求項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)に保存するように制御することを特徴とする請求項7に記載のレンダリングシステム。 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).
前記メモリに保存されたレイに関する情報があるかを判断し、前記メモリにレイに対する保存された情報がない場合、前記レンダリングシステムのレンダリング処理を終了するように制御することを特徴とする請求項7に記載のレンダリングシステム。 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.
前記レイの方向ベクトルに関する情報を含むことを特徴とする請求項7に記載のレンダリングシステム。 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.
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)
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 |
-
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
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 |