[go: up one dir, main page]

JP2001043398A - System and method for displaying three-dimensional object for generating object blur while using motion vector - Google Patents

System and method for displaying three-dimensional object for generating object blur while using motion vector

Info

Publication number
JP2001043398A
JP2001043398A JP2000188595A JP2000188595A JP2001043398A JP 2001043398 A JP2001043398 A JP 2001043398A JP 2000188595 A JP2000188595 A JP 2000188595A JP 2000188595 A JP2000188595 A JP 2000188595A JP 2001043398 A JP2001043398 A JP 2001043398A
Authority
JP
Japan
Prior art keywords
objects
motion vector
buffer
selected object
displaying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000188595A
Other languages
Japanese (ja)
Other versions
JP3286294B2 (en
Inventor
Claire Cherutousuki Iraisu
イライス・クレア・チェルトウスキ
Ray John Charles
チャールズ・レイ・ジョン
L Minoo Barry
バリー・エル・ミノー
Leopold White George Jr
ジョージ・レオポルド・ホワイト・ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001043398A publication Critical patent/JP2001043398A/en
Application granted granted Critical
Publication of JP3286294B2 publication Critical patent/JP3286294B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

PROBLEM TO BE SOLVED: To efficiently simulate an object blur in a three-dimensional(3D) graphics environment by rendering a stationary object just once and executing rendering over series of time slices only concerning a moving object. SOLUTION: When the object is stationary, that object is rendered in a color buffer. A prescribed rendering period is divided into (n) time slices. Time slice count is set to '1'. The moving object is selected and a place, a color and the other all attributes are calculated or corrected for each apex in the object while using the motion vector. Then, the object is rendered in the color buffer. That scene is stored and copied from the color buffer to a storage buffer. When count is equal to (n), the storage buffer is copied to a frame buffer and displayed on a display picture.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、情報処理システム
の分野に関し、より詳細には、三次元オブジェクトを表
示するためのシステムおよび方法に関する。さらに具体
的には、本発明は、動きベクトルを使用してオブジェク
トのぼかし効果を生じさせることに関する。
The present invention relates to the field of information processing systems, and more particularly, to systems and methods for displaying three-dimensional objects. More specifically, the present invention relates to using a motion vector to create an object blur effect.

【0002】[0002]

【従来の技術】三次元(3D)グラフィックス・システ
ムは、CAD、建築設計、航空機その他の乗り物の模擬
訓練装置、分子モデリング、仮想現実アプリケーション
ならびにビデオ・ゲームをはじめとする多様なアプリケ
ーションに使用されている。三次元システムは、3Dグ
ラフィックス・ハードウェアを含むものでもよいし含ま
ないものでもよいワークステーションおよびパーソナル
・コンピュータ上で実現されることが多い。3Dグラフ
ィックス・ハードウェアを含むシステムでは、通常、グ
ラフィックス・アクセレレータ・カードが、グラフィッ
クス・イメージの生成および表示を容易にする。
2. Description of the Related Art Three-dimensional (3D) graphics systems are used for a variety of applications, including CAD, architectural design, aircraft and other vehicle simulation training equipment, molecular modeling, virtual reality applications, and video games. ing. Three-dimensional systems are often implemented on workstations and personal computers, which may or may not include 3D graphics hardware. In systems that include 3D graphics hardware, a graphics accelerator card typically facilitates the generation and display of graphics images.

【0003】ソフトウェア・アプリケーション・プログ
ラムが3Dグラフィックス・シーンを生成し、そのシー
ンを、ライティング属性とともに、アプリケーション・
プログラム・インタフェース(API)に提供する。現
在のAPIは、OpenGL(登録商標)、PHIGSおよ
びDirect3D(登録商標)を含む。3Dグラフィ
ックス・シーンは、頂点のセットによって画定される多
数の多角形(ポリゴン)からなる。頂点が組み合わされ
て、より大きなプリミティブ、たとえば三角形または他
の多角形が形成される。三角形(または多角形)が組み
合わされて面が形成され、その面が組み合わされてオブ
ジェクトが形成される。各頂点は、1)その頂点が属す
るオブジェクトの色を記述するマテリアル色、2)その
頂点で面が向く方向を記述する法線ベクトル、および
3)三つのデカルト座標x、y、zを含む位置を一般に
含む、属性のセットに関連付けられる。各頂点は、場合
によっては、テクスチャ座標やα(すなわち、透明度)
値に関連付けられてもよい。加えて、シーンは一般に、
1)環境光の量を記述する環境色、および2)1個以上
の個々の光源を含む、属性のセットを有する。各光源
は、方向、環境色、拡散色および正反射色を含む、多数
の属性を有する。
[0003] A software application program generates a 3D graphics scene, and describes the scene, along with lighting attributes, with the application application.
Provide to the program interface (API). Current APIs include OpenGL®, PHIGS, and Direct3D®. A 3D graphics scene consists of a number of polygons (polygons) defined by a set of vertices. The vertices combine to form larger primitives, such as triangles or other polygons. Triangles (or polygons) are combined to form surfaces, and the surfaces are combined to form objects. Each vertex is 1) a material color that describes the color of the object to which the vertex belongs, 2) a normal vector that describes the direction the surface is facing at that vertex, and 3) a position that includes three Cartesian coordinates x, y, and z. Associated with a set of attributes, generally including Each vertex may have a texture coordinate or α (ie, transparency)
May be associated with a value. In addition, scenes are generally
It has a set of attributes, including 1) an ambient color that describes the amount of ambient light, and 2) one or more individual light sources. Each light source has a number of attributes, including direction, ambient color, diffuse color and specular color.

【0004】グラフィックス・システムの中では、モニ
タまたは他の表示装置上の表示に備えて3Dグラフィッ
クス・シーンの二次元投影画像を生成するためにレンダ
リングが使用される。通常、レンダリングは、必要に応
じて以下の処理―変換、クリッピング、カリング、ライ
ティング、かぶり計算およびテクスチャ座標生成―の一
つ以上を実行することによって幾何学的プリミティブ
(たとえば点、線および多角形)を処理することを含
む。レンダリングはさらに、プリミティブを処理して表
示装置のための成分ピクセル値を決定するプロセス(具
体的に「ラスタ化」と呼ばれることが多い)を含む。
In graphics systems, rendering is used to generate a two-dimensional projected image of a 3D graphics scene for display on a monitor or other display device. Typically, rendering is performed on geometric primitives (eg, points, lines, and polygons) by performing one or more of the following operations as needed—transformation, clipping, culling, lighting, fogging calculations, and texture coordinate generation. Processing. Rendering further includes the process of processing primitives to determine component pixel values for a display device (often specifically referred to as "rasterization").

【0005】3Dアプリケーションによっては、たとえ
ばコンピュータ・アニメーションおよびシミュレーショ
ン・プログラムでは、3Dグラフィックス・シーン内の
オブジェクトが動くことがある。これらの場合、動きの
あるオブジェクトに関して動きぼけをシュミレートする
ことが望ましい。動きぼけなしでは、動きのあるオブジ
ェクトは、画面上をぎこちなく動くように映るかもしれ
ない。
[0005] In some 3D applications, for example in computer animation and simulation programs, objects in the 3D graphics scene may move. In these cases, it is desirable to simulate motion blur for moving objects. Without motion blur, moving objects may appear to move awkwardly on the screen.

【0006】奥行き(デプス)をシュミレートするとき
にも、オブジェクトをぼかすために同様な技術が一般に
使用される。視野の範囲にあるオブジェクトはぼかされ
ず、より近いオブジェクトまたはより遠く離れたオブジ
ェクトが、カメラ(すなわち、見る人)からの距離にし
たがってぼかされる。
Similar techniques are commonly used to simulate objects when simulating depth. Objects within the field of view are not blurred, but closer or more distant objects are blurred according to their distance from the camera (ie, the viewer).

【0007】オブジェクトぼけをシュミレートする従来
技術の方法は、蓄積(アキュミュレーション)バッファ
の使用を含む。蓄積バッファは、一連のイメージがレン
ダリングされるときそれらのイメージを蓄積するために
使用される非表示バッファである。シーン全体(すなわ
ち、そのシーンの中の各オブジェクトまたはプリミティ
ブ)が一連のタイム・スライスにわたって蓄積バッファ
中に繰り返しレンダリングされる。こうして、シーン全
体は、蓄積バッファ中に蓄積されたのち、表示装置上で
見せるためにフレーム・バッファにコピーされる。
[0007] Prior art methods of simulating object blur involve the use of accumulation (accumulation) buffers. The accumulation buffer is a hidden buffer used to accumulate a series of images as they are rendered. The entire scene (ie, each object or primitive in the scene) is repeatedly rendered in an accumulation buffer over a series of time slices. Thus, the entire scene is stored in the storage buffer and then copied to the frame buffer for viewing on a display.

【0008】蓄積バッファを使用してオブジェクトぼけ
をシュミレートする従来技術の方法を図1に示す。図1
に示すように、期間をn個のタイム・スライスに分割す
る(ステップ100)。期間は、あるシーンが表示装置
上で見られる時間の量であり、ビデオ・カメラ・シャッ
タの露光間隔またはシャッタ速度に類似している。シャ
ッタ速度が遅くなるほどぼやけ方が多くなり、シャッタ
速度が速くなるほどぼやけ方も少なくなる。タイム・ス
ライス・カウントを1にセットする(ステップ10
2)。次に、オブジェクト(すなわち、プリミティブ)
をレンダリングのために選択する(ステップ104)。
この特定のタイム・スライスについて、オブジェクト中
の頂点ごとに場所、色および他のすべての頂点ごとの値
を計算する(ステップ106)。そして、そのオブジェ
クトを色バッファ中にレンダリングする(ステップ10
8)。レンダリングされたオブジェクトがそのシーン中
の最後のオブジェクトであるかどうかを決定する(ステ
ップ110)。最後のオブジェクトではないならば、プ
ロセスは、ステップ104にループバックし、シーン中
のオブジェクトごとに繰り返される。
A prior art method of simulating object blur using a storage buffer is shown in FIG. FIG.
, The period is divided into n time slices (step 100). The time period is the amount of time a scene is seen on the display device, similar to the exposure interval or shutter speed of a video camera shutter. The slower the shutter speed, the more the blur is increased, and the faster the shutter speed, the less the blur. Set the time slice count to 1 (step 10)
2). Next, the object (ie, the primitive)
Is selected for rendering (step 104).
For this particular time slice, the location, color and all other per-vertex values for each vertex in the object are calculated (step 106). Then, the object is rendered in the color buffer (step 10).
8). Determine whether the rendered object is the last object in the scene (step 110). If not, the process loops back to step 104 and repeats for each object in the scene.

【0009】シーン中の最後のオブジェクトがレンダリ
ングされたならば(すなわち、ステップ110の問いに
対する答がyesならば)、そのシーンを蓄積する(ス
テップ112)。すなわち、シーンをスケーリングし
(たとえば×1/n)、蓄積バッファ中にコピーする。
タイム・スライス・カウントをチェックして、それがn
に等しいかどうかを見る(ステップ114)。等しくな
いならば、タイム・スライス・カウントを増分する(ス
テップ116)。そして、プロセスは、ステップ104
にループバックし、タイム・スライスごとに繰り返され
る。タイム・スライス・カウントがnに等しいならば
(すなわち、ステップ114の問いに対する答がyes
ならば)、蓄積バッファをスケーリングし、フレーム・
バッファにコピーし(ステップ120)、それを表示画
面上に表示する(ステップ122)。
If the last object in the scene has been rendered (ie, if the answer to the question in step 110 is yes), the scene is stored (step 112). That is, the scene is scaled (eg, x1 / n) and copied into the accumulation buffer.
Check the time slice count and find that it is n
Is checked (step 114). If not, increment the time slice count (step 116). The process then proceeds to step 104
And it repeats every time slice. If the time slice count is equal to n (ie, the answer to the question of step 114 is yes
), Scale the accumulation buffer,
The data is copied to a buffer (step 120) and displayed on a display screen (step 122).

【0010】[0010]

【発明が解決しようとする課題】図1で説明した蓄積バ
ッファの使用は、期間ごとにシーン全体(すなわち、シ
ーン中の各オブジェクト)をn回レンダリングするた
め、計算の点で高価なプロセスである。その結果、三次
元グラフィックス環境でオブジェクトぼけをより効率的
にシュミレートするためのシステムおよび方法を得るこ
とが望ましい。
The use of the accumulation buffer described in FIG. 1 is a computationally expensive process because it renders the entire scene (ie, each object in the scene) n times per period. . As a result, it would be desirable to have systems and methods for more efficiently simulating object blur in a three-dimensional graphics environment.

【0011】[0011]

【課題を解決するための手段】したがって、本発明は、
動きベクトルを使用してオブジェクトぼけをシュミレー
トするためのシステム、方法およびコンピュータ使用可
能な媒体に関する。動きベクトルまたは動きベクトルの
アレイは、頂点ごとまたはプリミティブごと(すなわ
ち、オブジェクトごと)に指定することができる。動き
ベクトルは、動きの方向とは反対であり、従ってぼけの
方向を指す。動きベクトルの大きさは、頂点またはプリ
ミティブ(すなわち、プリミティブ中の各頂点)が単位
時間に移動する距離を表す。
SUMMARY OF THE INVENTION Accordingly, the present invention provides
Systems, methods, and computer-usable media for simulating object blur using motion vectors. Motion vectors or arrays of motion vectors can be specified on a per-vertex or per-primitive (ie, per-object) basis. The motion vector is opposite to the direction of motion and thus points to the direction of blur. The magnitude of the motion vector represents the distance that a vertex or a primitive (that is, each vertex in the primitive) moves per unit time.

【0012】シーンがレンダリングされるとき、動きの
ある、またはデプスに応じてぼかされるオブジェクトだ
けが一連のタイム・スライスにわたってレンダリングさ
れる。静止している(すなわち、ぼかされない)すべて
のオブジェクトは、一連のタイム・スライスにわたって
繰り返しレンダリングされるのではなく、色バッファ中
に直接レンダリングされる。このように、静止(すなわ
ち、ぼかされない)オブジェクトは一度しかレンダリン
グされず、ぼかされるオブジェクトは一連のタイム・ス
ライスにわたってレンダリングされる。これは、ぼかす
べきオブジェクトのオブジェクトぼけをシュミレートし
ながら、レンダリング・プロセスの効率を増す。
When a scene is rendered, only objects that are moving or blurred in response to depth are rendered over a series of time slices. All objects that are stationary (ie, not blurred) are rendered directly into the color buffer rather than being repeatedly rendered over a series of time slices. In this way, stationary (ie, not blurred) objects are rendered only once, and blurred objects are rendered over a series of time slices. This increases the efficiency of the rendering process while simulating object blur for the objects to be blurred.

【0013】[0013]

【発明の実施の形態】本発明を実現することができる代
表的なシステムを図2に示す。情報処理システム200
は、プロセッサ・バスまたはホスト・バス204に結合
された1個以上のプロセッサ202を含む。また、キャ
ッシュ・メモリ206がホスト・バス204に結合され
ていてもよい。ブリッジ/メモリ制御装置208が、シ
ステム・メモリ210と並列に、ホスト・バス204と
周辺バス212との間に結合されている。システム・メ
モリ210は、読取り専用メモリ(ROM)およびラン
ダム・アクセス・メモリ(RAM)の両方を含むことが
できる。システム・メモリ210の中には蓄積バッファ
214が含まれる。あるいはまた、蓄積バッファ214
は、グラフィックス・アダプタ218に含めることもで
きる。一つの実施態様では、周辺バス212は、高性能
グラフィックス・アプリケーションおよびハードウェア
をサポートするのに適したPCIバスまたは他のバスで
ある。グラフィックス・アダプタ218が周辺バス21
2に結合されており、ローカル・メモリ220およびフ
レーム・バッファ221を含むことができる。システム
200は、グラフィックス・アダプタ218を含んでも
含まなくてもよく、グラフィックス・アダプタ218が
システム200中に存在しないならば、フレーム・バッ
ファ221をシステム・メモリ210またはビデオ制御
装置216中に含めることができる。ビデオ制御装置2
16は、表示装置222に結合され、フレーム・バッフ
ァ221に記憶されたグラフィックス・イメージで表示
装置222をリフレッシュするように構成されている。
グラフィックス・アダプタ218は、好適には、ビデオ
制御装置216と一体化してもよい。
FIG. 2 shows a typical system capable of realizing the present invention. Information processing system 200
Includes one or more processors 202 coupled to a processor bus or host bus 204. Also, cache memory 206 may be coupled to host bus 204. A bridge / memory controller 208 is coupled between the host bus 204 and the peripheral bus 212 in parallel with the system memory 210. System memory 210 may include both read-only memory (ROM) and random access memory (RAM). The storage buffer 214 is included in the system memory 210. Alternatively, the accumulation buffer 214
May also be included in the graphics adapter 218. In one embodiment, peripheral bus 212 is a PCI bus or other bus suitable for supporting high performance graphics applications and hardware. Graphics adapter 218 is peripheral bus 21
2 and may include a local memory 220 and a frame buffer 221. The system 200 may or may not include the graphics adapter 218, and if the graphics adapter 218 is not present in the system 200, includes the frame buffer 221 in the system memory 210 or the video controller 216. be able to. Video control device 2
16 is coupled to the display 222 and is configured to refresh the display 222 with the graphics images stored in the frame buffer 221.
Graphics adapter 218 may preferably be integrated with video controller 216.

【0014】本発明は、動きベクトルを使用してオブジ
ェクトぼけをシュミレートするためのシステム、方法お
よびコンピュータ使用可能な媒体である。動きベクトル
または動きベクトルのアレイは、頂点ごとまたはプリミ
ティブごと(すなわち、オブジェクトごと)に指定する
ことができる。動きベクトルは、動きの方向とは反対で
あり、従ってぼけの方向を指す。動きベクトルの大きさ
は、頂点またはプリミティブ(すなわち、プリミティブ
中の各頂点)が単位時間に移動する距離を表す。
The present invention is a system, method and computer usable medium for simulating object blur using motion vectors. Motion vectors or arrays of motion vectors can be specified on a per-vertex or per-primitive (ie, per-object) basis. The motion vector is opposite to the direction of motion and thus points to the direction of blur. The magnitude of the motion vector represents the distance that a vertex or a primitive (that is, each vertex in the primitive) moves per unit time.

【0015】シーンがレンダリングされるとき、動きの
あるオブジェクトだけが一連のタイム・スライスにわた
ってレンダリングされる。静止している(すなわち、動
かない)すべてのオブジェクトは、一連のタイム・スラ
イスにわたって繰り返しレンダリングされるのではな
く、色バッファ中に直接レンダリングされる。従来技術
では、シーン中の各オブジェクト(静止したものであろ
うと動くものであろうと)は、「従来の技術」で論じた
ように、一連のタイム・スライスにわたってレンダリン
グされたのち、蓄積される。本発明は、静止オブジェク
トを一度しかレンダリングせず、動きのあるオブジェク
トに関してだけ、一連のタイム・スライスにわたってレ
ンダリングを実行する。これは、動きのあるオブジェク
トのオブジェクトぼけをシュミレートしながら、レンダ
リング・プロセスの効率を増す。本発明はまた、デプス
に応じたオブジェクトぼけをシュミレートするために使
用することもできる。
When a scene is rendered, only moving objects are rendered over a series of time slices. All objects that are stationary (ie, do not move) are rendered directly into the color buffer rather than being repeatedly rendered over a series of time slices. In the prior art, each object in the scene (whether stationary or moving) is accumulated after being rendered over a series of time slices, as discussed in "Prior Art". The present invention renders a static object only once and performs the rendering over a series of time slices only for moving objects. This increases the efficiency of the rendering process while simulating object blur for moving objects. The present invention can also be used to simulate object blur as a function of depth.

【0016】次に、図3を参照しながら、静止シーンの
中を直線的に移動するオブジェクトの例を説明する。典
型的なシーンの中では多くのオブジェクトが動きを有す
ることができるが、実例を示すため、図3は、静止シー
ン302の中で動きを有する1個のオブジェクト300
を示す。動きベクトル304は動きの方向306とは反
対の向きである。動きベクトル304の大きさは、オブ
ジェクト300が所定期間に移動する距離を表す。図3
に示す例では、このオブジェクトに関して1個の動きベ
クトル304が指定されている。したがって、動きベク
トル304は、オブジェクト300の各頂点に当てはま
る。所定期間内に、オブジェクト300の頂点は、点a
1、b1およびc1から点a2、b2およびc2にそれ
ぞれ移動した。したがって、動きベクトル304の大き
さはa2−a1に等しい。この大きさはまた、b2−b
1およびc2−c1に等しい。
Next, an example of an object that moves linearly in a still scene will be described with reference to FIG. In a typical scene, many objects can have motion, but for illustrative purposes, FIG. 3 shows a single object 300 with motion in a static scene 302.
Is shown. The motion vector 304 is in the opposite direction to the direction of motion 306. The magnitude of the motion vector 304 indicates the distance that the object 300 moves during a predetermined period. FIG.
In the example shown in (1), one motion vector 304 is specified for this object. Therefore, the motion vector 304 applies to each vertex of the object 300. Within a predetermined period, the vertex of the object 300 is
The points have moved from 1, b1 and c1 to points a2, b2 and c2, respectively. Therefore, the magnitude of the motion vector 304 is equal to a2-a1. This size is also b2-b
1 and equal to c2-c1.

【0017】当然、オブジェクト300の各頂点は、同
じ速度で移動している必要はない。オブジェクトの頂点
ごとに異なる動きベクトルを割り当てることも可能であ
る。各頂点は、異なる方向にまたは異なる速度で移動す
るかもしれない。
Naturally, each vertex of the object 300 need not move at the same speed. It is also possible to assign a different motion vector to each vertex of the object. Each vertex may move in a different direction or at a different speed.

【0018】次に、図4を参照しながら、静止シーンの
中を非直線的に移動するオブジェクトの例を説明する。
図3と同様、実例を示すため、静止シーン402の中に
は1個の移動するオブジェクトしか示さない。オブジェ
クト400に関連して複数の動きベクトル404、40
6、408および410がある。各動きベクトルは、所
定期間内にオブジェクト400が移動した距離の一部に
等しい大きさを有している。図示する例では、各動きベ
クトル404、406、408および410は、オブジ
ェクト400の各頂点に当てはまる。所定期間内に、オ
ブジェクト400の頂点は、点a1、b1およびc1か
ら点a2、b2およびc2にそれぞれ移動する。各頂点
は他の頂点と均等に移動するが、オブジェクト400
(およびその頂点)は直線的には移動しない。したがっ
て、各動きベクトル404、406、408および41
0は、所定期間の一部の間に移動した距離に等しい大き
さを含む。図3と同様、各動きベクトルは、動きの方向
412とは反対の向きである。動きベクトル404、4
06、408および410をまとめて「動きベクトルの
アレイ」と呼ぶ。動きベクトルのアレイは、図4に示す
ようにオブジェクトに割り当てることができ、その場
合、動きベクトルのアレイはオブジェクト中の各頂点に
当てはまる。あるいはまた、動きベクトルのアレイを一
つの頂点に割り当ててもよい。
Next, an example of an object that moves nonlinearly in a still scene will be described with reference to FIG.
3, only one moving object is shown in the still scene 402 for illustrative purposes. A plurality of motion vectors 404, 40 associated with the object 400
6, 408 and 410. Each motion vector has a magnitude equal to a part of the distance that the object 400 has moved within a predetermined period. In the example shown, each motion vector 404, 406, 408, and 410 applies to each vertex of the object 400. Within a predetermined period, the vertices of the object 400 move from the points a1, b1 and c1 to the points a2, b2 and c2, respectively. Each vertex moves equally with the other vertices, but the object 400
(And its vertices) do not move linearly. Therefore, each motion vector 404, 406, 408 and 41
0 includes a magnitude equal to the distance traveled during a portion of the predetermined period. As in FIG. 3, each motion vector is in the opposite direction to the direction of motion 412. Motion vector 404,4
06, 408 and 410 are collectively referred to as an "array of motion vectors". An array of motion vectors can be assigned to the object as shown in FIG. 4, where the array of motion vectors applies to each vertex in the object. Alternatively, an array of motion vectors may be assigned to one vertex.

【0019】アプリケーション・プログラムがオブジェ
クトおよび頂点に関して動きベクトルを指定することが
できるよう、アプリケーション・プログラム・インタフ
ェース(API)を設けることが好ましい。一例として
OpenGL APIを以下に記す。このAPIは、実例を示
すものにすぎず、限定的とみなしてはならない。当業者
は、多様なプログラミング技術を使用して動きベクトル
を指定できることを理解するであろう。さらには、AP
IとしてのOpenGLの使用は、限定的とみなされない。本
発明は、PHIGSおよびDirect3-Dをはじめとする種々のA
PIを使用して実現することができる。
Preferably, an application program interface (API) is provided so that the application program can specify motion vectors for objects and vertices. As an example
The OpenGL API is described below. This API is illustrative only and should not be considered limiting. Those skilled in the art will appreciate that a variety of programming techniques can be used to specify the motion vectors. Furthermore, AP
The use of OpenGL as I is not considered limiting. The present invention relates to various A, including PHIGS and Direct3-D.
It can be implemented using PI.

【0020】OpenGL APIの例は以下のとおりであ
る。 概要 この拡張は、オブジェクトぼけを指定の動きベクトル沿
いの点、線または縁で起こすことを可能にする。動きベ
クトルは、動きの方向とは反対の向きであり、従ってぼ
けの方向を指す。ベクトルの大きさは、各頂点が単位時
間に移動した距離である。「glMotionVector*」ルーチ
ンは、アプリケーションが動きベクトルまたは動きベク
トルのアレイを頂点ベースまたはプリミティブベースで
指定することを可能にする。「glMotionEnv*」ルーチン
は、アプリケーションが動きの期間、時間的なフェード
の程度および動きぼけ(すなわち、オブジェクトぼけ)
を可能にするか不能にするかを指定することを可能にす
る。
An example of the OpenGL API is as follows. Overview This extension allows object blurring to occur at points, lines or edges along a specified motion vector. The motion vector is in the opposite direction to the direction of motion, and thus points to the direction of blur. The magnitude of the vector is the distance that each vertex has moved in unit time. The "glMotionVector *" routines allow an application to specify a motion vector or an array of motion vectors on a vertex or primitive basis. The "glMotionEnv *" routines determine the duration of the application, the degree of temporal fade, and motion blur (ie, object blur).
Allows you to specify whether to enable or disable.

【0021】手続きと関数 1.void glMotionVector[bsifd]IBM(T xcomponent, yc
omponent, zcomponent) 目的:オブジェクトの動きベクトルを指定する。 変数:3Dベクトルを指定する3個のバイト、ショート
ワード、整数、浮動小数点数または倍精度浮動小数点数 2.void glMotionVectorv[bsifd]IBM(T components) 目的:頂点の動きベクトルを指定する。 変数:3Dベクトルを指定するアレイ 3.void glMotionVectorPointerIBM(int size, enum t
ype, sizei stride, void *pointer) 目的:オブジェクトまたは頂点の動きベクトルのアレイ
を指定する。 変数:ポインタ変数によって指し示される動きベクトル
のリストのサイズ、タイプおよびストライド 4.void glMotionEnv[if]IBM(GLenum pname, GLfloat
param) 目的:ぼけの期間および程度を指定する。 変数:pnameがGL_MOTION_ENV_FADE_IBMに等しいなら
ば、paramは、オブジェクトが時間的にフェードされる
程度を指定する。pnameがGL_MOTION_ENV_DELTA_TIME_IB
Mに等しいならば、paramは、ぼけが起こる単位時間数を
指定する。
Procedures and Functions void glMotionVector [bsifd] IBM (T xcomponent, yc
omponent, zcomponent) Purpose: Specifies the motion vector of the object. Variables: three bytes specifying a 3D vector, shortword, integer, floating point or double precision floating point. void glMotionVectorv [bsifd] IBM (T components) Purpose: To specify the vertex motion vector. Variable: array specifying 3D vector void glMotionVectorPointerIBM (int size, enum t
ype, sizeistride, void * pointer) Purpose: Specifies an array of motion vectors for an object or vertex. 3. Variable: size, type and stride of the list of motion vectors pointed to by the pointer variable. void glMotionEnv [if] IBM (GLenum pname, GLfloat
param) Purpose: To specify the period and degree of blur. Variable: If pname is equal to GL_MOTION_ENV_FADE_IBM, param specifies the degree to which the object will fade in time. pname is GL_MOTION_ENV_DELTA_TIME_IB
If equal to M, param specifies the number of unit times at which blur occurs.

【0022】図5および図6を参照しながら、本発明に
したがって、動きベクトルを使用してオブジェクトぼけ
をシュミレートする方法を示す流れ図を説明する。図5
および図6に記載のステップは、ソフトウェアまたはハ
ードウェアのいずれで実行することもできるし(たとえ
ばグラフィックス・アクセラレータにより)、ソフトウ
ェアとハードウェアの組み合わせによって実行すること
もできる。シーン中のオブジェクトをレンダリングのた
めに定義する(ステップ500)。すなわち、オブジェ
クトに関して場所、色、動きベクトルその他の属性を定
義する。シーンの環境をオブジェクトに関連する動きベ
クトルとともに使用して、オブジェクトが静止している
か動いているかを決定する(ステップ502)。ステッ
プ502での決定はさらに、オブジェクトをそのデプス
に応じてぼかさなければならないかどうかの決定を含ん
でいてもよい。オブジェクトが静止していない(すなわ
ち、ステップ504の問いに対する答がnoである)な
らば、そのオブジェクトを「動きのある」オブジェクト
として識別する(ステップ506)。オブジェクトが静
止している(すなわち、ステップ504の問いに対する
答がyesである)ならば、そのオブジェクトを色バッ
ファ中にレンダリングする(ステップ508)。色バッ
ファは、任意バッファ区域でよい。たとえば、色バッフ
ァは、図2を参照して先に説明したように、グラフィッ
クス・アダプタ218上のシステム・メモリ210また
はローカル・メモリ220の一部であってもよい。
Referring to FIGS. 5 and 6, a flowchart illustrating a method for simulating object blur using a motion vector according to the present invention will be described. FIG.
6 can be performed in either software or hardware (eg, with a graphics accelerator) or a combination of software and hardware. Objects in the scene are defined for rendering (step 500). That is, the location, color, motion vector, and other attributes of the object are defined. The scene environment is used with the motion vectors associated with the object to determine whether the object is stationary or moving (step 502). The determination at step 502 may further include determining whether the object must be blurred according to its depth. If the object is not stationary (ie, the answer to the question in step 504 is no), the object is identified as a "moving" object (step 506). If the object is stationary (ie, the answer to the question in step 504 is yes), render the object in a color buffer (step 508). The color buffer may be an optional buffer area. For example, the color buffer may be part of system memory 210 or local memory 220 on graphics adapter 218, as described above with reference to FIG.

【0023】再び図5および図6を参照すると、そのオ
ブジェクトがシーン中の最後のオブジェクトであるかど
うかの決定を行う(ステップ510)。最後のオブジェ
クトではない(すなわち、ステップ510の問いに対す
る答がnoである)ならば、ステップ500で、別のオ
ブジェクトをレンダリングのために定義する。そのオブ
ジェクトがシーン中の最後のオブジェクトである(すな
わち、ステップ510の問いに対する答がyesであ
る)ならば、動きのあるオブジェクト(すなわち、ぼけ
を要するオブジェクト)を処理する。当業者であれば、
シーン中に動きのあるオブジェクトがないならば、この
時点で色バッファをフレーム・バッファにコピーし、シ
ーンを表示してもよいことを理解するであろう。実例を
示すため、図5および図6に示すプロセスは、シーン中
に静止オブジェクトと動きのあるオブジェクトとが混在
するものと仮定する。
Referring again to FIGS. 5 and 6, a determination is made whether the object is the last object in the scene (step 510). If it is not the last object (ie, the answer to the question in step 510 is no), then in step 500 another object is defined for rendering. If the object is the last object in the scene (ie, the answer to the question in step 510 is yes), the moving object (ie, the object that needs blurring) is processed. If you are skilled in the art,
If there are no moving objects in the scene, it will be appreciated at this point that the color buffer may be copied to the frame buffer and the scene displayed. For purposes of illustration, the processes shown in FIGS. 5 and 6 assume that the scene contains a mixture of stationary and moving objects.

【0024】所定のレンダリング期間をn個のタイム・
スライスに分割する(ステップ512)。図1を参照し
て先に論じたように、レンダリング期間は、シーンが表
示画面上に見える時間の合計であり、ビデオ・カメラ・
シャッタの露出間隔またはシャッタ速度に類似してい
る。タイム・スライス・カウントを1にセットする(ス
テップ514)。次に、動きのあるオブジェクト(すな
わち、ステップ506で「動きのある」オブジェクトと
して識別されたオブジェクト)をレンダリングのために
選択する(ステップ516)。そのオブジェクトに関連
する動きベクトルを他の動き変数とともに使用して、オ
ブジェクト中の頂点ごとに場所、色および他のすべての
属性を計算または修正する(ステップ518)。そし
て、オブジェクトを色バッファ中にレンダリングする
(ステップ520)。レンダリングしたオブジェクトが
シーンの中の最後の「動きのある」オブジェクトである
かどうかを決定する(ステップ522)。最後のオブジ
ェクトではないならば、プロセスはステップ516にル
ープバックし、シーン中の「動きのある」オブジェクト
ごとに繰り返す。
A given rendering period is defined by n time
It is divided into slices (step 512). As discussed above with reference to FIG. 1, the rendering period is the total time that the scene is visible on the display screen, and
Similar to shutter exposure interval or shutter speed. The time slice count is set to 1 (step 514). Next, a moving object (ie, an object identified as a "moving" object in step 506) is selected for rendering (step 516). The location, color and all other attributes are calculated or modified for each vertex in the object using the motion vector associated with the object along with other motion variables (step 518). Then, the object is rendered in the color buffer (step 520). It is determined whether the rendered object is the last "moving" object in the scene (step 522). If not, the process loops back to step 516 and repeats for each "moving" object in the scene.

【0025】シーン中の最後の「動きのある」オブジェ
クトをレンダリングした(すなわち、ステップ522の
問いに対する答がyesである)ならば、そのシーンを
蓄積する(ステップ524)。すなわち、それをスケー
リングし(たとえば×1/n)、色バッファから蓄積バ
ッファにコピーする。タイム・スライス・カウントをチ
ェックして、それがnに等しいかどうかを見る(ステッ
プ526)。nに等しくないならば、タイム・スライス
・カウントを増分する(ステップ528)。そして、プ
ロセスはステップ516にループバックし、タイム・ス
ライスごとに繰り返す。タイム・スライス・カウントが
nに等しい(すなわち、ステップ528の問いに対する
答がyesである)ならば、蓄積バッファをスケーリン
グし、フレーム・バッファにコピーし(ステップ53
2)、表示画面上に表示する(ステップ534)。
If the last "moving" object in the scene has been rendered (ie, the answer to the question in step 522 is yes), the scene is stored (step 524). That is, it is scaled (eg, x1 / n) and copied from the color buffer to the storage buffer. Check the time slice count to see if it is equal to n (step 526). If not, increment the time slice count (step 528). The process then loops back to step 516 and repeats for each time slice. If the time slice count is equal to n (ie, the answer to the question in step 528 is yes), the accumulation buffer is scaled and copied to the frame buffer (step 53).
2) Display on the display screen (step 534).

【0026】図5および図6に記載した方法への二つの
エントリ・ポイントを定義することが可能であり、ある
いはまた、図5および図6に記載した方法を実行するた
めの二つの別個のルーチンを有することが可能である。
たとえば、オブジェクトが動いているか(すなわち、ぼ
かさなければならないか)どうかの決定をアプリケーシ
ョン・プログラムによって下すこともできる。アプリケ
ーション・プログラムは、オブジェクトが静止している
と決定するならば、ステップ500〜510だけを実行
して静止オブジェクトだけをレンダリングするルーチン
を呼び出すことができる。アプリケーション・プログラ
ムは、オブジェクトをぼかさなければならないと決定す
るならば、ステップ512〜534だけを実行して動き
のあるオブジェクトだけをレンダリングするルーチンを
呼び出すことができる。
It is possible to define two entry points to the method described in FIGS. 5 and 6, or alternatively, two separate routines for performing the method described in FIGS. It is possible to have
For example, a determination of whether an object is moving (ie, must be blurred) can be made by an application program. If the application program determines that the object is stationary, it can perform only steps 500-510 and call a routine that renders only stationary objects. If the application program determines that the object must be blurred, it can execute only steps 512-534 and call a routine that renders only moving objects.

【0027】本発明をある程度は具体的に説明したが、
発明の本質および範囲を逸することなく、当業者がその
要素を変更できることが認識されよう。本発明の実現形
態の一つは、図2に記載するように機器構成された1個
以上のコンピュータ・システムのランダム・アクセス・
メモリ中に常駐する命令のセットとしての形態である。
命令セットは、コンピュータ・システムによって要求さ
れるまで、別のコンピュータ読み取り可能なメモリ、た
とえばハード・ディスク・ドライブ、または取り外し可
能なメモリ、たとえばCD−ROMドライブで使用する
ための光ディスクもしくはフロッピー(登録商標)・デ
ィスク・ドライブで使用するためのフロッピー・ディス
クに格納しておいてもよい。さらに、命令セットは、別
のコンピュータのメモリに格納しておき、ユーザが望む
とき、ローカル・エリア・ネットワークまたはワイド・
エリア・ネットワーク、たとえばインタネットを介して
伝送することもできる。当業者は、命令セットの物理的
格納が、命令セットが電気的、磁気的または化学的に格
納される媒体を、その媒体がコンピュータ使用可能な情
報を運ぶよう、物理的に変更させることを理解するであ
ろう。本発明は、請求の範囲およびその均等物のみによ
って限定される。
Although the invention has been described in some detail,
It will be appreciated that those skilled in the art can change the elements without departing from the spirit and scope of the invention. One embodiment of the present invention is a random access system of one or more computer systems configured as described in FIG.
It is in the form of a set of instructions resident in memory.
The instruction set is stored in another computer-readable memory, such as a hard disk drive, or a removable memory, such as an optical disk or floppy for use in a CD-ROM drive, until required by the computer system. ) May be stored on a floppy disk for use in a disk drive. In addition, the instruction set may be stored in the memory of another computer so that, when desired by the user, a local area network or wide area network.
It can also be transmitted over an area network, for example the Internet. One skilled in the art understands that the physical storage of the instruction set physically changes the medium on which the instruction set is stored electrically, magnetically or chemically, such that the medium carries computer usable information. Will do. The invention is limited only by the claims and the equivalents thereof.

