JP4047421B2 - ユーザ定義によるルームおよびウィンドウを用いた効率的レンダリング方法および装置 - Google Patents

ユーザ定義によるルームおよびウィンドウを用いた効率的レンダリング方法および装置 Download PDF

Info

Publication number
JP4047421B2
JP4047421B2 JP27859597A JP27859597A JP4047421B2 JP 4047421 B2 JP4047421 B2 JP 4047421B2 JP 27859597 A JP27859597 A JP 27859597A JP 27859597 A JP27859597 A JP 27859597A JP 4047421 B2 JP4047421 B2 JP 4047421B2
Authority
JP
Japan
Prior art keywords
room
objects
window
coordinate system
camera
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27859597A
Other languages
English (en)
Other versions
JPH10162161A (ja
Inventor
ジャイ・ピー・メノン
ジャレック・ローマン・ロッシナック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH10162161A publication Critical patent/JPH10162161A/ja
Application granted granted Critical
Publication of JP4047421B2 publication Critical patent/JP4047421B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は一般的に言ってコンピュータ・グラフィック・システムに関し、更に具体的に言えば複雑な幾何学的モデルの画像化を実時間対話式に与えるコンピュータ・グラフィック・システムに関する。
【0002】
【従来の技術】
3次元のオブジェクトのシーンをモデル化してCRTまたは液晶表示装置等の2次元表示装置に表示するためにこのシーンをレンダリングするのに在来型のコンピユータ・グラフィック・システムが用いられる。典型的な形においては、シーンの3次元オブジェクトはオブジェクトの形状を近似する複数のポリゴン(即ちプリミティブ)によって各々表される。オブジェクトを定義するプリミティブは典型的にはローカル座標系の座標によって定義される。たとえば、オブジェクトを定義するのに用いることのできるプリミティブの1つは三角形であり、これはローカル座標系の3つの頂点の座標によって定義される。
【0003】
シーンのレンダリングは通常2段階、すなわち形状処理およびラスタ化、に分けられる。形状処理はモデリング変換、ライティング計算、ビューイング変換、クリッピング機能およびビューポート・マッピングを含むのが一般的である。モデリング変換はプリミティブをローカル座標系からワールド座標系に変換する。ライティング計算はいろいろな場所における照明モデルを評価する。これは一定シェディングに対してプリミティブあたり1回、グーロー(Gouraud)・シェーディングに対して頂点当たり1回、またはフォング(Phong)・シェーディングに対してピクセル当たり1回評価する。ビューイング変換はワールド座標のプリミティブを3Dスクリーン座標系(正規化された投影座標系とも呼ばれることがある)に変換する。クリッピング機能はビュー切頭体内にあるプリミティブ(またはプリミティブの一部)を決定する。ビューポイント・マッピングはクリップされたプリミティブの座標を正規化された装置座標系(2D座標系と呼ばれることがある)にマップする。
【0004】
ラスタ化は形状処理の間に生成されたクリップされたプリミティブの記述をピクセルに変換して表示するプロセスである。典型的なプリミティブは図1に示すように三角形T1である。その他の領域プリミティブまたは表面プリミティブはラスタ化する前に1つ以上の三角形に変換されるのが普通である。このため通常のラスタ化プロセスは三角形を扱う必要があるだけである。三角形T1はその各頂点の(x、y、z)座標によって表される。頂点の(x、y)座標は表示面におけるそれの場所を与える。z座標は頂点が3次元シーンの選ばれた視点からどれ程遠くにあるかを表す。ラスタ化は普通は3つのタスクに分けられる。つまり、スキャン変換、シェーディング、および可視性決定である。
【0005】
スキャン変換は三角形によって覆われるピクセルの集合Sを計算するために各三角形の頂点の(x、y)座標を利用する。
【0006】
シェーディングは各三角形によって覆われるピクセルの集合Sの色を計算する。色を計算するには多くの手法があり、そのあるものはテクスチュア・マッピングのような重度の計算手法を含んでいる。シェーディングは、形状処理に関して上に述べたライティング計算を通常は利用する。
【0007】
可視性決定は各三角形のz座標を利用してその三角形にとって見ることのできるピクセルの集合SV(Sの部分集合)を計算する。選ばれた視点に近い方のz値を有する以前にラスタ化された三角形によって集合Sのピクセルの何れかが覆われるならばピクセルの集合SVは集合Sとは異なったものとなる。従って、以前に処理されたすべての三角形によって記述されるシーン中の各三角形について、ピクセルはそれが集合SVの中にあるならば見ることができ、それが集合SVの中に無く集合Sの中にあるならば隠れて見ることができない。また、集合SVが集合Sと同一であるならば三角形はすべて見ることができ、集合SVが集合Sと同一でなくかつ集合SVが空でないならば部分的に隠れ、集合SVが空であるならばすべて隠れて見ることができない。たとえば図2は2つの三角形T1およびT2を示し、そこでは三角形T1が三角形T2によって部分的に隠されている。可視性決定はzバッファ手法を用いて行われるのがふつうのやり方である。Zバッファは所与のピクセルの可視プリミティブのz値を表すエントリを各ピクセル毎に格納する。所与の三角形によって覆われるピクセルの集合のz値(Znew)は補間法によって決定される。集合内の各ピクセルについて所与ピクセルのZnewが当該所与ピクセルに対応するZバッファにエントリとして格納されているz値(Zold)と比較され、エントリZoldは比較結果に従ってZnewにより更新される。
【0008】
ラスタ化は可視ピクセルSVの集合の色を表示のためイメージ・バッファに書き込むことによって完了する。
【0009】
シーンがより一層複雑になるにつれて在来方式のレンダリング手法は多くのグラフィック・システムにとって計算負荷が重くなりすぎて性能低下をもたらす。複雑なシーンに適する代わりのレンダリング手法が提案されている。たとえば、米国特許第5,086,496号 "Method for Hidden Line and Surface Removal in a three Dimensional Display" はビュー・ウインドウの分割された区画(これは少なくとも1つのイメージ頂点で交差する境界によって定義される)および所与の区画内で見ることができる面への可視性ポインタ(面の可視性判定を行うための)を利用している。
【0010】
別の例として、Proc. ACM SIGGRAPH 93, pp231-238, 1993 の "Hierachical Z-Buffer Visibility" はスキャン変換を加速するために2つの階層的データ構造、オブジェクト・スペース・オクトリー(octree)およびイメージ・スペース・Zピラミッド、の組み合わせを記述している。
【0011】
また、Proc. ACM SIGGRAPH 91, pp61-69, 1991の"Visibility Preprocessing for Interactive Graphics"は、モデルを複数のセルに分割し、セル対セル可視性情報(これは所与のセルについて所与のセルの少なくとも1点から部分的にまたは完全に見ることのできるセルの集合を表す)を生成する可視性予備処理段階の間に利用されるアルゴリズムを記述している。対話式操作の間既知の位置およびビュー切頭体を有する観察者がモデルの中を動き回る。各フレームにおいて観察者を含むセルが識別され、見ることができる可能性のあるセルのコンテント(これは予備的処理の間に生成されたセル対セル可視性情報から引き出される)が貯蔵装置から取り出される。見ることができる可能性のあるセルの集合は観察者のビュー切頭体に対してそれをより分けることにより更に縮小されて目対セル情報(これは特定されたビュー切頭体内の観察者にとって部分的にまたは完全に見ることができるセルの集合を表す)を生じる。目対セル情報により識別される残余の可視セルのコンテントは隠面除去およびレンダリングのためにグラフィックス・パイプラインに送られる。Proc. ACM SIGGRAPH 93, pp239-246, 1993はこれらの可視性予備処理アルゴリズムを放射線計算に応用している。
【0012】
【発明が解決しようとする課題】
このような代替的手法はラスタ化の間の可視性決定を加速するように設計されているが、これらの手法は融通性に欠けており、多くの場合レンダリング・プロセスに計算量の重いタスクを加えるのでその利点を殺してしまう。従って、現代の3次元モデル及びシーンに見られる様々な複雑度および特性に応じた要件に合致するように調整できる融通性のあるレンダリング手法を提供することがこの分野で必要とされている。
【0013】
【課題を解決するための手段】
従来技術の上述の諸問題および関連する問題は、ユーザが1以上のルームを定義することを可能にする機構を備えたユーザ定義ルームを利用する効率的なレンダリングという本発明の原理によって解決される。ルームとはスペースの領域、たとえば立体的セル等のことである。カメラがルーム内にある時、データが記憶される、つまり見ることができる可能性のある(または見ることができない可能性のある)オブジェクトにルームが関連づけられる。ルームはシーンを表すオブジェクトとは別のものである。予備処理ステップによりカメラがルーム内にあるかどうかが調べられ、カメラがルーム内にあるならば記憶されたデータを利用してルーム内から見ることのできる可能性のある(または見ることのできない可能性のある)シーンのオブジェクトを判定する。ルーム内から見ることのできる可能性があるものと判定されたオブジェクトだけが表示のためにレンダリングされる。
【0014】
これに加えて、1つ以上のウインドウをルームに関連づけるデータを記憶することもできる。ウインドウはそのウインドウに関するカメラの位置、向きおよび視野によって決まる見ることのできる、または見ることのできない領域を定義するジオメトリの1断片である。ルームに関連づけられたオブジェクトの集合の外にあるがウインドウにより定義される可視領域内にあるようなオブジェクトは表示のためにレンダリングされるオブジェクトに付け加えられることが望ましい。
【0015】
【発明の実施の形態】
図3に在来型のグラフィック・システム100が示されており、これはシステム・バス106を介してシステム・メモリ104に結合されたホスト・プロセッサ102を含んでいる。システム・メモリ104は1つ以上の3次元モデルに含まれるオブジェクトを定義するグラフィック・データを記憶するランダム・アクセス・メモリ(RAM)より成る。各オブジェクトを定義するグラフィック・データはローカル座標系の座標およびプリミティブの属性(たとえば色、反射率、テクスチャ)から成る。プリミティブはポリゴン、線または面などの幾何学的エンティティである。典型的な場合、プリミティブはローカル座標系における3つの頂点の座標によって定義される三角形である。この場合、システム・メモリ104は3次元シーンを作るオブジェクトの面を定義する三角形の頂点の順序リストを含む。この他にシステム・メモリ104は各三角形および変換マトリックスに対応する三角形識別子のリストを記憶する事ができる。変換マトリックスはローカル座標系からワールド座標系にシーンのオブジェクトを変換してシーン中の三角形の位置、向きおよびスケールを指定するのに用いられる。
【0016】
入出力(I/O)装置108はシステム・バス106を介してホスト・プロセッサ102とインタフェースする。I/O装置はテキスト入力のためのキーボード、テンプレートまたはタッチ・パッド、ユーザ入力のためのマウス、トラックボール、スペースボールまたはライトペンなどのポインティング装置、およびグラフィック・データや任意のアプリケーション・ソフトウエアを格納するハード・ディスクまたはCD−ROMなどの非揮発性記憶装置を含んでいる。従来と同様、グラフィック・データやアプリケーション・ソフトウエアは非揮発性記憶装置からシステム・メモリ104にロードされてシステム・プロセッサ102がアクセスできるようにする。
【0017】
アプリケーション・ソフトウエアは視点(またはカメラ)を更新してシーンをナビゲートする能力をユーザに与える1つ以上のユーザ・インタフェースを含んでいるのが普通である。これに加えて、アプリケーション・ソフトウエアは一連の所定の視点から眺めたビューであるアニメーションを行う能力をユーザに与える1つ以上のユーザ・インタフェースを含むのが普通である。視点が更新されると、アプリケーション・ソフトウエアはシステム・メモリ104に格納された変換マトリックスを利用してシーンのプリミティブをローカル座標系からワールド座標系に変換するのが普通である。ホスト・プロセッサ102で実行しているアプリケーション・ソフトウエアは次にシステム・バス106を介してシステム・メモリ104とインタフェースするグラフィック・サブシステム110にシーンを描画するグラフィック指令を供給する。
【0018】
一般にグラフィック・サブシステム110はホスト・プロセッサ102からグラフィック・サブシステム110に転送されるグラフィック指令に従って表示装置112の表示領域に表示するためシステム・メモリ104に格納されたグラフィック・データを描画するように動作する。表示装置112はラスタ走査手法または液晶表示手法を利用してピクセルを表示する。グラフィック・サブシステム110によって生成されたピクセル・データはディジタル形である。表示装置112はピクセル・データがアナログ形であることを必要とするのが普通である。図4に示されるようにこの場合、ディジタル・アナログ変換器(DAC)114がグラフィック・サブシステム110と表示装置112との間に置かれてピクセル・データをディジタル形からアナログ形に変換するようにすることができる。
【0019】
グラフィック指令は典型的にはデータ・ブロックのシーケンスからなり、各データ・ブロックはシーンのプリミティブを定義するグラフィック・データ(たとえば1つ以上のプリミティブの座標および属性)、関連づけられた変換マトリックス、およびグラフィック・サブシステム110が必要とするその他のすべての情報を含み、あるいはこれらをポイントする。グラフィック指令に関連づけられたプリミティブはプリミティブの各頂点の幾何学的座標値または同次座標値によって定義されるのが一般的である。これに加えて、グラフィック指令は通常各プリミティブの頂点に対する法線ベクトルを定義するデータを含むか、またはこれをポイントする。これらの座標および法線ベクトルはワールド座標系で指定されるのが一般的である。
【0020】
これに加えて、ローカル座標系からワールド座標系へのシーンのプリミティブの変換はホスト・プロセッサで実行しているアプリケーションによっては行うことができず、グラフィック・サブシステムによって行われることがある。この場合、グラフィック・サブシステムに与えられるグラフィック指令はシステム・メモリ104に格納された変換マトリックスを含むか、またはこれをポイントし、グラフィック・サブシステムはこの変換マトリックスを用いてシーンのプリミティブをローカル座標系からワールド座標系に変換する。
【0021】
グラフィック・サブシステム110はグラフィック・ワークステーションの一部として示されているが本発明の範囲はこれに限られるものではない。更に、以下に述べる本発明のグラフィック・サブシステム110はゲート・アレイやチップ・セットなどのハードウエアの形で実現することができる。このようなゲート・アレイやチップ・セットは少なくとも1つのプログラマブル・シーケンサ、メモリ、少なくとも1つの整数処理装置、および少なくとも1つの浮動小数点処理装置を必要に応じて含むものである。これに加えて、グラフィック・サブシステム110は米国特許第4,876,644号に開示されたような並列またはパイプライン・アーキテクチュアを含むものであっても良い。
【0022】
この代わりに、以下に述べるようなグラフィック・サブシステム110(またはその一部)がプロセッサと共にソフトウエアの形で実現されても良い。プロセッサは通常の汎用プロセッサ、ホスト・プロセッサ102,またはホスト・プロセッサ102に一体化されたコ・プロセッサであっても良い。
【0023】
図4に示されたようにグラフィック・サブシステム110はグラフィック・サブシステム110の動作を管理する制御装置200を含んでいる。シーンを描画するグラフィック指令を受け取ると制御装置200はグラフィック指令に関連づけられたグラフィック・データをジオメトリ・エンジン202に渡す。ジオメトリ・エンジン202はグラフィック指令に関連づけられたグラフィック・データをワールド座標系から3次元スクリーン座標系(正規化投影座標系と呼ばれることもある)に変換し、グラフィック・データを所定のビュー・ボリュームにたいしてクリップし、そしてクリップされたデータを3次元スクリーン座標系から正規化装置座標系(2次元装置座標系またはスクリーン座標系と呼ばれることもある)に変換する。これに加えて、適用されるシェーディング・アルゴリズムに応じて照明モデルが種々の場所(即ち、プリミティブの頂点、または所与のプリミティブにより覆われるピクセル)で評価される。変換され、クリップされたグラフィック・データは正規化装置座標系により定義されており、これはラスタ化ステージ212に渡される。
【0024】
ラスタ化ステージ212はスキャン変換を行なって変換されたプリミティブをピクセルに変換し、シェーディング計算および可視性決定を行い、各ピクセルにおける各プリミティブの寄与度を少なくとも1つのフレーム・バッファ216およびzバッファ214に格納する。Zバッファ214は表示装置112の各ピクセルについてデプス値を格納するのに十分なメモリを含んでいることが望ましい。通常はデプス値は各ピクセルにつき24ビット整数として格納される。フレーム・バッファ216は表示装置112の各ピクセルについて色データを格納するのに十分なメモリを含んでいることが望ましい。通常色データは各ピクセルにつき赤、緑、青(r、g、b)を表す3つの8ビット整数から構成される。ピクセル・データは表示装置112に表示するためにフレーム・バッファ216から周期的に取り出される。ジオメトリ・エンジン202およびラスタ化ステージ212の機能は多様なアーキテクチュアで組織できる。このようなアーキテクチュアについてのより詳細な議論は、Foley et. al. "Computer Graphics: Principles and Practice", pp855-920 (2nd Edition, 1990) に見ることができる。
【0025】
本発明によりユーザが1つ以上のルームを定義することができるようにする機構が提供される。ルームとは、カメラがルーム内にあるとき見ることができる可能性のある(または見ることができない可能性のある)オブジェクトに関連づけられた立体的セル等のスペースの領域である。ルームはシーンを表すオブジェクトとは別のものである。オブジェクトとはシーンの意味ある部分集合(室内の家具など)に対応するプリミティブ(三角形など)の集まりである。予備的処理ステップがカメラがルーム内にあるかどうかを調べ、ルーム内にあるならば見ることができる可能性のある(または見ることができない可能性のある)シーンのオブジェクトを判定する。ルーム内から見ることができる可能性のあるオブジェクトだけが表示のために描画される。
【0026】
更に具体的に述べると、本発明の機構はユーザが1つ以上のルームを定義することができるようにするユーザ・インタフェースを含んでいる。ルームは、カメラがルーム内にあるとき見ることができる可能性のある(または見ることができない可能性のある)ようなオブジェクトの集合に関連づけられたスペースの領域である。ルームは2次元(たとえば三角形)であっても3次元(たとえば立体的セル)であっても良い。ユーザがスペース内の領域を指定し(描き)そしてこの指定された領域にオブジェクトを関連づけることを可能にするものであるならどのようなユーザ・インタフェースでも使用可能である。ルームを表し、そしてカメラがルーム内にあるとき見ることができる可能性のある(または見ることができない可能性のある)オブジェクトの集合を表すデータが生成され、好ましくはシステム・メモリ104に格納される。カメラがルーム内にあるとき見ることができる可能性のあるものとして識別されたオブジェクトがルーム内に無いこともあることに留意されたい。ルームはモデル座標系において定義されても、あるいはワールド座標系において定義されても良い。
【0027】
これに加えて、ユーザ・インタフェースはルームがシーンのオブジェクトと共に表示されるかどうかをユーザが制御できるようになっていても良い。ルームを見るには各ルームを定義するジオメトリを表すデータがグラフィック・サブシステムに与えられるグラフィック指令にその一部として組み込まれる。この場合、ルームはルームをその他のオブジェクトと区別するプロパティを持っていても良い。例えば各ルームはワイヤ・フレームによって表されるようになっていても良く、また特徴的な色または斜線を持っていても、ルームの壁の後にシーンのテクスチャを含んでいても良い。
【0028】
ルームの概念を更に説明するために図5に示された例を考察することにする。ここでルームAは8個の点P1、P2、P3、P4、P5、P6、P7、P8により定義される立体的セルであり、点P1、P2、P3、P4、P5、P6、P7、P8の各々はワールド座標系の幾何学的座標によって表されている。このシーンは例としてルームから見ることのできる3つのオブジェクト、つまりビーム401、パイプ402、およびポンプ403を含んでいる。図6に示されるように,カメラがルームA内にあるとき見ることができる可能性のある(または見ることができない可能性のある)オブジェクトの集合を表すデータが生成されシステム・メモリ104に格納される。データはルームAと関連づけられたエントリを含むアレイを含んでいることが望ましい。各アレイは所与のエントリに関連づけられたルーム内で見ることのできるオブジェクトを識別する参照情報を含んでいることが望ましい。アレイのエントリと所与のルームとの関連づけは図示のリンク・リスト構造によって形成される。
【0029】
図7のフローチャートに示されたように予備処理ステップはステップ503で始まってカメラがルーム内にあるかどうかを調べる。カメラがルーム内にあるならば、ステップ505に動作が進んで、カメラがルームA内にあるとき見ることができる可能性のある(または見ることができない可能性のある)オブジェクト(またはその一部)の集合を表すデータがシステム・メモリ104から読み取られる。ステップ507においてルームA内から見ることができる可能性のあるオブジェクト(またはその一部)だけを描画するためのグラフィック指令が発生される。これはステップ505においてメモリ104から読み取られたデータによって指定される。ステップ509において、ステップ507で発生されたグラフィック指令がグラフィック・サブシステムに与えられ、ここで表示のために描画される。
【0030】
カメラがルームA内になければ予備処理はルームAに関して終了する。上に述べたのと同じステップをユーザにより指定されたルームの各々に対して繰り返す事ができる。カメラが2つ以上のルームにあるならばルームの1つに関連づけられたオブジェクト(またはカメラがあるルームの各々に関連づけられたオブジェクト)が表示のために描画されても良い。
【0031】
本発明の別の実施例においては、上述のルームは1つ以上の関連づけられたウインドウを持つことができる。この実施例においては、ウインドウは矩形などのジオメトリであり、これはウインドウに対するカメラの位置、向き、および視野に依存するワールド座標系の、見ることのできる、または見ることのできない領域を定義する所与のルームと関連づけられる。カメラがウインドウに関連づけられたルームの外にあるならば、ルームおよび関連づけられたウインドウはシーン内のオブジェクトの可視性に効果を及ぼさない。しかしカメラがルーム内にあればウインドウによって定義された見ることのできる、または見ることのできない領域はオブジェクトの可視性に効果を及ぼすことがある。ウインドウの位置はルームに関連づけられたオブジェクトの集合の外にあるオブジェクトの可視性を決定するのに用いられるのが好ましい。ウインドウを表すデータは、ワールド座標系(またはモデル座標系)の座標の集合、例えばウインドウの隅の座標により表され、これはシステム・メモリ104に格納されるのが好適である。ルームとウインドウとの関連づけは階層的トリー・データ構造によって表すことができ、これは以下に述べる非凸状ルームの場合に有利である。
【0032】
図8および9はカメラがウインドウに関連づけられたルーム内にあるときにウインドウによって定義され、見ることができる可能性のある(または見ることができない可能性のある)領域を図解する。例えば、図8に示されるように立体的ルームは点P3、P4、P7、P8によって定義されるセルの側にある矩形ウインドウを持つことができる。カメラの位置、向き、および視点はビュー切頭体を定義する。図示されたように、カメラはルーム内にあり、従ってウインドウにより定義される見ることができる可能性のある(または見ることができない可能性のある)領域は、ルームに関連づけられたオブジェクトの集合の外にあるオブジェクトの可視性に影響を与える事が好ましい。ウインドウに関連づけられたルームの外にカメラがあるときには、ウインドウに関連づけられたルームはシーン内のオブジェクトの可視性に影響を与えない。
【0033】
図9に示されるように、ウインドウへのビュー切頭体の投影は斜線部Aを定義し、ビュー切頭体はここでウインドウと交差する。同じく定義される第2の部分Bではビュー切頭体はウインドウと交差しない。図8のウインドウによって定義される可視領域は切頭体の斜線部Aに投影する部分である。同様に、図8のウインドウによって定義される見ることのできない領域は切頭体の第2の部分Bに投影する部分である。所与のルームに関連づけられたオブジェクトの集合の外にあるオブジェクトはウインドウの可視領域Aを通して見ることができる。
【0034】
ルームおよび関連づけられたウインドウに関する予備処理ステップはカメラが所与のルーム内にあるかどうかを調べる。カメラが所与のルーム内にあるならば、所与のルームに関連づけられたオブジェクトの集合内にあるオブジェクト(またはオブジェクトの一部)が識別される。これに加えて、カメラが所与のルーム内にあるならば、次の特性を有するオブジェクトが識別される。
(1)所与のルームに関連づけられたオブジェクトの集合の外にある。
(2)所与のルームに関連づけられたウインドウにより定義される可視領域内にある。
【0035】
識別されたオブジェクト(またはオブジェクトの一部)はグラフィック・サブシステムに送られてそこで表示のために描画される。
【0036】
図10に示されるように、好適には予備処理ステップはステップ703で開始してルームをデプスで分類する。次にステップ705で、カメラ位置に近い方の1つ以上のルームによって隠されている(または部分的に隠されている)ルームがあれば除去されるのが望ましい。これはカメラ位置から2番目に遠いルームから始めてルームをループし、カメラに最も近いルームが処理されるまでループを続けることにより行われる。これは次のようにして行われる。所定の基準に照らして現在のルームがその背後にあるルームを隠している(または部分的に隠している)ならば、その隠されているルーム(またはその部分)は除去されて良い。ステップ705で除去されなかったルーム(またはその部分)の各々についてステップ707ないし713が次に行われる。ステップ707ないし713は、最も背後にあるルーム(カメラから最も遠いルーム)から最も前面にあるルーム(カメラに最も近いルーム)への順で、ステップ705で除去されなかったルームの各々に対して行われる事が望ましい。
【0037】
ステップ707において、カメラがルーム内にあるかどうかが判定される。ステップ707においてカメラがルーム内にあると判定されたならば、動作はルームと関連づけられた各ウインドウに対してステップ709からステップ717まで続けられる。ステップ707においてカメラがルームの外にあると判定されたならば、予備処理ステップはステップ719に続く。
【0038】
ステップ709において、ルームに関連づけられたオブジェクトの集合内にあるすべてのオブジェクトが見ることができる可能性があるものとしてマークされる。ステップ711において、ルームに関連づけられたオブジェクトの集合の外にあるすべてのオブジェクトが隠されているものとしてマークされる。
【0039】
ステップ713において、ビュー切頭体がルームのウインドウと交差するかどうかが判定される。これは幾何学的モデリングにおいて周知の手法、例えばC. M. Hoffman, "Geometric and Solid Modeling", Morgan Kaufmann Publisgers, San Mateo, California, 1989, pp67-109に述べられた手法など、を用いて行われる幾何学的テストである。ステップ713においてビュー切頭体がルームのウインドウと交差するものと判定されるならば動作はステップ715に続く。そうでなければ予備処理ステップがステップ719に続く。
【0040】
ステップ715において、ウインドウにより定義される可視領域が決定され、動作はステップ717に続く。ウインドウの可視領域はウインドウと、ビュー切頭体との交差から決定される。可視領域は平面の適当なブール組み合わせとして表現されるのが望ましい。平面のこのようなブール組み合わせを誘導する事についてのもっと詳しい議論は、Requicha, "Representation of Rigid Solids: Theory, Method and Systems", ACM Computer Surveys, Vol.12, No.2, pp.437-464に記述されている。可視領域が複雑な形状を持っている場合、可視領域の表現はより複雑でない形状を持った近似と置き換える事ができる。
【0041】
ステップ717において、ウインドウによって定義された可視領域内にあるオブジェクト(またはその一部)を識別して、識別されたオブジェクト(またはその一部)を見ることができる可能性あるものとしてマークするためのより分け動作が行われる。これは識別されたオブジェクト(またはその一部)に関連づけられた識別子を、そのオブジェクト(またはその一部)が見ることのできる可能性があるものであることを示す所定値にセットする事により行われて良い。ステップ717のより分け動作は、隠されているものとマークされたオブジェクト(またはその一部)、つまりルームに関連づけられたオブジェクトの集合の外にあるオブジェクト、について行われるのが望ましい。
【0042】
ステップ719において、すべてのルームが処理されたかどうかが調べられる。すべてのルームが処理されているならば動作はステップ721に続き、そうでないならば動作は次の未処理のルームのためにステップ707に戻る。
【0043】
ステップ721において、見ることができる可能性あるものとしてマークされているすべてのオブジェクト(またはその一部)を描画するためのグラフィック指令がグラフィック・サブシステムに転送され、予備処理ステップが終了する。グラフィック・サブシステムは予備処理の間に発生されたグラフィック指令を受け取ると見ることができる可能性あるオブジェクト(またはその部分)を表示装置に表示するために描画する。
【0044】
ルームは非凸状であっても良い。例えば、図13は4つのウインドウA,B,C,Dを有する非凸状のルームRの断面を示す。この例においては2つ以上のウインドウがルームの外にあるオブジェクトの可視性に影響することがあると言うことに留意されたい。例えば、視点がベクトルXにより与えられるならばルームの外にあるオブジェクトの可視性に影響するウインドウは図示のようにウインドウB、C、Dを含む。ウインドウA,B,C,DとルームRとの関連づけを表し、適当なウインドウの効果が評価されるようにルームRのウインドウに関連づけられたより分け動作を指令するために図14に示す階層的データ構造が用いられるのが望ましい。もっと具体的にいうと、ステップ709ないし717は上述のように各ルームに対して行われるものではない。その代わりに、ビュー切頭体によって交差される最も近いウインドウ(視点の位置に関して)、WC1、を識別するためにトリーのレベル1ノードのウインドウが調べられる。ステップ709、715及び717がこのような最も近いウインドウWC1に対して行われる。このステップの結果、ウインドウWC1によって定義される可視領域にあるオブジェクト(またはその一部)が、見ることができる可能性あるものとしてマークされる事になる。図13に示された例において、最も近いレベル1ウインドウWC1はウインドウBである。次に、WC1ノードの子であるレベル2ノードのウインドウが存在するならば、ビュー切頭体によって交差されるこの子ノードの最も近いウインドウ(視点の位置に関して)、WC2、を識別するためにレベル2ノードのウインドウが調べられる。レベル1ノード処理ステップにおいて見ることのできる可能性があるものとしてマークされたオブジェクト(またはその一部)についてステップ715および717がウインドウWC2に対して行われる。しかしながらこのレベル2ノードについては、ウインドウWC2によって定義される可視領域内にあるオブジェクト(またはその一部)は見ることができないものとしてマークされる。図13に示された例においては最も近いレベル2ウインドウWC2はウインドウCである。次に、WC2ノードの子であるレベル3ノードのウインドウが存在するならば、ビュー切頭体によって交差されるこの子ノードの最も近いウインドウ(視点の位置に関して)、WC3、を識別するためにレベル3ノードのウインドウが調べられる。レベル2ノード処理ステップにおいて見ることのできる可能性があるものとしてマークされたオブジェクト(またはその一部)についてステップ715および717がウインドウWC3に対して行われる。しかしながらこのレベル3ノードについては、ウインドウによって定義される可視領域内にあるオブジェクト(またはその一部)は見ることができる可能性あるものとしてマークされる。以降の偶数番号レベル(4、6、8・・・)があるならばこれらのすべての偶数番号レベルに対してレベル2ノード処理ステップが繰り返されることが望ましい。また、以降の奇数番号レベル(5、7、9・・・)があるならばこれらのすべての奇数番号レベルに対してレベル3ノード処理ステップが繰り返されることが望ましい。
【0045】
要約すると、ルームはセルおよびセル対セル可視性情報を判定しあらかじめ格納するという計算負荷の重いタスクを不必要にする。ウインドウのないルームは幾何学的計算を必要としないが、ウインドウを有するルームはウインドウの投影範囲だけに空間的に限られた幾何学的問い合わせを必要とする。従って、ルームは任意のシーンに対して高速であり、ユーザによる制御ができ、計算上効率的であり、便利で、柔軟性に富む。
【0046】
本発明の別の実施例において、上述のルームおよび予備処理は、カメラが視点相互間で移動するときに効率的な可視性判定ができるようにするため可視性集合と共に用いられて良い。図11および12に示されたように、ステップ801で1つ以上のルームが(そしておそらくは関連づけられたウインドウが)ユーザによって定義されそしてシーンに関連づけられる。ステップ803で、ユーザ入力に従って最初の視点(即ち最初のカメラ位置、向き、および視角)が設定される。ステップ805で、ルームを有する実施例に関して述べられた(またはルーム及びウインドウを有する実施例に関して述べられた)予備処理およびレンダリングが最初の視点について行われ、この最初の視点から眺めたシーンに寄与するオブジェクトの最初の可視性集合がたとえばシステム・メモリ104に格納される。
【0047】
ステップ807で、ユーザ入力に従って第2の視点(即ち第2のカメラ位置、向き、および視角)が設定される。ステップ809で、ルームに関して述べられた(またはルーム及びウインドウを有する実施例に関して述べられた)予備処理およびレンダリングが第2の視点について行われ、この最初の視点から眺めたシーンに寄与するオブジェクトの第2の可視性集合がたとえばシステム・メモリ104に格納される。
【0048】
ステップ811で、カメラが最初の視点(または最初の視点から所定の許容範囲内にある点)にあるかどうかが判定され、カメラが最初の視点(または最初の視点から所定の許容範囲内にある点)にあるならばステップ813で最初の可視性集合のオブジェクトを用いてシーンが描画される。
【0049】
ステップ815で、カメラの位置が最初の視点(または最初の視点から所定の許容範囲内にある点)から第2の視点(または第2の視点から所定の許容範囲内にある点)に移動したかどうかが判定され、移動しているならばステップ817で最初の可視性集合および第2の可視性集合の和集合によって表されるオブジェクトを用いてシーンが描画される。ステップ817はカメラの位置が第2の視点に補間される間に行われることが望ましい。ステップ817に続いて、またはこれと同時にステップ819が行われ、これにより第2の可視性集合のオブジェクトを用い、第2の視点に従ってシーンが描画される。
【0050】
ルームおよび可視性集合の組み合わせは複雑なシーン中に描画されるオブジェクトの数を大きく低減させる結果となるのが典型的である。重要なことは複雑なシーンに描画されるオブジェクトの低減が特定のドメイン(たとえば軸整列したアーキテクチュア・モデル)に限られないことである。更に、カメラの補間の間の可視性集合動作は移動の間のイメージ忠実度および感覚的一貫性を多くの場合維持し、シーンの同じ複雑度に対してよりよい性能(より高速なフレーム更新)およびよりよい忠実度をもたらす傾向がある。
【0051】
本発明は特定の実施例に関して図示されかつ説明されてきたが、この技術分野の知識を有するものにとって形態および詳細について上述の変更およびその他の変更が本発明の精神及び範囲を逸脱することなくなされうることが理解されるべきである。
【図面の簡単な説明】
【図1】三角形T1のラスタ化を表す図である。
【図2】三角形T1およびT2のラスタ化を表す図である。ここで三角形T1はT2により部分的に隠されている。
【図3】グラフィック・ワークステーションの機能的ブロック線図である。
【図4】図3のグラフィック・ワークステーションのグラフィック・サブシステムの機能的ブロック線図である。
【図5】本発明によるルームを示す図である。
【図6】オブジェクトの集合にルームを関連づけるデータ構造を示す図である。
【図7】本発明に従つたルームの予備処理を示すフローチャートである。
【図8】本発明に従ったウインドウを有するルームを示す図である。
【図9】ビュー切頭体と図8のウインドウとの交差を2次元空間で示す図である。
【図10】本発明に従った関連づけられたウインドウを有するルームの予備処理を示すフローチャートである。
【図11】本発明による1つ以上のルームを利用する際のグラフィック・システムの動作及び関連する予備処理を可視性集合と共に示すフローチャートである。
【図12】本発明による1つ以上のルームを利用する際のグラフィック・システムの動作及び関連する予備処理を可視性集合と共に示すフローチャートである。
【図13】凸でないルームRの断面図および関連づけられたウインドウA,B,C,Dを示す図である。
【図14】適切なウインドウ効果が評価されるようにするためルームRのウインドウに関連づけられたより分け動作を指令するのに用いられるウインドウA、B、C、DとルームRとの関連づけを表す階層的トリー構造を示す図である。

Claims (12)

  1. ホスト・プロセッサとシステム・メモリとグラフィック・サブシステムを有するコンピュータ・グラフィック・システムにおいて、シーンが第1の座標系にある複数の3次元オブジェクトによって表され、各オブジェクトが1つ以上のプリミティブを表すグラフィック・データによって表される、前記第1の座標系で位置、向き、および視野を有するカメラに従ってシーンをレンダリングする方法であって、前記ホスト・プロセッサにより、
    第1の領域を表すルームであって、前記シーンを表す複数のオブジェクトとは別のものであるルームをユーザ入力に応答して前記第1の座標系に定義してシステム・メモリに記憶するステップと、
    ユーザ入力に応答して、前記シーンを表す前記複数のオブジェクトを、前記ルーム内から見ることのできる可能性のある前記オブジェクトの第1の集合、および前記ルーム内から見ることのできる可能性のないオブジェクトの第2の集合に区分して前記システム・メモリから読み取るステップと、
    前記オブジェクトの第1の集合および第2の集合の一方を前記ルームに関連づけるデータを前記システム・メモリに格納するステップと、
    前記カメラが前記ルーム内にあるかどうかを前記ホスト・プロセッサの演算処理により判定するステップと、
    前記カメラが前記ルーム内にあるものと判定されたとき、前記オブジェクトの第1の集合および第2の集合の一方を前記ルームに関連づけるデータに従って前記第1の集合を識別し、前記オブジェクトの第1の集合のうち前記ルーム内から見ることができる可能性がある部分を表す第1のグラフィック・データを生成するステップと、
    前記第1のグラフィック・データをレンダリングするグラフィック指令をグラフィック・サブシステムに与えるステップと、
    を含む方法。
  2. 前記ルームは第1の座標系にある2次元ジオメトリである請求項1に記載の方法。
  3. 前記ルームは矩形である請求項2に記載の方法。
  4. 前記ルームは第1の座標系にある3次元ジオメトリである請求項1に記載の方法。
  5. 前記ルームは該ルームに関連づけられた少なくとも1つのウインドウを含む請求項1に記載の方法。
  6. 前記第1のグラフィック・データを生成するステップは、前記ホスト・プロセッサにより、
    前記カメラの前記第1の座標系における位置、向き、および視野によって定義されるビュー切頭体が前記ウインドウと交差するかどうかを判定するステップと、
    前記ビュー切頭体がウインドウと交差するものと判定されたとき、前記ビュー切頭体と前記ウインドウとの交差に従って第1の領域を決定するステップと、
    前記第1の領域内にある前記ルーム内から見ることができる可能性がある部分を表す前記第1のグラフィック・データを生成するステップと、
    を含む請求項5に記載の方法。
  7. シーンが第1の座標系にある複数の3次元オブジェクトによって表され、各オブジェクトが1つ以上のプリミティブを表すグラフィック・データによって表されるコンピュータ・グラフィック・システムにおいて前記第1の座標系で位置、向き、および視野を有するカメラに従ってシーンをレンダリングする装置であって、
    ユーザ入力に応答して、第1の領域を表すルームであって、前記シーンを表す複数のオブジェクトとは別のものであるルームを前記第1の座標系に定義し、前記シーンを表す前記複数のオブジェクトを、前記ルーム内から見ることのできる可能性のある前記オブジェクトの第1の集合、および前記ルーム内から見ることのできる可能性のないオブジェクトの第2の集合に区分し、前記オブジェクトの第1の集合および第2の集合の一方を前記ルームに関連づけるデータを格納する手段と、
    前記カメラが前記ルーム内にあるかどうかを判定する手段と、
    前記カメラが前記ルーム内にあるものと判定されたとき、前記オブジェクトの第1の集合および第2の集合の一方を前記ルームに関連づけるデータに従って前記第1の集合を識別する手段と、
    前記オブジェクトの第1の集合の部分を表す第1のグラフィック・データを生成する手段と、
    前記第1のグラフィック・データをレンダリングする手段と、
    を含む装置。
  8. 前記ルームは第1の座標系にある2次元ジオメトリである請求項7に記載の装置。
  9. 前記ルームは矩形である請求項8に記載の装置。
  10. 前記ルームは第1の座標系にある3次元ジオメトリである請求項7に記載の装置。
  11. 前記ルームは該ルームに関連づけられた少なくとも1つのウインドウを含む請求項7に記載の装置。
  12. 前記第1のグラフィック・データを生成する手段は、
    前記カメラの前記第1の座標系における位置、向き、および視野によって定義されるビュー切頭体が前記ウインドウと交差するかどうかを判定する手段と、
    前記ビュー切頭体がウインドウと交差するものと判定されたとき、前記ビュー切頭体と前記ウインドウとの交差に従って第1の領域を決定する手段と、
    前記第1の領域内にある前記ルーム内から見ることができる可能性がある部分を表す前記第1のグラフィック・データを生成する手段と、
    を含む請求項11に記載の装置。
JP27859597A 1996-11-19 1997-10-13 ユーザ定義によるルームおよびウィンドウを用いた効率的レンダリング方法および装置 Expired - Fee Related JP4047421B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/752,139 US5926183A (en) 1996-11-19 1996-11-19 Efficient rendering utilizing user defined rooms and windows
US08/752139 1996-11-19

Publications (2)

Publication Number Publication Date
JPH10162161A JPH10162161A (ja) 1998-06-19
JP4047421B2 true JP4047421B2 (ja) 2008-02-13

Family

ID=25025058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27859597A Expired - Fee Related JP4047421B2 (ja) 1996-11-19 1997-10-13 ユーザ定義によるルームおよびウィンドウを用いた効率的レンダリング方法および装置

Country Status (5)

Country Link
US (1) US5926183A (ja)
JP (1) JP4047421B2 (ja)
KR (1) KR100256472B1 (ja)
CN (1) CN1108591C (ja)
TW (1) TW338142B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6831636B1 (en) * 1999-06-29 2004-12-14 International Business Machines Corporation System and process for level of detail selection based on approximate visibility estimation
US6330003B1 (en) * 1999-07-30 2001-12-11 Microsoft Corporation Transformable graphical regions
EP1363246A4 (en) * 2001-02-23 2006-11-08 Fujitsu Ltd "DISPLAY CONTROL DEVICE, INFORMATION EQUIPMENT EQUIPPED WITH THE DISPLAY CONTROL DEVICE AND VIEWPOINT POSITION CONTROL DEVICE"
US20050195186A1 (en) * 2004-03-02 2005-09-08 Ati Technologies Inc. Method and apparatus for object based visibility culling
US9336624B2 (en) * 2008-10-07 2016-05-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for rendering 3D distance fields
KR101068324B1 (ko) * 2009-10-28 2011-09-28 중앙대학교 산학협력단 구좌표계 렌더링 방법 및 시스템
US8791945B2 (en) * 2011-05-18 2014-07-29 Intel Corporation Rendering tessellated geometry with motion and defocus blur
CN110136082B (zh) 2019-05-10 2021-06-01 腾讯科技(深圳)有限公司 遮挡剔除方法、装置及计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027292A (en) * 1989-04-19 1991-06-25 International Business Machines Corporation Multiple depth buffers for graphics and solid modelling
US5268995A (en) * 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5359704A (en) * 1991-10-30 1994-10-25 International Business Machines Corporation Method for selecting silhouette and visible edges in wire frame images in a computer graphics display system
US5428716A (en) * 1991-12-26 1995-06-27 International Business Machines Corporation Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers

Also Published As

Publication number Publication date
KR100256472B1 (ko) 2000-05-15
US5926183A (en) 1999-07-20
JPH10162161A (ja) 1998-06-19
TW338142B (en) 1998-08-11
CN1108591C (zh) 2003-05-14
CN1182925A (zh) 1998-05-27
KR19980041796A (ko) 1998-08-17

Similar Documents

Publication Publication Date Title
JP4679737B2 (ja) グラフィックオブジェクトの表面点を投影する方法
JP3184327B2 (ja) 3次元グラフィックス処理方法及びその装置
JP4610105B2 (ja) グラフィックオブジェクトをレンダリングする方法及び装置
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
US7289119B2 (en) Statistical rendering acceleration
US5579455A (en) Rendering of 3D scenes on a display using hierarchical z-buffer visibility
Naylor Interactive solid geometry via partitioning trees
US5926182A (en) Efficient rendering utilizing user defined shields and windows
JP4116648B2 (ja) オクルージョンカリング方法および描画処理装置
US20010012018A1 (en) Occlusion culling for complex transparent scenes in computer generated graphics
JP4142065B2 (ja) 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法
JP4610104B2 (ja) グラフィックオブジェクトを表現する方法
JP2001266172A (ja) グラフィックオブジェクトの表面点の陰属性をフィルタリングする方法
US5428716A (en) Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers
US7158133B2 (en) System and method for shadow rendering
Wang et al. Second-depth shadow mapping
JP4047421B2 (ja) ユーザ定義によるルームおよびウィンドウを用いた効率的レンダリング方法および装置
US6542154B1 (en) Architectural extensions to 3D texturing units for accelerated volume rendering
US6714195B1 (en) Image processing apparatus
KR101090660B1 (ko) 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법
JP3086426B2 (ja) オブジェクトのラスタ化方法及び装置
EP3876205A1 (en) Image generation system and method
US5649078A (en) Efficient two-pass rasterization scheme utilizing visibility information
US6222556B1 (en) Fast processing of image primitives
Juarez-Comboni et al. A multi-pass multi-stage multigpu collision detection algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees