JPH11353496A - Intersection search device for light ray tracing - Google Patents

Intersection search device for light ray tracing

Info

Publication number
JPH11353496A
JPH11353496A JP20106398A JP20106398A JPH11353496A JP H11353496 A JPH11353496 A JP H11353496A JP 20106398 A JP20106398 A JP 20106398A JP 20106398 A JP20106398 A JP 20106398A JP H11353496 A JPH11353496 A JP H11353496A
Authority
JP
Japan
Prior art keywords
voxel
intersection
dimensional
voxels
information
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.)
Pending
Application number
JP20106398A
Other languages
Japanese (ja)
Inventor
Ken Nishimura
憲 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP20106398A priority Critical patent/JPH11353496A/en
Publication of JPH11353496A publication Critical patent/JPH11353496A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide an intersection search device which can be actualized at low cost by custom VLSI technology and is needed to generate images by a light ray tracing method fast enough for view as a moving picture. SOLUTION: The device consists of a voxel tracing part 2 which finds out a voxel on an optical path, an intersection calculation part 5 which performs intersection calculation, and an output buffer 4 and the respective parts process one light-ray packet in each clock cycle through pipeline processing. The voxel tracing part 2 performs parallel processes by voxel plane set (slide) for a three- dimensional grating which is made hierarchical. Further, three-dimensional DDA which perform three two-dimensional DDAs in parallel finds out a voxel having an intersection with a light ray without using floating-point operation. To remove repetition of the intersection calculation, information determined by the inclusion relation between a set of bodies included in each voxel and a set of three-dimensional bodies included in a voxel positioned nearby it is used.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、カスタムVLSI技術
を駆使し、光線追跡法(レイ・トレーシング法)を用い
て3次元陰影つき画像を動画として見えうる程度に高速
に生成するための装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus for generating a three-dimensional shaded image at high speed using a ray tracing method (ray tracing method) to the extent that it can be viewed as a moving image, making full use of a custom VLSI technology. It is about.

【0002】[0002]

【従来の技術】光線追跡法は、3次元物体(例えば、三
角形、球、自由曲面など)に関する情報を格納したデー
タベースをもとに、写実性の高い陰影つき画像を生成す
る方法の1つである。光線追跡法において最も計算時間
を要する処理は、各光線に対して、それと交差する3次
元物体(以下、物体とする)があるかどうかを調べ、さ
らに、交差がある場合には交点の位置を求めるという処
理である。以後、この処理のことを交点探索処理と呼
ぶ。交点探索処理において、1つの光線が複数の物体と
交差する場合、あるいは同一の物体との交点が複数存在
する場合には、通常、光線の開始点に最も近い交点につ
いてその位置を求める。この交点探索処理をいかに高速
化するかが、画像生成全体を高速化するための重要な鍵
となる。
2. Description of the Related Art The ray tracing method is a method of generating a highly realistic shaded image based on a database storing information on three-dimensional objects (for example, triangles, spheres, free-form surfaces, etc.). is there. The processing that requires the most calculation time in the ray tracing method is to check for each ray whether there is a three-dimensional object (hereinafter, referred to as an object) that intersects the ray, and if there is an intersection, determine the position of the intersection. This is the process of asking. Hereinafter, this processing is called an intersection search processing. In the intersection search processing, when one ray intersects with a plurality of objects, or when there are a plurality of intersections with the same object, the position of the intersection closest to the start point of the ray is usually obtained. How to speed up this intersection search process is an important key for speeding up the entire image generation.

【0003】最も単純な交点探索処理の方法は、各光線
ごとに、光線を表す方程式と物体を表す方程式の連立方
程式を解くなどにより直接的に交点位置の求める計算
(以後、この計算を直接的交差計算と呼ぶ)をすべての
物体に対して行い、その中で最も光線開始点に近い交点
を選択するという方法である。しかし、この方法で画像
生成を行った場合、交点探索処理のための計算量が膨大
となる。
The simplest method of searching for an intersection is to calculate the position of the intersection directly by solving a simultaneous equation of an equation representing the ray and an equation representing the object for each ray (hereinafter, this calculation is referred to as a direct calculation). (Referred to as intersection calculation) for all objects, and the intersection closest to the ray start point is selected from among them. However, when an image is generated by this method, the amount of calculation for intersection search processing becomes enormous.

【0004】そこで、交点探索処理を比較的少ない計算
量で行う方法として藤本他、「ARTS:Accele
rated Ray−Tracing Syste
m」、IEEE Computer Graphics
and Application誌、第6巻、第4
号、第16〜26頁、1986年発行に記載されている
ボクセル空間分割法が知られている。この方法では、図
5に示すように物体が存在する空間をボクセルと呼ばれ
る小さな直方体に分割し、各ボクセルに含まれる物体の
リストを前もって求めておく。交点探索処理を行う際に
は、光路上のボクセルを光線開始点から近い順に走査し
てゆき、物体を含んだボクセルに出会ったときに、その
ボクセルに含まれる物体に対して直接的交差計算を行
う。例えば、光線601についての交点探索処理におい
ては、まずボクセル602の内容が調べられる。ボクセ
ル602は物体を含んでいないため、次にボクセル60
3が調べられ、再び空であるので、ボクセル604へと
処理が進められる。ボクセル604には物体609と物
体610が含まれているので、両物体に対して直接的交
差計算が行われ、その結果物体609との交点611が
発見される。この例の場合、交点611が最も光線開始
点612に近い交点である。物体613および物体61
4との直接的交差計算は不要であることに注目された
い。説明を分かりやすくするため、図5には2次元の図
が描かれているが、実際は3次元である。
Therefore, as a method of performing the intersection search processing with a relatively small amount of calculation, Fujimoto et al., "ARTS: Accesse
rated Ray-Tracing System
m ", IEEE Computer Graphics
and Application Magazine, Volume 6, Volume 4
No., pages 16 to 26, published in 1986, is known. In this method, as shown in FIG. 5, a space where an object exists is divided into small rectangular parallelepipeds called voxels, and a list of objects included in each voxel is obtained in advance. When performing the intersection search process, scan the voxels on the optical path in order from the ray starting point, and when encountering a voxel including the object, perform a direct intersection calculation on the object included in the voxel. Do. For example, in the intersection search processing for the ray 601, first, the contents of the voxel 602 are checked. Since voxel 602 does not contain an object, voxel 60
Since 3 is checked and is again empty, processing proceeds to voxel 604. Since the voxel 604 includes the object 609 and the object 610, a direct intersection calculation is performed on both objects, and as a result, an intersection 611 with the object 609 is found. In this example, the intersection 611 is the intersection closest to the ray start point 612. Object 613 and object 61
Note that a direct intersection calculation with 4 is not required. For the sake of simplicity, FIG. 5 shows a two-dimensional diagram, but it is actually three-dimensional.

【0005】上記文献には、光路上のボクセルを高速に
見つける方法としては、3DDDA法と呼ばれる、増分
計算を利用することによって初期計算以外では乗除算を
使わない方法が示されている。この3DDDA法では、
光線の方向ベクトルの成分の絶対値が最大となる座標軸
を駆動軸、他の2つの座標軸を受動軸と定め、駆動軸と
各受動軸間における2つの2次元DDA(デジタル・デ
ファレンシャル・アナライザ)を同期させながら並行に
実行する。2次元DDAを3次元化する上での最大の課
題は、図6に示すように、駆動軸(図では主駆動軸と示
されている)方向に歩進する際に両方の受動軸(図では
副駆動軸と受動軸と示されている)方向について同時に
歩進するような場合に、光線がボクセル621、62
2、624という経路とボクセル621、623、62
4という経路のどちらを通るかをいかにして判定するか
である(図中の点629と点630は主駆動軸に垂直な
ボクセルの面と光線との交点を示している)。上記文献
記載の3DDDA法では、DDA誤差項を駆動軸方向に
設定することによって、誤差項の大小比較だけによる経
路判定を可能にしている。しかし、DDA誤差項を駆動
軸方向に設定すると、誤差項の値の範囲が大きく広がる
ため固定小数点表現が困難となり、結果として浮動小数
点演算が必要となる。
[0005] In the above-mentioned document, as a method of quickly finding voxels on an optical path, there is disclosed a method called 3DDDA method, in which multiplication / division is not used except for initial calculation by using incremental calculation. In this 3DDDA method,
The coordinate axis where the absolute value of the component of the direction vector of the light ray is the maximum is defined as the drive axis, the other two coordinate axes are defined as the passive axes, and two two-dimensional DDAs (digital differential analyzers) between the drive axis and each passive axis are determined. Execute in parallel with synchronization. The biggest problem in making a two-dimensional DDA three-dimensional is that, as shown in FIG. 6, when moving in the direction of a drive shaft (shown as a main drive shaft), both passive shafts (see FIG. In this case, the light beams are voxels 621 and 62 when traveling in the directions at the same time.
The path of 2,624 and voxels 621,623,62
This is how to determine which of the four paths is taken (points 629 and 630 in the figure indicate the intersection of the ray with the plane of the voxel perpendicular to the main drive axis). In the 3DDDA method described in the above document, the DDA error term is set in the drive axis direction, thereby making it possible to determine a path only by comparing the magnitude of the error term. However, when the DDA error term is set in the direction of the drive axis, the range of the value of the error term is greatly widened, so that fixed-point representation is difficult, and as a result, a floating-point operation is required.

【0006】ボクセル空間分割法によってすべての物体
と直接的交差計算を行う場合に比べ大幅に直接的交差計
算の回数が削減されるが、この回数を低く保つために
は、物体数が増えるにつれてボクセルの分割を細かくし
なければならない。このため、物体数が多い場合には、
ボクセル毎に物体のリストを記憶するために多量のメモ
リが必要になるとともに、光路上のボクセルを追跡する
ための計算量が大きくなるいう問題を生じる。これらの
問題点を解消するため、分割を階層的に行う方法が、S
nyder他、「Ray Tracing Compl
exModels Containing Surfa
ce Tessellations」、ACM Com
puter Graphics誌、第21巻、第4号、
第119〜128頁、1987年発行に記載されてお
り、その具体的な効果が、Klimaszewski
他、「Faster Ray Tracing Usi
ng Adaptive Grids」、IEEE C
omputer Graphics and Appl
ications誌、第17巻、第1号、第42〜51
頁、1997年発行に示されている。この方法では、物
体が凝集している部分に対し局所的な3次元格子を設定
し、その格子内ではより細かなボクセル分割を行う。こ
の格子はその上の階層の格子が持つボクセルに対して、
通常の物体と同じようにして物体リストに登録される。
良く知られた八分木(オクトリー)はこの方法の特殊な
一形態であると言える。交点探索処理を行う際には、ま
ず最外郭の格子に対して光路上のボクセルを光線開始点
から近い順に走査してゆく。ボクセルに局所格子が含ま
れていたときは、その局所格子に対して再帰的に交点探
索処理を適用する。なお、本明細書においては、局所格
子に対して適用される再帰的な交点探索処理を間接的交
差計算と呼び、直接的交差計算と間接的交差計算を合わ
せて交差計算と呼ぶ。
Although the number of direct intersection calculations is greatly reduced by the voxel space division method compared with the case where direct intersection calculations are performed for all objects, in order to keep this number low, as the number of objects increases, the number of voxel Must be finely divided. Therefore, when the number of objects is large,
A large amount of memory is required to store the list of objects for each voxel, and the amount of calculation for tracking voxels on the optical path is increased. In order to solve these problems, a method of performing division hierarchically is called S
nyder et al., “Ray Tracing Compl.
exModels Containing Surfa
ce Tessellations ”, ACM Com
puter Graphics, Vol. 21, No. 4,
Pp. 119-128, published in 1987, the specific effects of which are described in Klimaszewski.
Others, "Faster Ray Tracing Usi
ng Adaptive Grids ", IEEE C
Omputer Graphics and Appl
Ications Magazine, Vol. 17, No. 1, 42-51
Page, published in 1997. In this method, a local three-dimensional grid is set for a portion where objects are aggregated, and finer voxel division is performed in the grid. This grid is for the voxel of the grid above it,
It is registered in the object list in the same way as a normal object.
The well-known octree is a special form of this method. When performing the intersection search processing, first, the outermost grid is scanned with voxels on the optical path in order from the closest to the ray start point. When a local grid is included in the voxel, the intersection search processing is recursively applied to the local grid. In this specification, the recursive intersection search processing applied to the local grid is called an indirect intersection calculation, and the direct intersection calculation and the indirect intersection calculation are collectively called an intersection calculation.

【0007】上に述べた階層化格子の手法により、物体
数が多くなった場合においても直接的交差計算の回数を
かなり低く押えることができる。それでもなお、動画と
して見えうる程度に高速に画像生成を行うためには、1
本の光線についての交点探索処理をプロセッサクロック
の数周期程度の間に終える必要があるため、現時点にお
ける単一の汎用プロセッサでは性能的に不十分である。
そこで、交点探索処理のための専用装置が必要である。
[0007] By the above-described hierarchical grid method, the number of direct intersection calculations can be kept down considerably even when the number of objects increases. Nevertheless, in order to generate an image as fast as it can be seen as a moving image, 1
Since it is necessary to finish the intersection search processing for the light beam within about several cycles of the processor clock, the performance of a single general-purpose processor at present is insufficient.
Therefore, a dedicated device for intersection search processing is required.

【0008】交点探索処理を実行するための従来の専用
装置としては、複数の汎用プロセッサをネットワークで
結合した構造が、小林他、「Load Balanci
ng Strategies for a Paral
lel Ray−Tracing System Ba
sed on Constant Subdivisi
on」、The Visual Computer誌、
第4巻、第4号、第197〜209頁、1988年発行
に記載されている。この装置ではボクセル単位で処理を
プロセッサに割り付けた上で、ボクセル空間分割法を用
いて交点探索処理を並列に行っている。プロセッサ間で
は光線パケットと呼ばれる、1つの光線についての様々
な情報を記録したデータのかたまりが取り交わされる。
この装置では、動画として見え得る程度に高速に画像生
成を行うためには膨大な数のプロセッサを必要とする。
また、プロセッサ間通信が不規則であるため、通信バッ
ファや通信制御回路のために多くのハードウェア資源を
必要とするという問題点もある。更に、もう1つの欠点
として、階層化格子には対応していないことが挙げられ
る。
As a conventional dedicated device for executing the intersection search processing, a structure in which a plurality of general-purpose processors are connected by a network is disclosed in Kobayashi et al., "Load Balanci".
ng Strategies for a Paraal
ll Ray-Tracing System Ba
sed on Constant Subdivisi
on ", The Visual Computer,
Vol. 4, No. 4, pp. 197-209, published in 1988. In this device, processing is assigned to processors in units of voxels, and then intersection search processing is performed in parallel using a voxel space division method. The processor exchanges a data packet, which is called a light packet, in which various pieces of information about one light beam are recorded.
In this apparatus, a huge number of processors are required to generate an image at such a high speed that it can be viewed as a moving image.
In addition, since the communication between the processors is irregular, there is a problem that many hardware resources are required for the communication buffer and the communication control circuit. Further, another disadvantage is that it does not support a hierarchical grid.

【0009】交点探索処理は、光路上のボクセルを見い
出す処理と直接的交差計算を行う処理から主に成り立っ
ているが、このうち光路上のボクセルを見い出す処理に
ついては、ボリュームレンダリング法による画像生成の
ための装置の中に、本発明と関連する専用ハードウェア
を見ることができる。ボリュームレンダリング法は光線
追跡法とは異なり、物体を格納したデータベースを用い
ず、直接ボクセルに対して色や透明度を定義し、それを
もとに画像生成を行うものである。以下の2つの段落は
ボリュームレンダリング法を目的とした装置の従来技術
について述べたものである。
The intersection search process mainly consists of a process of finding a voxel on the optical path and a process of performing a direct intersection calculation. Of these processes, the process of finding a voxel on the optical path is a process of generating an image by a volume rendering method. In the device for the dedicated hardware associated with the present invention can be found. Unlike the ray tracing method, the volume rendering method does not use a database in which objects are stored, directly defines colors and transparency for voxels, and generates an image based on the color and transparency. The following two paragraphs describe the prior art of devices intended for volume rendering.

【0010】まず、Kaufman他、米国特許明細書
第5594842号記載のスキューをかけたボクセル情
報メモリを利用することによって光路上のボクセルを高
速に見い出すための専用処理装置が知られている。しか
し、この装置は、すべての光線の開始点が同一であるこ
とを前提に作られており、光線追跡法の様に開始点が一
定でないような目的に使用すると開始点の切替えのため
の処理に非常に時間がかかってしまうという問題点があ
る。従って、この技術を光線追跡法の目的に利用するこ
とは困難である。
First, a dedicated processor for finding a voxel on an optical path at high speed by utilizing a skewed voxel information memory described in Kaufman et al., US Pat. No. 5,594,842 is known. However, this device is designed on the assumption that the starting points of all rays are the same, and if it is used for purposes such as ray tracing where the starting points are not constant, processing for switching the starting points is performed. Is very time consuming. Therefore, it is difficult to use this technique for ray tracing purposes.

【0011】一方、明石他、「ボリュームレンダリング
向き並列計算機のアーキテクチャ」、情報処理学会計算
機アーキテクチャ研究会報告、第97−15号、第11
3〜120頁、1992年発行に記載されているボクセ
ルメモリを3重複させることによって任意方向の光線に
関して光路上のボクセルを見い出すための専用処理装置
が知られている。この装置では、光線の方向ベクトルの
成分の絶対値が最大となる座標軸を主軸と定め、ボクセ
ルの座標の主軸成分を基準に処理を処理装置に割り当て
る。この装置は、Kaufmanらのものとは異なり、
開始点がランダムであっても処理速度が低下することは
なく、1メモリアクセスサイクルの間に任意方向の光線
に関して光路上のボクセルを見い出すことが可能であ
る。また、通信が規則的であるため通信バッファや通信
制御回路に多くのハードウェア資源を費やすことがな
い。しかし、この装置はボリュームレンダリング法を目
的としているため、光線追跡法の目的に使用すると以下
のような問題を生じる。光線追跡法では光線と交差を持
つすべてのボクセル(例えば、図5の場合、ボクセル6
02、603、604、605、606、607、60
8)を対象とする必要があるが、この装置では主軸と交
差する平面をなすボクセル群の各々について1つずつの
ボクセル(例えば、図5の場合、ボクセル602、60
4、605、607、608)だけしか見い出すことが
できない。従って、この点を改善しない限り光線追跡法
の目的に利用することはできない。
On the other hand, Akashi et al., "Architecture of Parallel Computer for Volume Rendering", Information Processing Society of Japan Computer Architecture Study Group Report No. 97-15, No. 11
A dedicated processing device for finding a voxel on an optical path for a light beam in an arbitrary direction by duplicating a voxel memory described in pages 3 to 120, published in 1992 is known. In this apparatus, a coordinate axis in which the absolute value of the component of the direction vector of a light ray is the maximum is determined as a main axis, and processing is assigned to a processing apparatus based on the main axis component of voxel coordinates. This device differs from that of Kaufman et al.
Even if the starting point is random, the processing speed does not decrease, and it is possible to find a voxel on the optical path for a ray in an arbitrary direction during one memory access cycle. In addition, since communication is regular, much hardware resources are not consumed for a communication buffer and a communication control circuit. However, since this apparatus is intended for the volume rendering method, the following problems occur when used for the ray tracing method. In the ray tracing method, all voxels having an intersection with a ray (for example, voxel 6 in FIG. 5)
02, 603, 604, 605, 606, 607, 60
8), but in this apparatus, one voxel (for example, in the case of FIG. 5, voxels 602, 60
4, 605, 607, 608). Therefore, it cannot be used for the purpose of ray tracing unless this point is improved.

【0012】ボクセル空間分割法特有の間題の1つに交
差計算の重複除去がある。これは、1つの光線に対して
同じ物体との交差計算を2度以上行うことを避けるとい
うものである。例えば、図7のような状況においては、
ボクセル641の追跡時に光線642と物体643との
交差計算が行われ、交点644が発見される。しかし、
交点644はボクセル641の外部に位置するため、後
続のボクセルにおいて別の物体と交差する可能性がある
ことから、この時点では交点644を最終的な交点だと
決定することはできない。従って、次にボクセル645
についての処理に移るが、その処理の中で再び物体64
3との交差計算を実行する必要はない。このようにして
重複する交差計算を避けることによって、計算時間の短
縮が達成される。また、同様の重複除去を間接的交差計
算にも適用すれば、大幅な計算時間の短縮が可能であ
る。
One of the unique problems of the voxel space partitioning method is the elimination of the intersection calculation. This is to avoid performing an intersection calculation with the same object more than once for one ray. For example, in the situation shown in FIG.
When the voxel 641 is tracked, the intersection between the ray 642 and the object 643 is calculated, and the intersection 644 is found. But,
Since the intersection point 644 is located outside the voxel 641, there is a possibility that the intersection point 644 may intersect with another object in a subsequent voxel. Therefore, it is not possible to determine the intersection point 644 as a final intersection point at this time. Therefore, next voxel 645
Is transferred to the object 64 in the process.
There is no need to perform an intersection calculation with 3. By avoiding overlapping intersection calculations in this way, a reduction in calculation time is achieved. Also, if the same duplication elimination is applied to the indirect intersection calculation, the calculation time can be significantly reduced.

【0013】上に述べた交差計算の重複除去を行う方法
として、単一プロセッサを対象としたものに、J.Am
anatides他、「A Fast Voxel T
raveral Algorithm for Ray
Tracing」、Proceedings of
Eurographics’87、第3〜10頁、19
87年発行記載の方法が知られている。この方法は、各
物体ごとに最後に交差計算を行った光線の識別番号を保
存しておくものである。しかし、この方法を多数の光線
を並列に処理する装置において利用する場合には、各物
体ごとに1つの識別番号を保存するだけでは不十分であ
り、処理中の全ての光線を対象に、交差計算済み光線に
ついての識別番号の集合を保存しなければならない。こ
れは、専用ハードウェアによって実現することが難し
く、たとえ実現できたとしても集合の要素数に上限がで
きてしまう。
As a method for performing the above-described intersection calculation duplication elimination, a method for a single processor is described in J. Org. Am
anatides et al., "A Fast Voxel T
raveral Algorithm for Ray
Tracing ", Proceedings of
Eurographics '87, pp. 3-10, 19
The method described in 1987 is known. In this method, the identification number of the ray whose intersection calculation was performed last is stored for each object. However, when this method is used in an apparatus that processes a large number of rays in parallel, it is not sufficient to store one identification number for each object. The set of identification numbers for the calculated rays must be stored. This is difficult to realize by dedicated hardware, and even if it can be realized, there is an upper limit to the number of elements in a set.

【0014】[0014]

【発明が解決しようとする課題】上述したように、光線
追跡法を用いて3次元陰影つき画像を動画として見えう
る程度に高速に生成する装置を複数の汎用プロセッサに
よって構成すると、プロセッサ数が膨大になり、さらに
通信バッファや通信制御回路のために多くのハードウェ
ア資源を必要とするため、コスト高になるという問題が
あった。
As described above, if a device for generating a three-dimensional shaded image at a high speed such that it can be seen as a moving image using the ray tracing method is constituted by a plurality of general-purpose processors, the number of processors becomes enormous. In addition, since many hardware resources are required for the communication buffer and the communication control circuit, there is a problem that the cost increases.

【0015】また、交点探索処理の一部である光路上の
ボクセルを見い出す処理に関して、これまでに専用ハー
ドウェアによって構成するという試みはあったが、従来
のハードウェアには発見されるボクセルに欠落があると
いう問題があった。
In addition, there has been an attempt to construct voxels on the optical path, which is a part of the intersection search processing, by using dedicated hardware. However, the voxels discovered by the conventional hardware are missing. There was a problem that there is.

【0016】また、光路上のボクセルを見つける方法で
ある従来の3DDDA法は浮動小数点演算を必要として
いたため、専用ハードウェアによる実現を考えた場合、
回路規模が大きくなってしまうという問題があった。
In addition, since the conventional 3DDDA method for finding voxels on the optical path requires a floating-point operation, considering the realization with dedicated hardware,
There is a problem that the circuit scale becomes large.

【0017】また、交差計算の重複除去のための従来の
手法は、専用ハードウェアによって実現することが難し
いという問題があった。
Further, there is a problem that the conventional method for eliminating duplication of intersection calculation is difficult to realize with dedicated hardware.

【0018】本発明は、以上の問題を解決するためにな
されたものであり、その目的は、カスタムVLSI技術
によって低コストで実現することが可能な、光線追跡法
によって動画として見えうるほど高速に画像を生成する
ために必要な交点探索装置を提供することにある。
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to realize a moving image by a ray tracing method which can be realized at low cost by a custom VLSI technology. An object of the present invention is to provide an intersection search device necessary for generating an image.

【0019】[0019]

【課題を解決するための手段】本発明によれば、上述の
目的は、前記特許請求の範囲に記載した手段にて達成さ
れる。
According to the present invention, the above objects are achieved by the means as set forth in the appended claims.

【0020】すなわち、3次元仮想空間内に定義された
3次元物体群の各種情報に基づき、光線の各種パラメー
タを入力として受け取り、前記3次元仮想空間内に六面
体のボクセルを要素とする1つまたは複数の3次元格子
を設定し、前記光線と前記3次元物体群との交点情報を
出力する装置において、前記ボクセルの夫々について当
該ボクセルに含まれる3次元物体との交差計算の必要性
を示す情報を記憶する1つまたは複数のボクセル情報記
憶手段と、前記ボクセル情報記憶手段より前記交差計算
の必要性を示す情報を読み出し、前記光線と交差し、か
つ交差計算の必要性があると見なされるボクセルのイン
デックスを出力する1つまたは複数のボクセル追跡回路
と、を備え、前記ボクセル情報記憶手段は、それぞれ異
なるアドレスによって読み出しが可能な複数のバンクを
有し、前記3次元格子の夫々におけるどの座標軸に関す
るどのボクセル平面集合も前記バンクのうちの少なくと
も1つに配置され、前記ボクセル追跡回路は複数のボク
セル追跡ユニットを有し、該ボクセル追跡ユニットの夫
々は、前記光線の方向ベクトル成分の絶対値が最大とな
る座標軸に関するボクセル平面集合群のうち予め決めら
れたいくつかのボクセル平面集合を担当し、該予め決め
られたいくつかのボクセル平面集合に含まれかつ前記光
線と交差を持つボクセルを、漏れなく特定する機能を有
することを特徴とする交点探索装置にすることである。
That is, based on various information of a three-dimensional object group defined in the three-dimensional virtual space, various parameters of light rays are received as input, and one or more elements having hexahedral voxels as elements in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light ray and the three-dimensional object group, information indicating the necessity of calculating an intersection of each of the voxels with a three-dimensional object included in the voxel One or more voxel information storage means for storing the information indicating the necessity of the intersection calculation from the voxel information storage means, and voxels that intersect with the ray and are considered to need the intersection calculation And one or more voxel tracking circuits that output an index of A plurality of voxel plane sets for each coordinate axis in each of the three-dimensional grids are arranged in at least one of the banks, and the voxel tracking circuit includes a plurality of voxel tracking units. And each of the voxel tracking units is responsible for a predetermined set of voxel planes among a group of voxel plane sets related to the coordinate axis where the absolute value of the direction vector component of the light ray is the largest. Another object of the present invention is to provide an intersection search apparatus characterized in that it has a function of specifying voxels included in some voxel plane sets and intersecting with the light ray without omission.

【0021】また、前記ボクセル追跡回路が、kを2以
上の定数とするとき、一度に高々k個のボクセルのイン
デックスを出力するようにする。kはハードウェア構成
を決定するパラメータの1つである。
Further, when the voxel tracking circuit sets k to be a constant of 2 or more, it outputs the index of at most k voxels at a time. k is one of the parameters for determining the hardware configuration.

【0022】また、前記3次元格子が占める空間の一部
に対して局所的な3次元格子を設定し、該局所的な3次
元格子を前記3次元物体の一種とすることによって3次
元格子群を階層的に編成する。
Further, a local three-dimensional grid is set for a part of the space occupied by the three-dimensional grid, and the local three-dimensional grid is used as a kind of the three-dimensional object. Are organized hierarchically.

【0023】また、前記ボクセル追跡ユニットは、通信
手段によって直線状に相互接続されていることとする。
The voxel tracking units are interconnected linearly by communication means.

【0024】また、3つの座標軸に対して当該光線の方
向ベクトルの成分の絶対値の大きい順に主駆動軸、副駆
動軸、受動軸とするとき、主駆動軸と副駆動軸間の2次
元DDA(デジタル・デファレンシャル・アナライザ)
と、主駆動軸と受動軸間の2次元DDAと、副駆動軸と
受動軸間の2次元DDAと、を同期させながら並行に実
行することによって当該光線と交差を持つボクセルを見
い出すようにする。
When the main drive axis, the sub drive axis, and the passive axis are set in the descending order of the absolute values of the components of the direction vector of the light beam with respect to the three coordinate axes, the two-dimensional DDA between the main drive axis and the sub drive axis is used. (Digital differential analyzer)
And a two-dimensional DDA between the main driving axis and the passive axis and a two-dimensional DDA between the sub-driving axis and the passive axis are executed in synchronization and in parallel to find a voxel having an intersection with the ray. .

【0025】また、前記バンクは、ボクセルについての
前記交差計算の必要性を示す情報と、該ボクセルの周囲
のボクセルについての前記交差計算の必要性を示す情報
とを同一の語に格納することとする。
Further, the bank stores information indicating the necessity of the intersection calculation for the voxel and information indicating the necessity of the intersection calculation for the voxels around the voxel in the same word. I do.

【0026】また、前記ボクセルの夫々について当該ボ
クセルに含まれる3次元物体の集合を記憶する1つまた
は複数の物体集合記憶手段を備え、前記物体集合記憶手
段は、各ボクセルに含まれる各3次元物体について、当
該ボクセルの近傍に位置するボクセルの各々に当該3次
元物体と同一の3次元物体が含まれているか否かを記録
した重複除去情報を更に保持することとする。
The voxel further includes one or more object set storage means for storing a set of three-dimensional objects included in the voxel. The object set storage means includes a three-dimensional object included in each voxel. Regarding the object, duplicate removal information that records whether or not each voxel located near the voxel includes the same three-dimensional object as the three-dimensional object is further held.

【0027】また、前記ボクセルの夫々について当該ボ
クセルに含まれる3次元物体との交差計算の必要性を示
す情報を記憶する1つまたは複数のボクセル情報記憶手
段を備え、前記交差計算の必要性を示す情報は、当該ボ
クセルに含まれる3次元物体の集合と、その近傍に位置
するボクセルに含まれる3次元物体の集合との包含関係
によって定められる情報を有することとする。
The voxel includes one or a plurality of voxel information storage means for storing information indicating the necessity of intersection calculation with each of the three-dimensional objects included in the voxel. The information to be shown is assumed to have information defined by the inclusion relationship between the set of three-dimensional objects included in the voxel and the set of three-dimensional objects included in voxels located near the set.

【0028】また、前記近傍に位置するボクセルが隣接
する6つのボクセルであることとする。
The voxels located in the vicinity are six adjacent voxels.

【0029】また、前記ボクセル情報記憶手段と前記ボ
クセル追跡回路に加え、前記ボクセル追跡回路より出力
されたボクセルのインデックスをもとに、交差計算すべ
き3次元物体を決定する1つまたは複数の物体決定回路
と、前記物体決定回路によって決定された前記交差計算
すべき3次元物体と前記光線との直接的交差計算を行う
1つまたは複数の交差計算回路とを有し、前記ボクセル
追跡回路の各々と、前記交差計算回路の各々に対し、そ
れぞれ別体の前記物体決定回路を備えることとする。
In addition to the voxel information storage means and the voxel tracking circuit, one or more objects for determining a three-dimensional object to be cross-calculated based on voxel indices output from the voxel tracking circuit. A decision circuit, and one or more intersection calculation circuits for performing a direct intersection calculation between the ray and the three-dimensional object to be calculated by the object determination circuit, each of the voxel tracking circuits; And each of the intersection calculation circuits is provided with a separate object determination circuit.

【0030】なお、上の記述で使われている一部の用語
の意味は以下の通りである。ボクセルのインデックスと
は、1つの格子の中でボクセルを一意に識別するための
コードを意味する。その一例は、ボクセルデータを3次
元配列に格納した時の添字に相当する3つ組整数であ
る。ボクセル平面集合とは、格子が定義された座標系に
おいて、1つの座標軸に関しての座標値が等しいボクセ
ルの集合を意味する。ある座標軸に関するボクセル平面
集合とは、その座標軸に関しての座標値が等しいボクセ
ルの集合を意味する。
The meanings of some terms used in the above description are as follows. The voxel index means a code for uniquely identifying a voxel in one grid. One example is a triple integer corresponding to a subscript when voxel data is stored in a three-dimensional array. The voxel plane set means a set of voxels having the same coordinate value with respect to one coordinate axis in a coordinate system in which a grid is defined. The set of voxel planes on a certain coordinate axis means a set of voxels having the same coordinate value on the coordinate axis.

【0031】[0031]

【作用】ボクセル情報記憶手段において、3次元格子の
夫々におけるどの座標軸に関するどのボクセル平面集合
もバンクのうちの少なくとも1つに配置することには、
任意の方向の光線についてそれと交差するボクセルを漏
れなく見い出すために必要な各バンク当たりのボクセル
参照数を、十分な数のバンクを用意することで、高々3
に押えることが可能になるという作用がある。その結
果、各バンク及び各ボクセル追跡ユニットにおける一本
の光線についての処理時間がほぼ均等になり、これによ
ってボクセル追跡ユニット間の通信バッファや通信制御
回路を削減する効果がある。
In the voxel information storage means, arranging any set of voxel planes for each coordinate axis in each of the three-dimensional grids in at least one of the banks,
The number of voxel references per bank required to find a voxel that intersects a ray in any direction without omission can be reduced to at most 3 by preparing a sufficient number of banks.
There is an effect that it becomes possible to hold down. As a result, the processing time for one light beam in each bank and each voxel tracking unit becomes substantially equal, which has the effect of reducing communication buffers and communication control circuits between voxel tracking units.

【0032】ボクセル追跡回路において、kを2以上の
定数とし、一度に高々k個のボクセルのインデックスを
出力するようにすること、すなわち、交差計算を行う可
能性のあるボクセルを一度に複数個見い出すことには、
ボクセル追跡回路による処理回数を減らし、結果として
同じハードウェア量でより高速な処理が可能になるとい
う効果がある。また逆に、一度に見い出すことのできる
ボクセルの個数にk個以下に制限することには、光線パ
ケットのサイズを固定長にし、通信のためのハードウェ
アを簡素化する効果がある。ボクセル追跡回路におい
て、k個を越えるボクセルを追跡することが必要な場合
は、2度以上に分けて処理する。すなわち、最初の追跡
の際には、光線開始点を含むボクセルを追跡開始ボクセ
ルとして、その追跡開始ボクセル以遠のボクセルを追跡
する。これを新規追跡という。もしその先のボクセルを
追跡する必要がある場合には、最後に処理されたボクセ
ルを追跡開始ボクセルとして、そのボクセルより遠方に
位置するボクセルを追跡する。これを継続追跡という。
継続追跡は必要なだけ繰り返し実行される。
In the voxel tracking circuit, k is set to a constant of 2 or more and an index of at most k voxels is output at a time, that is, a plurality of voxels which may be subjected to intersection calculation are found at a time. The thing is
The number of times of processing by the voxel tracking circuit is reduced, and as a result, higher speed processing can be performed with the same amount of hardware. Conversely, limiting the number of voxels that can be found at one time to k or less has the effect of making the size of the light packet fixed and thus simplifying the hardware for communication. When the voxel tracking circuit needs to track more than k voxels, the processing is performed twice or more. That is, at the time of the first tracing, the voxel including the ray start point is set as the tracing start voxel, and voxels beyond the tracing start voxel are traced. This is called new tracking. If the next voxel needs to be tracked, the voxel located farther than that voxel is tracked, with the last processed voxel as the tracking start voxel. This is called continuous tracking.
The continuous tracking is performed repeatedly as necessary.

【0033】階層化格子を導入することには、ボクセル
情報記憶手段に必要な記憶容量を削減し、また必要なボ
クセル追跡ユニットの数を大きく減らす作用がある。
The introduction of the hierarchical grid has the effect of reducing the storage capacity required for the voxel information storage means and greatly reducing the number of required voxel tracking units.

【0034】ボクセル追跡ユニットを直線状に相互接続
することには、例えば木状のような接続形態に比べ、ハ
ードウェアを簡素化し、またVLSIによる構成を容易
にする効果がある。
The linear interconnection of the voxel tracking units has the effects of simplifying the hardware and facilitating the VLSI configuration, as compared to a connection such as a tree.

【0035】ボクセル追跡回路において同期しながら並
行に実行される3つの2次元DDAにおける誤差項は、
主駆動軸と副駆動軸間の2次元DDAでは副駆動軸方
向、主駆動軸と受動軸間の2次元DDAでは受動軸方
向、副駆動軸と受動軸間の2次元DDAでは受動軸方向
にそれぞれ設定される。公知技術には存在しなかった副
駆動軸と受動軸間の2次元DDAは、前記従来の技術の
項で図6によって説明した経路判定を行う目的に利用さ
れる。公知技術では誤差項を主駆動軸方向に設定したた
め、結果的に浮動小数点演算が必要であったが、本発明
ではそのような不都合は生じない。すなわち、誤差項に
固定小数点表現を使用することが可能であり、その結
果、専用ハードウェアによる実現を考えた場合の回路規
模を大幅に縮小することが可能である。また、光路上の
ボクセルを欠落なく見い出すことができるので、公知の
ボリュームレンダリング法のための専用ハードウェアに
おける発見されるボクセルに欠落があるという問題を解
決するためにも有効である。
The error terms in three two-dimensional DDAs executed in parallel and synchronously in the voxel tracking circuit are:
In the two-dimensional DDA between the main drive axis and the sub-drive axis, in the sub-drive axis direction, in the two-dimensional DDA between the main drive axis and the passive axis, in the passive axis direction, and in the two-dimensional DDA between the sub-drive axis and the passive axis, in the passive axis direction. Each is set. The two-dimensional DDA between the auxiliary drive shaft and the passive shaft, which did not exist in the prior art, is used for the purpose of performing the route determination described with reference to FIG. In the known technique, the error term is set in the direction of the main drive axis, and as a result, a floating-point operation is required. However, such a disadvantage does not occur in the present invention. That is, it is possible to use a fixed-point representation for the error term, and as a result, it is possible to greatly reduce the circuit scale when realization by dedicated hardware is considered. Further, since voxels on the optical path can be found without any omission, it is effective for solving the problem that voxels to be found in dedicated hardware for a known volume rendering method are missing.

【0036】ボクセル情報記憶手段のバンクにおいて、
ボクセルについての交差計算の必要性を示す情報と、該
ボクセルの周囲のボクセルについての交差計算の必要性
を示す情報とを同一の語に格納することには、光路上の
ボクセルを欠落なく見い出すことを高速に行うために有
効である。公知のボリュームレンダリング法のための専
用ハードウェアでは各バンクから1つのボクセルを読み
出せば十分であったが、光路上のボクセルを欠落なく見
い出すためには、各バンクごとに最大3個のボクセルを
読み出す必要がある。しかし、上のように同一の語に格
納しておけば、この3個のボクセルの読み出しを一回の
アクセスで済ますことができる。
In the bank of the voxel information storage means,
Storing the information indicating the necessity of the intersection calculation for the voxel and the information indicating the necessity of the intersection calculation for the voxel around the voxel in the same word requires finding the voxel on the optical path without omission. It is effective for performing high speed. Reading out one voxel from each bank was sufficient for dedicated hardware for the well-known volume rendering method, but in order to find a voxel on the optical path without missing, up to three voxels per bank were required. It needs to be read. However, if they are stored in the same word as described above, the reading of these three voxels can be performed by one access.

【0037】物体集合記憶手段における重複除去情報
は、重複した交差計算の除去に効果がある。あるボクセ
ルに光線が突入し、そこに含まれるある物体との交差を
調べるとき、もしその近傍のボクセルの中に該光線が既
に訪れたものがあり、更にそこに同一の物体が含まれて
いるのならば、交差計算は既に実行済みだと分かるので
省略することができる。つまり、交差計算を行う前に、
重複除去情報のうち過去に訪れたボクセルに該当するも
のを調べることで、重複除去を実現できる。この重複除
去法は、ハードウェアによる実現に適している。
The duplicate elimination information in the object set storage means is effective in eliminating duplicate intersection calculations. When a ray enters a voxel and examines the intersection with an object contained in the voxel, if the ray has already visited some of the voxels in the vicinity, it also contains the same object In this case, the intersection calculation is already performed, so it can be omitted. In other words, before performing the intersection calculation,
The duplication elimination can be realized by examining the information corresponding to the voxel visited in the past among the duplication elimination information. This duplication elimination method is suitable for hardware implementation.

【0038】ボクセル情報記憶手段における交差計算の
必要性を示す情報として、当該ボクセルに含まれる3次
元物体の集合と、その近傍に位置するボクセルに含まれ
る3次元物体の集合との包含関係によって定められる情
報を使うことは、上述の重複した交差計算の除去との関
連がある。重複除去情報に基づいて重複除去行った結
果、1つのボクセルに関する交差計算がすべて省略され
てしまう場合がある。上述の包含関係のよって定められ
る情報は、このような状況を前もって避けるように働
く。すなわち、上のような状況は、そのボクセルに含ま
れる3次元物体の集合が、過去に訪れたボクセルに含ま
れる3次元物体の集合の部分集合になっている場合に起
きる。従って、交差計算の必要性を示す情報として当該
ボクセルに含まれる3次元物体の集合がその近傍に位置
するボクセルに含まれる3次元物体の集合の部分集合に
なっているかどうかを記録しておけば、ボクセル追跡回
路において、上のような状況にあるボクセルを物体を全
く含まないボクセルと同一視することが可能となる。そ
の結果、ボクセル追跡回路から出力されるボクセルイン
デックスの数が大幅に削減され、高速化が達成される。
The information indicating the necessity of the intersection calculation in the voxel information storage means is determined by the inclusion relationship between a set of three-dimensional objects included in the voxel and a set of three-dimensional objects included in voxels located near the voxel. Using the information provided has implications for the elimination of duplicate intersection calculations described above. As a result of performing the duplicate elimination based on the duplicate elimination information, all the intersection calculations for one voxel may be omitted. The information defined by the inclusion relations described above serves to avoid such situations in advance. That is, the above situation occurs when the set of three-dimensional objects included in the voxel is a subset of the set of three-dimensional objects included in voxels visited in the past. Therefore, as information indicating the necessity of intersection calculation, it is recorded whether or not the set of three-dimensional objects included in the voxel is a subset of the set of three-dimensional objects included in voxels located near the voxel. In the voxel tracking circuit, a voxel in the above situation can be identified with a voxel containing no object. As a result, the number of voxel indices output from the voxel tracking circuit is greatly reduced, and high speed is achieved.

【0039】上述の重複除去情報及び交差計算の必要性
を示す情報の最も基本的な実施形態は、近傍のボクセル
として、隣接する6方向(+x、−x、+y、−y、+
z、−z方向)のボクセルだけを対象にしたものであ
る。この場合、近傍のボクセルのうち光線が過去にどれ
を訪れたかは、光線がボクセルへどの面から突入したか
を基準に判断でき、回路規模は小さくて済む。ただし、
重複した交差計算をすべて除去できるわけではない。図
8に示す例のように、物体の形状がボクセルの形状をス
ケール変換して得られるものでない限り、除去できない
場合が存在する。しかし、最も重複除去による計算量削
減効果の大きい局所格子に対しては必ず除去できるた
め、実用上は十分であると考えられる。なお、除去効率
を上げるためにより遠くのボクセルを近傍のボクセルと
して考慮することは可能である。
The most basic embodiment of the above-described duplication elimination information and the information indicating the necessity of intersection calculation is that adjacent voxels are used as adjacent voxels in six adjacent directions (+ x, -x, + y, -y, +
(v, z, -z direction). In this case, which of the neighboring voxels the light ray has visited in the past can be determined based on from which surface the light ray has entered the voxel, and the circuit scale can be small. However,
Not all duplicate intersection calculations can be eliminated. As in the example shown in FIG. 8, there are cases where the object cannot be removed unless the shape of the object is obtained by scaling the shape of the voxel. However, since local grids that have the greatest effect of reducing the amount of calculation due to the duplication removal can always be removed, they are considered to be practically sufficient. Note that it is possible to consider voxels that are farther away as nearby voxels in order to increase the removal efficiency.

【0040】ボクセル追跡回路の各々と交差計算回路の
各々に対し、それぞれ別体の前記物体決定回路を備える
ことには、装置内の通信ネットワークを簡素にし、また
物体決定回路のための通信バッファを不要にする作用が
ある。
Providing a separate object determination circuit for each of the voxel tracking circuits and each of the intersection calculation circuits simplifies the communication network in the apparatus and reduces the communication buffer for the object determination circuit. Has the effect of making it unnecessary.

【0041】[0041]

【実施例】以下、本発明の実施例を図面を参照しながら
説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0042】以下の説明では、直接的交差計算の対象と
なる通常の物体と格子とを合わせて物体と呼ぶものとす
る。格子を除く物体はプリミティブと呼ぶものとする。
In the following description, a normal object and a grid which are the targets of direct intersection calculation are collectively referred to as an object. Objects other than the grid are called primitives.

【0043】以下の実施例では、座標系として直交座標
系を用い、ボクセルの形状は立方体であることを前提と
している。また、1つの格子の中ではボクセルの大きさ
は均一であると仮定している。また、各格子におけるボ
クセル分割数は各軸ともn以下に制限している。階層化
格子の階層レベルは2レベルまでに限定し、すなわち、
1つの大域格子とその内部に設定されるいくつかの局所
格子だけを用い、ある局所格子Aの内部に更に局所格子
Bを設定しそれを局所格子Aに物体として登録すること
はしない(ただし、局所格子Bを大域格子に登録するこ
とは可能である)。また、大域格子に対して回転のかか
った局所格子は考えないものとする。また、プリミティ
ブの形状は三角形のみに限定している。これらの制限を
課さない実施例については後で述べる。
In the following embodiment, an orthogonal coordinate system is used as a coordinate system, and it is assumed that the shape of a voxel is a cube. It is also assumed that the size of voxels is uniform within one grid. Further, the number of voxel divisions in each lattice is limited to n or less for each axis. The hierarchical level of the hierarchical grid is limited to two levels, ie
Only one global grid and some local grids set therein are used, and a local grid B is not set inside a certain local grid A and registered as an object in the local grid A (however, It is possible to register the local grid B in the global grid). Further, it is assumed that a local grid rotated with respect to the global grid is not considered. In addition, the shape of the primitive is limited to only a triangle. An embodiment that does not impose these restrictions will be described later.

【0044】図1は本発明の交点探索装置の構成と、そ
れを利用した光線追跡法による画像生成を行う装置の構
成を示した図である。交点探索装置1が本発明の交点探
索装置の一実施例であり、光線の開始点座標と進行方向
等を含む光線パケットを入力として受け取り、その光線
とプリミティブとの交点のうち開始点に最も近い1つに
ついてその位置等を含む光線パケットを出力する。初期
光線発生装置51は視点を通りスクリーン上の各画素を
通る光線を発生させ、その光線パケットを交点探索装置
1に送る。シェーディング及び次世代光線発生装置52
は、交点における法線ベクトルを求め、それをもとにプ
リミティブの見かけの色の当該光線による影響分を算出
し、結果をフレームバッファ53に累加する。更に、シ
ェーディング及び次世代光線発生装置52は、鏡面反射
や透過の性質を持つプリミティブと交差した場合には、
反射方向や透過方向に対して交点を開始点とした新たな
光線を発生させ、その光線パケットを交点探索装置1に
送る。また、影付け処理を行う場合にも、光源方向に対
して新たな光線を生成し交点探索装置1に送る。CRT
表示装置54は、フレームバッファ53に格納された合
成画像を表示する。
FIG. 1 is a diagram showing a configuration of an intersection searching apparatus of the present invention and a configuration of an apparatus for generating an image by a ray tracing method using the same. The intersection search device 1 is an embodiment of the intersection search device of the present invention, receives a light ray packet including a start point coordinate and a traveling direction of a light ray as an input, and is closest to a start point among intersections of the light ray and the primitive. A ray packet including the position and the like of one is output. The initial ray generator 51 generates a ray passing through each pixel on the screen passing through the viewpoint, and sends the ray packet to the intersection searcher 1. Shading and next generation ray generator 52
Calculates the normal vector at the intersection, calculates the influence of the light on the apparent color of the primitive based on the vector, and accumulates the result in the frame buffer 53. In addition, the shading and next generation ray generator 52 may intersect with primitives having specular or transmissive properties,
A new light ray is generated starting from the intersection point in the reflection direction or the transmission direction, and the light ray packet is sent to the intersection point search device 1. Also, when performing the shadowing process, a new light ray is generated in the light source direction and sent to the intersection search device 1. CRT
The display device 54 displays the composite image stored in the frame buffer 53.

【0045】以下、交点探索装置1の構造の概略につい
て説明する。交点探索装置1は、ボクセル追跡部2、交
差計算部3、出力バッファ4によって構成されている。
ボクセル追跡部2は、前記特許請求の範囲におけるボク
セル情報記憶手段とボクセル追跡回路と物体集合記憶手
段と物体決定回路を含み、主として光線と交差するボク
セルを見い出す処理を担当する。交差計算部3は、同一
構成の回路が2系統存在する。交差計算部3は、前記特
許請求の範囲における交差計算回路と物体集合記憶手段
と物体決定回路を含み、主として直接的交差計算を担当
する。出力バッファ4は、ボクセル追跡部2や交差計算
部3から送られてくる最終的な交点探索処理の結果を含
む光線パケットを回収し、シェーディング及び次世代光
線発生装置52へ送る。
The outline of the structure of the intersection searching device 1 will be described below. The intersection search device 1 includes a voxel tracking unit 2, an intersection calculation unit 3, and an output buffer 4.
The voxel tracking unit 2 includes a voxel information storage unit, a voxel tracking circuit, an object set storage unit, and an object determination circuit in the claims, and is mainly responsible for processing for finding a voxel that intersects a ray. The intersection calculation unit 3 includes two circuits having the same configuration. The intersection calculation unit 3 includes the intersection calculation circuit, the object set storage means, and the object determination circuit in the claims, and mainly handles direct intersection calculation. The output buffer 4 collects the ray packet including the result of the final intersection search processing sent from the voxel tracking section 2 and the intersection calculation section 3, and sends the packet to the shading and next-generation ray generation device 52.

【0046】ボクセル追跡部2と交差計算部3は共通の
クロック信号によって駆動されている。このクロック信
号の速度は、交点探索装置1内のどのメモリのアクセス
も1クロック周期の間に完了できるような速度に設定さ
れる。そして、ボクセル追跡部2と交差計算部3のどち
らも、パイプライン処理によって、次の停滞条件がいず
れかが成立しない限り1クロック周期ごとに1つの光線
パケットを処理する。停滞条件には2つあり、1つは各
部の入力に処理すべき光線パケットが存在しない場合、
もう1つは各部の出力先のバッファが満杯であるために
パケットを出力できない場合である。クロック周期のう
ち、停滞条件の成立しない通常のものを以下の説明では
有効クロック周期と呼んでいる。
The voxel tracking section 2 and the intersection calculation section 3 are driven by a common clock signal. The speed of this clock signal is set such that access to any memory in the intersection search device 1 can be completed within one clock cycle. Then, both the voxel tracking unit 2 and the intersection calculation unit 3 process one ray packet per clock cycle by pipeline processing unless one of the following stagnation conditions is satisfied. There are two stagnation conditions, one is when there is no ray packet to be processed at the input of each part,
The other case is when packets cannot be output because the output destination buffer of each unit is full. Of the clock cycles, a normal one that does not satisfy the stagnation condition is referred to as an effective clock cycle in the following description.

【0047】図2はボクセル追跡部2の内部構造を示し
た図である。FIFO(First−In First
−Out)バッファ201、202、203、204は
各部から送られてきた光線パケットを一時的に蓄える。
これらのFIFOバッファは、光線パケットが2つ以上
が同時に到着した場合でもバッファが溢れない限りすべ
て受け取れるようにしてシステムの性能向上を図ってい
る。マルチプレクサ205は有効クロック周期ごとにF
IFOバッファ201、202、203、204または
出力先決定回路217のいずれかより光線パケットを1
つ受け取り、DDA初期化回路23へ渡す。DDA初期
化回路23は、追跡を開始するボクセルやDDAにおけ
る誤差項等の計算を行う。
FIG. 2 is a diagram showing the internal structure of the voxel tracking unit 2. FIFO (First-In First)
-Out) Buffers 201, 202, 203, and 204 temporarily store light beam packets sent from each unit.
These FIFO buffers improve the performance of the system by receiving all of the light packets even if two or more light packets arrive at the same time as long as the buffers do not overflow. Multiplexer 205 outputs F
One of the IFO buffers 201, 202, 203, 204 or the output destination determination circuit 217
And passes it to the DDA initialization circuit 23. The DDA initialization circuit 23 calculates a voxel for starting tracking, an error term in the DDA, and the like.

【0048】ボクセル情報記憶手段24は交差計算の必
要性を示す情報を保持するメモリ群であり、同一の回路
構成で異なる記憶内容を保持するメモリのバンク241
をn個備えている。各バンクはそれぞれ異なるアドレス
によって読み出しを行うことが可能である。
The voxel information storage means 24 is a group of memories holding information indicating the necessity of intersection calculation, and a bank 241 of memories holding different storage contents with the same circuit configuration.
Are provided. Each bank can read data from a different address.

【0049】ボクセル追跡ユニット25は、3つの2次
元DDAを同期させながら並行に実行することによって
光線と交差をもつボクセルを順次調べ、対応するバンク
241より上記交差計算の必要性を示す情報を読み出し
ながら、全体として最大でk個の交差計算が必要だと見
なされるボクセルを発見する。同一の回路構成をもつボ
クセル追跡ユニット25がn個備えられており、その各
々は1つのボクセル平面集合に関する処理を担当する。
各ボクセル追跡ユニットは、1有効クロック周期の間
に、一度に最大3個までの光路上のボクセルを調べる。
The voxel tracking unit 25 sequentially examines voxels having intersections with rays by synchronizing and executing three two-dimensional DDAs in parallel, and reads information indicating the necessity of the intersection calculation from the corresponding bank 241. While finding voxels deemed to require up to k intersection calculations as a whole. There are provided n voxel tracking units 25 having the same circuit configuration, each of which is in charge of processing relating to one voxel plane set.
Each voxel tracking unit examines up to three voxels on the optical path at a time during one valid clock period.

【0050】格子情報メモリ26は、各格子についてそ
の開始点座標、ボクセル分割数、ボクセルの大きさ等を
保持する。
The grid information memory 26 stores the starting point coordinates, the number of voxel divisions, the size of voxels, and the like for each grid.

【0051】追跡終了処理回路211は、追跡結果のデ
ータ整理等を行う。DDA初期化回路23とボクセル追
跡ユニット25と追跡終了処理回路211を合わせてボ
クセル追跡回路22とする。
The tracking end processing circuit 211 performs data reduction of the tracking result and the like. The DDA initialization circuit 23, the voxel tracking unit 25, and the tracking end processing circuit 211 together form a voxel tracking circuit 22.

【0052】オーバーラン検査回路212は、ボクセル
追跡回路22によって得られたボクセルが現在までに見
つかっている交点を含むボクセルより先に進んでしまっ
た場合に、現在処理中の格子に関する処理を打ち切る働
きがある。
When the voxel obtained by the voxel tracking circuit 22 has advanced ahead of the voxel including the intersection which has been found so far, the overrun check circuit 212 terminates the processing relating to the grid currently being processed. There is.

【0053】L1範囲検査回路214は、交点探索を打
ち切って良いかどうかを判断する等の処理を行う。例え
ば、図7において、ボクセル641の追跡時に光線64
2と物体643との交差計算が行われる。その結果、交
点644が見つかるが、この段階で交点探索処理を打ち
切ることはできない。何故なら、交点644はボクセル
641の外部に位置するため、後続のボクセルにおいて
別の物体と交差する可能性があるからである。逆に、も
し交点644がボクセル641の内部に位置するのなら
ば、その時点で交点探索処理を打ち切り交点644を最
終的な交点とすることができる。このような状況におい
て、交点探索処理を打ち切って良いかどうかを判断する
のが範囲検査回路の役割である。L1範囲検査回路21
4は、大域格子に対して、この判断を行う。
The L1 range inspection circuit 214 performs processing such as determining whether or not the intersection search can be terminated. For example, in FIG.
The intersection calculation between 2 and the object 643 is performed. As a result, the intersection 644 is found, but the intersection search processing cannot be terminated at this stage. This is because the intersection point 644 is located outside the voxel 641, and may intersect another object in a subsequent voxel. Conversely, if the intersection 644 is located inside the voxel 641, the intersection search process can be terminated at that point and the intersection 644 can be made the final intersection. In such a situation, it is the role of the range inspection circuit to determine whether the intersection search process can be terminated. L1 range inspection circuit 21
4 makes this determination for the global grid.

【0054】物体集合記憶手段27は、各格子の各ボク
セルに含まれている物体の集合を記憶する。図9(a)
にその記憶内容のデータ構造を示す。図に示されている
ように、本実施例では集合を線形リストによって表現し
ている。リストヘッダ配列273は各ボクセルごとにリ
スト先頭要素のアドレスを保持する。リスト要素274
は各ボクセルに含まれる物体ごとに存在し、種別27
5、プリミティブまたは格子の識別番号276、重複除
去情報277、次アドレス278から成っている。種別
275は物体がプリミティブであるか局所格子であるか
を区別する1ビットの情報である。プリミティブまたは
格子の識別番号276は、プリミティブの通し番号また
は格子の通し番号のいずれかである。重複除去情報27
7は、隣接する6つのボクセルに同じ物体が含まれてい
るかを示す情報であり、その詳細は図9(b)の通りで
ある。インデックスが(ix、iy、iz)であるボク
セルに含まれる物体についての重複除去ビット277
1、2772、2773、2774、2775、277
6は、それぞれ、(ix−1、iy、iz)、(ix+
1、iy、iz)、(ix、iy−1、iz)、(i
x、iy+1、iz)、(ix、iy、iz−1)、
(ix、iy、iz+1)のインデックスをもつボクセ
ルに同じ物体が含まれているときに1となる。図9
(a)の次アドレス278は、次のリスト要素279の
アドレスを保持する。リスト要素279の場合のよう
に、次のリスト要素が存在しない場合には、その旨を意
味する存在し得ない特別のアドレス(以下このアドレス
を″φ″と表記する)を次アドレスの部分に格納する。
The object set storage means 27 stores a set of objects included in each voxel of each grid. FIG. 9 (a)
Shows the data structure of the stored contents. As shown in the figure, in this embodiment, a set is represented by a linear list. The list header array 273 holds the address of the head element of the list for each voxel. List element 274
Exists for each object included in each voxel, and the type 27
5, a primitive or lattice identification number 276, duplicate removal information 277, and a next address 278. The type 275 is 1-bit information for distinguishing whether an object is a primitive or a local lattice. The primitive or lattice identification number 276 is either the primitive serial number or the lattice serial number. Duplicate removal information 27
Reference numeral 7 denotes information indicating whether the same object is included in six adjacent voxels, the details of which are as shown in FIG. 9B. Deduplication bits 277 for the objects contained in the voxel whose index is (ix, iy, iz)
1, 2772, 2773, 2774, 2775, 277
6 are (ix-1, iy, iz) and (ix +
1, iy, iz), (ix, iy-1, iz), (i
x, iy + 1, iz), (ix, iy, iz-1),
It becomes 1 when the same object is included in the voxel having the index of (ix, iy, iz + 1). FIG.
The next address 278 in (a) holds the address of the next list element 279. When the next list element does not exist, as in the case of the list element 279, a special address that cannot exist (hereinafter, this address is referred to as “φ”) is added to the next address part. Store.

【0055】図3におけるリストヘッダメモリ271は
リストヘッダ配列273を保持し、リスト要素メモリ2
72はリスト要素274を保持する。リスト要素メモリ
272はr(r≧1)個重複して配置され、どれも同じ
内容を保持する。
The list header memory 271 in FIG. 3 holds the list header array 273 and
72 holds a list element 274. The list element memories 272 are arranged with r (r ≧ 1) duplications, and all hold the same contents.

【0056】リスト先頭要素決定回路215は、ボクセ
ルのインデックスをもとにリストヘッダメモリ271か
ら最初のリスト要素のアドレスを読み出す。
The list head element determination circuit 215 reads the address of the first list element from the list header memory 271 based on the voxel index.

【0057】物体決定回路216は、リスト要素メモリ
272よりリスト要素274を読み出すことによって交
差計算すべき物体を決定する。同一構成の回路がr段接
続されており、1つの光線パケットに対して最大でr個
の連続するリスト要素を調べることが可能である。この
r個のリスト要素が示すr個の物体のうち、重複除去情
報277から判断してまだ交差計算を行っていないと見
なされる物体が1つでも存在すれば、交差計算すべき物
体の決定は成功する。しかし、r個の物体がすべて交差
計算済みの場合には、交差計算判定すべき物体の決定は
失敗し、その決定は再度同じ光線パケットが物体決定回
路を通過したときに持ち越される。
The object determination circuit 216 determines an object to be cross-calculated by reading the list element 274 from the list element memory 272. Circuits having the same configuration are connected in r stages, and it is possible to check at most r continuous list elements for one light packet. If there is at least one of the r objects indicated by the r list elements, which is determined from the duplication elimination information 277 and has not yet been subjected to the intersection calculation, the object to be subjected to the intersection calculation is determined. success. However, if all the r objects have already been subjected to the intersection calculation, the determination of the object to be subjected to the intersection calculation fails, and the determination is carried over when the same ray packet passes through the object determination circuit again.

【0058】出力先決定回路217は、ボクセル追跡及
び物体決定の結果に基づいて、光線パケットを次にどこ
へ配送するべきかを決定する。
The output destination determination circuit 217 determines where the light packet should be delivered next based on the results of voxel tracking and object determination.

【0059】図3は交差計算部3の内部構造を示した図
である。FIFOバッファ301はボクセル追跡部2か
ら送られてきた光線パケットを一時的に蓄える。マルチ
プレクサ305は有効クロック周期ごとにFIFOバッ
ファ301または出力先決定回路317のいずれかより
光線パケットを1つ受け取り、交差計算回路32へ渡
す。
FIG. 3 is a diagram showing the internal structure of the intersection calculation unit 3. The FIFO buffer 301 temporarily stores the light packet transmitted from the voxel tracking unit 2. The multiplexer 305 receives one light packet from either the FIFO buffer 301 or the output destination determining circuit 317 every valid clock cycle, and passes it to the intersection calculating circuit 32.

【0060】交差計算回路32は、プリミティブの形状
に関するデータを保持する物体形状情報記憶手段33よ
り形状データを読み出し、プリミティブと光線との連立
方程式を解くことによって直接的交差計算を行う。
The intersection calculation circuit 32 reads out the shape data from the object shape information storage means 33 which holds data relating to the shape of the primitive, and performs a direct intersection calculation by solving a simultaneous equation of the primitive and the light ray.

【0061】L2範囲検査回路313は、局所格子に対
して、L1範囲検査回路214と同様の交点探索を打ち
切って良いかどうかを判断する等の処理を行う。
The L2 range inspection circuit 313 performs processing such as determining whether or not the intersection search similar to the L1 range inspection circuit 214 can be terminated for the local grid.

【0062】交差計算部3の他の部分に関してはボクセ
ル追跡部2と同一である。すなわち、格子情報メモリ3
6と格子情報メモリ26、L1範囲検査回路314とL
1範囲検査回路214、リスト先頭要素決定回路315
とリスト先頭要素決定回路215、物体決定回路316
と物体決定回路216、リストヘッダメモリ371とリ
ストヘッダメモリ271、リスト要素メモリ372とリ
スト要素メモリ272、出力先決定回路317と出力先
決定回路217は、それぞれ全く同等なメモリおよび回
路である。
The other parts of the intersection calculation unit 3 are the same as those of the voxel tracking unit 2. That is, the grid information memory 3
6, the grid information memory 26, the L1 range inspection circuit 314 and the L
One range inspection circuit 214, list head element determination circuit 315
And the list head element determination circuit 215 and the object determination circuit 316
And the object determination circuit 216, the list header memory 371 and the list header memory 271, the list element memory 372 and the list element memory 272, the output destination determination circuit 317 and the output destination determination circuit 217 are completely equivalent memories and circuits.

【0063】図4は出力バッファ4の内部構造を示した
図である。FIFOバッファ401、402、403は
各部から送られてきた光線パケットを一時的に蓄える。
これらのFIFOバッファは、光線パケットが2つ以上
が同時に到着した場合や、シェーディング及び次世代光
線発生装置52がデータを受け取る準備ができていない
場合においてもバッファが溢れない限りすべての光線パ
ケットを受け取れるようにする役割がある。マルチプレ
クサ404はFIFOバッファ401、402、403
のいずれかより光線パケットを受け取り、それをシェー
ディング及び次世代光線発生装置52へ送出する。
FIG. 4 is a diagram showing the internal structure of the output buffer 4. The FIFO buffers 401, 402, and 403 temporarily store the light packet transmitted from each unit.
These FIFO buffers can receive all ray packets as long as the buffer does not overflow, even when two or more ray packets arrive at the same time, or when the shading and next generation ray generator 52 is not ready to receive data. There is a role to do. The multiplexer 404 includes FIFO buffers 401, 402, and 403.
, And sends it to the shading and next-generation light generating device 52.

【0064】図10は、1つの格子について、ボクセル
情報記憶手段24に格納されている交差計算の必要性を
示す情報の全体像を、ボクセル分割数が各軸ともnであ
る場合を例をとって説明した図である。ボクセル情報記
憶手段24は、格子内の各ボクセルについて、光線の方
向ベクトルの成分のうちx軸成分が最大の絶対値を持つ
(すなわち、主駆動軸がx軸である)場合に使われるx
主軸ボクセル情報242と、主駆動軸がy軸である場合
に使われるy主軸ボクセル情報243と、主駆動軸がz
軸である場合に使われるz主軸ボクセル情報244とい
う3種類の異なる情報を保持している。x主軸ボクセル
情報群245は、ボクセルのx座標によってn個のボク
セル平面集合2451、2452、...、2453に
グループ分けされ、そのうちi番目のボクセル平面集合
はi番目のバンク241と(n−i+1)番目のバンク
241の2箇所に重複して格納される(ただし、1≦i
≦n)。例えば、ボクセル平面集合2451は、1番目
とn番目のバンク241に格納され、ボクセル平面集合
2452は、2番目と(n−1)番目のバンク241に
格納される。i番目のバンク241に格納されるデータ
は方向ベクトルのx成分が正である場合に使用され、
(n−i+1)番目のバンク241に格納されるデータ
は方向ベクトルのx成分が負である場合に使用される。
同様に、y主軸ボクセル情報群246は、ボクセルのy
座標によってボクセル平面集合2461、246
2、...、2463にグループ分けされ、そのうち1
番目のボクセル平面集合はi番目のバンク241と(n
−i+1)番目のバンク241の2箇所に重複して格納
される。また、z主軸ボクセル情報群247は、ボクセ
ルのz座標によってボクセル平面集合2471、247
2、...、2473にグループ分けされ、そのうちi
番目のボクセル平面集合は1番目のバンク241と(n
−i+1)番目のバンク241の2箇所に重複して格納
される。
FIG. 10 shows an example of the whole image of the information indicating the necessity of the intersection calculation stored in the voxel information storage means 24 for one grid, and the case where the number of voxel divisions is n for each axis. FIG. The voxel information storage unit 24 uses x for each voxel in the grid when the x-axis component among the components of the direction vector of the light ray has the maximum absolute value (that is, the main drive axis is the x-axis).
The main axis voxel information 242, the y main axis voxel information 243 used when the main driving axis is the y axis, and the main driving axis z
It holds three types of different information called z-axis voxel information 244 used in the case of an axis. The x main axis voxel information group 245 includes n sets of voxel plane sets 2451, 2452,. . . , 2453, and the i-th voxel plane set is stored in two places, i.e., the i-th bank 241 and the (n−i + 1) -th bank 241 (where 1 ≦ i).
≤n). For example, the voxel plane set 2451 is stored in the first and nth banks 241, and the voxel plane set 2452 is stored in the second and (n-1) th banks 241. The data stored in the i-th bank 241 is used when the x component of the direction vector is positive,
The data stored in the (ni + 1) -th bank 241 is used when the x component of the direction vector is negative.
Similarly, the y-major axis voxel information group 246 includes the voxel y
Voxel plane sets 2461, 246 by coordinates
2,. . . , 2463, one of which is
The voxel plane set is the i-th bank 241 and (n
−i + 1) The data is redundantly stored in two places of the 241st bank 241. The z-major axis voxel information group 247 includes voxel plane sets 2471 and 247 based on z coordinates of voxels.
2,. . . , 2473, of which i
The voxel plane set is composed of the first bank 241 and (n
−i + 1) The data is redundantly stored in two places of the 241st bank 241.

【0065】図10では、格子におけるボクセル分割数
が各軸ともnである場合を示したが、分割数がnに満た
ない場合であっても、分割数を越える部分についてはボ
クセル情報が空であると見なした上で、同じ規則を適用
する。例えば、nが8でx軸について分割数が2である
場合、1、2、7、8番目のバンク241はそれぞれ
1、2、2、1番目のボクセル平面集合2451、24
52、2452、2451を保持し、3、4、5、6番
目のバンク241はx主軸ボクセル情報を保持しないこ
とになる。
FIG. 10 shows a case where the number of voxel divisions in the grid is n for each axis. However, even when the number of divisions is less than n, the voxel information is empty for a portion exceeding the number of divisions. Assuming that there is, apply the same rules. For example, when n is 8 and the number of divisions on the x axis is 2, the first, second, seventh, and eighth banks 241 are the first, second, second, and first voxel plane sets 2451, 24, respectively.
52, 2452, and 2451, and the third, fourth, fifth, and sixth banks 241 do not hold the x-spindle voxel information.

【0066】図11(a)はz主軸ボクセル情報244
の詳細内容を示した図である。z主軸ボクセル情報24
4は、15個の交差計算要求ビット24401、244
02、...、24415より構成されている。このう
ちのいくつかは、自身のボクセルに含まれる物体の集合
と周囲のボクセルに含まれる物体の集合との包含関係に
基づいて決定される。図11(b)は、z主軸ボクセル
情報244が対象としているボクセル651と、その周
囲のボクセル652、653、...、661との位置
関係を示したものである。なお、図11ではz主軸ボク
セル情報244について示したが、x主軸ボクセル情報
242の詳細内容は同図のzをx、xをy、yをzに読
み替えたものであり、y主軸ボクセル情報243の詳細
内容は同図のzをy、yをx、xをzに読み替えたもの
である。
FIG. 11A shows z-axis voxel information 244.
FIG. 3 is a diagram showing the detailed contents of FIG. z-spindle voxel information 24
4 is 15 intersection calculation request bits 24401, 244
02,. . . , 24415. Some of them are determined based on the inclusion relationship between the set of objects included in the own voxel and the set of objects included in surrounding voxels. FIG. 11B shows a voxel 651 targeted by the z-axis voxel information 244 and voxels 652, 653,. . . , 661 are shown. Although the z-axis voxel information 244 is shown in FIG. 11, the details of the x-axis voxel information 242 are obtained by replacing z with x, x with y, and y with z in FIG. Are the same as those in FIG. 3 except that z is replaced with y, y is replaced with x, and x is replaced with z.

【0067】図11(a)におけるcビット24401
の値は、ボクセル651に含まれる物体の集合が非空で
ある場合に1となる。+zビット24402は、ボクセ
ル651に含まれる物体の集合がボクセル652に含ま
れる物体の集合の部分集合でないとき、すなわちボクセ
ル651がボクセル652に含まれる物体とは別の物体
を含む場合に1となる。−zビット24403は、ボク
セル651に含まれる物体の集合がボクセル653に含
まれる物体の集合の部分集合でないとき1となる。+x
ビット24404は、ボクセル654に含まれる物体の
集合がボクセル651に含まれる物体の集合の部分集合
でないとき1となる。同様に、交差計算要求ビット24
405、24406、24407は、それぞれ、ボクセ
ル655、656、657に含まれる物体の集合がボク
セル651に含まれる物体の集合の部分集合でないとき
1となる。
The c bit 24401 in FIG.
Is 1 when the set of objects included in the voxel 651 is non-empty. The + z bit 24402 becomes 1 when the set of objects included in the voxel 651 is not a subset of the set of objects included in the voxel 652, that is, when the voxel 651 includes an object different from the object included in the voxel 652. . The −z bit 24403 becomes 1 when the set of objects included in the voxel 651 is not a subset of the set of objects included in the voxel 653. + X
Bit 24404 is 1 when the set of objects included in voxel 654 is not a subset of the set of objects included in voxel 651. Similarly, intersection calculation request bit 24
405, 24406, and 24407 become 1 when the set of objects included in voxels 655, 656, and 657 is not a subset of the set of objects included in voxel 651, respectively.

【0068】+x+yビット24408は、ボクセル6
58に含まれる物体の集合がボクセル654に含まれる
物体の集合の部分集合でないとき1となる。同様に、交
差計算要求ビット24409、24410、2441
1、24412、24413、24414、24415
は、それぞれ、ボクセル659、660、661、65
8、660、659、661に含まれる物体の集合がボ
クセル654、655、655、656、656、65
7、657に含まれる物体の集合の部分集合でないとき
1となる。
The + x + y bit 24408 is for voxel 6
When the set of objects included in 58 is not a subset of the set of objects included in voxel 654, the value is 1. Similarly, intersection calculation request bits 24409, 24410, 2441
1, 24412, 24413, 24414, 24415
Are voxels 659, 660, 661, 65, respectively.
The set of objects included in 8, 660, 659, 661 is the voxel 654, 655, 655, 656, 656, 65.
7 and 1 if it is not a subset of the set of objects included in 657.

【0069】上記交差計算要求ビットの決定において、
格子の境界付近の場合で、周囲のボクセルが格子の範囲
外なため存在しないときは、その周囲のボクセルに対す
る物体の集合は空集合とみなす。
In determining the intersection calculation request bit,
In the case near the grid boundary, if the surrounding voxels do not exist because they are outside the range of the grid, the set of objects for the surrounding voxels is regarded as an empty set.

【0070】上記交差計算要求ビットのうちcビット2
4401を除く14個は、光線があるボクセルから次の
ボクセルへ進行するときに交差計算が必要であるかどう
か判定するために用いられる。cビット24401は、
光線の開始点を含むボクセルに対して交差計算の必要性
を調べるために用いられる。
Of the above intersection calculation request bits, c bit 2
Fourteen, except 4401, are used to determine if a crossing calculation is needed when a ray travels from one voxel to the next. c bit 24401 is
It is used to determine the need for intersection calculations for voxels containing the starting point of the ray.

【0071】図10において、z主軸ボクセル情報群2
47を構成するボクセル平面集合2471、247
2、...、2473の各々は、実際には、n×n個の
ボクセル情報の周囲に1ボクセル分余計にボクセル情報
を持たせ、計(n+2)×(n+2)個のボクセル情報
をバンク241に格納する。従って、z主軸ボクセル情
報群247全体としては、n×(n+2)×(n+2)
個のボクセル情報244がバンク241に格納されるこ
とになる。周囲に追加されたボクセル情報では、中心の
ボクセル651に含まれる物体の集合を空集合とみなし
て交差計算要求ビット24401、2440
2、...、24415の値を決定する。これは、x主
軸ボクセル情報群245、y主軸ボクセル情報群246
についても同様である。
In FIG. 10, z-axis principal-axis voxel information group 2
A set of voxel planes 2471 and 247 constituting the 47
2,. . . , 2473 actually have voxel information one voxel extra around n × n voxel information, and store a total of (n + 2) × (n + 2) voxel information in the bank 241. Therefore, as a whole z principal axis voxel information group 247, n × (n + 2) × (n + 2)
The pieces of voxel information 244 are stored in the bank 241. According to the voxel information added to the surroundings, a set of objects included in the center voxel 651 is regarded as an empty set, and intersection calculation request bits 24401 and 2440 are set.
2,. . . , 24415 are determined. This is because the x-axis voxel information group 245 and the y-axis voxel information group 246
The same applies to.

【0072】以下、交点探索装置1の動作の概要を、光
線と物体が図12(a)に示すような位置関係になって
いる場合を例にとって説明する。説明を分かりやすくす
るため、ここでは2次元空間における交点探索処理につ
いて述べるが、実際には3次元の交点探索処理が行われ
る。また、この動作概要説明においては、ボクセル追跡
ユニット数nは4であるとする。
The outline of the operation of the intersection searching device 1 will be described below by taking as an example a case where a light beam and an object have a positional relationship as shown in FIG. For the sake of simplicity, the intersection search process in a two-dimensional space will be described here. However, a three-dimensional intersection search process is actually performed. Further, in the description of the operation outline, it is assumed that the number n of voxel tracking units is 4.

【0073】光線671の光線パケットが交点探索装置
1へ入力されると、その光線パケットはボクセル追跡部
2へ送られ、FIFOバッファ203とマルチプレクサ
205を通って、ボクセル追跡回路22へ届けられる。
ボクセル追跡回路22は、大域格子672の中で交差計
算の可能性のあるボクセルを探す。
When the ray packet of the ray 671 is input to the intersection search device 1, the ray packet is sent to the voxel tracking section 2, passes through the FIFO buffer 203 and the multiplexer 205, and is delivered to the voxel tracking circuit 22.
The voxel tracking circuit 22 searches the global grid 672 for a voxel with a possibility of intersection calculation.

【0074】図12(b)は図12(a)の各格子につ
いて、ボクセル情報記憶手段24に記憶されている交差
計算の必要性を示す情報を、光線が通過するボクセルに
限って示したものである。この例では主駆動軸がz軸で
あるので、z主軸ボクセル情報群247が参照される。
z主軸ボクセル情報群247には各ボクセル当たり15
ビットの交差計算要求ビット24401、2440
2、...、24415が存在するが、図12(b)で
はそれぞれのボクセルへの光線入射方向に従った該当す
る交差計算要求ビットだけを選択して表示してある。
FIG. 12B shows the information indicating the necessity of intersection calculation stored in the voxel information storage means 24 for each grid of FIG. It is. In this example, since the main drive axis is the z axis, the z main axis voxel information group 247 is referred to.
In the z-spindle voxel information group 247, 15
Intersection calculation request bit 24401, 2440
2,. . . , 24415, but in FIG. 12 (b), only the corresponding intersection calculation request bits corresponding to the directions of incidence of light rays on the respective voxels are selected and displayed.

【0075】ボクセル追跡回路22は、図12(b)に
示されている交差計算要求ビットが1であるようなボク
セルを高々k個発見するように働く。ここではkが2で
ある場合を考える。前述の大域格子672についてのボ
クセル追跡は次のように行われる。1番目のボクセル追
跡ユニット25はボクセル673を調べ、交差計算要求
ビットが1であるので、ボクセル673のインデックス
を光線パケットに格納し、それを2番目のボクセル追跡
ユニット25に渡す。2番目のボクセル追跡ユニット2
5は、ボクセル674とボクセル675を調べ、交差計
算要求ビットが1であるボクセル674のインデックス
を光線パケットに追加格納する。この時点で既に2つの
ボクセルを発見したことになるので、3、4番目のボク
セル追跡ユニット25は、光線パケットを素通りさせ
る。こうして、ボクセル追跡回路22からボクセル67
3とボクセル674のインデックスを含んだ光線パケッ
トが出力される。
The voxel tracking circuit 22 works to find at most k voxels whose intersection calculation request bit shown in FIG. Here, the case where k is 2 is considered. Voxel tracking for the global grid 672 is performed as follows. The first voxel tracking unit 25 examines the voxel 673, and stores the index of the voxel 673 in the ray packet and passes it to the second voxel tracking unit 25 since the intersection calculation request bit is 1. Second voxel tracking unit 2
5 examines voxel 674 and voxel 675 and additionally stores the index of voxel 674 whose intersection calculation request bit is 1 in the ray packet. At this point, since two voxels have already been found, the third and fourth voxel tracking units 25 pass the ray packets. Thus, the voxel tracking circuit 22 sends the voxel 67
A ray packet containing the index of 3 and voxel 674 is output.

【0076】上記の光線パケットは、オーバーラン検査
回路212、L1範囲検査回路214をそのまま通過
し、リスト先頭要素決定回路215において、ボクセル
673についてのリスト要素274のアドレスが決定さ
れ、物体決定回路216においてリスト要素274が読
み出される。ボクセル673は局所格子678だけを含
むので、このリスト要素は局所格子678のものであ
る。物体決定回路216は、さらに、重複除去情報27
7を調べて重複した交差計算でないことを確認し、局所
格子678を次に交差計算すべき物体として決定し、出
力先決定回路217へ光線パケットを送る。出力先決定
回路217は、次に局所格子678におけるボクセル追
跡を行うため、光線パケットをマルチプレクサ205を
介して、ボクセル追跡回路22に戻す。
The above-mentioned light ray packet passes through the overrun inspection circuit 212 and the L1 range inspection circuit 214 as they are, and the list head element determination circuit 215 determines the address of the list element 274 for the voxel 673, and the object determination circuit 216 In, the list element 274 is read. Since voxel 673 includes only local grid 678, this list element is that of local grid 678. The object determination circuit 216 further includes the duplication removal information 27
7, the local grid 678 is determined as the next object to be cross-calculated, and the ray packet is sent to the output destination determining circuit 217. The output destination determining circuit 217 returns the ray packet to the voxel tracking circuit 22 via the multiplexer 205 to perform voxel tracking on the local grid 678 next.

【0077】局所格子678に対するボクセル追跡で
は、図12(b)に示されているように光線が通るボク
セルの中に交差計算要求ビットが1であるものが無いた
め、ボクセル追跡回路22は、ボクセルのインデックス
を追加することなく光線パケットをオーバーラン検査回
路212へ渡す。オーバーラン検査回路212およびL
1範囲検査回路214は、局所格子678に対する処理
は終了したとして、大域格子672に処理対象を戻し、
大域格子における次のボクセルであるボクセル674
(このインデックスはまだ光線パケット中に残ってい
る)に処理対象を移すよう光線パケットを更新して、リ
スト先頭要素決定回路215へ送る。リスト先頭要素決
定回路215と物体決定回路216は、ボクセル674
が含む局所格子678と局所格子679についてリスト
要素274を調べる。局所格子678については、重複
除去情報277によって重複した交差計算であることが
判明するので、ここでは局所格子679を交差計算すべ
き物体だと決定して、光線パケットを出力先決定回路2
17へ送る。出力先決定回路217は、局所格子679
におけるボクセル追跡を行うため、光線パケットをマル
チプレクサ205を介して、ボクセル追跡回路22に再
び戻す。
In the voxel tracking for the local grid 678, as shown in FIG. 12 (b), there is no voxel through which the ray passes, and the intersection calculation request bit is 1, so that the voxel tracking circuit 22 Is passed to the overrun inspection circuit 212 without adding the index of Overrun check circuit 212 and L
The one-range inspection circuit 214 determines that the processing on the local grid 678 has been completed, returns the processing target to the global grid 672, and
The next voxel in the global grid, voxel 674
The light packet is updated so that the processing target is moved to (the index still remains in the light packet) and sent to the list head element determination circuit 215. The list head element determination circuit 215 and the object determination circuit 216 form a voxel 674
The list element 274 is checked for the local grid 678 and the local grid 679 included in. The local grid 678 is found to be an overlapping intersection calculation based on the overlap elimination information 277. Therefore, here, the local grid 679 is determined to be an object to be subjected to the intersection calculation, and the light packet is output to the output destination determination circuit 2
Send to 17. The output destination determining circuit 217 determines whether the local grid 679
In order to perform the voxel tracking at, the ray packet is returned to the voxel tracking circuit 22 via the multiplexer 205 again.

【0078】局所格子679に対するボクセル追跡で
は、ボクセル683だけが発見されるため、ボクセル追
跡回路22は、ボクセル683のインデックスを含んだ
光線パケットをオーバーラン検査回路212へ送る。オ
ーバーラン検査回路212およびL1範囲検査回路21
4は光線パケットを素通りさせる。リスト先頭要素決定
回路215は、ボクセル683についてのリスト要素2
74のアドレスを決定し、また、物体決定回路216
は、物体685を交差計算すべき物体だと決定して、光
線パケットを出力先決定回路217へ送る。出力先決定
回路217は、今度は交差計算部3へ光線パケットを配
送する。
In the voxel tracking for the local grid 679, only the voxel 683 is found. Overrun inspection circuit 212 and L1 range inspection circuit 21
4 allows the light packet to pass through. The list head element determination circuit 215 calculates the list element 2 for the voxel 683.
74 and an object determination circuit 216
Determines that the object 685 is an object to be cross-calculated, and sends the ray packet to the output destination determination circuit 217. The output destination determination circuit 217 delivers the ray packet to the intersection calculation unit 3 this time.

【0079】交差計算部3へ届けられた光線パケットは
FIFOバッファ301、マルチプレクサ305を通
り、交差計算回路32へ送られる。交差計算回路32
は、物体形状情報記憶手段33から物体685に関する
三角形の形状情報を読み出し、直接的交差計算を行うこ
とによって交点686の座標値を求め、結果をL2範囲
検査回路313へ送る。L2範囲検査回路313は、交
点686がボクセル683の外部にあることを確認し、
そのため局所格子679における次のボクセルへ処理対
象を移すことを試みるが、この場合は局所格子679に
は交差計算要求ビットが1のボクセルがもう存在しない
ことが分かっているので、処理対象を大域格子672へ
戻して光線パケットをL1範囲検査回路314へ渡す。
L1範囲検査回路314は、交点686がボクセル67
4の外部であることを確認し、そのため大域格子672
における次のボクセルへ処理対象を移すことを試みる
が、そのためにはボクセル674より先のボクセルを追
跡する必要があると分かるので、大域格子672におけ
る継続ボクセル追跡を行うように光線パケットを更新す
る。この光線パケットは、リスト先頭要素決定回路31
5、物体決定回路316を素通りし、出力先決定回路3
17を経て、ボクセル追跡部2へと配送される。
The light packet delivered to the intersection calculation unit 3 passes through the FIFO buffer 301 and the multiplexer 305 and is sent to the intersection calculation circuit 32. Intersection calculation circuit 32
Reads the shape information of the triangle related to the object 685 from the object shape information storage means 33, calculates the coordinate value of the intersection 686 by performing a direct intersection calculation, and sends the result to the L2 range inspection circuit 313. The L2 range inspection circuit 313 confirms that the intersection 686 is outside the voxel 683,
Therefore, an attempt is made to move the processing target to the next voxel in the local grid 679. In this case, since it is known that there is no longer a voxel whose intersection calculation request bit is 1 in the local grid 679, the processing target is set to the global grid. Returning to 672, the light packet is passed to the L1 range inspection circuit 314.
The L1 range inspection circuit 314 determines that the intersection 686 is the voxel 67
4 and therefore the global grid 672
Is attempted, the voxel before voxel 674 needs to be tracked, so the ray packet is updated to perform continuous voxel tracking in global grid 672. The light packet is transmitted to the list head element determination circuit 31.
5. The output destination determination circuit 3 passes through the object determination circuit 316
The data is delivered to the voxel tracking unit 2 via the server 17.

【0080】ボクセル追跡部2へ配送された光線パケッ
トは、FIFOバッファ201とマルチプレクサ205
を通って、ボクセル追跡回路22へ届けらる。大域格子
672に対するボクセル674より先の継続ボクセル追
跡においては、ボクセル677だけが発見されるため、
ボクセル追跡回路22は、ボクセル677のインデック
スを含んだ光線パケットをオーバーラン検査回路212
へ送る。オーバーラン検査回路212は、交点686を
含むボクセル676よりボクセル677の方が先に進ん
でいることから、大域格子672に対する処理は終了し
たと判断し、交点686を最終的な交点として交点探索
処理を終了するように光線パケットを更新する。この光
線パケットは、L1範囲検査回路214、リスト先頭要
素決定回路215、物体決定回路216を素通りし、出
力先決定回路217を経て、出力バッファ4へ配送、さ
れる。そして、FIFOバッファ403、マルチプレク
サ404を通り、最終的に交点探索装置1から交点探索
処理結果として出力される。
The light packet delivered to the voxel tracking unit 2 is transmitted to the FIFO buffer 201 and the multiplexer 205
To the voxel tracking circuit 22. In continuous voxel tracking ahead of voxel 674 for global grid 672, only voxel 677 is found,
The voxel tracking circuit 22 converts the light packet including the index of the voxel 677 into an overrun inspection circuit 212.
Send to The overrun inspection circuit 212 determines that the processing for the global grid 672 has been completed, since the voxel 677 is ahead of the voxel 676 including the intersection 686, and uses the intersection 686 as the final intersection. Update the ray packet to end. This light packet passes through the L1 range inspection circuit 214, the list head element determination circuit 215, and the object determination circuit 216, and is delivered to the output buffer 4 via the output destination determination circuit 217. Then, the signal passes through the FIFO buffer 403 and the multiplexer 404 and is finally output from the intersection search device 1 as an intersection search processing result.

【0081】以上の説明は1つの光線パケットについて
それが処理される様子を示したが、実際はパイプライン
処理によって多数の光線パケットが並列に処理されてい
る。なお、交点探索装置1の内部で新たな光線パケット
が生成されたり、光線パケットが消滅したりすることは
無い。従って、交点探索装置1へ入力される光線パケッ
トとそこから出力される光線パケットの数は一致する。
While the above description has shown the processing of one ray packet, it is actually performed by pipeline processing to process many ray packets in parallel. It should be noted that no new light packet is generated inside the intersection searching device 1 and no light packet disappears. Therefore, the number of ray packets input to the intersection search device 1 and the number of ray packets output therefrom match.

【0082】以下、交点探索装置1における各部の構造
と動作について更に詳しく述べる。まず、そのための準
備として、データ交換の単位である光線パケットの構成
について解説する。
Hereinafter, the structure and operation of each part in the intersection search device 1 will be described in more detail. First, as a preparation for that, a configuration of a light packet which is a unit of data exchange will be described.

【0083】図13は、交点探索装置1で使われる光線
パケットの基幹部分を示したものである。交点探索装置
1への入力となる光線パケットは、この基幹部分のうち
光線識別番号rayidを格納した要素701から方向
ベクトル成分符号Sを格納した要素704までだけを抜
き出したものである。交点探索装置1から出力される光
線パケット、及び出力バッファ4の内部で使われる光線
パケットは、この基幹部分のうち光線識別番号rayi
dを格納した要素701から交差プリミティブ識別番号
pidを格納した要素708までを抜き出したものであ
る。ボクセル追跡部2、交差計算部3の内部で使われる
光線パケット、及びそれらの間で取り交わされる光線パ
ケットは原則としてこの基幹部分をすべて含む。ただ
し、後で述べるように、場所によっては一部のパケット
要素が省略されることがある。
FIG. 13 shows a basic part of a light ray packet used in the intersection point searching device 1. The ray packet to be input to the intersection search device 1 is obtained by extracting only the element from the element 701 storing the ray identification number rayid to the element 704 storing the direction vector component code S in the basic part. The ray packet output from the intersection searching device 1 and the ray packet used inside the output buffer 4 are ray identification numbers rayi of the basic part.
The elements from the element 701 storing d to the element 708 storing the intersection primitive identification number pid are extracted. The ray packets used inside the voxel tracing unit 2 and the intersection calculation unit 3 and the ray packets exchanged between them basically include all the core parts. However, as described later, some packet elements may be omitted depending on the location.

【0084】図14は、図13に示した光線パケット基
幹部分の一部について、更に詳しい構造を示したもので
ある。
FIG. 14 shows a more detailed structure of a part of the main part of the light ray packet shown in FIG.

【0085】図15は、ボクセル追跡回路22の内部で
使われる光線パケットに対する追加部分の構造を示して
いる。ボクセル追跡回路22の内部では、図13に示し
た基幹部分と、この追加部分を連結した構造の光線パケ
ットが使用される。
FIG. 15 shows the structure of an additional portion for a light packet used inside the voxel tracking circuit 22. Inside the voxel tracking circuit 22, a light packet having a structure in which the main part shown in FIG. 13 and this additional part are connected is used.