【0028】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)複数のオブジェクトを含む三次元グラフィックス
・シーンを表示する方法であって、複数のオブジェクト
を、ぼかされる1個以上のオブジェクトを含む第一のオ
ブジェクト・セットと、ぼかされない1個以上のオブジ
ェクトを含む第二のオブジェクト・セットとに分類する
ステップと、前記第二のオブジェクト・セット中の各オ
ブジェクトを第一のバッファ中に直接レンダリングする
ステップと、レンダリング期間を複数のタイム・スライ
スに分割するステップと、各タイム・スライスごとに、
前記第一のオブジェクト・セット中の各オブジェクトを
前記第一のバッファ中にレンダリングし、前記第一のバ
ッファからの三次元グラフィックス・シーンを蓄積バッ
ファ中に蓄積するステップと、前記三次元グラフィック
ス・シーンを表示するステップと、を含む方法。 (2)前記分類するステップが、動きベクトルが選択さ
れたオブジェクトに関連しているかどうかを決定するス
テップと、動きベクトルが前記選択されたオブジェクト
に関連しているならば、前記選択されたオブジェクトを
前記第一のオブジェクト・セットに割り当て動きベクト
ルが前記選択されたオブジェクトに関連していないなら
ば、前記選択されたオブジェクトを前記第二のオブジェ
クト・セットに割り当てるステップと、を含む上記
(1)記載の方法。 (3)前記決定するステップが、動きベクトルが前記選
択されたオブジェクトの頂点に関連しているかどうかを
決定するステップを含む上記(2)記載の方法。 (4)前記動きベクトルが前記選択されたオブジェクト
の動きの方向とは反対の向きである上記(2)記載の方
法。 (5)前記動きベクトルの長さが前記選択されたオブジ
ェクトの動きの速度に比例する上記(2)記載の方法。 (6)前記表示するステップが、前記蓄積バッファをフ
レーム・バッファにコピーするステップと、前記フレー
ム・バッファの内容を表示装置で表示するステップと、
をさらに含む上記(1)記載の方法。 (7)表示手段と、前記表示手段で三次元グラフィック
ス・シーンとして表示される複数のオブジェクトと、前
記複数のオブジェクトを、ぼかされる1個以上のオブジ
ェクトを含む第一のオブジェクト・セットと、ぼかされ
ない1個以上のオブジェクトを含む第二のオブジェクト
・セットとに分類するための手段と、前記第二のオブジ
ェクト・セット中の各オブジェクトを第一のバッファ中
に直接レンダリングするための手段と、レンダリング期
間を複数のタイム・スライスに分割するための手段と、
各タイム・スライス中に前記第一のオブジェクト・セッ
ト中の各オブジェクトを前記第一のバッファ中にレンダ
リングするための手段と、各タイム・スライス中に前記
第一のバッファからの三次元グラフィックス・シーンを
蓄積バッファ中に蓄積するための手段と、前記三次元グ
ラフィックス・シーンを前記表示装置で表示するための
手段と、を含む情報処理システム。 (8)前記分類するための手段が、動きベクトルが選択
されたオブジェクトに関連しているかどうかを決定する
ための手段と、動きベクトルが前記選択されたオブジェ
クトに関連しているならば、前記選択されたオブジェク
トを前記第一のオブジェクト・セットに割り当て、動き
ベクトルが前記選択されたオブジェクトに関連していな
いならば、前記選択されたオブジェクトを前記第二のオ
ブジェクト・セットに割り当てるための手段と、を含む
上記(7)記載の情報処理システム。 (9)前記決定するための手段が、動きベクトルが前記
選択されたオブジェクトの頂点に関連しているかどうか
を決定するための手段を含む上記(8)記載の情報処理
システム。 (10)前記動きベクトルが前記選択されたオブジェク
トの動きの方向とは反対の向きである上記(8)記載の
情報処理システム。 (11)前記動きベクトルの長さが前記選択されたオブ
ジェクトの動きの速度に比例する上記(8)記載の情報
処理システム。 (12)前記表示するための手段が、前記蓄積バッファ
をフレーム・バッファにコピーするための手段と、前記
フレーム・バッファの内容を前記表示手段で表示するた
めの手段と、をさらに含む上記(7)記載の情報処理シ
ステム。 (13)三次元グラフィックス・シーンを表示装置で表
示するためのプログラムを記録したコンピュータ使用可
能媒体であって、前記プログラムが、複数のオブジェク
トを、ぼかされる1個以上のオブジェクトを含む第一の
オブジェクト・セットと、ぼかされない1個以上のオブ
ジェクトを含む第二のオブジェクト・セットとに分類す
るための手段と、前記第二のオブジェクト・セット中の
各オブジェクトを第一のバッファ中に直接レンダリング
するための手段と、レンダリング期間を複数のタイム・
スライスに分割するための手段と、各タイム・スライス
中に前記第一のオブジェクト・セット中の各オブジェク
トを前記第一のバッファ中にレンダリングするための手
段と、各タイム・スライス中に前記第一のバッファから
の三次元グラフィックス・シーンを蓄積バッファ中に蓄
積するための手段と、前記三次元グラフィックス・シー
ンを前記表示装置で表示するための手段と、を含むコン
ピュータ使用可能媒体。 (14)前記プログラムが、動きベクトルが選択された
オブジェクトに関連しているかどうかを決定するための
手段と、動きベクトルが前記選択されたオブジェクトに
関連しているならば、前記選択されたオブジェクトを前
記第一のオブジェクト・セットに割り当て、動きベクト
ルが前記選択されたオブジェクトに関連していないなら
ば、前記選択されたオブジェクトを前記第二のオブジェ
クト・セットに割り当てるための手段と、をさらに含む
上記(13)記載のコンピュータ使用可能媒体。 (15)前記決定するための手段が、動きベクトルが前
記選択されたオブジェクトの頂点に関連しているかどう
かを決定するための手段を含む上記(14)記載のコン
ピュータ使用可能媒体。 (16)前記動きベクトルが前記選択されたオブジェク
トの動きの方向とは反対の向きである上記(14)記載
のコンピュータ使用可能媒体。 (17)前記動きベクトルの長さが前記選択されたオブ
ジェクトの動きの速度に比例する上記(14)記載のコ
ンピュータ使用可能媒体。 (18)前記表示するための手段が、前記蓄積バッファ
をフレーム・バッファにコピーするための手段と、前記
フレーム・バッファの内容を表示装置で表示するための
手段と、をさらに含む上記(13)記載のコンピュータ
使用可能媒体。
In summary, the following matters are disclosed regarding the configuration of the present invention. (1) A method for displaying a three-dimensional graphics scene including a plurality of objects, wherein the plurality of objects is a first set of objects including one or more objects to be blurred, and one or more objects are not blurred. Classifying the objects in the second set of objects into a second set of objects, and rendering each object in the second set of objects directly into a first buffer; and rendering the rendering period into a plurality of time slices. The steps of dividing and for each time slice,
Rendering each object in the first set of objects in the first buffer and storing a three-dimensional graphics scene from the first buffer in a storage buffer; Displaying the scene. (2) the step of classifying comprises determining whether a motion vector is associated with the selected object; and if the motion vector is associated with the selected object, identifying the selected object. (1) assigning the selected object to the second object set if a motion vector assigned to the first object set is not associated with the selected object. the method of. (3) The method of (2) above, wherein said determining comprises determining whether a motion vector is associated with a vertex of said selected object. (4) The method according to (2), wherein the motion vector has a direction opposite to a direction of the motion of the selected object. (5) The method according to (2), wherein the length of the motion vector is proportional to the speed of the motion of the selected object. (6) the displaying step includes copying the accumulation buffer to a frame buffer; and displaying the contents of the frame buffer on a display device.
The method according to the above (1), further comprising: (7) display means, a plurality of objects displayed as a three-dimensional graphics scene on the display means, a first object set including one or more objects to be blurred, and Means for classifying into a second set of objects including one or more objects that are not exposed, and means for rendering each object in the second set of objects directly into a first buffer; Means for dividing the rendering period into a plurality of time slices;
Means for rendering each object in the first set of objects in the first buffer during each time slice; and three-dimensional graphics from the first buffer during each time slice. An information processing system comprising: means for storing a scene in a storage buffer; and means for displaying the three-dimensional graphics scene on the display device. (8) the means for categorizing comprises: means for determining whether a motion vector is associated with the selected object; and if the motion vector is associated with the selected object, the selecting Means for assigning the selected object to the first set of objects and, if no motion vector is associated with the selected object, assigning the selected object to the second set of objects; (7) The information processing system according to the above (7). (9) The information processing system according to (8), wherein the means for determining includes a means for determining whether a motion vector is related to a vertex of the selected object. (10) The information processing system according to (8), wherein the motion vector has a direction opposite to a direction of the motion of the selected object. (11) The information processing system according to (8), wherein the length of the motion vector is proportional to the speed of movement of the selected object. (12) The means for displaying further includes means for copying the accumulation buffer to a frame buffer, and means for displaying the contents of the frame buffer on the display means. The information processing system according to (1). (13) A computer usable medium having recorded thereon a program for displaying a three-dimensional graphics scene on a display device, wherein the program includes a plurality of objects including one or more objects to be blurred. Means for classifying into an object set and a second object set comprising one or more objects that are not blurred, and rendering each object in said second object set directly into a first buffer The rendering period and multiple time periods.
Means for dividing into slices, means for rendering each object in the first set of objects in the first buffer during each time slice, and means for rendering the first object in each time slice. A computer-usable medium comprising: means for accumulating a three-dimensional graphics scene from a buffer in a storage buffer; and means for displaying the three-dimensional graphics scene on the display device. (14) the program means for determining whether a motion vector is associated with the selected object; and, if the motion vector is associated with the selected object, the program determines the selected object. Means for assigning to the first set of objects, and if no motion vector is associated with the selected objects, assigning the selected objects to the second set of objects. (13) The computer usable medium according to (13). (15) The computer usable medium of (14), wherein the means for determining includes means for determining whether a motion vector is associated with a vertex of the selected object. (16) The computer usable medium according to (14), wherein the motion vector has a direction opposite to a direction of the motion of the selected object. (17) The computer usable medium according to (14), wherein the length of the motion vector is proportional to the speed of movement of the selected object. (18) The means (13), wherein the means for displaying further includes means for copying the accumulation buffer to a frame buffer, and means for displaying the contents of the frame buffer on a display device. A computer usable medium as described.

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

【図1】オブジェクトぼけをシュミレートする従来技術
の方法を示す流れ図である。
FIG. 1 is a flow diagram illustrating a prior art method of simulating object blur.

【図2】本発明を実現することができる代表的なシステ
ムを示す図である。
FIG. 2 is a diagram showing a representative system capable of implementing the present invention.

【図3】静止シーン中を移動するオブジェクトを動きベ
クトルとともに示す図である。
FIG. 3 is a diagram showing an object moving in a still scene together with a motion vector.

【図4】静止シーン中を移動するオブジェクトを動きベ
クトルのアレイとともに示す図である。
FIG. 4 is a diagram showing an object moving in a still scene together with an array of motion vectors.

【図5】本発明にしたがって動きベクトルを使用してオ
ブジェクトぼけをシュミレートする方法を示す流れ図で
ある。
FIG. 5 is a flowchart illustrating a method for simulating object blur using motion vectors according to the present invention.

【図6】本発明にしたがって動きベクトルを使用してオ
ブジェクトぼけをシュミレートする方法を示す流れ図で
ある。
FIG. 6 is a flowchart illustrating a method for simulating object blur using motion vectors according to the present invention.

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

200 情報処理システム 202 プロセッサ 204 ホスト・バス 206 キャッシュ・メモリ 208 ブリッジ/メモリ制御装置 210 システム・メモリ 212 周辺バス 214 蓄積バッファ 216 ビデオ制御装置 218 グラフィックス・アダプタ 220 ローカル・メモリ 221 フレーム・バッファ 222 表示装置 200 Information Processing System 202 Processor 204 Host Bus 206 Cache Memory 208 Bridge / Memory Controller 210 System Memory 212 Peripheral Bus 214 Storage Buffer 216 Video Controller 218 Graphics Adapter 220 Local Memory 221 Frame Buffer 222 Display

───────────────────────────────────────────────────── フロントページの続き (72)発明者 イライス・クレア・チェルトウスキ アメリカ合衆国78734 テキサス州、 オ ースティン、 レイクウェイ・ドライブ 414 (72)発明者 チャールズ・レイ・ジョン アメリカ合衆国78759 テキサス州、 オ ースティン、 カッシア・ドライブ 10703 (72)発明者 バリー・エル・ミノー アメリカ合衆国78730 テキサス州、 オ ースティン、 メリーウィング・クラウン 5501 (72)発明者 ジョージ・レオポルド・ホワイト・ジュニ ア アメリカ合衆国78745 テキサス州、 オ ースティン、 ギャロップ・コーヴ 3311 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Irais Clare Certowski Lakeway Drive 414, Austin, Texas, United States 77834 Inventor Charles Ray John United States 78759 Austin, Cassia, Texas Drive 10703 (72) Inventor Barry El Minnow United States 78730 Merry Wing Crown, Austin, Texas 5501 (72) Inventor George Leopold White Jr. United States 78745 Austin, Texas, Gallop Cove 3311

Claims (18)

【特許請求の範囲】[Claims] 【請求項1】複数のオブジェクトを含む三次元グラフィ
ックス・シーンを表示する方法であって、 複数のオブジェクトを、ぼかされる1個以上のオブジェ
クトを含む第一のオブジェクト・セットと、ぼかされな
い1個以上のオブジェクトを含む第二のオブジェクト・
セットとに分類するステップと、 前記第二のオブジェクト・セット中の各オブジェクトを
第一のバッファ中に直接レンダリングするステップと、 レンダリング期間を複数のタイム・スライスに分割する
ステップと、 各タイム・スライスごとに、前記第一のオブジェクト・
セット中の各オブジェクトを前記第一のバッファ中にレ
ンダリングし、前記第一のバッファからの三次元グラフ
ィックス・シーンを蓄積バッファ中に蓄積するステップ
と、 前記三次元グラフィックス・シーンを表示するステップ
と、を含む方法。
A method for displaying a three-dimensional graphics scene including a plurality of objects, the method comprising: displaying a plurality of objects on a first set of objects including one or more objects to be blurred; A second object containing more than one object
Classifying each object in the second set of objects directly into a first buffer; dividing the rendering period into a plurality of time slices; each time slice; The first object
Rendering each object in the set in the first buffer and storing a three-dimensional graphics scene from the first buffer in a storage buffer; and displaying the three-dimensional graphics scene. And a method comprising:
【請求項2】前記分類するステップが、 動きベクトルが選択されたオブジェクトに関連している
かどうかを決定するステップと、 動きベクトルが前記選択されたオブジェクトに関連して
いるならば、前記選択されたオブジェクトを前記第一の
オブジェクト・セットに割り当て動きベクトルが前記選
択されたオブジェクトに関連していないならば、前記選
択されたオブジェクトを前記第二のオブジェクト・セッ
トに割り当てるステップと、を含む請求項1記載の方
法。
2. The step of categorizing comprises: determining whether a motion vector is associated with a selected object; and, if a motion vector is associated with the selected object, selecting the selected object. Assigning an object to the first set of objects, if the motion vector is not associated with the selected object, assigning the selected object to the second set of objects. The described method.
【請求項3】前記決定するステップが、動きベクトルが
前記選択されたオブジェクトの頂点に関連しているかど
うかを決定するステップを含む請求項2記載の方法。
3. The method of claim 2, wherein said determining includes determining whether a motion vector is associated with a vertex of said selected object.
【請求項4】前記動きベクトルが前記選択されたオブジ
ェクトの動きの方向とは反対の向きである請求項2記載
の方法。
4. The method of claim 2, wherein said motion vector is in a direction opposite to a direction of motion of said selected object.
【請求項5】前記動きベクトルの長さが前記選択された
オブジェクトの動きの速度に比例する請求項2記載の方
法。
5. The method of claim 2, wherein the length of said motion vector is proportional to the speed of movement of said selected object.
【請求項6】前記表示するステップが、 前記蓄積バッファをフレーム・バッファにコピーするス
テップと、 前記フレーム・バッファの内容を表示装置で表示するス
テップと、をさらに含む請求項1記載の方法。
6. The method of claim 1, wherein said displaying further comprises: copying the accumulation buffer to a frame buffer; and displaying the contents of the frame buffer on a display device.
【請求項7】表示手段と、 前記表示手段で三次元グラフィックス・シーンとして表
示される複数のオブジェクトと、 前記複数のオブジェクトを、ぼかされる1個以上のオブ
ジェクトを含む第一のオブジェクト・セットと、ぼかさ
れない1個以上のオブジェクトを含む第二のオブジェク
ト・セットとに分類するための手段と、 前記第二のオブジェクト・セット中の各オブジェクトを
第一のバッファ中に直接レンダリングするための手段
と、 レンダリング期間を複数のタイム・スライスに分割する
ための手段と、 各タイム・スライス中に前記第一のオブジェクト・セッ
ト中の各オブジェクトを前記第一のバッファ中にレンダ
リングするための手段と、 各タイム・スライス中に前記第一のバッファからの三次
元グラフィックス・シーンを蓄積バッファ中に蓄積する
ための手段と、 前記三次元グラフィックス・シーンを前記表示装置で表
示するための手段と、を含む情報処理システム。
7. A display means, a plurality of objects displayed as a three-dimensional graphics scene on the display means, and a first object set including one or more objects in which the plurality of objects are blurred. Means for classifying the objects into a second set of one or more objects that are not blurred; and means for rendering each object in the second set of objects directly into a first buffer. Means for dividing the rendering period into a plurality of time slices; means for rendering each object in the first set of objects in the first buffer during each time slice; Store the 3D graphics scene from the first buffer during each time slice. The information processing system comprising: means for storing in the file, and means for displaying said three-dimensional graphics scene on the display device.
【請求項8】前記分類するための手段が、 動きベクトルが選択されたオブジェクトに関連している
かどうかを決定するための手段と、 動きベクトルが前記選択されたオブジェクトに関連して
いるならば、前記選択されたオブジェクトを前記第一の
オブジェクト・セットに割り当て、 動きベクトルが前記選択されたオブジェクトに関連して
いないならば、前記選択されたオブジェクトを前記第二
のオブジェクト・セットに割り当てるための手段と、 を含む請求項7記載の情報処理システム。
8. The means for categorizing comprises: means for determining whether a motion vector is associated with a selected object; and if a motion vector is associated with the selected object, Means for assigning the selected object to the first set of objects, and if the motion vector is not associated with the selected object, assigning the selected object to the second set of objects The information processing system according to claim 7, comprising:
【請求項9】前記決定するための手段が、動きベクトル
が前記選択されたオブジェクトの頂点に関連しているか
どうかを決定するための手段を含む請求項8記載の情報
処理システム。
9. The information processing system according to claim 8, wherein said means for determining includes means for determining whether a motion vector is associated with a vertex of said selected object.
【請求項10】前記動きベクトルが前記選択されたオブ
ジェクトの動きの方向とは反対の向きである請求項8記
載の情報処理システム。
10. The information processing system according to claim 8, wherein the motion vector has a direction opposite to a direction of the motion of the selected object.
【請求項11】前記動きベクトルの長さが前記選択され
たオブジェクトの動きの速度に比例する請求項8記載の
情報処理システム。
11. The information processing system according to claim 8, wherein a length of said motion vector is proportional to a speed of movement of said selected object.
【請求項12】前記表示するための手段が、 前記蓄積バッファをフレーム・バッファにコピーするた
めの手段と、 前記フレーム・バッファの内容を前記表示手段で表示す
るための手段と、をさらに含む請求項7記載の情報処理
システム。
12. The display means further comprises: means for copying the storage buffer to a frame buffer; and means for displaying the contents of the frame buffer on the display means. Item 8. The information processing system according to Item 7.
【請求項13】三次元グラフィックス・シーンを表示装
置で表示するためのプログラムを記録したコンピュータ
使用可能媒体であって、 前記プログラムが、複数のオブジェクトを、ぼかされる
1個以上のオブジェクトを含む第一のオブジェクト・セ
ットと、ぼかされない1個以上のオブジェクトを含む第
二のオブジェクト・セットとに分類するための手段と、 前記第二のオブジェクト・セット中の各オブジェクトを
第一のバッファ中に直接レンダリングするための手段
と、 レンダリング期間を複数のタイム・スライスに分割する
ための手段と、 各タイム・スライス中に前記第一のオブジェクト・セッ
ト中の各オブジェクトを前記第一のバッファ中にレンダ
リングするための手段と、 各タイム・スライス中に前記第一のバッファからの三次
元グラフィックス・シーンを蓄積バッファ中に蓄積する
ための手段と、 前記三次元グラフィックス・シーンを前記表示装置で表
示するための手段と、を含むコンピュータ使用可能媒
体。
13. A computer usable medium having recorded thereon a program for displaying a three-dimensional graphics scene on a display device, said program comprising a plurality of objects including one or more objects to be blurred. Means for classifying into one set of objects and a second set of objects including one or more objects that are not blurred; each object in said second set of objects being stored in a first buffer. Means for direct rendering; means for dividing a rendering period into a plurality of time slices; and rendering each object in the first set of objects in the first buffer during each time slice. Means for performing the third order from the first buffer during each time slice. Means for storing the graphics scene during the accumulation buffer, computer usable medium and means for displaying said three-dimensional graphics scene on the display device.
【請求項14】前記プログラムが、 動きベクトルが選択されたオブジェクトに関連している
かどうかを決定するための手段と、 動きベクトルが前記選択されたオブジェクトに関連して
いるならば、前記選択されたオブジェクトを前記第一の
オブジェクト・セットに割り当て、 動きベクトルが前記選択されたオブジェクトに関連して
いないならば、前記選択されたオブジェクトを前記第二
のオブジェクト・セットに割り当てるための手段と、を
さらに含む請求項13記載のコンピュータ使用可能媒
体。
14. The program further comprises: means for determining whether a motion vector is associated with the selected object; and if the motion vector is associated with the selected object, the selected Means for assigning an object to the first set of objects, and if no motion vector is associated with the selected object, further assigning the selected object to the second set of objects. 14. The computer usable medium of claim 13 comprising.
【請求項15】前記決定するための手段が、動きベクト
ルが前記選択されたオブジェクトの頂点に関連している
かどうかを決定するための手段を含む請求項14記載の
コンピュータ使用可能媒体。
15. The computer-usable medium of claim 14, wherein said means for determining comprises means for determining whether a motion vector is associated with a vertex of said selected object.
【請求項16】前記動きベクトルが前記選択されたオブ
ジェクトの動きの方向とは反対の向きである請求項14
記載のコンピュータ使用可能媒体。
16. The motion vector of claim 14, wherein the motion vector has a direction opposite to a direction of motion of the selected object.
A computer usable medium as described.
【請求項17】前記動きベクトルの長さが前記選択され
たオブジェクトの動きの速度に比例する請求項14記載
のコンピュータ使用可能媒体。
17. The computer usable medium of claim 14, wherein the length of said motion vector is proportional to the speed of movement of said selected object.
【請求項18】前記表示するための手段が、 前記蓄積バッファをフレーム・バッファにコピーするた
めの手段と、 前記フレーム・バッファの内容を表示装置で表示するた
めの手段と、をさらに含む請求項13記載のコンピュー
タ使用可能媒体。
18. The apparatus of claim 18, wherein said means for displaying further comprises: means for copying said storage buffer to a frame buffer; and means for displaying the contents of said frame buffer on a display device. 14. The computer usable medium of claim 13.
JP2000188595A 1999-06-30 2000-06-23 System and method for displaying a three-dimensional object that generates object blur using motion vectors Expired - Fee Related JP3286294B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US34344399A 1999-06-30 1999-06-30
US09/343443 1999-06-30