【0086】以下、光線パケットの各要素の意味を順に
説明する。まず、基幹部分について説明を行う。要素7
01に格納されている光線識別番号rayidは、交点
探索装置1において処理中の光線を一意に識別するため
の番号である。この番号は交点探索装置1の外部で与え
られ、交点探索装置1はそれに対し参照や変更を一切行
わずに入力された時の番号をそのまま出力する。この番
号は、初期光線発生装置51やシェーディング及び次世
代光線発生装置52において、光線パケットには含まれ
ていない光線の属性データ(例えば画素座標や光線の色
など)と交点探索装置1から出力された光線パケットと
の対応を取るために利用される。
Hereinafter, the meaning of each element of the light ray packet will be described in order. First, the core part will be described. Element 7
The ray identification number rayid stored in 01 is a number for uniquely identifying the ray being processed in the intersection search device 1. This number is given outside the intersection search device 1, and the intersection search device 1 outputs the number when input without any reference or change thereto. This number is output from the intersection search device 1 and the attribute data (for example, pixel coordinates and light color) of the light beam not included in the light packet in the initial light beam generating device 51 and the shading and next-generation light beam generating device 52. It is used to take correspondence with the ray packet.

【0087】要素702から704までに格納されてい
る光線開始点座標E=(Ex、Ey、Ez)、方向ベク
トル成分絶対値D=(Dx、Dy、Dz)、方向ベクト
ル成分符号S=(Sx、Sy、Sz)は、光線の開始点
座標と方向を表している。光線の方程式は、tをパラメ
ータ変数として、 x=Ex・t+Vx y=Ey・t+Vy z=Ez・t+Vz と表される。V=(Vx、Vy、Vz)は光線の方向ベ
クトルである。上のDとSはVと次の関係がある。 Dx=|Vx| Dy=|Vy| Dz=|Vz| Sx=″正″、Vx≧0のとき、 =″負″、Vx<0のとき Sy=″正″、Vy≧0のとき、 =″負″、Vy<0のとき Sz=″正″、Vz≧0のとき、 =″負″、Vz<0のとき
The ray start point coordinates E = (Ex, Ey, Ez) stored in the elements 702 to 704, the direction vector component absolute value D = (Dx, Dy, Dz), and the direction vector component code S = (Sx , Sy, Sz) represent the starting point coordinates and direction of the light beam. The ray equation is expressed as follows: x = Ex · t + Vx y = Ey · t + Vyz = Ez · t + Vz where t is a parameter variable. V = (Vx, Vy, Vz) is the direction vector of the light ray. The above D and S have the following relationship with V. Dx = | Vx | Dy = | Vy | Dz = | Vz | When Sx = “positive”, Vx ≧ 0 == “negative”, when Vx <0 Sy = “positive”, when Vy ≧ 0 = When "negative", Vy <0 Sz = "positive", when Vz≥0, = When "negative", Vz <0

【0088】要素705に格納されている交点存在フラ
グisfは、既に1つ以上の交点が見つかっているとき
に1、まだ見つかっていないときに0となる1ビット情
報である。この要素705は、交点探索装置1へ入力さ
れた光線パケットが最初にボクセル追跡部2へ送られる
とき、0に初期化される。
The intersection point existence flag isf stored in the element 705 is 1-bit information which becomes 1 when one or more intersection points have already been found, and becomes 0 when not yet found. This element 705 is initialized to 0 when the ray packet input to the intersection point searching device 1 is first sent to the voxel tracking unit 2.

【0089】要素706に格納されている交点座標P=
(Px、Py、Pz)は、現在までに見つかった交点の
うち、光線方程式のパラメータ変数tが正で、かつ光線
開始点Eに最も近いもの(すなわちtが最小のもの)の
座標である。
The intersection coordinates P =
(Px, Py, Pz) are coordinates of the intersections found so far in which the parameter variable t of the ray equation is positive and closest to the ray start point E (that is, t is the smallest).

【0090】要素707に格納されている交点パラメー
タ値tpは、上記交点座標Pを与える光線方程式のパラ
メータ変数の値である。すなわち、 Px=Ex・pt+Vx Py=Ey・pt+Vy Pz=Ez・pt+Vz である。
The intersection parameter value tp stored in the element 707 is the value of the parameter variable of the ray equation that gives the intersection coordinates P. That is, Px = Ex.pt + Vx Py = Ey.pt + Vy Pz = Ez.pt + Vz

【0091】要素708に格納されている交差プリミテ
ィブ識別番号pidは、上記交点座標Pにおいて交差し
ているプリミティブの識別番号である。
The intersection primitive identification number pid stored in the element 708 is the identification number of the primitive intersecting at the intersection coordinates P.

【0092】要素709に格納されている追跡レベルl
evelエは、大域格子に対して追跡を行っているとき
1、局所格子に対して追跡を行っているとき2となる整
数である。この要素709は、交点探索装置1へ入力さ
れた光線パケットが最初にボクセル追跡部2へ送られる
とき、1に初期化される。
Tracking level 1 stored in element 709
“evel” is an integer that becomes 1 when tracking is performed on the global grid and 2 when tracking is performed on the local grid. This element 709 is initialized to 1 when the ray packet input to the intersection search device 1 is first sent to the voxel tracking unit 2.

【0093】要素710に格納されている格子識別番号
gidは、現在処理の対象としている格子(大域格子ま
たは局所格子)の識別番号、すなわちどの格子かを一意
に識別する番号である。この要素710は、交点探索装
置1へ入力された光線パケットが最初にボクセル追跡部
2へ送られるとき、大域格子の識別番号に初期化され
る。
The grid identification number gid stored in the element 710 is the identification number of the grid currently being processed (global grid or local grid), that is, a number for uniquely identifying which grid. This element 710 is initialized to the identification number of the global grid when the ray packet input to the intersection search device 1 is first sent to the voxel tracking unit 2.

【0094】要素711に格納されている交差計算要求
プリミティブ識別番号rpidは、交差計算回路32に
おいて次に直接的交差計算が行われるプリミティブの識
別番号である。この要素711は、物体決定回路216
または316の内部、及びそこから出発して、出力先決
定回路217または317を通り、FIFOバッファ3
01を介して、交差計算回路32に達するまでの経路の
間でだけ利用され、それ以外の箇所では省略される。
The intersection calculation request primitive identification number rpid stored in the element 711 is the identification number of the primitive for which the intersection calculation circuit 32 will perform the next direct intersection calculation. This element 711 includes the object determination circuit 216
Or 316 and starting therefrom, through an output destination determining circuit 217 or 317,
It is used only during the route to the intersection calculation circuit 32 via 01, and is omitted in other places.

【0095】要素712に格納されている後半部処理状
態lstateは、0から6までの整数の値をとり、オ
ーバーラン検査回路212から出力先決定回路217ま
で、及びL2範囲検査回路313から出力先決定回路3
17までの間において、前段の処理状況を後段へ伝える
ために利用される。それ以外の箇所における光線パケッ
トでは省略される。
The second half processing state lstate stored in the element 712 takes an integer value from 0 to 6, and is output from the overrun inspection circuit 212 to the output destination determination circuit 217 and from the L2 range inspection circuit 313 to the output destination. Decision circuit 3
It is used to transmit the processing status of the former stage to the latter stage up to 17. It is omitted in the light packet in other places.

【0096】要素713に格納されているボクセル追跡
モードmodeは、″新規追跡″か″継続追跡″のどち
らかの値をとり、格子識別番号gid(要素710)で
示される格子(以下、格子gidと書く)に対するボク
セル追跡が前記作用の項で説明した新規追跡と継続追跡
のどちらであるかをボクセル追跡回路22に伝えるため
のものである。この要素713は、交点探索装置1へ入
力された光線パケットが最初にボクセル追跡部2へ送ら
れるときには、″新規追跡″に設定される。この要素7
13は、ボクセル追跡部2へ光線パケットが入力されて
からFIFOバッファ201〜204を経てマルチプレ
クサ205を通りDDA初期化回路23に達する経路の
間でだけ利用され、それ以外の箇所では省略される。
The voxel tracking mode mode stored in the element 713 takes either the value of “new tracking” or “continuous tracking”, and the grid (hereinafter referred to as grid gid) indicated by the grid identification number gid (element 710). ) To inform the voxel tracking circuit 22 whether the voxel tracking is new tracking or continuous tracking described in the section of the operation. This element 713 is set to “new tracing” when the ray packet input to the intersection search device 1 is first sent to the voxel tracking unit 2. This element 7
Reference numeral 13 is used only during a path from when a light packet is input to the voxel tracking unit 2 through the FIFO buffers 201 to 204, passes through the multiplexer 205, and reaches the DDA initialization circuit 23, and is omitted in other places.

【0097】要素714と要素715は、どちらも同一
の構造を持ち、ボクセル追跡の経過や結果に関する情報
(以下、追跡ボクセル情報とする)を格納する。要素7
14は格子gidについての追跡ボクセル情報を格納
し、要素715は局所格子についての処理を行っている
間、大域格子についての追跡ボクセル情報を退避してお
くために用いられる。それぞれの要素の内部構造は図1
4に示されている。
Each of the element 714 and the element 715 has the same structure, and stores information on the progress and result of voxel tracking (hereinafter referred to as tracking voxel information). Element 7
Reference numeral 14 stores tracking voxel information on the grid gid, and an element 715 is used to save the tracking voxel information on the global grid while performing processing on the local grid. Figure 1 shows the internal structure of each element.
It is shown in FIG.

【0098】要素7141、7142、...、714
3に格納されているボクセルインデックスU(1)、U
(2)、...、U(k)の各々は、ボクセル追跡によ
って得られるk個のボクセルのインデックスである。こ
のインデックスは(ix、iy、iz)という整数の組
で表され、実在するボクセルのインデックスについて
は、各軸方向のボクセル分割数をGx、Gy、Gzとし
たとき、0≦ix≦Gx−1、0≦iy≦Gy−1、0
≦iz≦Gz−1である。計算の都合上、これらの範囲
を越えたインデックスも使用する。U(1)は、ボクセ
ル追跡回路22に光線パケットが入力される際には追跡
開始ボクセルのインデックスを保持する。また、U
(1)は、ボクセル追跡回路22の内部では、3次元D
DAによって現在追跡を行っている位置のインデックス
を保持する。
Elements 7141, 7142,. . . , 714
Voxel indexes U (1), U stored in
(2),. . . , U (k) are the indices of the k voxels obtained by voxel tracking. This index is represented by a set of integers (ix, iy, iz). Regarding the index of a real voxel, when the number of voxel divisions in each axial direction is Gx, Gy, Gz, 0 ≦ ix ≦ Gx−1 , 0 ≦ iy ≦ Gy−1, 0
≤ iz ≤ Gz-1. For the sake of calculation, indices beyond these ranges are also used. U (1) holds the index of the tracking start voxel when the ray packet is input to the voxel tracking circuit 22. Also, U
(1) In the voxel tracking circuit 22, a three-dimensional D
The index of the position currently being tracked by the DA is held.

【0099】要素7144、7145、...、714
6に格納されているボクセル入射方向dir(1)、d
ir(2)、...、dir(k)は、ボクセルインデ
ックスU(1)、U(2)、...、U(k)とそれぞ
れ対応している。dir(i)(1≦i≦k)はボクセ
ルU(i)を構成する6つの面のうち、光線がどの面を
貫いてボクセルへ入射したかを表す。その値は″D
A″、″SD″、″PA″、″φ″の4つのうちのいず
れかである。″DA″は主駆動軸に垂直なボクセル面を
通って光線が入射したことを意味する。2つある主駆動
軸に垂直なボクセル面のうちのどちらかは、方向ベクト
ル成分符号Sによって判別される。″SD″、″PA
は、それぞれ副駆動軸、受動軸に垂直なボクセルの面を
通って光線が入射したことを意味する。″φ″はボクセ
ル追跡がボクセルU(i)から始まることを意味する。
Elements 7144, 7145,. . . , 714
Voxel incident direction dir (1), d stored in
ir (2),. . . , Dir (k) are the voxel indices U (1), U (2),. . . , U (k). dir (i) (1 ≦ i ≦ k) indicates which of the six surfaces constituting the voxel U (i) passes through which surface the light beam enters the voxel. Its value is "D
A "," SD "," PA ", or" φ ", where" DA "means that a light beam has entered through a voxel plane perpendicular to the main drive shaft. Either of the voxel planes perpendicular to a certain main drive axis is determined by the direction vector component code S. "SD", "PA"
Means that the light beam has entered through the plane of the voxel perpendicular to the auxiliary drive axis and the passive axis, respectively. "Φ" means that voxel tracking starts from voxel U (i).

【0100】要素7147に格納されている有効ボクセ
ル数nvは、ボクセル追跡によって得られているボクセ
ルの数であり、0≦nv≦kである。ボクセルインデッ
クスU(1)、U(2)、...、U(k)およびボク
セル入射方向dir(1)、dir(2)、...、d
ir(k)のうち有効な情報を保持しているのは、U
(1)、U(2)、...、U(nv)およびdir
(1)、dir(2)、...、dir(nv)だけで
ある。
The number of effective voxels nv stored in the element 7147 is the number of voxels obtained by voxel tracking, where 0 ≦ nv ≦ k. Voxel indexes U (1), U (2),. . . , U (k) and voxel incident directions dir (1), dir (2),. . . , D
Of the ir (k), valid information is held by U
(1), U (2),. . . , U (nv) and dir
(1), dir (2),. . . , Dir (nv) only.

【0101】要素7148に格納されているボクセル追
跡終了フラグeosは1ビット情報であり、光路上にも
う交差計算要求ビットが1のボクセルが先には存在しな
いというときに1になる。
The voxel tracking end flag eos stored in the element 7148 is 1-bit information, and becomes 1 when no voxel whose intersection calculation request bit is 1 already exists on the optical path.

【0102】要素7149に格納されている次リスト要
素アドレスnextは、次に参照すべきリスト要素27
4のアドレスである。次に参照すべきリスト要素が無い
場合には、″φ″が格納される。
The next list element address next stored in element 7149 is the next list element 27 to be referenced.
4 address. If there is no next list element to refer to, “φ” is stored.

【0103】次に、図15に示されているボクセル追跡
回路22内部のための追加部分について説明を行う。
Next, an additional portion for the inside of the voxel tracking circuit 22 shown in FIG. 15 will be described.

【0104】要素721に格納されているボクセル追跡
状態stateは、ボクセル追跡回路22における処理
状況を表し、″追跡スキップ″、″新規追跡未開
始″、″継続追跡未開始″、″追跡中″のうちのいずれ
かの値をとる。
The voxel tracking state state stored in the element 721 indicates the processing status in the voxel tracking circuit 22. Take one of these values.

【0105】要素722に格納されている軸置換情報a
xisは、x、y、z軸と主駆動軸、副駆動軸、受動軸
との対応を表す情報である。
Axis replacement information a stored in element 722
xi is information indicating the correspondence between the x, y, and z axes and the main drive axis, the auxiliary drive axis, and the passive axis.

【0106】要素723、724、725に格納されて
いるDDA誤差項εsd、εpa、δpaは並行に実行
される3つの2次元DDAの誤差項である。εsdは主
駆動軸と副駆動軸間の2次元DDAの誤差項、εpaは
主駆動軸と受動軸間の2次元DDAの誤差項、δpaは
副駆動軸と受動軸間の2次元DDAの誤差項である。図
16は3つの誤差項の幾何的な意味を説明した図であ
る。図中の点691は、主駆動軸に垂直なボクセル面と
光線との交点である。点692は、点691より光路上
で手前にある最も近い副駆動軸に垂直なボクセル面と光
線との交点である。εsd’は点691から光路上で次
の副駆動軸に垂直なボクセル面までの距離を表してい
る。εpa’は点691から次の受動軸に垂直なボクセ
ル面までの距離である。δpa’は点692から次の受
動軸に垂直なボクセル面までの距離である。これらの値
と上で説明したDDA誤差項との間には、 εsd=εsd’・Dda εpa=εpa’・Dda δpa=δpa’・Dsd という関係がある。ここで、DdaとDsdは、それぞ
れ、方向ベクトル成分絶対値Dの主駆動軸成分と副駆動
軸成分を意味する。
The DDA error terms .epsilon.sd, .epsilon.pa, and .delta.pa stored in the elements 723, 724, and 725 are error terms of three two-dimensional DDAs executed in parallel. εsd is a two-dimensional DDA error term between the main drive axis and the sub drive axis, εpa is a two-dimensional DDA error term between the main drive axis and the passive axis, and δpa is a two-dimensional DDA error between the sub drive axis and the passive axis. Term. FIG. 16 is a diagram illustrating the geometric meaning of the three error terms. The point 691 in the figure is the intersection of the ray with the voxel plane perpendicular to the main drive axis. Point 692 is the intersection of the ray with the voxel plane perpendicular to the nearest sub-drive axis that is on the optical path before point 691. εsd ′ represents the distance from the point 691 to the voxel plane perpendicular to the next sub-drive axis on the optical path. εpa ′ is the distance from point 691 to the next voxel plane perpendicular to the passive axis. δpa ′ is the distance from point 692 to the next voxel plane perpendicular to the passive axis. There is a relationship between these values and the DDA error term described above: εsd = εsd ′ · Dda εpa = εpa ′ · Dda δpa = δpa ′ · Dsd. Here, Dda and Dsd mean the main drive axis component and the sub drive axis component of the direction vector component absolute value D, respectively.

【0107】要素726に格納されている第3DDA整
数部jpaは、図16における点692を含むボクセル
のインデックスの受動軸成分である。これは第3番目の
DDAである副駆動軸と受動軸間の2次元DDAにおけ
る整数部に相当する。
The third DDA integer part jpa stored in the element 726 is the passive axis component of the index of the voxel including the point 692 in FIG. This corresponds to a third DDA, ie, an integer part in a two-dimensional DDA between the auxiliary drive shaft and the passive shaft.

【0108】本実施例においては、光線パケットの要素
はどれも整数または固定小数点表現であり、浮動小数点
表現は一切使用していない。固定小数表現における必要
な精度(ビット数)は、シミュレーション実験を重ねた
結果、以下のようにすれば、画像生成を行う上で実用上
差し支えないことを確認した。座標値の成分、すなわち
光線開始点座標Eと交点座標Pの各成分には、18ビッ
トの固定小数点表現を使う。方向ベクトル成分絶対値D
の各成分には12ビットの固定小数点表現を使う。DD
A誤差項εsd、εpa、δpaには12ビットの固定
小数点表現を使う。交点パラメータ値tpには24ビッ
トの固定小数点表現を使う。
In the present embodiment, all the elements of the light packet are in integer or fixed-point representation, and no floating-point representation is used. As a result of repeated simulation experiments, it was confirmed that the required precision (the number of bits) in the fixed-point representation was practically acceptable in performing image generation as follows. The components of the coordinate values, that is, the components of the ray start point coordinates E and the intersection coordinates P, use an 18-bit fixed-point representation. Direction vector component absolute value D
Use a 12-bit fixed-point representation for each component of. DD
A 12-bit fixed-point representation is used for the A error terms εsd, εpa, and δpa. A 24-bit fixed-point representation is used for the intersection parameter value tp.

【0109】以下、交点探索装置1における各部の動作
の詳細をフローチャートを用いて説明する。これらのフ
ローチャートは、各回路によって実行される処理内容に
ついて、それと等価な内容を逐次実行される処理の列に
よって表現したものであり、実際の回路ではフローチャ
ート中のいくつかの処理は並列に実行される。なお、以
下の説明における方向ベクトル成分絶対値D、誤差項ε
sd等は、光線パケット中の該当する要素を示してい
る。また、ボクセルインデックスU(1)、ボクセル入
射方向dir(1)等は、特に断りのない限り、追跡ボ
クセル情報714の中の要素を指している。
The details of the operation of each unit in the intersection search device 1 will be described below with reference to flowcharts. In these flowcharts, the content of processing executed by each circuit is expressed by a sequence of processes that are executed sequentially, and in an actual circuit, some processes in the flowchart are executed in parallel. You. In the following description, the direction vector component absolute value D and the error term ε
sd and the like indicate the corresponding element in the ray packet. The voxel index U (1), the voxel incident direction dir (1), and the like indicate elements in the tracking voxel information 714 unless otherwise specified.

【0110】図17はDDA初期化回路23で実行され
る処理内容を示す等価フローチャートである。処理23
01は、方向ベクトル成分絶対値Dの値をもとにその成
分の大きい順に3つの座標軸を主駆動軸、副駆動軸、受
動軸と定め、方向ベクトル成分絶対値D、方向ベクトル
成分符号S、およびボクセルインデックスU(1)、U
(2)、...、U(k)の各ベクトルについて、ベク
トル成分の順序を主駆動軸、副駆動軸、受動軸の順にな
るように並べ替える。また、あとで元の順序へ戻せるよ
うに、並べ替えの情報を軸置換情報axisに記録す
る。
FIG. 17 is an equivalent flowchart showing the processing executed by the DDA initialization circuit 23. Process 23
01 sets three coordinate axes as a main drive axis, a sub drive axis, and a passive axis in descending order of the component based on the value of the direction vector component absolute value D, and sets a direction vector component absolute value D, a direction vector component code S, And voxel index U (1), U
(2),. . . , U (k), the order of the vector components is rearranged in the order of the main drive axis, the auxiliary drive axis, and the passive axis. Also, the rearrangement information is recorded in the axis replacement information axis so that the original order can be restored later.

【0111】処理2302は、DDA誤差項を求めるた
めに一時的に必要な正規化開始点座標Fを求める。この
正規化開始点座標Fは、光線開始点座標Eを正規格子座
標系に座標変換したものである。正規格子座標系とは、
格子gidの存在範囲にあたる直方体の頂点のうちで最
小の座標値を持つ頂点を原点とし、ボクセルが大きさ1
の立方体であるような直交座標系である。
In the process 2302, a normalization start point coordinate F temporarily necessary for obtaining the DDA error term is obtained. The coordinates F of the normalization start point are obtained by transforming the coordinates E of the light ray start point into a normal lattice coordinate system. What is a normal grid coordinate system?
The vertex having the minimum coordinate value among the vertices of the rectangular parallelepiped corresponding to the existence range of the grid gid is set as the origin, and the voxel has a size of 1
Is a rectangular coordinate system that is a cube of.

【0112】処理2303は、格子外部に開始点を持つ
光線を新規追跡する場合に1となる外部開始点フラグを
0にクリアする。処理2304は、ボクセル追跡モード
modeを調べ、″継続追跡″である場合には追跡開始
ボクセルのインデックスを求める過程である処理230
5から処理2309までをスキップする。これは、継続
追跡の場合は、追跡開始ボクセルのインデックスが入力
として最初から与えられているからである。処理230
5は、正規化開始点座標Fの値をもとに追跡開始ボクセ
ルのインデックスU(1)を次式によって求める。 Uda(1)=floor(Fda) Usd(1)=floor(Fsd) Upa(1)=floor(Fpa) ここでfloor(x)はxを越えない最大の整数を意
味する。処理2306は、処理2305で求めたUda
(1)の範囲を調べる。Gdaを格子gidの主駆動軸
方向ボクセル分割数とするとき、Uda(1)が0以上
Gda未満である場合には、処理2310へ制御を移
す。Uda(1)が0未満のときは、もし方向ベクトル
主駆動軸成分符号Sdaが″正″ならば処理2308へ
飛び、″負″ならば格子gidと光線が交わらないこと
が明らかであるので処理2307へ制御を移す。また、
Uda(1)がGda以上のときは、もし方向ベクトル
主駆動軸成分符号Sdaが″正″ならば上と同様に格子
gidと光線が交わらないことが明らかであるので処理
2307へ飛び、″負″ならば処理2308へ制御を移
す。処理2307は、ボクセル追跡状態stateを″
追跡スキップ″に設定し、処理2320へ制御を移す。
処理2308は、Uda(1)に対して次のように範囲
修正を行う。 新Uda(1)=0、旧Uda(1)<0のとき、 =Gda−1、旧Uda(1)≧Gdaのとき 処理2309は外部開始点フラグを1に設定する。
The process 2303 clears the external start point flag, which becomes 1 when a ray having a start point outside the grid is newly traced, to 0. The process 2304 is a process of examining the voxel tracking mode mode, and in the case of “continuous tracking”, obtaining the index of the tracking start voxel.
Steps 5 to 2309 are skipped. This is because in the case of continuous tracking, the index of the tracking start voxel is given from the beginning as an input. Process 230
5 calculates the tracking start voxel index U (1) based on the value of the normalized start point coordinate F by the following equation. Uda (1) = floor (Fda) Usd (1) = floor (Fsd) Upa (1) = floor (Fpa) Here, floor (x) means the largest integer not exceeding x. The process 2306 is based on the Uda determined in the process 2305.
Check the range of (1). When Gda is the number of voxel divisions in the main drive axis direction of the grid gid, if Uda (1) is equal to or larger than 0 and smaller than Gda, the control is transferred to step 2310. When Uda (1) is less than 0, if the direction vector main drive axis component code Sda is "positive", the process jumps to step 2308; Control is transferred to 2307. Also,
If Uda (1) is equal to or greater than Gda, if the direction vector main drive axis component code Sda is "positive", it is clear that no light beam intersects with the grid gid as in the above, so the process jumps to step 2307 and returns to "negative". If "", control is transferred to step 2308. The process 2307 sets the voxel tracking state to “
"Tracking skip" is set, and control is transferred to step 2320.
The process 2308 performs range correction on Uda (1) as follows. When new Uda (1) = 0, old Uda (1) <0, = Gda−1, old Uda (1) ≧ Gda. Processing 2309 sets the external start point flag to 1.

【0113】処理2310では、誤差項εsd、εp
a、及び暫定の追跡開始ボクセル副駆動軸インデックス
Wsd、暫定の追跡開始ボクセル受動軸インデックスW
paを求める。まず、εsdとWsdを次のように求め
る。 Tsd=(Uda(1)−Fda)・Vsd +Fsd・Dda、 Sda=″正″のとき、 =(Fda−Uda(1)−1)・Vsd +Fsd・Dda、 Sda=″負″のとき Wsd=floor(Tsd/Dda) εsd=Dda−(Tsd mod Dda)、 Ssd=″正″のとき、 =Tsd mod Dda) Ssd=″負″のとき 上式において、modは剰余演算を行う演算子である。
Vsdは、Ssdが″正″のときDsdに等しく、Ss
dが″負″のとき−Dsdに等しい値である。Tsdは
一時的な変数であり、その値は、正規格子座標系におけ
る主駆動軸座標がUda(1)(Sda=″正″のと
き)またはUda(1)+1(Sda=″負″のとき)
のときにおける光線の副駆動軸座標にDdaを乗じたも
のと等しい。Tsdは負になることもある。εpaとW
paについても、上と同様に次のように求められる。 Tpa=(Uda(1)−Fda)・Vpa +Fpa・Dda、 Sda=″正″のとき、 =(Fda−Uda(1)−1)・Vpa +Fpa・Dda、 Sda=″負″のとき Wpa=floor(Tpa/Dda) εpa=Dda−(Tpa mod Dda)、 Spa″正″のとき、 =Tpa mod Dda、 Spa=″負″のとき
In step 2310, the error terms εsd, εp
a, a provisional tracking start voxel auxiliary drive axis index Wsd, a provisional tracking start voxel passive axis index W
Find pa. First, εsd and Wsd are obtained as follows. Tsd = (Uda (1) −Fda) · Vsd + Fsd · Dda, when Sda = “positive” == (Fda−Uda (1) −1) · Vsd + Fsd · Dda, when Sda = “negative” Wsd = floor (Tsd / Dda) εsd = Dda− (Tsd mod Dda), when Ssd = “positive”, = Tsd mod Dda) When Ssd = “negative” In the above equation, mod is an operator for performing a remainder operation. .
Vsd is equal to Dsd when Ssd is "positive",
When d is "negative", the value is equal to -Dsd. Tsd is a temporary variable, and its value is determined when the main drive axis coordinate in the normal grid coordinate system is Uda (1) (when Sda = “positive”) or Uda (1) +1 (when Sda = “negative”). )
Is equal to the value obtained by multiplying the sub-drive axis coordinate of the light beam by Dda. Tsd may be negative. εpa and W
pa is also obtained in the same manner as above. Tpa = (Uda (1) −Fda) · Vpa + Fpa · Dda, when Sda = “positive” == (Fda−Uda (1) −1) · Vpa + Fpa · Dda, when Sda = “negative” Wpa = floor (Tpa / Dda) εpa = Dda− (Tpa mod Dda), when Spa is “positive”, when = Tpa mod Dda, Spa = “negative”

【0114】処理2311は、外部開始点フラグが1で
あるかどうかによって場合分けをする。これが1の場
合、すなわち格子外部に開始点を持つ光線を新規追跡す
る場合は、処理2312が次に実行され、0の場合は処
理2313が次に実行される。処理2312では、処理
2310で求まった暫定の追跡開始ボクセル副駆動軸イ
ンデックスWsdと暫定の追跡開始ボクセル受動軸イン
デックスWpaを、それぞれ最終的なものとして、追跡
開始ボクセル副駆動軸インデックスUsd(1)と追跡
開始ボクセル受動軸インデックスUpa(1)へ代入す
る。処理2313では、必要に応じて処理2310で求
まった誤差項εsd、εpaを補正する。処理2313
を実行する段階では、既に最終的な追跡開始ボクセルの
インデックスU(1)は確定していてそれらを変更する
ことはできないが、これらと処理2310で求まった暫
定のインデックスが異なる場合には、何も対策を講じな
いと誤ったボクセル追跡が行われてしまう。そこで、次
式のように誤差項の補正を行う。 新εsd=旧εsd、 Usd(1)=Wsdのとき、 旧εsd+Dda、Usd(1)≠Wsdのとき 新εpa=旧εpa、 Upa(1)=Wpaのとき、 旧εpa+Dda、Upa(1)≠Wpaのとき この補正においては、WsdとUsd(1)との差、す
なわち(Wsd−Usd(1))の値は、方向ベクトル
副駆動軸成分符号Ssdが″正″のときは0か−1のど
ちらか、Ssdが″負″のときは0か1のどちらかであ
るという性質(受動軸についても同様)を利用してい
る。
The process 2311 classifies cases according to whether the external start point flag is "1". If this is 1, that is, if a ray having a start point outside the grid is to be newly traced, step 2312 is executed next, and if it is 0, step 2313 is executed next. In step 2312, the provisional tracking start voxel sub-driving axis index Wsd and the provisional tracking start voxel passive axis index Wpa obtained in step 2310 are finalized, respectively, and the tracking start voxel sub-driving axis index Usd (1) is used. Substitute into the tracking start voxel passive axis index Upa (1). In step 2313, the error terms εsd and εpa obtained in step 2310 are corrected as necessary. Step 2313
Is executed, the index U (1) of the final tracking start voxel has already been determined and cannot be changed. However, if these and the provisional index obtained in step 2310 are different, If no measures are taken, incorrect voxel tracking will be performed. Therefore, the error term is corrected as in the following equation. When new εsd = old εsd, Usd (1) = Wsd, old εsd + Dda, Usd (1) ≠ Wsd When new εpa = old εpa, Upa (1) = Wpa, old εpa + Dda, Upa (1) ≠ Wpa In this correction, the difference between Wsd and Usd (1), that is, the value of (Wsd−Usd (1)) is 0 or −1 when the direction vector sub-drive axis component code Ssd is “positive”. Either of these uses the property of being either 0 or 1 when Ssd is "negative" (the same applies to the passive axis).

【0115】処理2314は、もう1つの誤差項δpa
の算出を行う。これは、次のように計算される。Ssd
=″正″、Spa=″正″のときは、 δpa=(Upa(1)+1−Fpa)・Dsd+(F
sd−Usd(1))・Dpa とし、Ssd=″負″、Spa=″正″のときは、 δpa=(Upa(1)+1−Fpa)・Dsd+(U
sd(1)+1−Fsd)・Dpaとし、Ssd=″
正″、Spa=″負″のときは、 δpa=(Fpa−Upa(1))・Dsd+(Fsd
−Usd(1))・Dpa とし、Ssd=″負″、Spa=″負″のときは、 δpa=(Fpa−Upa(1))・Dsd+(Usd
(1)+1−Fsd)・Dpa とする。
Processing 2314 includes another error term δpa
Is calculated. It is calculated as follows: Ssd
= “Positive” and Spa = “positive”, δpa = (Upa (1) + 1−Fpa) · Dsd + (F
sd−Usd (1)) · Dpa, and when Ssd = “negative” and Spa = “positive”, δpa = (Upa (1) + 1−Fpa) · Dsd + (U
sd (1) + 1−Fsd) · Dpa, and Ssd = ″
When “positive” and Spa = “negative”, δpa = (Fpa−Upa (1)) · Dsd + (Fsd
−Usd (1)) · Dpa, and when Ssd = “negative” and Spa = “negative”, δpa = (Fpa−Upa (1)) · Dsd + (Usd
(1) + 1−Fsd) · Dpa.

【0116】処理2315は、第3DDA整数部jpa
に追跡開始ボクセル受動軸インデックスUpa(1)の
値をセットする。処理2316は、ボクセル追跡モード
modeの値によって、以後の処理を選択する。新規追
跡モードの場合は、処理2317が実行され、そこでボ
クセル入射方向dir(1)が″φ″に設定され、さら
に処理2318において、ボクセル追跡状態state
が″新規追跡未開始″に設定される。継続追跡モードの
場合は、処理2319においてボクセル追跡状態sta
teが″継続追跡未開始″に設定される。処理2320
は、有効ボクセル数nvを0に初期化する。
The process 2315 includes the third DDA integer part jpa
Is set to the value of the tracking start voxel passive axis index Upa (1). The process 2316 selects the subsequent process according to the value of the voxel tracking mode mode. In the case of the new tracking mode, the process 2317 is executed, in which the voxel incident direction dir (1) is set to “φ”, and in the process 2318, the voxel tracking state state
Is set to "new tracking not started". In the case of the continuous tracking mode, in step 2319, the voxel tracking state “sta” is set.
te is set to "continuous tracking not started". Process 2320
Initializes the number of valid voxels nv to 0.

【0117】次に、ボクセル追跡ユニット25の動作を
説明する。図18はボクセル追跡ユニット25で実行さ
れる処理内容を示す等価フローチャートである。処理2
501は、ボクセル追跡状態stateが″追跡スキッ
プ″であるかどうかを判定し、もしそうならば、光線パ
ケットを素通りさせるために以後の処理をすべてスキッ
プさせる。処理2502は、ボクセル追跡がまだ始まっ
ていない状態、すなわちボクセル追跡状態state
が″新規追跡未開始″または″継続追跡未開始″である
ことを判定し、もしそうならば処理2503へ制御を移
す。処理2503は、ボクセル追跡を開始するタイミン
グかどうかを判断する。ここで、n個あるボクセル追跡
ユニット25に対して図2の左側より1からnまでの番
号を与え、それをユニット番号と呼ぶ。方向ベクトル主
駆動軸成分符号Sdaが″正″の場合、処理2503
は、追跡開始ボクセル主駆動軸インデックスUda
(1)が(ユニット番号−1)に一致したときに、追跡
開始のタイミングと判断し、処理2504へ制御を移
す。方向ベクトル主駆動軸成分符号Sdaが″負″の場
合は、Uda(1)が(n−ユニット番号)に一致した
ときに、処理2504へ制御を移す。追跡開始のタイミ
ングでないときは、以後の処理をすべてスキップさせ
る。処理2504は、ボクセル追跡状態stateが″
追跡中″かつ有効ボクセル数nvがkに等しい、すなわ
ちもうボクセル追跡処理を終えたという場合を判定し、
もしそうならば、以後の処理をすべてスキップさせる。
Next, the operation of the voxel tracking unit 25 will be described. FIG. 18 is an equivalent flowchart showing the processing contents executed by the voxel tracking unit 25. Processing 2
501 determines whether the voxel tracking state state is "track skip", and if so, skips all further processing to allow light packets to pass through. The process 2502 is a state where the voxel tracking has not yet started, that is, the voxel tracking state state
Is "new tracking not started" or "continuation tracking not started", and if so, the control is transferred to step 2503. The process 2503 determines whether it is time to start voxel tracking. Here, numbers from 1 to n are given to the n voxel tracking units 25 from the left side of FIG. 2 and they are called unit numbers. When the direction vector main drive axis component code Sda is “positive”, the process 2503 is executed.
Is the tracking start voxel main drive axis index Uda
When (1) matches (unit number -1), it is determined that the timing of tracking start is determined, and the control is transferred to processing 2504. When the direction vector main drive axis component code Sda is “negative”, the control is transferred to the process 2504 when Uda (1) matches (n-unit number). If it is not the timing to start tracking, all the subsequent processes are skipped. The process 2504 determines that the voxel tracking state state is "".
It is determined that "tracking" and the number of effective voxels nv is equal to k, that is, that the voxel tracking processing has been completed.
If so, all subsequent processing is skipped.

【0118】処理2505は、ボクセル情報記憶手段2
4のバンク241より、x主軸ボクセル情報群245、
y主軸ボクセル情報群246、z主軸ボクセル情報群2
47のうち主駆動軸に相当する1つについて、ボクセル
のインデックスU(1)に該当する位置のボクセル情報
242または243または244を読み出す。このと
き、もし副駆動軸インデックスUsd(1)と受動軸イ
ンデックスUpa(1)の少なくとも一方が格子gid
の範囲外であって、対応するボクセル情報が存在しない
場合は、交差計算要求ビット24401、2440
2、...、24415をすべて0としたボクセル情報
を読み込む。前に述べたように、バンク241には副駆
動軸インデックスとして−1から副駆動軸方向ボクセル
分割数Gsdまで、受動軸インデックスとして−1から
受動軸方向ボクセル分割数Gpaまでの範囲に相当する
ボクセル情報が格納されているので、上のように対応す
るボクセル情報が存在しないのは、Usd(1)<−
1、Usd(1)>Gsd、Upa(1)<−1、Up
a(1)>Gpaのうちのいずれかが成立したときであ
る。
The processing 2505 is executed by the voxel information storage unit 2
4 bank 241, x-axis voxel information group 245,
y-spindle voxel information group 246, z-spindle voxel information group 2
For one of the 47 corresponding to the main drive axis, the voxel information 242 or 243 or 244 at the position corresponding to the voxel index U (1) is read. At this time, if at least one of the auxiliary drive axis index Usd (1) and the passive axis index Upa (1) is the grid gid.
And the corresponding voxel information does not exist, the intersection calculation request bits 24401 and 2440
2,. . . , Voxel information in which all 24415 are set to 0 is read. As described above, the voxels corresponding to the range from -1 as the sub-drive axis voxel division number Gsd to the sub-drive axis voxel division number Gsd and from -1 to the passive axis direction voxel division number Gpa as the sub-drive axis index are stored in the bank 241. Since the information is stored, the absence of the corresponding voxel information as described above is because Usd (1) <−
1, Usd (1)> Gsd, Upa (1) <-1, Up
a (1)> when any of Gpa is satisfied.

【0119】誤差項更新処理2506は、誤差項の値を
1ステップ先に進める。処理2507は、ボクセル追跡
状態stateが″継続追跡未開始″かどうかを判定
し、もしそうならば処理2510へ制御を移す。この時
点でstateが″継続追跡未開始″であるのは、継続
追跡が始まった直後という場合である。前記作用の項で
説明したように、新規追跡の場合は追跡開始ボクセル以
遠のボクセルを対象とするが、継続追跡の場合は追跡開
始ボクセルより遠方に位置するボクセルを対象としなけ
ればならない。従って、処理2507は、継続追跡が始
まった直後であるときに追跡開始ボクセル自身をボクセ
ル追跡対象としないように、処理2508、2509を
スキップしている。
The error term update processing 2506 advances the value of the error term by one step. A step 2507 determines whether the voxel tracking state state is “continuation tracking not started”, and if so, transfers control to a step 2510. At this point, the state is “continuous tracking not started” when the continuous tracking has just started. As described in the above operation section, in the case of new tracking, voxels beyond the tracking start voxel are targeted, but in the case of continuous tracking, voxels located far from the tracking start voxel must be targeted. Therefore, the process 2507 skips the processes 2508 and 2509 so that the tracking start voxel itself is not set as a voxel tracking target when the continuous tracking has just started.

【0120】処理2508は、ボクセル訪問処理254
を呼び出して、該当する交差計算要求ビットが1ならば
ボクセルを発見したとしてU(1)を光線パケット中の
しかるべき位置に記録し、有効ボクセル数nvを1増や
す。処理2509は、有効ボクセル数nvがkに達した
かどうかを判定し、既にk個のボクセルが求まった場合
には、それ以後の処理によってU(1)の値(最後に見
つかったボクセルのインデックス)が変更を受けないよ
うに、処理2522へ制御を移す。
The process 2508 is a voxel visit process 254.
And if the corresponding intersection calculation request bit is 1, it is determined that a voxel has been found, and U (1) is recorded at an appropriate position in the ray packet, and the number of effective voxels nv is increased by one. Processing 2509 determines whether the number of valid voxels nv has reached k. If k voxels have already been obtained, the value of U (1) (the index of the last voxel found) is determined by subsequent processing. ) Is transferred to the process 2522 so as not to be changed.

【0121】処理2510は、処理2506で更新され
た新しい誤差項εsd、εpaの符号を判定し、それに
よって4つに場合分けをする。εsdとεpaがともに
正または0である場合は、図6においてボクセル621
からボクセル625へと光線が貫く場合であり、主駆動
軸方向だけに歩進するようにDA方向歩進処理2521
へ制御を移す。εsdだけが負の場合は、図6において
ボクセル621からボクセル627へと光線が貫く場合
であり、このときは途中にボクセル623を通るので、
SD方向歩進処理2511によって副駆動軸方向に歩進
させてから処理2520へ制御を移す。εpaだけが負
の場合は、図6においてボクセル621からボクセル6
26へと光線が貫く場合であり、このときは途中にボク
セル622を通るので、PA方向歩進処理2512によ
って受動軸方向に歩進させてから処理2520へ制御を
移す。εsdとεpaがともに負の場合は、図6におい
てボクセル621からボクセル628へと光線が貫く場
合であり、このときは光線の通る経路としてボクセル6
21、622、624、628とボクセル621、62
3、624、628という2つの異なる経路が考えられ
る。従って、処理2513へ制御が移され、そこでどち
らの経路であるかの判定が行われる。この経路判定は、
第3DDA整数部jpaと受動軸インデックスUpa
(1)が一致するかどうかによって行われる。一致する
場合は、ボクセル621、623、624、628とい
う経路であると分かるので、SD方向歩進処理2514
へ制御を移し、そこでまず副駆動軸方向に歩進させてか
ら、次にPA方向歩進処理2516において受動軸方向
に歩進させる。間に位置する処理2515は、処理25
09と同様に、有効ボクセル数nvがkに達した場合に
追跡を打ち切るため処理2522へ制御を移すものであ
る。jpaとUpa(1)が一致しない場合は、ボクセ
ル621、622、624、628という経路であると
分かるので、PA方向歩進処理2517へ制御を移し、
そこでまず受動軸方向に歩進させてから、次にSD方向
歩進処理2519において副駆動軸方向に歩進させる。
処理2518と処理2520は、どちらも処理2515
と同じ働きをする。DA方向歩進処理2521は、主駆
動軸方向に歩進させる処理である。処理2522は、ボ
クセル追跡状態stateを″追跡中″に設定する。
The process 2510 determines the sign of the new error terms εsd and εpa updated in the process 2506, and classifies them into four cases. When both εsd and εpa are positive or 0, the voxel 621 in FIG.
In this case, a light beam penetrates from the voxel 625 to the voxel 625.
Transfer control to In the case where only εsd is negative, the light beam passes from the voxel 621 to the voxel 627 in FIG. 6 and passes through the voxel 623 on the way.
After the step is advanced in the sub-drive axis direction by the SD-direction step processing 2511, the control is transferred to the processing 2520. When only εpa is negative, voxel 621 to voxel 6 in FIG.
In this case, since the light beam passes through the voxel 622 on the way, the control is shifted to the passive axis direction by the PA direction step processing 2512 and then the control is transferred to the step 2520. When both εsd and εpa are negative, it means that the light beam passes from voxel 621 to voxel 628 in FIG. 6, and in this case, voxel 6
21, 622, 624, 628 and voxels 621, 62
Two different paths are considered, 3,624,628. Therefore, the control is shifted to the process 2513, and a determination is made as to which route the route is. This route determination is
Third DDA integer part jpa and passive axis index Upa
This is performed depending on whether (1) matches. If they match, it is known that the routes are voxels 621, 623, 624, and 628.
Then, the control is shifted in the sub-drive axis direction, and then in the PA direction step processing 2516, the step is advanced in the passive axis direction. The process 2515 located between the processes 2515
Similarly to 09, when the number of valid voxels nv reaches k, the control is transferred to the process 2522 to terminate the tracking. If jpa and Upa (1) do not match, it is known that the path is a voxel route of voxels 621, 622, 624, and 628.
Therefore, the step is first stepped in the passive axis direction, and then in the SD step step 2519, the step is stepped in the sub-drive axis direction.
Process 2518 and process 2520 are both process 2515
Works the same as. The DA stepping process 2521 is a process for stepping in the main drive axis direction. The process 2522 sets the voxel tracking state state to “tracking”.

【0122】図19は誤差項更新処理2506の詳細を
示した等価フローチャートである。処理2531は誤差
項εsdから方向ベクトル副駆動軸成分絶対値Dsdを
差し引く。処理2532は誤差項εpaから方向ベクト
ル受動軸成分絶対値Dpaを差し引く。処理2533は
誤差項εsdが負かどうかを調べ、もし負、つまり副駆
動軸方向に歩進するというときは処理2534へ制御を
移し、非負ならば誤差項更新処理2506を終了させ
る。処理2534から処理2539までは、副駆動軸と
受動軸間の2次元DDAに関する誤差項δpaと第3D
DA整数部jpaの更新処理である。処理2534は、
誤差項δpaから方向ベクトル受動軸成分絶対値Dpa
を差し引く。処理2535は、処理2534の結果、δ
paが負になったかどうかを調べ、もし負ならば処理2
536へ制御を移し、非負ならば誤差項更新処理250
6を終了させる。処理2536は、誤差項δpaに方向
ベクトル副駆動軸成分絶対値Dsdを加算する。処理2
537は方向ベクトル受動軸成分符号Spaによって以
後の処理を選択し、それが″正″の場合は処理2538
において第3DDA整数部jpaが1増やされ、″負″
の場合は処理2539においてjpaは1減じられる。
FIG. 19 is an equivalent flowchart showing details of the error term update processing 2506. The process 2531 subtracts the direction vector sub-drive axis component absolute value Dsd from the error term εsd. The process 2532 subtracts the direction vector passive axis component absolute value Dpa from the error term εpa. The process 2533 checks whether the error term εsd is negative. If the error is negative, that is, if it advances in the sub-drive axis direction, the control is transferred to the process 2534, and if it is non-negative, the error term updating process 2506 is ended. The processing 2534 to the processing 2539 includes the error term δpa related to the two-dimensional DDA between the sub-drive axis and the passive
This is a process of updating the DA integer part jpa. Process 2534 includes
From the error term δpa, the direction vector passive axis component absolute value Dpa
Subtract Step 2535 is based on the result of step 2534,
Check whether pa has become negative. If negative, process 2
The control is shifted to 536, and if non-negative, the error term update processing 250
6 is ended. The process 2536 adds the direction vector sub-drive axis component absolute value Dsd to the error term δpa. Processing 2
537 selects the subsequent processing according to the direction vector passive axis component code Spa, and if it is "positive", processing 2538 is selected.
, The third DDA integer part jpa is increased by one, and “negative”
In the case of, jpa is reduced by 1 in step 2539.

【0123】図20はボクセル訪問処理254の詳細を
示した等価フローチャートである。ボクセル訪問処理2
54は、図18中の処理2508として呼ばれるだけで
なく、SD方向歩進処理2511、2514、251
9、PA方向歩進処理2512、2516、2517の
中からも呼ばれている。処理2541は、処理2505
において読み出したボクセル情報(これは図11に示し
た交差計算要求ビット24401、2440
2、...、24415によって構成されている)か
ら、ボクセル入射方向dir(1)および方向ベクトル
成分符号Sの値に基づいて該当する交差計算要求ビット
を1つ取り出す。以下、主駆動軸がz軸、副駆動軸がx
軸である場合を例にとって、交差計算要求ビットの選択
規則を示す。選択規則はどこから呼び出されたかに依存
し、ボクセル訪問処理254が、図18中の処理250
8として呼ばれた場合、あるいは、SD方向歩進処理2
511、2514、PA方向歩進処理2512、251
7の中から呼ばれた場合には、cビット24401から
−yビット24407のうちのいずれか1つが次のよう
にして選ばれる。 dir(1)=″φ″のとき、 cビット24401、 dir(1)=″DA″、Sda=″正″のとき、+z
ビット24402、 dir(1)=″DA″、Sda=″負″のとき、−z
ビット24403、 dir(1)=″SD″、Ssd=″正″のとき、+x
ビット24404、 dir(1)=″SD″、Ssd=″負″のとき、−x
ビット24405、 dir(1)=″PA″、Spa=″正″のとき、+y
ビット24406、 dir(1)=″PA″、Spa=″負″のとき、−y
ビット24407 ボクセル訪問処理254が、SD方向歩進処理251
9、PA方向歩進処理2516の中から呼ばれた場合に
は、+x+yビット24408から−y−xビット24
415のうちのいずれか1つが次のようにして選ばれ
る。 dir(1)=″PA″、Ssd=″正″、Spa=″
正″の時、+x+yビット24408、 dir(1)=″PA″、Ssd=″正″、Spa=″
負″の時、+x−yビット24409、 dir(1)=″PA″、Ssd=″負″、Spa=″
正″の時、−x+yビット24410、 dir(1)=″PA″、Ssd=″負″、Spa=″
負″の時、−x−yビット24411、 dir(1)=″SD″、Ssd=″正″、Spa=″
正″の時、+y+xビット24412、 dir(1)=″SD″、Ssd=″負″、Spa=″
正″の時、+y−xビット24413、 dir(1)=″SD″、Ssd=″正″、Spa=″
負″の時、−y+xビット24414、 dir(1)=″SD″、Ssd=″負″、Spa=″
負″の時、−y−xビット24415
FIG. 20 is an equivalent flowchart showing details of the voxel visit processing 254. Voxel visit processing 2
Reference numeral 54 denotes not only the process 2508 in FIG. 18 but also the SD-direction stepping processes 2511, 2514, and 251.
9. It is also called from among the PA direction stepping processes 2512, 2516, and 2517. Step 2541 is equivalent to step 2505
The voxel information read out in (1) is the intersection calculation request bits 24401 and 2440 shown in FIG.
2,. . . , 24415), one corresponding intersection calculation request bit is extracted based on the value of the voxel incident direction dir (1) and the direction vector component code S. Hereinafter, the main drive axis is the z axis, and the sub drive axis is the x axis.
Taking the case of an axis as an example, a rule for selecting intersection calculation request bits will be described. The selection rule depends on where it was called from, and voxel visit operation 254 is performed by operation 250 in FIG.
8 or SD stepping process 2
511, 2514, PA direction step processing 2512, 251
7, one of c bits 24401 to -y bit 24407 is selected as follows. When dir (1) = “φ”, c bit 24401, when dir (1) = “DA”, Sda = “positive”, + z
Bit 24402, when dir (1) = “DA” and Sda = “negative”, −z
Bit 24403, when dir (1) = “SD” and Ssd = “positive”, + x
Bit 24404, when dir (1) = “SD” and Ssd = “negative”, −x
Bit 24405, when dir (1) = “PA” and Spa = “positive”, + y
Bit 24406, when dir (1) = “PA”, Spa = “negative”, −y
Bit 24407 Voxel visit processing 254 is performed in step SD direction processing 251
9. When called from among the PA direction step processing 2516, + x + y bit 24408 to -yx bit 24
Any one of 415 is selected as follows. dir (1) = “PA”, Ssd = “positive”, Spa = ”
When “positive”, + x + y bits 24408, dir (1) = “PA”, Ssd = “positive”, Spa = ”
When negative, + xy bits 24409, dir (1) = "PA", Ssd = "negative", Spa = "
When "positive", -x + y bit 24410, dir (1) = "PA", Ssd = "negative", Spa = "
When negative, -xy bit 24411, dir (1) = "SD", Ssd = "positive", Spa = "
When “positive”, + y + x bits 24412, dir (1) = “SD”, Ssd = “negative”, Spa = ”
When “positive”, + y−x bits 24413, dir (1) = “SD”, Ssd = “positive”, Spa = ″
When "negative", -y + x bit 24414, dir (1) = "SD", Ssd = "negative", Spa = "
-Yx bit 24415 when negative "

【0124】処理2542は、上で取り出された交差計
算要求ビットを調べ、1ならば処理2543へ制御を移
し、0ならばボクセル訪問処理254を終了させる。処
理2543は、有効ボクセル数nvが(k−1)に等し
い、すなわち最後に発見されたボクセルかどうかを判別
し、もしそうならば処理2544、2545をスキップ
させる。処理2544はボクセルインデックスU(1)
の値を発見済みボクセルのインデックスとして保存する
ために、U(k−1)の値をU(k)へ、U(k−2)
の値をU(k−1)へ移し、以下同様にして、U(1)
の値をU(2)へ移すまで繰り返す。この操作によって
U(1)の値は変更されない。処理2545はボクセル
入射方向dirに対して、処理2544と同様の操作を
適用する。すなわち、dir(k−1)の値をdir
(k)へ、dir(k−2)の値をdir(k−1)へ
移し、以下同様にして、dir(1)の値をdir
(2)へ移すまで繰り返す。処理2546は、有効ボク
セル数nvを1増やす。
The process 2542 checks the intersection calculation request bit extracted above, and transfers control to the process 2543 if it is 1, and terminates the voxel visit process 254 if it is 0. Process 2543 determines whether the number of valid voxels nv is equal to (k-1), that is, whether it is the last found voxel, and if so, skips processes 2544 and 2545. Process 2544 is performed for voxel index U (1)
To save the value of U (k-1) to U (k) in order to store the value of
Is transferred to U (k-1), and similarly in the following, U (1)
Is repeated until the value of U is transferred to U (2). This operation does not change the value of U (1). The process 2545 applies the same operation as the process 2544 to the voxel incident direction dir. That is, the value of dir (k-1) is set to dir
(K), the value of dir (k-2) is transferred to dir (k-1), and so on.
Repeat until transfer to (2). The process 2546 increases the number of valid voxels nv by one.

【0125】図21はSD方向歩進処理2511、25
14、2519の詳細を示した等価フローチャートであ
る。処理2551は、誤差項εsdに方向ベクトル主駆
動軸成分絶対値Ddaを加算する。処理2552は方向
ベクトル副駆動軸成分符号Ssdによって以後の処理を
選択し、それが″正″の場合は処理2553において副
駆動軸インデックスUsd(1)が1増やされ、″負″
の場合は処理2554においてUsd(1)は1減じら
れる。処理2555は、ボクセル入射方向dir(1)
を副駆動軸を表す″SD″に設定する。処理2556
は、ボクセル訪問処理254を呼び出す。
FIG. 21 shows the stepping processes 2511 and 25 in the SD direction.
It is an equivalent flowchart which showed the details of 14 and 2519. The process 2551 adds the direction vector main drive shaft component absolute value Dda to the error term εsd. The process 2552 selects the subsequent process according to the direction vector sub-drive axis component code Ssd. If it is “positive”, the sub-drive axis index Usd (1) is incremented by 1 in process 2553, and “negative”.
In the case of, Usd (1) is reduced by 1 in step 2554. The process 2555 includes a voxel incident direction dir (1)
Is set to “SD” representing the sub drive shaft. Process 2556
Invokes the voxel visit process 254.

【0126】図22はPA方向歩進処理2512、25
16、2517の詳細を示した等価フローチャートであ
る。この処理は図21のSD方向歩進処理と同様である
ので説明を省略する。
FIG. 22 shows the PA-direction step processing 2512, 25.
It is an equivalent flowchart which showed the details of 16 and 2517. This process is the same as the stepwise process in the SD direction in FIG.

【0127】図23はDA方向歩進処理2521の詳細
を示した等価フローチャートである。処理2563は方
向ベクトル主駆動軸成分符号Sdaによって以後の処理
を選択し、それが″正″の場合は処理2564において
主駆動軸インデックスUda(1)が1増やされ、″
負″の場合は処理2565においてUda(1)は1減
じられる。処理2566は、ボクセル入射方向dir
(1)を主駆動軸を表す″DA″に設定する。
FIG. 23 is an equivalent flowchart showing details of the DA-direction stepping processing 2521. In the process 2563, the subsequent process is selected by the direction vector main drive axis component code Sda.
If "negative", Uda (1) is decremented by 1 in step 2565. Step 2566 is executed in the voxel incident direction dir.
(1) is set to “DA” representing the main drive shaft.

【0128】次に、追跡終了処理回路211から出力先
決定回路217までの動作を順に説明する。図24は追
跡終了処理回路211で実行される処理内容を示す等価
フローチャートである。処理21101は、ボクセル追
跡ユニット群25によって発見されたボクセルの数nv
によって以後の処理を選択する。nvがkに満たない場
合は、交差計算要求ビットが1であるボクセルがもうこ
れ以上存在しないと分かるので処理21102によって
ボクセル追跡終了フラグeosが1に設定される。nv
がkの場合は、そのようなボクセルがまだ先に存在する
可能性があるので処理21103によってeosは0に
設定される。処理21104は、この時点において光線
開始点から遠い順に並んでいるボクセルインデックスU
(1)、...、U(nv)を、近い順になるように順
序を逆にする。処理21105は、ボクセル入射方向d
ir(1)、...、dir(nv)に対してボクセル
インデックスと同じように順序を逆にする。処理211
06は、方向ベクトル成分絶対値D、方向ベクトル成分
符号S、およびボクセルインデックスU(1)、U
(2)、...、U(k)の各ベクトルについて、軸置
換情報axisを参照して、処理2301によって主駆
動軸、副駆動軸、受動軸の順に並べ替えられたベクトル
成分の順序をx軸、y軸、z軸の順序に戻す。処理21
107は、後半部処理状態lstateを0に初期化す
る。
Next, the operations from the tracking end processing circuit 211 to the output destination determining circuit 217 will be described in order. FIG. 24 is an equivalent flowchart showing the processing content executed by the tracking end processing circuit 211. The process 21101 includes the number nv of voxels found by the voxel tracking unit group 25.
To select the subsequent processing. If nv is less than k, it is known that there are no more voxels for which the intersection calculation request bit is 1, so the processing 21102 sets the voxel tracking end flag eos to 1. nv
Is k, eos is set to 0 by the processing 21103 because such a voxel may still exist earlier. The process 21104 includes a voxel index U
(1),. . . , U (nv) in reverse order. The processing 21105 is performed in the voxel incident direction d.
ir (1),. . . , Dir (nv), in the same way as the voxel index. Process 211
06 is the direction vector component absolute value D, the direction vector component sign S, and the voxel indices U (1), U
(2),. . . , U (k), by referring to the axis replacement information axis, the order of the vector components rearranged in the order of the main drive axis, the auxiliary drive axis, and the passive axis by the process 2301 is represented by the x axis, the y axis, and the z axis. Revert to axis order. Processing 21
107 initializes the latter half processing state lstate to 0.

【0129】図25はオーバーラン検査回路212で実
行される処理内容を示す等価フローチャートである。処
理21201は、ボクセル追跡回路22によってボクセ
ルが1つも発見されなかったかどうか、すなわち光線が
格子gidを素通りしたかどうかを判定し、もしそうな
らば格子gidに関する処理を終了させるために処理2
1204へ制御を移す。処理21202は、ボクセル追
跡回路22によって得られたボクセルが現在までに見つ
かっている交点を含むボクセルより先に進んでしまった
かどうかを判定し、もしそうならば格子gidに関する
処理を打ち切るために処理21204へ制御を移す。具
体的には、交点存在フラグisfが1であり、かつボク
セルU(1)が交点(その座標は交点座標P)を内部に
含むボクセルより光路上で遠方に位置する場合に処理2
1204へ制御を移す。処理21203は、次のL1範
囲検査回路214による処理をスキップさせるため、後
半部処理状態lstateを1に変更する。処理212
04は、追跡レベルlevelが1、すなわち大域格子
に対する追跡であったかどうかを調べる。もしleve
lが1ならば、交点探索処理全体を終了させるため、処
理21205によって後半部処理状態lstateを6
に変更する。もしlevelが1でないならば、pop
処理21206によって局所格子に対する追跡から大域
格子に対する追跡に切り替える。
FIG. 25 is an equivalent flowchart showing the processing executed by the overrun inspection circuit 212. Process 21201 determines whether no voxel was found by voxel tracking circuit 22, ie, whether the ray passed through grid gid, and if so, process 2 to terminate the process for grid gid.
Control is transferred to 1204. Process 21202 determines whether the voxel obtained by voxel tracking circuit 22 has advanced beyond the voxel containing the intersection found so far, and if so, process 21204 to abort the process for grid gid. Transfer control to Specifically, when the intersection existence flag isf is 1 and the voxel U (1) is located farther on the optical path than the voxel including the intersection (the coordinates of which are the intersection coordinates P), the process 2
Control is transferred to 1204. A process 21203 changes the latter half processing state lstate to 1 in order to skip the next processing by the L1 range inspection circuit 214. Process 212
04 checks whether the tracking level is 1, that is, tracking for the global grid. If leave
If 1 is 1, the second half processing state lstate is changed to 6 by the processing 21205 to end the entire intersection search processing.
Change to If level is not 1, pop
Processing 21206 switches from tracking for the local grid to tracking for the global grid.

【0130】図26はL1範囲検査回路214、314
で実行される処理内容を示す等価フローチャートであ
る。処理21401は、後半部処理状態lstateが
0以外のとき、図26の以後の処理をスキップさせる。
処理21402は、次リスト要素アドレスnextが″
φ″であるかどうかを調べ、もし″φ″でないならば、
範囲検査を行う前に同じボクセル内の次の物体について
交差計算を行う必要があるので、処理21403に制御
を移し、そこで後半部処理状態lstateを2に設定
する。処理21404は、現在までに見つかっている交
点がボクセルU(1)の内部かそれより手前に位置する
かどうかを判定し、もしそうならば大域格子に関する処
理を打ち切って良いと分かるので、処理21405へ制
御を移す。具体的には、交点存在フラグisfが1であ
り、かつ交点(その座標は交点座標P)を内部に含むボ
クセルのインデックスがU(1)と等しいか又はU
(1)より光路上で手前と判断される場合に、処理21
405へ制御を移す。処理21405は、交点探索処理
全体を終了させるため、後半部処理状態lstateを
6に変更する。処理21404において、まだ大域格子
に関する処理を打ち切ることができないと判断された場
合は、次のボクセルを調べるために、処理21406に
移る。処理21406は、有効ボクセル数nvを1減じ
る。処理21407は、減じた結果nvが0になったか
どうかを調べ、0の場合、すなわち次のボクセルインデ
ックスが光線パケット内にはもう存在しないときには、
処理21408に制御を移す。処理21408は、ボク
セル追跡終了フラグeosの値を調べ、それが1の場合
には、大域格子に関する処理を終了させるため処理21
405へ制御を移し、0の場合には、処理21409へ
制御を移す。処理21409は、光路上の先にあるボク
セルを更に追跡する目的で、後半部処理状態lstat
eを5に変更する。処理21407において、nvが0
でなかった場合は、処理21410へ移る。処理214
10は、次のボクセルに処理対象を移すため、U(2)
の値をU(1)へ、U(3)の値をU(2)へ移し、以
下同様にして、U(nv+1)の値をU(nv)へ移す
まで繰り返す。処理21411は、ボクセル入射方向d
irについて処理21410と同様の操作を適用する。
すなわち、dir(2)の値をdir(1)へ、dir
(3)の値をdir(2)へ移し、以下同様にして、d
ir(nv+1)の値をdir(nv)へ移すまで繰り
返す。処理21412は、処理21202と同様なオー
バーラン検査を、新しいU(1)の値に対して適用す
る。すなわち、交点存在フラグisfが1であり、かつ
ボクセルU(1)が交点(その座標は交点座標P)を内
部に含むボクセルより光路上で遠方に位置する場合に処
理21405へ制御を移し、交点探索処理全体を終了さ
せる。処理21413は、後半部処理状態lstate
を1に変更する。
FIG. 26 shows the L1 range inspection circuits 214 and 314.
6 is an equivalent flowchart showing the contents of the processing executed in step S1. In the process 21401, when the latter half process status lstate is other than 0, the process after FIG. 26 is skipped.
The process 21402 determines that the next list element address next is "
Check if it is φ ”, and if not“ φ ”,
Since the intersection calculation needs to be performed for the next object in the same voxel before performing the range inspection, the control is shifted to step 21403, where the second half processing state lstate is set to 2. Process 21404 determines whether the intersection found so far is inside or before voxel U (1), and if so, knows that the process for the global grid can be aborted. Transfer control to Specifically, the intersection existence flag isf is 1, and the index of the voxel including the intersection (the coordinates of which are the intersection coordinates P) is equal to U (1) or U (1).
(1) If it is determined on the optical path to be nearer, processing 21
Control is transferred to 405. The process 21405 changes the latter half processing state lstate to 6 in order to end the entire intersection search processing. If it is determined in the process 21404 that the process related to the global grid cannot be terminated yet, the process proceeds to a process 21406 to check the next voxel. The process 21406 decrements the effective voxel number nv by one. Process 21407 checks whether the resulting nv is zero, and if it is zero, ie, if the next voxel index is no longer present in the ray packet,
Control is transferred to processing 21408. A process 21408 checks the value of the voxel tracking end flag eos. If the value is 1, the process 21408 terminates the process related to the global grid.
Control is transferred to 405, and if it is 0, control is transferred to step 21409. The process 21409 is for the purpose of further tracking the voxel ahead on the optical path, so that the latter half process state lstat
Change e to 5. In processing 21407, nv is 0
If not, the process moves to processing 21410. Process 214
10 moves U (2) to shift the processing target to the next voxel
Is moved to U (1), the value of U (3) is moved to U (2), and so on until the value of U (nv + 1) is moved to U (nv). Processing 21411 is performed in the voxel incident direction d.
The same operation as the process 21410 is applied to ir.
That is, the value of dir (2) is changed to dir (1),
The value of (3) is moved to dir (2), and d
This is repeated until the value of ir (nv + 1) is transferred to dir (nv). Process 21412 applies the same overrun check as process 21202 to the new value of U (1). That is, if the intersection existence flag isf is 1 and the voxel U (1) is located on the optical path farther from the voxel including the intersection (the coordinates of which are the intersection coordinates P), the control is transferred to the process 21405, and The entire search process ends. The processing 21413 is the second half processing state lstate
To 1.

【0131】図27はリスト先頭要素決定回路215、
315で実行される処理内容を示す等価フローチャート
である。処理21501は、後半部処理状態lstat
eが1以外のとき、以後の2つの処理をスキップさせ
る。処理21502は、リストヘッダメモリ271に格
納されている格子gidに関するリストヘッダ配列27
3の中から、U(1)をインデックスとして配列要素を
読み出し、その値を次リスト要素アドレスnextへ格
納する。処理21503は、後半部処理状態lstat
eを2に変更する。処理21504は、交差計算要求プ
リミティブ識別番号rpidを、交差計算を要求するプ
リミティブが無いことを示す″φ″で初期化する。
FIG. 27 shows a list head element determination circuit 215,
315 is an equivalent flowchart showing the processing content executed in 315. The processing 21501 is performed in the latter half processing state lstat.
When e is other than 1, the subsequent two processes are skipped. The processing 21502 is performed in the list header array 27 relating to the grid gid stored in the list header memory 271.
The array element is read from U.3 using U (1) as an index, and the value is stored in the next list element address next. The processing 21503 is performed in the latter half processing state lstat.
Change e to 2. The process 21504 initializes the intersection calculation request primitive identification number rpid with “φ” indicating that there is no primitive requesting the intersection calculation.

【0132】図28は物体決定回路216、316で実
行される処理内容を示す等価フローチャートである。処
理21601は、後半部処理状態lstateが2から
4まで以外のとき、以後の処理をスキップさせる。処理
21602は、次リスト要素アドレスnextが″φ″
である、すなわちリスト要素がもう存在しないときに、
以後の処理をスキップさせる。処理21603は、対応
するリスト要素メモリ272から、次リスト要素アドレ
スnextのアドレス値によって図9に示したリスト要
素274を読み出す。処理21604は、リスト要素2
74中の重複除去情報277によって交差計算の重複を
判定する。具体的には、ボクセル入射方向dir(1)
と方向ベクトル成分符号Sを参照して、重複除去情報2
77を構成する6つの重複除去ビット2771〜277
6のうちの該当する1つを取り出し、それが1である場
合には重複した交差計算だとして処理21610へ制御
を移し、0である場合には次の処理21605へ進む。
処理21605は、後半部処理状態lstateが2か
どうかを調べ、そうでないとき、すなわちlstate
が3または4のときは以後の処理をスキップさせる。こ
れは、lstateが3または4のときは、既に交差計
算すべき物体が確定しているので、重複除去の検査だけ
を行い、交差計算すべき物体の更新はしないようにする
ためである。処理21606は、交差計算要求プリミテ
ィブ識別番号rpidに、処理21603で読み出した
リスト要素274中のプリミティブまたは格子の識別番
号276を格納する。このとき、物体の種別が局所格子
の場合には、rpidにプリミティブではなく格子の識
別番号が一時的に格納されることになるが、次の出力先
決定回路217、317においてこのような不整合はす
ぐに解消される。処理21607は、処理21603で
読み出したリスト要素274中の種別275を調べ、以
後の処理を選択する。種別が局所格子でない、つまりプ
リミティブであった場合は、処理21608によって後
半部処理状態lstateが3に設定される。種別が局
所格子であった場合は、処理21609によって後半部
処理状態lstateが4に設定される。処理2161
0は、処理21603で読み出したリスト要素274中
の次アドレス278の値を、次リスト要素アドレスne
xtへ格納する。
FIG. 28 is an equivalent flowchart showing the contents of processing executed by the object determination circuits 216 and 316. In the process 21601, when the latter half processing state lstate is other than 2 to 4, the subsequent processing is skipped. The process 21602 determines that the next list element address next is “φ”.
, That is, when the list element no longer exists,
Subsequent processing is skipped. The process 21603 reads the list element 274 shown in FIG. 9 from the corresponding list element memory 272 using the address value of the next list element address next. The process 21604 is executed for the list element 2
Based on the overlap elimination information 277 in 74, the overlap of the intersection calculation is determined. Specifically, the voxel incident direction dir (1)
And the direction vector component code S, the overlap removal information 2
77, the six duplicate elimination bits 2771 to 277
The corresponding one of the six is taken out, and if it is 1, control is transferred to a process 21610 as an overlapped intersection calculation, and if it is 0, the process proceeds to the next process 21605.
A process 21605 checks whether or not the second half processing state lstate is 2, and if not, that is, lstate
Is 3 or 4, the subsequent processing is skipped. This is because when lstate is 3 or 4, the object to be cross-calculated has already been determined, so that only the check for duplicate elimination is performed and the object to be cross-calculated is not updated. The process 21606 stores the primitive or lattice identification number 276 in the list element 274 read out in the process 21603 in the intersection calculation request primitive identification number rpid. At this time, when the type of the object is a local lattice, the identification number of the lattice is temporarily stored instead of the primitive in the rpid. However, in the next output destination determination circuits 217 and 317, such mismatches are stored. Is quickly resolved. A process 21607 examines the type 275 in the list element 274 read in the process 21603, and selects a subsequent process. If the type is not the local lattice, that is, if the type is a primitive, the second half processing state lstate is set to 3 by processing 21608. If the type is the local lattice, the second half processing state lstate is set to 4 by processing 21609. Process 2161
0 sets the value of the next address 278 in the list element 274 read in the process 21603 to the next list element address ne.
xt.

【0133】図29は出力先決定回路217、317で
実行される処理内容を示す等価フローチャートである。
処理21701は後半部処理状態lstateの値によ
って以後の処理を選択する。lstateが2または3
であるときは、処理21702へ制御が移される。この
時点でlstateが2であるときは、物体決定回路2
16、316において物体の決定に失敗し、再び物体決
定回路において処理の続きを実行する必要がある場合で
ある。lstateが3であるときは、次に交差計算す
べき物体がプリミティブの場合である。どちらの場合に
おいても、光線パケットは2つある交差計算部3のうち
のいずれか1つに転送される。処理21702は、どち
らの交差計算部3へ光線パケットを転送するかを決定す
る。この決定法は出力先決定回路217と出力先決定回
路317とで異なる。出力先決定回路217の場合は、
交差計算部3の稼働率を高めるように負荷分散を考慮し
て決定する。決定方法に様々なものが存在し、FIFO
バッファ301に蓄積されている光線パケットの数に基
づくもの、格子識別番号gidに基づくもの、ボクセル
インデックスU(1)に基づくもの、交差計算要求プリ
ミティブ識別番号rpidに基づくもの、それまでに処
理を行った光線パケット数に基づくもの、乱数に基づく
もの、及びこれらの組み合わせ等が考えられる。出力先
決定回路317の場合は、装置の構造上、必ず自分の交
差計算部3が選択される。処理21703は、光線パケ
ットを上で決定した交差計算部3へ転送する。
FIG. 29 is an equivalent flowchart showing the contents of processing executed by the output destination determining circuits 217 and 317.
Processing 21701 selects the subsequent processing according to the value of the second half processing state lstate. lstate is 2 or 3
If so, control is transferred to step 21702. If lstate is 2 at this time, the object determination circuit 2
16 and 316, the object determination has failed, and it is necessary to continue the processing in the object determination circuit again. When lstate is 3, the next object to be cross-calculated is a primitive. In either case, the ray packet is forwarded to one of the two intersection calculators 3. A process 21702 determines which intersection calculation unit 3 to forward the ray packet to. This determination method differs between the output destination determination circuit 217 and the output destination determination circuit 317. In the case of the output destination determination circuit 217,
The determination is made in consideration of the load distribution so as to increase the operation rate of the intersection calculation unit 3. There are various decision methods, FIFO
Processing based on the number of ray packets stored in the buffer 301, based on the grid identification number gid, based on the voxel index U (1), based on the intersection calculation request primitive identification number rpid, and so on One based on the number of ray packets, one based on a random number, a combination thereof, and the like can be considered. In the case of the output destination determination circuit 317, its own intersection calculation unit 3 is always selected due to the structure of the device. A process 21703 transfers the ray packet to the intersection calculation unit 3 determined above.

【0134】処理21701においてlstateが4
であるときは、次の交差計算すべき物体が局所格子であ
る場合であり、このときはpush処理21704以降
が実行される。push処理21704は、大域格子に
対する追跡から局所格子に対する追跡に切り替える。処
理21705は、格子識別番号gidを交差計算要求プ
リミティブ識別番号rpidの値にセットする。処理2
1706は、ボクセル追跡モードmodeを″新規追
跡″に設定する。処理21707は、光線パケットをボ
クセル追跡部2へ転送する。
In process 21701, lstate is 4
Is the case where the next object to be intersected is a local grid, and in this case, push processing 21704 and thereafter are executed. The push process 21704 switches from tracking for the global grid to tracking for the local grid. The process 21705 sets the grid identification number gid to the value of the intersection calculation request primitive identification number rpid. Processing 2
Step 1706 sets the voxel tracking mode mode to "new tracking". A process 21707 transfers the ray packet to the voxel tracking unit 2.

【0135】処理21701においてlstateが5
であるときは、継続ボクセル追跡を行うため処理217
08へ制御が移され、そこでボクセル追跡モードmod
eが″継続追跡″に設定される。そして、処理2170
7において光線パケットがボクセル追跡部2へ転送され
る。
In process 21701, lstate is 5
If so, process 217 to perform continuous voxel tracking
08, where the voxel tracking mode mod
e is set to "continue tracking". Then, processing 2170
At 7, the ray packet is forwarded to the voxel tracking unit 2.

【0136】処理21701においてlstateが6
であるときは、交点探索処理が終了した時であるので、
処理21709へ制御が移され、そこで光線パケットが
出力バッファ4へ転送される。
In process 21701, lstate is 6
Is when the intersection search process has been completed,
Control transfers to operation 21709, where the light packet is forwarded to the output buffer 4.

【0137】図30は、push処理21704の詳細
を示した等価フローチャートである。処理21901
は、局所格子に対する追跡の間、大域格子に関する追跡
ボクセル情報を退避するため、追跡ボクセル情報714
の全要素を退避用追跡ボクセル情報715へコピーす
る。処理21902は、追跡レベルlevelを2に変
更する。
FIG. 30 is an equivalent flowchart showing details of the push process 21704. Process 21901
Is to save the tracking voxel information 714 to save the tracking voxel information for the global grid during tracking for the local grid.
Are copied to the evacuation tracking voxel information 715. The process 21902 changes the tracking level level to 2.

【0138】図31は、pop処理21206、313
06の詳細を示した等価フローチャートである。処理2
1903は、大域格子に関する追跡ボクセル情報を復元
するため、退避用追跡ボクセル情報715の全要素を追
跡ボクセル情報714へコピーする。処理21904
は、格子識別番号gidに大域格子の識別番号を設定す
る。処理21905は、追跡レベルlevelを1に変
更する。
FIG. 31 shows pop processing 21206, 313
It is an equivalent flowchart which showed the detail of 06. Processing 2
1903 copies all elements of the evacuation tracking voxel information 715 to the tracking voxel information 714 in order to restore the tracking voxel information related to the global grid. Process 21904
Sets the identification number of the global grid to the grid identification number gid. The process 21905 changes the tracking level level to 1.

【0139】図32は、交差計算回路32で実行される
処理内容を示す等価フローチャートである。処理320
1は、交差計算要求プリミティブ識別番号rpidが″
φ″である、すなわち物体決定回路216、316で前
回の処理において交差計算すべき物体を決定できなかっ
たときに、以降の処理をスキップさせる。
FIG. 32 is an equivalent flowchart showing the processing executed by the intersection calculation circuit 32. Process 320
1 indicates that the intersection calculation request primitive identification number rpid is "
If it is φ ″, that is, if the object determination circuits 216 and 316 cannot determine the object to be cross-calculated in the previous processing, the subsequent processing is skipped.

【0140】処理3202は直接的交差計算を実際に行
うステップである。物体が三角形の場合には、次のよう
に計算される。三角形の頂点座標をP0、P1、P2と
する。前計算によって次式で表される面法線ベクトル
N、面積の2倍に相当する値であるa、ベクトルL、ベ
クトルMを予め求めておき、それを物体形状情報記憶手
段33に格納しておく。 A=P1−P0 B=P2−P0 a=|A×B| N=(A×B)/a L=B×N M=N×A 処理3202では、まず三角形を含む平面と光線との交
点における光線のパラメータ値tqとその交点の座標Q
を次式によって求める。 tq=(N・(P0−E))/(N・V) Q=E+V・tq ここでVは光線の符号つき方向ベクトルであり方向ベク
トル成分絶対値Dと方向ベクトル成分符号Sから求める
ことができる。次に、上記交点が三角形内部にあるかど
うかを判定するための値であるuとvを次式によって求
める。 u=L・(Q−P0) v=M・(Q−P0) 処理3203は、光線と三角形の交点が存在するかどう
かを判定するが、具体的には以下の5条件を調べる。 tq>0、 u>0、 u<a、 v>0、 u+v<a これらの5条件がすべて満たされた場合に限り交点は存
在し、処理3204へ制御が移される。交点が存在しな
い場合は、交差計算処理は終了する。なお、実際の回路
において、上の計算に含まれている乗除算は、各有効ク
ロック周期ごとに1つの光線パケットを処理できるよう
に、パイプライン乗算器やパイプライン除算器を使って
実現される。
Processing 3202 is a step of actually performing a direct intersection calculation. If the object is a triangle, it is calculated as follows. Let the vertex coordinates of the triangle be P0, P1, and P2. The surface normal vector N and the values a, L and M corresponding to twice the area expressed by the following equation are obtained in advance by the pre-calculation and stored in the object shape information storage means 33. deep. A = P1−P0 B = P2−P0 a = | A × B | N = (A × B) / a L = B × N M = N × A In the process 3202, first, the intersection of the plane including the triangle and the light ray , The parameter value tq of the ray and the coordinates Q of the intersection point
Is determined by the following equation. tq = (N · (P0−E)) / (N · V) Q = E + V · tq where V is a signed direction vector of the light ray, and can be obtained from the direction vector component absolute value D and the direction vector component code S. it can. Next, values u and v for determining whether the intersection is inside the triangle are determined by the following equations. u = L * (Q-P0) v = M * (Q-P0) The process 3203 determines whether or not there is an intersection of a ray and a triangle. Specifically, the following five conditions are checked. tq> 0, u> 0, u <a, v> 0, u + v <a An intersection exists only when all of these five conditions are satisfied, and control is transferred to step 3204. If there is no intersection, the intersection calculation processing ends. Note that in an actual circuit, the multiplication and division included in the above calculation is realized using a pipeline multiplier and a pipeline divider so that one light packet can be processed for each effective clock period. .

【0141】処理3204は交点存在フラグisfの値
を調べ、もし0、すなわちまだ交点が1つも見つかって
いない場合には、処理3205をスキップする。処理3
205は、最も光線開始点に近い交点だけを残すため
に、処理3202で求まったパラメータ値tqと今まで
に見つかっている交点のパラメータ値tpとを比較し、
tqの方が小さくなければ、以後の処理をスキップさせ
る。処理3206は、交差プリミティブ識別番号pid
に交差計算要求プリミティブ識別番号rpidの値をセ
ットする。処理3207は、交点座標Pを新しく見つか
った交点の座標Qに置き換える。処理3208は、交点
パラメータ値tpを新しく見つかった交点のパラメータ
値tqに置き換える。処理3209は、交点存在フラグ
isfを1に設定する。
The process 3204 checks the value of the intersection existence flag isf, and if 0, that is, if no intersection has yet been found, the process 3205 is skipped. Processing 3
205 compares the parameter value tq obtained in the process 3202 with the parameter value tp of the intersection found so far to leave only the intersection closest to the ray start point,
If tq is not smaller, the subsequent processing is skipped. Process 3206 includes an intersection primitive identification number pid
Is set to the value of the intersection calculation request primitive identification number rpid. The process 3207 replaces the intersection coordinates P with the coordinates Q of the newly found intersection. The process 3208 replaces the intersection parameter value tp with the newly found intersection parameter value tq. The process 3209 sets the intersection existence flag isf to 1.

【0142】図33はL2範囲検査回路313で実行さ
れる処理内容を示す等価フローチャートである。処理3
1301は、後半部処理状態lstateを0に初期化
する。処理31302は、追跡レベルlevelが1で
あるとき、以後の処理をスキップさせる。処理3130
3は、次リスト要素アドレスnextが″φ″であるか
どうかを調べ、もし″φ″でないならば、範囲検査を行
う前に同じボクセル内の次の物体について交差計算を行
う必要があるので、処理31304に制御を移し、そこ
で後半部処理状態lstateを2に設定する。処理3
1305は、現在までに見つかっている交点がボクセル
U(1)の内部かそれより手前に位置するかどうかを判
定し、もしそうならば格子gidに関する処理を打ち切
って良いと分かるので、pop処理31306へ制御を
移す。具体的には、交点存在フラグisfが1であり、
かつ交点(その座標は交点座標P)を内部に含むボクセ
ルのインデックスがU(1)と等しいか又はU(1)よ
り光路上で手前と判断される場合に、pop処理313
06へ制御を移す。pop処理31306は、局所格子
に対する追跡から大域格子に対する追跡に切り替える。
処理31305において、まだ格子gidに関する処理
を打ち切ることができないと判断された場合は、次のボ
クセルを調べるために、処理31307に移る。処理3
1307は、有効ボクセル数nvを1減じる。処理31
308は、減じた結果nvが0になったかどうかを調
べ、0の場合、すなわち次のボクセルインデックスが光
線パケット内にはもう存在しないときには、処理313
09に制御を移す。処理31309は、ボクセル追跡終
了フラグeosの値を調べ、それが1の場合には、格子
gidに関する処理を終了させるためにpop処理31
306へ制御を移し、0の場合には、処理31310へ
制御を移す。処理31310は、光路上の先にあるボク
セルを更に追跡する目的で、後半部処理状態lstat
eを5に変更する。処理31308において、nvが0
でなかった場合は、処理31311へ移る。処理313
11は、次のボクセルに処理対象を移すため、U(2)
の値をU(1)へ、U(3)の値をU(2)へ移し、以
下同様にして、U(nv+1)の値をU(nv)へ移す
まで繰り返す。処理31312は、ボクセル入射方向d
irについて処理31311と同様の操作を適用する。
すなわち、dir(2)の値をdir(1)へ、dir
(3)の値をdir(2)へ移し、以下同様にして、d
ir(nv+1)の値をdir(nv)へ移すまで繰り
返す。処理31313は、処理21202と同様なオー
バーラン検査を、新しいU(1)の値に対して適用す
る。すなわち、交点存在フラグisfが1であり、かつ
ボクセルU(1)が交点(その座標は交点座標P)を内
部に含むボクセルより光路上で遠方に位置する場合にp
op処理31306へ制御を移す。処理31314は、
後半部処理状態lstateを1に変更する。
FIG. 33 is an equivalent flowchart showing the processing executed by the L2 range inspection circuit 313. Processing 3
1301 initializes the latter half processing state lstate to 0. In the process 31302, when the tracking level is 1, the subsequent processes are skipped. Process 3130
3 checks whether the next list element address next is "φ", and if it is not "φ", the intersection calculation needs to be performed for the next object in the same voxel before performing the range check. Control is transferred to step 31304, where the second half processing state lstate is set to 2. Processing 3
1305 determines whether or not the intersection found so far is located inside or before voxel U (1), and if so, knows that the processing on the grid gid can be terminated. Transfer control to Specifically, the intersection existence flag isf is 1,
If the index of a voxel including the intersection (the coordinates of which are the intersection coordinates P) is equal to U (1) or is determined to be closer to the optical path than U (1), pop processing 313 is performed.
Transfer control to 06. The pop process 31306 switches from tracking for the local grid to tracking for the global grid.
If it is determined in the process 31305 that the process related to the lattice gid cannot be terminated yet, the process proceeds to a process 31307 to check the next voxel. Processing 3
Step 1307 decrements the number of effective voxels nv by one. Processing 31
Step 308 checks whether the subtraction nv has become 0. If it is 0, that is, if the next voxel index is no longer present in the ray packet, process 313 is performed.
Control is transferred to 09. The process 31309 checks the value of the voxel tracking end flag eos. If the value is 1, the pop process 31 is performed to end the process related to the grid gid.
The control is shifted to 306, and if it is 0, the control is shifted to step 31310. The process 31310 is for the purpose of further tracking the voxel located further on the optical path.
Change e to 5. In process 31308, nv is 0
If not, the flow shifts to step 31311. Process 313
11 moves U (2) to shift the processing target to the next voxel
Is moved to U (1), the value of U (3) is moved to U (2), and so on until the value of U (nv + 1) is moved to U (nv). The process 31312 includes a voxel incident direction d.
The same operation as the process 31311 is applied to ir.
That is, the value of dir (2) is changed to dir (1),
The value of (3) is moved to dir (2), and d
This is repeated until the value of ir (nv + 1) is transferred to dir (nv). The process 31313 applies the same overrun check as the process 21202 to the new value of U (1). That is, when the intersection existence flag isf is 1 and the voxel U (1) is located on the optical path farther from the voxel including the intersection (the coordinates of which are the intersection coordinates P), p
Control is transferred to op processing 31306. The process 31314 includes:
The second half processing state lstate is changed to 1.

【0143】以下、ボクセル追跡ユニット25の構造の
詳細について説明する。図34は、ボクセル追跡ユニッ
ト25の内部構造をkが2の場合を例にとって示したも
のである。この回路は、2段のパイプラインによって構
成されており、各有効クロック周期ごとに1つの光線パ
ケットを処理する。換言すれば、この回路によって、1
つの光線パケットに関する図18から図23に示されて
いる一連の処理は2有効クロック周期の間に完了する。
The structure of the voxel tracking unit 25 will be described in detail below. FIG. 34 shows an example of the internal structure of the voxel tracking unit 25 when k is 2. This circuit is constituted by a two-stage pipeline and processes one light packet for each effective clock cycle. In other words, by this circuit, 1
The series of processes shown in FIGS. 18 to 23 for one light packet is completed during two valid clock periods.

【0144】アドレス計算回路2571は、処理250
5においてボクセル情報242又は243又は244を
読み出す際のバンク241に供給するアドレスを計算す
る。レジスタ2572は、バンク241より読み出した
ボクセル情報を格納する。
The address calculation circuit 2571 performs the processing 250
In step 5, the address to be supplied to the bank 241 when the voxel information 242, 243, or 244 is read is calculated. The register 2572 stores the voxel information read from the bank 241.

【0145】制御回路2573は、レジスタ2572の
値、ボクセル入射方向dir、方向ベクトル成分符号
S、有効ボクセル数nv、ボクセル追跡状態stat
e、軸置換情報axis、比較器2584、2585の
出力、更新後の誤差項εpa、εsd、δpaの符号を
入力として受け取り、ボクセル入射方向dir、有効ボ
クセル数nv、ボクセル追跡状態stateの新しい
値、および各マルチプレクサの選択信号の値を求めるた
めの組合せ論理回路である。
The control circuit 2573 stores the value of the register 2572, the voxel incidence direction dir, the direction vector component code S, the number of effective voxels nv, and the voxel tracking state stat.
e, the axis replacement information axis, the outputs of the comparators 2584, 2585, and the sign of the updated error terms εpa, εsd, δpa as inputs, the voxel incident direction dir, the number of effective voxels nv, the new value of the voxel tracking state state, And a combinational logic circuit for determining the value of the selection signal of each multiplexer.

【0146】1加算/減算回路2574は、処理256
4または処理2565を実行する回路であり、加算か減
算かの選択は方向ベクトル主駆動軸成分符号Sdaによ
って決まる。マルチプレクサ2575は、主駆動軸イン
デックスUda(1)の新しい値を決定するものであ
り、DA方向歩進処理2521が実行される条件のとき
に上側が選択される。マルチプレクサ2576は、主駆
動軸インデックスUda(2)の新しい値を決定するも
のであり、処理2544が実行される条件のときに上側
が選択される。
The 1-addition / subtraction circuit 2574 executes the processing 256
4 or a circuit for executing the process 2565, and the selection of addition or subtraction is determined by the direction vector main drive axis component code Sda. The multiplexer 2575 determines a new value of the main drive axis index Uda (1), and the upper side is selected under the condition that the DA stepping process 2521 is executed. The multiplexer 2576 determines a new value of the main drive axis index Uda (2), and the upper side is selected under the condition that the process 2544 is executed.

【0147】1加算/減算回路2577は、処理255
9または処理2560を実行する回路であり、加算か減
算かの選択は方向ベクトル受動軸成分符号Spaによっ
て決まる。マルチプレクサ2578は、受動軸インデッ
クスUpa(1)の新しい値を決定するものであり、P
A方向歩進処理2512、2516、2517が実行さ
れる条件のときに上側が選択される。マルチプレクサ2
579は、受動軸インデックスUpa(2)の新しい値
を決定するものであり、PA方向歩進処理2512、2
516、2517またはSD方向歩進処理2519のい
ずれかによって呼ばれたボクセル訪問処理254の中で
処理2544が実行されるという条件のときに一番上の
入力が選択され、それ以外から呼ばれたボクセル訪問処
理254の中で処理2544が実行されるという条件の
ときに中央の入力が選択され、さもなければ一番下の入
力が選択される。
The 1 addition / subtraction circuit 2577 performs processing 255
9 or a circuit for executing the process 2560. The selection between addition and subtraction is determined by the direction vector passive axis component code Spa. Multiplexer 2578 determines the new value of passive axis index Upa (1),
The upper side is selected under the condition that the A-direction step processing 2512, 2516, 2517 is executed. Multiplexer 2
A step 579 determines a new value of the passive axis index Upa (2).
The top input is selected when condition 2544 is executed in the voxel visit process 254 called by either 516, 2517 or the SD step process 2519, and is called from elsewhere. The center input is selected when the condition that the process 2544 is executed in the voxel visit process 254 is selected, otherwise the bottom input is selected.

【0148】1加算/減算回路2580、マルチプレク
サ2581、マルチプレクサ2582は、副駆動軸イン
デックスに対して1加算/減算回路2577、マルチプ
レクサ2578、マルチプレクサ2579と同じ働きを
する。
The 1-addition / subtraction circuit 2580, the multiplexer 2581, and the multiplexer 2852 operate in the same manner as the 1-addition / subtraction circuit 2577, the multiplexer 2578, and the multiplexer 2579 with respect to the sub-drive axis index.

【0149】1加算/減算回路2583は、処理253
8または処理2539を実行する回路であり、加算か減
算かの選択は方向ベクトル受動軸成分符号Spaによっ
て決まる。比較器2584と比較器2585は、どちら
も処理2513を実現する。比較器が2つ必要な理由
は、高速化のためパイプラインの1段目で比較処理を終
えてしまいたいが、1段目の時点では第3DDA整数部
jpaの値がまだ確定していないため、将来とり得るす
べてのjpaの値について比較を行っているからであ
る。マルチプレクサ2586は、jpaの新しい値を決
定するものであり、処理2538または処理2539が
実行される条件のときに上側が選択される。
The one-addition / subtraction circuit 2583 performs processing 253.
8 or a circuit for executing processing 2539, and the selection of addition or subtraction is determined by the direction vector passive axis component code Spa. Both the comparator 2584 and the comparator 2585 implement the processing 2513. The reason why two comparators are necessary is that the comparison process is desired to be completed in the first stage of the pipeline for speeding up, but the value of the third DDA integer part jpa has not yet been determined at the time of the first stage. This is because all possible values of jpa are compared in the future. The multiplexer 2586 determines a new value of jpa, and the upper side is selected under the condition that the process 2538 or the process 2539 is executed.

【0150】減算器2587、マルチプレクサ258
8、加算器2589、マルチプレクサ2590は受動軸
の誤差項εpaに関する処理を担当する。減算器258
7は、処理2532を実行する。マルチプレクサ258
8は、処理2501〜処理2504の判定条件が誤差項
更新処理2506が実行されるようになっているときに
下側が選択される。加算器2589は、処理2557を
実行する。マルチプレクサ2590は、εpaの新しい
値を決定するものであり、PA方向歩進処理2512、
2516、2517が実行される条件のときに下側が選
択される。
Subtractor 2587, multiplexer 258
8. The adder 2589 and the multiplexer 2590 are in charge of processing relating to the error term εpa of the passive axis. Subtractor 258
7 executes a process 2532. Multiplexer 258
8, the lower side is selected when the determination condition of the processing 2501 to the processing 2504 is such that the error term updating processing 2506 is executed. Adder 2589 performs processing 2557. The multiplexer 2590 determines a new value of εpa, and performs a PA direction step process 2512,
The lower side is selected when the conditions 2516 and 2517 are executed.

【0151】減算器2591、マルチプレクサ259
2、加算器2593、マルチプレクサ2594は、副駆
動軸の誤差項εsdに対して減算器2587は、マルチ
プレクサ2588、加算器2589、マルチプレクサ2
590と同じ働きをする。
A subtractor 2591 and a multiplexer 259
2. The adder 2593 and the multiplexer 2594 output the error term εsd of the sub-drive axis to the subtractor 2587, the multiplexer 2588, the adder 2589, and the multiplexer 2
Works the same as 590.

【0152】減算器2595、マルチプレクサ259
6、加算器2597、マルチプレクサ2598は、誤差
項δpaに関する処理を担当する。減算器2595は、
処理2534を実行する。マルチプレクサ2596は、
処理2534が実行される条件のときに下側が選択され
る。加算器2597は、処理2536を実行する。マル
チプレクサ2598は、誤差項δpaの新しい値を決定
し、処理2536が実行される条件のときに上側が選択
される。
Subtractor 2595, multiplexer 259
6. The adder 2597 and the multiplexer 2598 are in charge of processing relating to the error term δpa. The subtractor 2595 is
The process 2534 is executed. Multiplexer 2596 is
The lower side is selected under the condition that the process 2534 is executed. The adder 2597 performs a process 2536. Multiplexer 2598 determines the new value of error term δpa, and the upper side is selected under the condition that operation 2536 is performed.

【0153】ボクセル追跡ユニット25には、図34に
示されている回路の他に、光線パケットのうちの同図に
現れていない要素(光線識別番号rayid、光線開始
点座標E、交点存在フラグisf、交点座標P、交点パ
ラメータ値tp、交差プリミティブ識別番号pid、追
跡レベルlevel、退避用追跡ボクセル情報715)
を2クロック遅延させて出力するレジスタ群が存在す
る。
In the voxel tracking unit 25, in addition to the circuit shown in FIG. 34, elements (ray identification number rayid, ray start point coordinates E, intersection existence flag isf) of the ray packet which do not appear in FIG. , Intersection coordinate P, intersection parameter value tp, intersection primitive identification number pid, tracking level, evacuation tracking voxel information 715)
There is a register group which outputs the data after two clock delays.

【0154】以上、本発明の好適な一実施例を説明した
が、本発明はこの実施例にのみ限定されるものではな
い。以下に、考えうる他の実施例について代表的なもの
をいくつか述べる。
As described above, a preferred embodiment of the present invention has been described, but the present invention is not limited to this embodiment. Hereinafter, some typical examples of other possible embodiments will be described.

【0155】前実施例では、図1に示された交点探索装
置1にボクセル追跡部が1つ、交差計算部が2つ備わっ
ているが、どちらの部も、1つ以上の任意の個数備える
ことができ、要求される性能に合わせてシステム規模を
変更することが可能である。
In the previous embodiment, the intersection search device 1 shown in FIG. 1 has one voxel tracking unit and two intersection calculation units, but both units have one or more arbitrary numbers. It is possible to change the system scale according to the required performance.

【0156】前実施例では交点探索装置1において交点
のうち光線開始点に最も近いもの1つを求めているが、
この他の交点情報を求めるような実施例も考えられる。
例えば、開始点に2番目に近い交点や、開始点からの距
離を与えて、それより遠方に位置する交点のうちで最も
開始点に近いものを求める交点探索装置に対しても本発
明を適用できる。また、交点に関連する情報(例えば、
交点における法線ベクトルや、物体が多角形である場合
にその頂点を基準とした重心座標など)を交点の位置と
一緒に出力するような実施例も考えられる。
In the previous embodiment, the intersection search device 1 finds one of the intersections closest to the ray start point.
An embodiment in which other intersection information is obtained is also conceivable.
For example, the present invention is also applied to an intersection search device that obtains the closest intersection to the start point by giving the second closest intersection to the start point or the distance from the start point, and finding intersections located farther away than that. it can. In addition, information related to the intersection (for example,
An embodiment in which the normal vector at the intersection or the barycentric coordinates based on the vertex when the object is a polygon is output together with the position of the intersection is also conceivable.

【0157】前実施例では階層化格子の階層レベルを2
レベルまでに限定しているが、3レベル以上の階層を扱
えるような実施例も考えられる。ただし、光線パケット
の中の退避用追跡ボクセル情報715の数を(最大階層
レベル−1)にまで増やすとともに、範囲検査回路群2
14、313、314も最大階層レベルの増加に合わせ
て数を増やさなければならない。
In the previous embodiment, the hierarchical level of the hierarchical grid is set to 2
Although the embodiment is limited to the levels, there can be considered an embodiment capable of handling three or more levels. However, the number of evacuation tracking voxel information 715 in the ray packet is increased to (maximum hierarchy level -1), and the range inspection circuit group 2
14, 313 and 314 also need to be increased in number as the maximum hierarchy level increases.

【0158】前実施例では、各格子におけるボクセル分
割数は各軸ともn以下に制限していたが、ボクセル追跡
ユニットの数はnのままで、この制限を課さない実施例
も考えられる。この場合、ある格子の主駆動軸方向の分
割数がp(p>n)であったとき、m=floor(p
/n)+1として、m回に分けてボクセル追跡を行うこ
とになる。すなわち、最初のボクセル追跡で最初のn個
のボクセル平面集合に関する追跡を行い、2回目のボク
セル追跡で次のn個のボクセル平面集合に関する追跡を
行い、以下同様に繰り返す。発見されたボクセルの数が
途中でkを越えた場合には、m回よりさらにボクセル追
跡の回数が増えることがあり、逆に、途中で範囲検査や
オーバーラン検査によって追跡を打ち切って良いと判断
された場合にはm回未満でボクセル追跡が終了すること
もある。このようにボクセル分割数の制限を取り除くよ
うにするためには、前実施例におけるボクセル追跡部2
と交差計算部3の各後半部(追跡終了処理回路211か
ら出力先決定回路217までとL2範囲検査回路313
から出力先決定回路317まで)を、まだ格子の途中ま
でしか処理を終えていない光線パケットはボクセル追跡
部2に再入力されるように変更する必要がある。また、
光線パケットに何グループ目のn個のボクセル平面集合
まで追跡が進んでいるかを表す情報を追加する必要があ
る。
In the previous embodiment, the number of voxel divisions in each lattice is limited to n or less for each axis. However, an embodiment in which the number of voxel tracking units remains n and this restriction is not imposed is also conceivable. In this case, when the number of divisions of a certain grating in the main drive axis direction is p (p> n), m = floor (p
/ N) +1, and voxel tracking is performed m times. That is, the first voxel tracking tracks the first n voxel plane sets, the second voxel tracking tracks the next n voxel plane sets, and so on. If the number of voxels found exceeds k on the way, the number of voxel tracking may increase more than m times, and conversely, it is determined that tracking can be terminated by range inspection or overrun inspection on the way. In this case, the voxel tracking may be completed in less than m times. In order to remove the restriction on the number of voxel divisions, the voxel tracking unit 2 in the previous embodiment is used.
And the latter half of the intersection calculation unit 3 (from the tracking end processing circuit 211 to the output destination determination circuit 217 and the L2 range inspection circuit 313
To the output destination determination circuit 317) need to be changed so that a ray packet that has been processed only halfway through the grid is re-input to the voxel tracking unit 2. Also,
It is necessary to add to the ray packet information indicating to which group the set of n voxel planes has been tracked.

【0159】前実施例ではボクセル情報記憶手段24に
おいて、1番目のボクセル平面集合を1番目のバンクと
(n−i+1)番目のバンクの2箇所に重複して格納
し、方向ベクトル主駆動軸成分の符号によってどちらか
一方を読み出していた。しかし、方向ベクトル主駆動軸
成分が負の場合はn個のボクセル平面集合について光線
開始点より遠いほうからを逆方向に調べるようにボクセ
ル追跡回路22を変更すれば、2箇所に重複させる必要
はなくなる。このようにして、メモリ量を削減した実施
例も考えられる。
In the previous embodiment, the voxel information storage means 24 stores the first set of voxel planes in two places, that is, the first bank and the (ni + 1) th bank, and stores the direction vector main drive axis component. Either one was read by the sign of. However, if the direction vector main drive axis component is negative, if the voxel tracking circuit 22 is changed so that the n sets of voxel planes are checked in the opposite direction from the farthest from the ray start point, it is not necessary to overlap the two places. Disappears. An embodiment in which the amount of memory is reduced in this way is also conceivable.

【0160】前実施例では立方体のボクセルを仮定して
いたが、DDA初期化回路23において光線開始点だけ
でなく光線の方向ベクトルも正規格子座標系に座標変換
すれば、直方体や平行六面体のボクセルを扱うことがで
きる実施例となる。この場合、ボクセル追跡回路22の
中では光線パケットに座標変換後の方向ベクトルを格納
し、DDA誤差項に方向ベクトルの成分値を加算または
減算する際には座標変換後のものを用いる必要がある。
なお、同様の手法によって、回転を含んだ座標変換を用
いれば、大域格子に対して回転のかかった局所格子を扱
うことができる。
In the previous embodiment, a cubic voxel was assumed. If the DDA initialization circuit 23 converts not only the ray starting point but also the direction vector of the ray into the normal lattice coordinate system, the rectangular or parallelepiped voxel can be obtained. This is an embodiment that can handle. In this case, in the voxel tracking circuit 22, it is necessary to store the direction vector after the coordinate conversion in the ray packet, and to add or subtract the component value of the direction vector to the DDA error term, it is necessary to use the one after the coordinate conversion. .
In addition, by using a coordinate transformation including rotation by the same method, it is possible to handle a local grid that is rotated with respect to the global grid.

【0161】前実施例ではプリミティブの形状は三角形
のみに限定していたが、多角形、2次曲面、自由曲面な
ど他のプリミティブ形状を扱った実施例も考えられる。
このためには、交差計算回路32を他の形状のプリミテ
ィブとの直接的交差計算を行うものに置き換えれば良
い。複数存在する交差計算部3の各々に別の形状のため
の交差計算回路を具備することによって、2種類以上の
異なるプリミティブ形状を扱える実施例を考えることも
できるが、この場合は、図35に示すように1つの交差
計算部3aから別の交差計算部3bへ光線パケットを転
送できるように、新たな通信経路81、82とFIFO
バッファ302を追加しなければならない。
In the previous embodiment, the shape of the primitive is limited to only a triangle. However, an embodiment in which other primitive shapes such as a polygon, a quadratic surface, and a free-form surface are used can be considered.
For this purpose, the intersection calculation circuit 32 may be replaced with a circuit that performs direct intersection calculation with primitives of other shapes. An embodiment in which two or more different primitive shapes can be handled by providing each of the plurality of intersection calculation units 3 with an intersection calculation circuit for another shape can be considered. In this case, FIG. As shown, the new communication paths 81 and 82 and the FIFOs are used so that the ray packet can be transferred from one intersection calculation unit 3a to another intersection calculation unit 3b.
Buffer 302 must be added.

【0162】前実施例ではリスト先頭要素決定回路21
5、315と物体決定回路216、316がL1範囲検
査回路214、314の後に置かれているが、これらを
ボクセル追跡部2ではDDA初期化回路23の前、交差
計算部3では交差計算回路32の前に置いた実施例も考
えられる。このような構造の利点は、光線パケットのう
ちの交差計算要求プリミティブ識別番号rpidと退避
用追跡ボクセル情報715の中の次リスト要素アドレス
nextが交差計算部3の内部以外では必要無くなるた
め、光線パケットの大きさが若干小さくなり、それによ
ってハードウェア量が若干減少することである。逆に、
このような構造の欠点は、大域格子にプリミティブが登
録されていた場合に、ボクセル追跡部2に無駄なクロッ
ク周期が入り、それによって若干性能が劣化する点であ
る。
In the previous embodiment, the list head element determination circuit 21
5 and 315 and the object determination circuits 216 and 316 are placed after the L1 range inspection circuits 214 and 314. These are placed before the DDA initialization circuit 23 in the voxel tracking section 2 and in the intersection calculation section 32 in the intersection calculation section 3. Is also conceivable. The advantage of such a structure is that the intersection calculation request primitive identification number rpid of the ray packet and the next list element address next in the evacuation tracking voxel information 715 are not required except inside the intersection calculation unit 3. Is slightly reduced, thereby slightly reducing the amount of hardware. vice versa,
A disadvantage of such a structure is that when primitives are registered in the global lattice, useless clock periods enter the voxel tracking unit 2, which slightly degrades performance.

【0163】前実施例では、ボクセル情報記憶手段24
に格納されているボクセル情報を構成する15個の交差
計算要求ビット24401、24402、...、24
415のうち、+x+yビット24408から−y−x
ビット24415までは、周囲のボクセルどうしの物体
集合の包含関係によって決定していた。しかし、中心の
ボクセルに含まれる物体の集合を更に考慮に入れること
によって、より厳密な交差計算の重複除去を実現する実
施例も考えられる。具体的には、例えば図11(a)の
+x+yビット24408の場合、前実施例では図11
(b)のボクセル658に含まれる物体の集合がボクセ
ル654に含まれる物体の集合の部分集合でないとき1
としていた。これに対し、ボクセル651に含まれる物
体の集合とボクセル654に含まれる物体の集合との和
集合をXとするとき、ボクセル658に含まれる物体の
集合がXの部分集合でないとき+x+yビット2440
8を1とする実施例を考えることができる。こうするこ
とによって、図8に例を示したような重複した交差計算
を除去できない場合を若干減少させることができる。し
かし、ボクセル情報を求めるための手続きは複雑にな
る。
In the previous embodiment, the voxel information storage means 24
, 15 intersection calculation request bits 24401, 24402,. . . , 24
Of the 415, from + x + y bits 24408 to -y-x
Up to bit 24415, it is determined by the inclusion relation of the surrounding voxel object set. However, embodiments are also conceivable in which more precise deduplication of intersection calculations is realized by further taking into account the set of objects contained in the central voxel. Specifically, for example, in the case of + x + y bit 24408 in FIG.
When the set of objects included in voxel 658 of (b) is not a subset of the set of objects included in voxel 654, 1
And had On the other hand, when the union of the set of objects included in voxel 651 and the set of objects included in voxel 654 is X, + x + y bits 2440 when the set of objects included in voxel 658 is not a subset of X
An embodiment in which 8 is 1 can be considered. This makes it possible to slightly reduce the number of cases where it is not possible to eliminate duplicate intersection calculations as shown in the example of FIG. However, the procedure for obtaining voxel information is complicated.

【0164】前実施例におけるボクセル情報記憶手段2
4を構成するバンク241、物体集合記憶手段27、3
7の各メモリ、格子情報メモリ26、36、物体形状情
報記憶手段33の全部または一部に対し、より大容量か
つより低速な記憶手段に接続されたキャッシュのような
小容量かつ高速な記憶手段を用いる実施例も考えられ
る。どの記憶手段もアクセス局所性が存在するため、キ
ャッシュを用いることによって平均的なアクセス時間を
短縮するという効果を期待できる。また、ボクセル情報
記憶手段を構成するバンクについては、必要な総記憶容
量を減らすという特別な効果がある。なぜなら、キャッ
シュを用いない場合は、前述のようにi番目のボクセル
平面集合を1番目のバンクと(n−i+1)番目のバン
クの2箇所に重複してボクセル情報を格納しなければな
らなかったが、バンクをキャッシュで構成し、i番目の
バンクと(n−i+1)番目のバンクで1つの低速メモ
リを共有すれば、その低速メモリの中では2重複して格
納する必要が無くなるからである。さらに、低速メモリ
から読み出した図11に示す15個の交差計算要求ビッ
ト24401、24402、...、24415のう
ち、全部をキャッシュに置くのではなく、将来使われる
可能性の高い一部だけを置くことによってキャッシュの
効果を高めることができる。例えば、方向ベクトル成分
符号がすべて正であった場合は、cビット24401、
+zビット24402、+xビット24404、+yビ
ット24406、+x+yビット24408、+y+x
ビット24412の6ビットだけをキャッシュに置くこ
とが考えられる。この6ビットは他の9ビットに比べ、
次に処理する光線によって利用させる可能性がきわめて
高いので、15ビットをすべて置く場合に比べてキャッ
シュをより有効に活用できる。
Voxel information storage means 2 in the previous embodiment
4, the object set storage means 27, 3
7, a small-capacity and high-speed storage means such as a cache connected to a larger-capacity and lower-speed storage means for all or a part of the lattice information memories 26 and 36 and the object shape information storage means 33. Is also conceivable. Since any storage means has access locality, the effect of shortening the average access time by using a cache can be expected. The bank constituting the voxel information storage means has a special effect of reducing the required total storage capacity. If the cache is not used, the i-th voxel plane set must be stored in the first bank and the (ni + 1) -th bank so as to overlap the voxel information as described above. However, if the banks are configured by caches and one low-speed memory is shared by the i-th bank and the (n−i + 1) -th bank, it is not necessary to store two redundant low-speed memories. . Further, the fifteen intersection calculation request bits 24401, 24402,. . . , 24415, the effect of the cache can be enhanced by putting only a part that is likely to be used in the future, instead of putting the whole in the cache. For example, if the direction vector component codes are all positive, c bits 24401,
+ Z bit 24402, + x bit 24404, + y bit 24406, + x + y bit 24408, + y + x
It is conceivable to place only 6 bits of bit 24412 in the cache. These 6 bits are compared to the other 9 bits
Since there is a very high possibility that the cache will be used depending on the light beam to be processed next, the cache can be used more effectively as compared with a case where all 15 bits are provided.

【0165】前実施例では、交点探索装置のすべての部
分が専用ハードウェアによって構成されていたが、ボク
セル追跡ユニット25以外の部分については、マイクロ
プロセッサを用いる実施例も考えられる。この場合、1
つのマイクロプロセッサが複数の回路の役割を果たすこ
とも可能である。また、前実施例では、ボクセル情報記
憶手段24を構成するバンク241、物体集合記憶手段
27、37の各メモリ、格子情報メモリ26、36、物
体形状情報記憶手段33に対しそれぞれ別体のメモリを
用いていたが、このうち全部または一部について同一体
のメモリを共有するようにした実施例も考えられる。
In the previous embodiment, all the parts of the intersection searching apparatus were constituted by dedicated hardware. However, for the parts other than the voxel tracking unit 25, an embodiment using a microprocessor is also conceivable. In this case, 1
It is possible that one microprocessor plays the role of multiple circuits. Further, in the previous embodiment, separate memories are provided for the bank 241 constituting the voxel information storage means 24, the respective memories of the object set storage means 27 and 37, the lattice information memories 26 and 36, and the object shape information storage means 33. Although the embodiment is used, an embodiment in which the same memory is shared for all or a part of them is also conceivable.

【0166】前実施例では、本発明による交点探索装置
を、最も典型的な光線追跡法である視点より実際の光の
進行方向とは逆向きに追跡する方法による画像生成のた
めに利用したが、光源側から順方向に追跡するものや、
逆方向追跡と順方向追跡を併用するような光線追跡に対
しても利用することができる。また、レイ・キャスティ
ング法と呼ばれる視点から最初の物体までで光線の追跡
を打ち切るものに利用することもできる。さらに、光線
は必ずしも物理的な光に対応している必要はなく、例え
ば電磁波や音波の進行を光線とみなすことよって、電磁
波や音の反射のシミュレーションに本発明による交点探
索装置を利用するこも可能である。
In the previous embodiment, the intersection searching apparatus according to the present invention is used for generating an image by a method of tracing from the viewpoint, which is the most typical ray tracing method, in the direction opposite to the actual traveling direction of light. , One that tracks forward from the light source side,
It can also be used for ray tracing in which backward tracing and forward tracing are used together. Further, the present invention can also be used for a ray casting method in which ray tracing is stopped from the viewpoint to the first object. Furthermore, rays do not necessarily correspond to physical light, and for example, by considering the progress of electromagnetic waves and sound waves as rays, it is also possible to use the intersection search device according to the present invention for simulation of reflection of electromagnetic waves and sound. It is.

【0167】[0167]

【発明の効果】本発明によれば、1本の光線についての
交点探索処理をメモリアクセス時間の数倍程度の時間で
処理することができる。これは複数の汎用プロセッサに
基づいた従来の装置では到底到達し得ないほど高速なも
のである。この結果、光線追跡法を用いて3次元陰影つ
き画像を動画として見えうる程度に高速に生成すること
が本発明によって可能となった。しかも、本発明の交点
探索装置は、浮動小数点演算器を必要とせず、カスタム
VLSIによって低コストで実現することが可能であ
る。
According to the present invention, the intersection search processing for one light ray can be performed in a time several times as long as the memory access time. This is so fast that conventional devices based on a plurality of general-purpose processors can never reach. As a result, it has become possible according to the present invention to generate a three-dimensional shaded image as fast as a moving image using the ray tracing method. Moreover, the intersection search device of the present invention does not require a floating point arithmetic unit, and can be realized at low cost by a custom VLSI.

【0168】上で述べた1本の光線についての交点探索
処理にかかる時間の具体的な値は、発明者の行ったシミ
ュレーション実験によると、以下の通りである。ここで
示す処理時間は、図1から図34によって説明した前記
実施例において、n=32、k=2、物体決定回路の段
数はボクセル追跡部、交差計算部ともに3段、各FIF
Oバッファの容量はボクセル追跡部で5パケット分、交
差計算部で10パケット分とした場合のものである。ま
た、交差計算部の割り当てには、各クロック周期ごと交
互に別の交差計算部へ転送するという方法を用いた。生
成する画像は、512×512画素の大きさであり、ア
ンチエイリアシングを行うものとした。画像生成の対象
となる3次元物体群としては、場面1から場面3までの
3つの異なる物体群を用いた。場面1は、2つの拡散反
射をもつ球と1つ鏡面反射をもつ平面と1つの透過性を
もつ立方体から構成され、三角形分割を行った結果の総
三角形数は1、934個、局所格子数は2個、追跡され
る総光線数(鏡面反射方向、透過方向、光源方向に追跡
される光線も含む)は859、773本である。場面2
は、1つの拡散反射をもつティーポットから構成され、
三角形分割を行った結果の総三角形数は4、096個、
局所格子数は8個、追跡される総光線数は398、56
8本である。場面3は、計17個の球および自由曲面に
よって構成された人形のモデルであり、17個のうち1
つは透明体、残りは拡散反射体である。場面3の三角形
分割を行った結果の総三角形数は10、904個、局所
格子数は19個、追跡される総光線数は1、129、3
38本である。以上の条件下における交点探索処理にか
かる時間は次の通りである。場面1では、交点探索処理
全体として2、002、928クロック周期かかり、1
光線当たり平均2.33クロック周期である。場面2で
は、交点探索処理全体として2、494、674クロッ
ク周期かかり、1光線当たり平均6.26クロック周期
である。場面3では、交点探索処理全体として4、91
1、408クロック周期かかり、1光線当たり平均4.
35クロック周期である。従って、50MHzのクロッ
ク速度を仮定するならば、交点探索処理にかかる1光線
当たりの平均の時間は、それぞれ、46.6ナノ秒、1
25.2ナノ秒、87.0ナノ秒となる。
According to a simulation experiment performed by the inventor, the specific value of the time required for the intersection search processing for one ray described above is as follows. The processing time shown here is n = 32, k = 2 in the embodiment described with reference to FIGS. 1 to 34, the number of stages of the object determination circuit is three for both the voxel tracking unit and the intersection calculation unit, and each FIF
The capacity of the O-buffer is obtained when the voxel tracing unit has 5 packets and the intersection calculation unit has 10 packets. In addition, a method of alternately transferring each clock cycle to another intersection calculation unit was used for assignment of the intersection calculation unit. The image to be generated has a size of 512 × 512 pixels and performs anti-aliasing. As a three-dimensional object group to be subjected to image generation, three different object groups from scene 1 to scene 3 were used. Scene 1 is composed of a sphere having two diffuse reflections, a plane having one specular reflection, and a cube having one transparency. The total number of triangles resulting from the triangulation is 1,934, and the number of local grids is one. Is 2, and the total number of rays traced (including rays traced in the specular reflection direction, the transmission direction, and the light source direction) is 859 or 773. Scene 2
Consists of a teapot with one diffuse reflection,
The total number of triangles resulting from the triangulation is 4,096,
8 local grids, 398, 56 total rays traced
There are eight. Scene 3 is a model of a doll composed of a total of 17 spheres and free-form surfaces.
One is a transparent body and the rest are diffuse reflectors. The total number of triangles resulting from the triangulation of scene 3 is 10,904, the number of local grids is 19, and the total number of rays traced is 1,129,3
There are 38. The time required for the intersection search processing under the above conditions is as follows. In scene 1, the entire intersection search process takes 2,002,928 clock cycles, and 1
The average is 2.33 clock cycles per ray. In scene 2, the entire intersection search process takes 2, 494, and 674 clock cycles, with an average of 6.26 clock cycles per ray. In scene 3, 4, 91 as a whole
It takes 1,408 clock cycles and averages 4 per ray.
This is 35 clock cycles. Therefore, assuming a clock speed of 50 MHz, the average time per ray for the intersection search processing is 46.6 nanoseconds and 1 average, respectively.
25.2 nanoseconds and 87.0 nanoseconds.

【0169】また、上の3つ場面に対して交点探索処理
を行った際の各部の稼働率、すなわち全クロック周期に
対する有効クロック周期の割合は以下の通りである。場
面1の場合、ボクセル追跡部は81.0%、交差計算部
はどちらも83.7%であった。場面2の場合、ボクセ
ル追跡部は57.2%、交差計算部はどちらも78.9
%であった。場面3の場合、ボクセル追跡部は87.3
%、交差計算部はどちらも83.4%であった。
The operating rate of each unit when the intersection search processing is performed on the above three scenes, that is, the ratio of the effective clock cycle to the entire clock cycle is as follows. In the case of scene 1, the voxel tracking unit was 81.0%, and the intersection calculation unit was 83.7%. In the case of scene 2, the voxel tracking unit is 57.2%, and the intersection calculation unit is both 78.9%.
%Met. For scene 3, the voxel tracking unit is 87.3
% And the intersection calculation part were both 83.4%.

【0170】また、初期光線発生装置51とシェーディ
ング及び次世代光線発生装置52が、本発明による交点
探索処理装置を待たせない程度に十分に高速に処理でき
るものと仮定した場合、50MHzのクロック速度にお
いて、場面1から3の画像は、それぞれ25.0フレー
ム/秒、20.0フレーム/秒、10.2フレーム/秒
の速度で生成されることになる。これらの速度は、動画
として見えうるために十分な値である。
Also, assuming that the initial ray generator 51 and the shading and next-generation ray generator 52 can perform processing at a sufficiently high speed so as not to make the intersection search processing apparatus according to the present invention wait, a clock speed of 50 MHz is assumed. , The images of scenes 1 to 3 are generated at a rate of 25.0 frames / sec, 20.0 frames / sec, and 10.2 frames / sec, respectively. These velocities are sufficient to be able to be viewed as a moving image.

【図面の簡単な説明】[Brief description of the drawings]

【図1】交点探索装置の全体構造と画像生成装置への適
用例を示す図
FIG. 1 is a diagram showing an overall structure of an intersection search device and an example of application to an image generation device.

【図2】ボクセル追跡部2の構造を表す図FIG. 2 is a diagram illustrating a structure of a voxel tracking unit 2.

【図3】交差計算部3の構造を表す図FIG. 3 is a diagram showing a structure of an intersection calculation unit 3;

【図4】出力バッファ4の構造を表す図FIG. 4 is a diagram showing a structure of an output buffer 4;

【図5】ボクセル空間分割法を説明する図FIG. 5 is a diagram illustrating a voxel space division method.

【図6】光線と交差するボクセルの説明図FIG. 6 is an explanatory diagram of a voxel crossing a light ray.

【図7】交差計算の重複除去を説明する図FIG. 7 is a diagram for explaining overlap removal in intersection calculation;

【図8】重複除去がうまくいかない例を示す図FIG. 8 is a diagram showing an example in which duplication elimination does not work;

【図9】物体集合記憶手段27、37に記憶されている
データの構造を示す図
FIG. 9 is a diagram showing the structure of data stored in object set storage means 27 and 37.

【図10】ボクセル情報記憶手段24に記憶されている
データの構造を示す図
FIG. 10 is a diagram showing a structure of data stored in a voxel information storage unit 24;

【図11】z主軸ボクセル情報244の詳細構造を示す
FIG. 11 is a diagram showing a detailed structure of z-spindle voxel information 244.

【図12】交点探索処理の一例を説明する図FIG. 12 illustrates an example of an intersection search process.

【図13】光線パケットの基幹部分の構造を示す図FIG. 13 is a diagram showing a structure of a main part of a light ray packet;

【図14】光線パケットの一部である追跡ボクセル情報
714、退避用追跡ボクセル情報715の詳細構造を示
す図
FIG. 14 is a diagram showing a detailed structure of tracking voxel information 714 and evacuation tracking voxel information 715 which are a part of a ray packet.

【図15】光線パケットの追加部分の構造を示す図FIG. 15 is a diagram showing a structure of an additional portion of a light packet.

【図16】DDA誤差項の幾何的な意味を説明する図FIG. 16 is a view for explaining the geometric meaning of a DDA error term;

【図17】DDA初期化回路23の動作を示す等価フロ
ーチャート
FIG. 17 is an equivalent flowchart showing the operation of the DDA initialization circuit 23;

【図18】ボクセル追跡ユニット25の動作を示す等価
フローチャート
FIG. 18 is an equivalent flowchart showing the operation of the voxel tracking unit 25.

【図19】誤差項更新処理2506の内容を示す等価フ
ローチャート
FIG. 19 is an equivalent flowchart showing the contents of an error term update process 2506.

【図20】ボクセル訪問処理254の内容を示す等価フ
ローチャート
FIG. 20 is an equivalent flowchart showing the contents of voxel visit processing 254.

【図21】SD方向歩進処理2511、2514、25
19の内容を示す等価フローチャート
FIG. 21 is an SD-direction incremental process 2511, 2514, 25;
Equivalent flowchart showing the contents of 19

【図22】PA方向歩進処理2512、2516、25
17の内容を示す等価フローチャート
[FIG. 22] PA direction step processing 2512, 2516, 25
Equivalent flowchart showing the contents of 17

【図23】DA方向歩進処理2521の内容を示す等価
フローチャート
FIG. 23 is an equivalent flowchart showing the contents of a DA stepping process 2521;

【図24】追跡終了処理回路211の動作を示す等価フ
ローチャート
FIG. 24 is an equivalent flowchart showing the operation of the tracking end processing circuit 211.

【図25】オーバーラン検査回路212の動作を示す等
価フローチャート
FIG. 25 is an equivalent flowchart showing the operation of the overrun inspection circuit 212;

【図26】L1範囲検査回路214、314の動作を示
す等価フローチャート
FIG. 26 is an equivalent flowchart showing the operation of the L1 range inspection circuits 214 and 314.

【図27】リスト先頭要素決定回路215、315の動
作を示す等価フローチャート
FIG. 27 is an equivalent flowchart showing the operation of the list head element determination circuits 215 and 315

【図28】物体決定回路216、316の動作を示す等
価フローチャート
FIG. 28 is an equivalent flowchart showing the operation of the object determination circuits 216 and 316.

【図29】出力先決定回路217、317の動作を示す
等価フローチャート
FIG. 29 is an equivalent flowchart showing the operation of the output destination determination circuits 217 and 317

【図30】push処理21704の内容を示す等価フ
ローチャート
FIG. 30 is an equivalent flowchart showing the contents of push processing 21704.

【図31】pop処理21206,31306の内容を
示す等価フローチャート
FIG. 31 is an equivalent flowchart showing the contents of pop processing 21206 and 31306.

【図32】交差計算回路32の動作を示す等価フローチ
ャート
FIG. 32 is an equivalent flowchart showing the operation of the intersection calculation circuit 32;

【図33】L2範囲検査回路313の動作を示す等価フ
ローチャート
FIG. 33 is an equivalent flowchart showing the operation of the L2 range inspection circuit 313

【図34】ボクセル追跡ユニット25の詳細構造を示す
FIG. 34 is a diagram showing a detailed structure of a voxel tracking unit 25.

【図35】2種類以上の異なる形状を扱う実施例におけ
る変更点を示す図
FIG. 35 is a diagram showing changes in the embodiment that handles two or more types of different shapes.

【符号の説明】[Explanation of symbols]

1 交点探索装置 2 ボクセル追跡部 3 交差計算部 4 出力バッファ 22 ボクセル追跡回路 23 DDA初期化回路 24 ボクセル情報記憶手段 25 ボクセル追跡ユニット 26、36 格子情報メモリ 27、37 物体集合記憶手段 32 交差計算回路 33 物体形状情報記憶手段 51 初期光線発生装置 52 シェーディング及び次世代光線発生装
置 53 フレームバッファ 54 CRT表示装置 81、82 通信経路 211 追跡終了処理回路 212 オーバーラン検査回路 313 L2範囲検査回路 214、314 L1範囲検査回路 215、315 リスト先頭要素決定回路 216、316 物体決定回路 217、317 出力先決定回路 241 バンク 271、371 リストヘッダメモリ 272、372 リスト要素メモリ
DESCRIPTION OF SYMBOLS 1 Intersection search device 2 Voxel tracking part 3 Intersection calculation part 4 Output buffer 22 Voxel tracking circuit 23 DDA initialization circuit 24 Voxel information storage means 25 Voxel tracking unit 26, 36 Grid information memory 27, 37 Object set storage means 32 Intersection calculation circuit 33 Object Shape Information Storage Means 51 Initial Ray Generator 52 Shading and Next Generation Ray Generator 53 Frame Buffer 54 CRT Display 81, 82 Communication Path 211 Tracking End Processing Circuit 212 Overrun Inspection Circuit 313 L2 Range Inspection Circuit 214, 314 L1 Range inspection circuit 215, 315 List head element determination circuit 216, 316 Object determination circuit 217, 317 Output destination determination circuit 241 Bank 271, 371 List header memory 272, 372 List element memory

Claims (23)

【特許請求の範囲】[Claims] 【請求項1】3次元仮想空間内に定義された3次元物体
群の各種情報に基づき、光線の各種パラメータを入力と
して受け取り、前記3次元仮想空間内に六面体のボクセ
ルを要素とする1つまたは複数の3次元格子を設定し、
前記光線と前記3次元物体群との交点情報を出力する装
置において、前記ボクセルの夫々について当該ボクセル
に含まれる3次元物体との交差計算の必要性を示す情報
を記憶する1つまたは複数のボクセル情報記憶手段と、
前記ボクセル情報記憶手段より前記交差計算の必要性を
示す情報を読み出し、前記光線と交差し、かつ交差計算
の必要性があると見なされるボクセルのインデックスを
出力する1つまたは複数のボクセル追跡回路と、を備
え、前記ボクセル情報記憶手段は、それぞれ異なるアド
レスによって読み出しが可能な複数のバンクを有し、前
記3次元格子の夫々におけるどの座標軸に関するどのボ
クセル平面集合も前記バンクのうちの少なくとも1つに
配置され、前記ボクセル追跡回路は複数のボクセル追跡
ユニットを有し、該ボクセル追跡ユニットの夫々は、前
記光線の方向ベクトル成分の絶対値が最大となる座標軸
に関するボクセル平面集合群のうち予め決められたいく
つかのボクセル平面集合を担当し、該予め決められたい
くつかのボクセル平面集合に含まれかつ前記光線と交差
を持つボクセルを、漏れなく特定する機能を有すること
を特徴とする交点探索装置。
1. A method for receiving various parameters of light rays as input based on various information of a group of three-dimensional objects defined in a three-dimensional virtual space, and including one or more hexahedral voxels as elements in the three-dimensional virtual space. Set multiple 3D grids,
An apparatus for outputting intersection information between the ray and the group of three-dimensional objects, wherein one or a plurality of voxels storing information indicating the necessity of intersection calculation between each of the voxels and a three-dimensional object included in the voxel Information storage means;
One or more voxel tracking circuits for reading information indicating the necessity of the intersection calculation from the voxel information storage means and outputting an index of a voxel that intersects with the ray and is considered to need the intersection calculation; Wherein the voxel information storage means has a plurality of banks each readable by different addresses, and any set of voxel planes for any coordinate axis in each of the three-dimensional grids is stored in at least one of the banks. Arranged, the voxel tracking circuit has a plurality of voxel tracking units, each of the voxel tracking units being a predetermined one of a group of voxel plane sets related to coordinate axes where the absolute value of the direction vector component of the light ray is maximum. Is responsible for some voxel plane sets, and for the predetermined number of voxel planes Voxels having intersecting the in the set and the light beam, intersection search apparatus characterized by having a specific functions without omission.
【請求項2】請求項1記載の交点探索装置において、前
記ボクセル追跡回路が、kを2以上の定数とするとき、
一度に高々k個のボクセルのインデックスを出力するこ
とを特徴とする交点探索装置。
2. The intersection searching apparatus according to claim 1, wherein said voxel tracking circuit sets k as a constant of 2 or more.
An intersection search apparatus, which outputs at most k voxel indices at a time.
【請求項3】請求項1記載の交点探索装置において、前
記3次元格子が占める空間の一部に対して局所的な3次
元格子を設定し、該局所的な3次元格子を前記3次元物
体の一種とすることによって前記3次元格子群を階層的
に編成することを特徴とする交点探索装置。
3. The intersection searching apparatus according to claim 1, wherein a local three-dimensional grid is set for a part of a space occupied by the three-dimensional grid, and the local three-dimensional grid is set to the three-dimensional object. An intersection search apparatus characterized in that the three-dimensional lattice group is hierarchically organized by being one of the following.
【請求項4】請求項1記載の交点探索装置において、n
を2以上の定数とし、n個の前記ボクセル追跡ユニット
と、n個の前記バンクを有し、iを1以上n以下の整数
とするとき、i番目の前記ボクセル追跡ユニットはi番
目の前記バンクに格納されているボクセルに関する処理
を担当し、mを0以上の任意の整数とし、i番目の前記
バンクは、各軸に関するボクセル平面集合のうち、座標
値の小さい方から数えてi+m・n番目と、座標値の大
きい方から数えてi+m・n番目のボクセル平面集合を
格納することを特徴とする交点探索装置。
4. An intersection search apparatus according to claim 1, wherein n
Is a constant of 2 or more, and has n number of the voxel tracking units and n number of banks, and i is an integer of 1 or more and n or less, the i-th voxel tracking unit is the i-th bank. , Where m is an arbitrary integer greater than or equal to 0, and the i-th bank is the (i + m.n) -th number of voxel plane sets for each axis counted from the smallest coordinate value. And an i + m · n-th set of voxel planes counted from the largest coordinate value.
【請求項5】請求項4記載の交点探索装置において、前
記3次元格子におけるボクセルの分割数を各軸ともn以
下に制限したことを特徴とする交点探索装置。
5. The intersection search apparatus according to claim 4, wherein the number of voxel divisions on said three-dimensional grid is limited to n or less for each axis.
【請求項6】請求項1記載の交点探索装置において、前
記ボクセル追跡ユニットは、通信手段によって直線状に
相互接続されていることを特徴とする交点探索装置。
6. An intersection searching apparatus according to claim 1, wherein said voxel tracking units are interconnected in a straight line by communication means.
【請求項7】請求項1又は6記載の交点探索装置におい
て、前記ボクセル追跡回路が、前記バンクにおける1つ
のデータの読み出し時間をパイプラインピッチとしたパ
イプライン処理を行うことを特徴とする交点探索装置。
7. The intersection search device according to claim 1, wherein said voxel tracking circuit performs a pipeline process using a read time of one data in said bank as a pipeline pitch. apparatus.
【請求項8】請求項1記載の交点探索装置において、前
記ボクセル追跡回路が、3つの座標軸に対して当該光線
の方向ベクトルの成分の絶対値の大きい順に主駆動軸、
副駆動軸、受動軸とするとき、主駆動軸と副駆動軸間の
2次元DDA(デジタル・デファレンシャル・アナライ
ザ)と、主駆動軸と受動軸間の2次元DDAと、副駆動
軸と受動軸間の2次元DDAと、を同期させながら並行
に実行することによって前記光線と交差を持つボクセル
を見い出すことを特徴とする交点探索装置。
8. The intersection searching device according to claim 1, wherein the voxel tracking circuit comprises: a main driving axis in an order of an absolute value of a component of a direction vector of the light beam with respect to three coordinate axes;
When the auxiliary drive axis and the passive axis are used, a two-dimensional DDA (digital differential analyzer) between the main drive axis and the auxiliary drive axis, a two-dimensional DDA between the main drive axis and the passive axis, and the auxiliary drive axis and the passive axis An intersection search device characterized in that a voxel having an intersection with the light ray is found by executing the two-dimensional DDA in parallel and in parallel with each other.
【請求項9】請求項1記載の交点探索装置において、前
記バンクは、ボクセルについての前記交差計算の必要性
を示す情報と、該ボクセルの周囲のボクセルについての
前記交差計算の必要性を示す情報とを同一の語に格納す
ることを特徴とする交点探索装置。
9. The intersection search apparatus according to claim 1, wherein the bank indicates the necessity of the intersection calculation for the voxel and the information indicating the necessity of the intersection calculation for the voxel around the voxel. Are stored in the same word.
【請求項10】請求項9記載の交点探索装置において、
前記交差計算の必要性を示す情報は、当該ボクセルに含
まれる3次元物体の集合と、その近傍に位置するボクセ
ルに含まれる3次元物体の集合との包含関係によって定
められる情報を有することを特徴とする交点探索装置。
10. The intersection search device according to claim 9,
The information indicating the necessity of the intersection calculation has information defined by an inclusion relationship between a set of three-dimensional objects included in the voxel and a set of three-dimensional objects included in voxels located in the vicinity of the set. Intersection search device.
【請求項11】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体との交差計算の必要性を示す
情報を記憶する1つまたは複数のボクセル情報記憶手段
と、前記ボクセル情報記憶手段より前記交差計算の必要
性を示す情報を読み出し、前記光線と交差し、かつ交差
計算の必要性があると見なされるボクセルのインデック
スを出力する1つまたは複数のボクセル追跡回路と、を
備え、前記ボクセル追跡回路が、kを2以上の定数とす
るとき、一度に高々k個のボクセルのインデックスを出
力することを特徴とする交点探索装置。
11. Based on various information of a three-dimensional object group defined in a three-dimensional virtual space, various parameters of a light ray are received as input, and one or more elements having hexahedral voxels as elements in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, information indicating the necessity of calculating the intersection of each of the voxels with the three-dimensional object included in the voxel One or a plurality of voxel information storage means for storing the information indicating the necessity of the intersection calculation from the voxel information storage means, and voxels which intersect with the ray and are deemed to need the intersection calculation And one or more voxel tracking circuits that output an index of at least one k at a time when k is a constant of 2 or more. Intersection search unit and outputs the indices of voxels.
【請求項12】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体との交差計算の必要性を示す
情報を記憶する1つまたは複数のボクセル情報記憶手段
と、前記ボクセル情報記憶手段より前記交差計算の必要
性を示す情報を読み出し、前記光線と交差し、かつ交差
計算の必要性があると見なされるボクセルのインデック
スを出力する1つまたは複数のボクセル追跡回路と、を
備え、前記3次元格子が占める空間の一部に対して局所
的な3次元格子を設定し、該局所的な3次元格子を前記
3次元物体の一種とすることによって前記3次元格子群
を階層的に編成することを特徴とする交点探索装置。
12. Based on various information of a group of three-dimensional objects defined in a three-dimensional virtual space, various parameters of a light ray are received as input, and one or more elements having hexahedral voxels as elements in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, information indicating the necessity of calculating the intersection of each of the voxels with the three-dimensional object included in the voxel One or a plurality of voxel information storage means for storing the information indicating the necessity of the intersection calculation from the voxel information storage means, and voxels which intersect with the ray and are deemed to need the intersection calculation And one or more voxel tracking circuits that output an index of the three-dimensional grid. And, intersection search apparatus characterized by hierarchically organize the 3-dimensional lattice by the said local three-dimensional lattice is a type of the three-dimensional object.
【請求項13】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体との交差計算の必要性を示す
情報を記憶する1つまたは複数のボクセル情報記憶手段
と、前記ボクセル情報記憶手段より前記交差計算の必要
性を示す情報を読み出し、前記光線と交差し、かつ交差
計算の必要性があると見なされるボクセルのインデック
スを出力する1つまたは複数のボクセル追跡回路と、を
備え、前記ボクセル追跡回路が、3つの座標軸に対して
当該光線の方向ベクトルの成分の絶対値の大きい順に主
駆動軸、副駆動軸、受動軸とするとき、主駆動軸と副駆
動軸間の2次元DDA(デジタル・デファレンシャル・
アナライザ)と、主駆動軸と受動軸間の2次元DDA
と、副駆動軸と受動軸間の2次元DDAと、を同期させ
ながら並行に実行することによって前記光線と交差を持
つボクセルを見い出すことを特徴とする交点探索装置。
13. A three-dimensional virtual space, based on various information of a group of three-dimensional objects, receiving various parameters of light rays as input, and including one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, information indicating the necessity of calculating the intersection of each of the voxels with the three-dimensional object included in the voxel One or a plurality of voxel information storage means for storing the information indicating the necessity of the intersection calculation from the voxel information storage means, and voxels which intersect with the ray and are deemed to need the intersection calculation And one or more voxel tracking circuits that output an index of the light beam. The main drive shaft in descending order of the absolute value of the components of the Le, the auxiliary drive shaft, when the driven shaft, two-dimensional DDA between the main drive shaft and the secondary drive shaft (Digital Differential -
Analyzer) and two-dimensional DDA between the main drive axis and the passive axis
And a two-dimensional DDA between the auxiliary drive axis and the passive axis, which is executed in parallel while synchronizing, to find a voxel having an intersection with the light ray.
【請求項14】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体の集合を記憶する1つまたは
複数の物体集合記憶手段を備え、前記物体集合記憶手段
は、各ボクセルに含まれる各3次元物体について、当該
ボクセルの近傍に位置するボクセルの各々に当該3次元
物体と同一の3次元物体が含まれているか否かを記録し
た重複除去情報を更に保持することを特徴とする交点探
索装置。
14. Based on various information of a three-dimensional object group defined in a three-dimensional virtual space, various parameters of light rays are received as input, and one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In an apparatus for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, one or a plurality of sets each storing a set of three-dimensional objects included in the voxel for each of the voxels Object set storage means, wherein for each three-dimensional object included in each voxel, each of the voxels located near the voxel includes the same three-dimensional object as the three-dimensional object. An intersection search apparatus characterized by further retaining duplication elimination information that records whether or not there is any intersection.
【請求項15】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体との交差計算の必要性を示す
情報を記憶する1つまたは複数のボクセル情報記憶手段
を備え、前記交差計算の必要性を示す情報は、当該ボク
セルに含まれる3次元物体の集合と、その近傍に位置す
るボクセルに含まれる3次元物体の集合との包含関係に
よって定められる情報を有することを特徴とする交点探
索装置。
15. Based on various information of a group of three-dimensional objects defined in a three-dimensional virtual space, various parameters of light rays are received as input, and one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, information indicating the necessity of calculating the intersection of each of the voxels with the three-dimensional object included in the voxel One or a plurality of voxel information storage means for storing a set of three-dimensional objects included in the voxel and a set of three-dimensional objects included in the voxel located in the vicinity thereof. An intersection search device having information defined by an inclusion relationship with a set of intersections.
【請求項16】請求項15記載の交点探索装置におい
て、前記ボクセルの夫々について当該ボクセルに含まれ
る3次元物体の集合を記憶する1つまたは複数の物体集
合記憶手段を更に備え、前記物体集合記憶手段は、各ボ
クセルに含まれる各3次元物体について、当該ボクセル
の近傍に位置するボクセルの各々に当該3次元物体と同
一の3次元物体が含まれているか否かを記録した重複除
去情報を更に保持することを特徴とする交点探索装置。
16. The intersection searching apparatus according to claim 15, further comprising one or more object set storage means for storing a set of three-dimensional objects included in each voxel for each of said voxels, wherein said object set storage is performed. The means further includes, for each three-dimensional object included in each voxel, duplicate removal information that records whether or not each of the voxels located near the voxel includes the same three-dimensional object as the three-dimensional object. An intersection search device characterized by holding.
【請求項17】請求項14又は15記載の交点探索装置
において、前記近傍に位置するボクセルが隣接する6つ
のボクセルであることを特徴とする交点探索装置。
17. The intersection search apparatus according to claim 14, wherein the voxels located in the vicinity are six adjacent voxels.
【請求項18】請求項14又は15記載の交点探索装置
において、前記3次元格子が占める空間の一部に対して
局所的な3次元格子を設定し、該局所的な3次元格子を
前記3次元物体の一種とすることによって3次元格子群
を階層的に編成することを特徴とする交点探索装置。
18. The intersection search apparatus according to claim 14, wherein a local three-dimensional grid is set for a part of the space occupied by the three-dimensional grid, and the local three-dimensional grid is set to the three-dimensional grid. An intersection search apparatus characterized in that a three-dimensional lattice group is hierarchically organized by being a kind of a three-dimensional object.
【請求項19】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を出力す
る装置において、前記ボクセルの夫々について当該ボク
セルに含まれる3次元物体との交差計算の必要性を示す
情報を記憶する1つまたは複数のボクセル情報記憶手段
と、前記ボクセル情報記憶手段より前記交差計算の必要
性を示す情報を読み出し、前記光線と交差し、かつ交差
計算の必要性があると見なされるボクセルのインデック
スを出力する1つまたは複数のボクセル追跡回路と、前
記ボクセル追跡回路より出力されたボクセルのインデッ
クスをもとに、交差計算すべき3次元物体を決定する1
つまたは複数の物体決定回路と、前記物体決定回路によ
って決定された前記交差計算すべき3次元物体と前記光
線との直接的交差計算を行う1つまたは複数の交差計算
回路と、を有し、前記ボクセル追跡回路の各々と、前記
交差計算回路の各々に対し、それぞれ別体の前記物体決
定回路を備えることを特徴とする交点探索装置。
19. Based on various information of a three-dimensional object group defined in a three-dimensional virtual space, various parameters of light rays are received as inputs, and one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In a device for setting a plurality of three-dimensional grids and outputting intersection information between the light beam and the three-dimensional object group, information indicating the necessity of calculating the intersection of each of the voxels with the three-dimensional object included in the voxel One or a plurality of voxel information storage means for storing the information indicating the necessity of the intersection calculation from the voxel information storage means, and voxels which intersect with the ray and are deemed to need the intersection calculation And one or more voxel tracking circuits that output the index of the voxel, and based on the voxel index output from the voxel tracking circuit, 1 to determine the three-dimensional object to be calculated
One or more object determination circuits, and one or more intersection calculation circuits for performing a direct intersection calculation between the three-dimensional object to be calculated for intersection and the light ray determined by the object determination circuit, An intersection search device, comprising: a separate object determination circuit for each of the voxel tracking circuit and each of the intersection calculation circuits.
【請求項20】請求項1又は4記載の交点探索装置にお
いて、前記バンクは、より大容量かつより低速な記憶手
段に接続された小容量かつ高速な記憶手段であることを
特徴とする交点探索装置。
20. The intersection search apparatus according to claim 1, wherein said bank is a small-capacity and high-speed storage means connected to a larger-capacity and lower-speed storage means. apparatus.
【請求項21】3次元仮想空間を六面体のボクセルを要
素とする3次元格子状に分割し、光線の各種パラメータ
を入力として受け取り、前記光線と交差する前記ボクセ
ルを見い出すボクセル追跡方法において、3つの座標軸
に対して前記光線の方向ベクトルの成分の絶対値の大き
い順に主駆動軸、副駆動軸、受動軸とするとき、主駆動
軸と副駆動軸の2次元DDAと、主駆動軸と受動軸間の
2次元DDAと、副駆動軸と受動軸間の2次元DDA
と、を並行に実行することによって前記光線と交差を持
つボクセルを見い出すことを特徴とするボクセル追跡方
法。
21. A voxel tracking method for dividing a three-dimensional virtual space into a three-dimensional lattice having hexahedral voxels as elements, receiving various parameters of light rays as inputs, and finding the voxels intersecting with the light rays. When the main drive axis, the sub drive axis, and the passive axis are set in the descending order of the absolute value of the component of the direction vector of the light ray with respect to the coordinate axis, the two-dimensional DDA of the main drive axis and the sub drive axis, and the main drive axis and the passive axis Two-dimensional DDA between the auxiliary drive axis and the passive axis
And v. Finding a voxel having an intersection with the ray by executing the voxel in parallel.
【請求項22】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を算出す
る交点探索方法において、各ボクセルに含まれる各3次
元物体について、当該ボクセルの近傍に位置するボクセ
ルの各々に当該3次元物体と同一の3次元物体が含まれ
ているか否かを示す情報を記録したテーブルを利用する
ことによって、重複した交差計算を削減すること特徴と
する交点探索方法。
22. Based on various information of a group of three-dimensional objects defined in a three-dimensional virtual space, various parameters of a light ray are received as input, and one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In the intersection search method for setting a plurality of three-dimensional grids and calculating intersection information between the light ray and the three-dimensional object group, for each three-dimensional object included in each voxel, each of the voxels located in the vicinity of the voxel An intersection search method characterized by using a table in which information indicating whether the same three-dimensional object as the three-dimensional object is included is used to reduce duplicate intersection calculations.
【請求項23】3次元仮想空間内に定義された3次元物
体群の各種情報に基づき、光線の各種パラメータを入力
として受け取り、前記3次元仮想空間内に六面体のボク
セルを要素とする1つまたは複数の3次元格子を設定
し、前記光線と前記3次元物体群との交点情報を算出す
る交点探索方法において、各ボクセルごとに当該ボクセ
ルに含まれる3次元物体の集合と、その近傍に位置する
ボクセルに含まれる3次元物体の集合との包含関係によ
って定められる情報を記録したテーブルを使用すること
によって、重複した交差計算を削減することを特徴とす
る交点探索方法。
23. Based on various information of a group of three-dimensional objects defined in a three-dimensional virtual space, various parameters of a light ray are received as input, and one or more elements each having a hexahedral voxel as an element in the three-dimensional virtual space. In an intersection search method for setting a plurality of three-dimensional grids and calculating intersection information between the light beam and the three-dimensional object group, a set of three-dimensional objects included in the voxel for each voxel, and a set of three-dimensional objects located in the vicinity thereof An intersection search method characterized by using a table in which information defined by an inclusion relation with a set of three-dimensional objects included in voxels is used to reduce duplicate intersection calculations.
JP20106398A 1998-06-10 1998-06-10 Intersection search device for light ray tracing Pending JPH11353496A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20106398A JPH11353496A (en) 1998-06-10 1998-06-10 Intersection search device for light ray tracing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20106398A JPH11353496A (en) 1998-06-10 1998-06-10 Intersection search device for light ray tracing

Publications (1)

Publication Number Publication Date
JPH11353496A true JPH11353496A (en) 1999-12-24

Family

ID=16434776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20106398A Pending JPH11353496A (en) 1998-06-10 1998-06-10 Intersection search device for light ray tracing

Country Status (1)

Country Link
JP (1) JPH11353496A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001266174A (en) * 2000-02-28 2001-09-28 Mitsubishi Electric Research Laboratories Inc Method for expressing graphic object
KR100372901B1 (en) * 2000-06-20 2003-02-19 김세현 Ray-tracing acceleration method using ZF-buffer
KR100939212B1 (en) 2007-12-15 2010-01-28 한국전자통신연구원 Method and system for parallel?ray tracing by using ray set
JP2011503757A (en) * 2007-11-19 2011-01-27 コースティック グラフィックス、インク. Ray tracing rendering system and method
JP2011055379A (en) * 2009-09-04 2011-03-17 Konica Minolta Business Technologies Inc Device link profile creating device, device link profile creating method, and program
JP2011515766A (en) * 2008-03-21 2011-05-19 コースティック グラフィックス、インク. Parallelized cross-test and shading architecture for ray-trace rendering
JP2012502394A (en) * 2008-09-09 2012-01-26 コースティック グラフィックス インコーポレイテッド Ray tracing with ray-specific clipping
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing
CN109792528A (en) * 2016-09-19 2019-05-21 交互数字Vc控股公司 The method and apparatus for indicating the point cloud of scene is reconstructed using light field data

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001266174A (en) * 2000-02-28 2001-09-28 Mitsubishi Electric Research Laboratories Inc Method for expressing graphic object
JP4610104B2 (en) * 2000-02-28 2011-01-12 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド How to represent graphic objects
KR100372901B1 (en) * 2000-06-20 2003-02-19 김세현 Ray-tracing acceleration method using ZF-buffer
JP2011503757A (en) * 2007-11-19 2011-01-27 コースティック グラフィックス、インク. Ray tracing rendering system and method
JP2014081972A (en) * 2007-11-19 2014-05-08 Caustic Graphics Inc Rendering system and method by ray tracing
KR100939212B1 (en) 2007-12-15 2010-01-28 한국전자통신연구원 Method and system for parallel?ray tracing by using ray set
JP2011515766A (en) * 2008-03-21 2011-05-19 コースティック グラフィックス、インク. Parallelized cross-test and shading architecture for ray-trace rendering
JP2012502394A (en) * 2008-09-09 2012-01-26 コースティック グラフィックス インコーポレイテッド Ray tracing with ray-specific clipping
JP2011055379A (en) * 2009-09-04 2011-03-17 Konica Minolta Business Technologies Inc Device link profile creating device, device link profile creating method, and program
US9779537B2 (en) 2012-07-24 2017-10-03 Samsung Electronics Co., Ltd. Method and apparatus for ray tracing
CN109792528A (en) * 2016-09-19 2019-05-21 交互数字Vc控股公司 The method and apparatus for indicating the point cloud of scene is reconstructed using light field data

Similar Documents

Publication Publication Date Title
US10984049B2 (en) Performing traversal stack compression
JP3313221B2 (en) Image generation method and image generation device
US6597359B1 (en) Hierarchical space subdivision hardware for ray tracing
US9754405B1 (en) System, method and computer-readable medium for organizing and rendering 3D voxel models in a tree structure
US20090167763A1 (en) Quasi-monte carlo light transport simulation by efficient ray tracing
US11450057B2 (en) Hardware acceleration for ray tracing primitives that share vertices
US20070097121A1 (en) Resolution-independent surface rendering using programmable graphics hardware
JP4858795B2 (en) Instant ray tracing
CN103403769A (en) Planetary scale object rendering
TW200403595A (en) Scalable high performance 3D graphics
US8497860B2 (en) Spatial decomposition methods using bit manipulation
CN111210498A (en) Reducing the level of detail of a polygon mesh to reduce the complexity of rendered geometry
Teichmann et al. Polygonal Approximation of Voronoi Diagrams of Set of Triangles in Three Dimensions
US8169439B2 (en) Scalar precision float implementation on the “W” lane of vector unit
Vaidyanathan et al. Watertight ray traversal with reduced precision.
CN111445003A (en) Neural network generator
CN110675480A (en) Method and device for acquiring sampling position of texture operation
CN110807827A (en) System generation of stable barycentric coordinates and direct plane equation access
US7777740B2 (en) Spatial decomposition methods using bit manipulation
US20220392147A1 (en) Graphics processing
JPH11353496A (en) Intersection search device for light ray tracing
CN112041894A (en) Improving realism of scenes involving water surface during rendering
CN113822975A (en) Techniques for efficient sampling of images
CN117726732A (en) Reducing false positive ray traversal in bounding volume hierarchies
CN117726496A (en) Reducing false positive ray traversal using ray clipping