Publications (2)

Publication Number Publication Date
JP2001043398A true JP2001043398A (en) 2001-02-16
JP3286294B2 JP3286294B2 (en) 2002-05-27

Family

ID=23346144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000188595A Expired - Fee Related JP3286294B2 (en) 1999-06-30 2000-06-23 System and method for displaying a three-dimensional object that generates object blur using motion vectors

Country Status (3)

Country Link
JP (1) JP3286294B2 (en)
CA (1) CA2307352A1 (en)
GB (1) GB2356114B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018578A (en) * 2001-06-27 2003-01-17 Sony Corp Communication device and method, communication system, recording medium, and program
US8164638B2 (en) 2001-06-27 2012-04-24 Sony Corporation Communication system and method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8390729B2 (en) 2007-09-05 2013-03-05 International Business Machines Corporation Method and apparatus for providing a video image having multiple focal lengths
EP2585895A1 (en) * 2010-06-28 2013-05-01 TP Vision Holding B.V. Enhancing content viewing experience
CN114419099B (en) * 2022-01-18 2024-08-13 腾讯科技(深圳)有限公司 Method for capturing motion trail of virtual object to be rendered

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018578A (en) * 2001-06-27 2003-01-17 Sony Corp Communication device and method, communication system, recording medium, and program
US8164638B2 (en) 2001-06-27 2012-04-24 Sony Corporation Communication system and method thereof

Also Published As

Publication number Publication date
GB0015421D0 (en) 2000-08-16
GB2356114B (en) 2003-09-10
CA2307352A1 (en) 2000-12-30
JP3286294B2 (en) 2002-05-27
GB2356114A (en) 2001-05-09

Similar Documents

Publication Publication Date Title
Van Waveren The asynchronous time warp for virtual reality on consumer hardware
US7362332B2 (en) System and method of simulating motion blur efficiently
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
Tecchia et al. Image-based crowd rendering
EP2939208B1 (en) Sprite graphics rendering system
CN110084875B (en) Using a compute shader as a front-end for a vertex shader
Latta Building a million particle system
US20060256112A1 (en) Statistical rendering acceleration
US20090109219A1 (en) Real-time mesh simplification using the graphics processing unit
US20100231588A1 (en) Method and apparatus for rendering instance geometry
JPH0757117A (en) Method and computer controlled display system for generating an index to a texture map
US7903121B2 (en) System and method for image-based rendering with object proxies
US20220392138A1 (en) Viewability testing in a computer-generated environment
CN107392836B (en) Stereo Multi-Projection Using Graphics Processing Pipeline
KR20230073222A (en) Depth buffer pre-pass
Govindaraju et al. Interactive visibility ordering and transparency computations among geometric primitives in complex environments
US20200314442A1 (en) Adaptive Pixel Sampling Order for Temporally Dense Rendering
GB2354926A (en) Occlusion culling of objects in a data processing system
EP4094815A2 (en) Viewability testing in a computer-generated environment
US7292239B1 (en) Cull before attribute read
JP3286294B2 (en) System and method for displaying a three-dimensional object that generates object blur using motion vectors
CN1201268C (en) Image process for realizing moving fuzzification
Schmitz et al. High-fidelity point-based rendering of large-scale 3-D scan datasets
CN116310026B (en) Cloud distributed graphics rendering system, method, electronic device and medium
Georgii et al. Interactive gpu-based collision detection

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees