JP2882465B2 - 画像生成方法およびその装置 - Google Patents

画像生成方法およびその装置

Info

Publication number
JP2882465B2
JP2882465B2 JP7350938A JP35093895A JP2882465B2 JP 2882465 B2 JP2882465 B2 JP 2882465B2 JP 7350938 A JP7350938 A JP 7350938A JP 35093895 A JP35093895 A JP 35093895A JP 2882465 B2 JP2882465 B2 JP 2882465B2
Authority
JP
Japan
Prior art keywords
block
primitive
pixel
image
screen
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 - Lifetime
Application number
JP7350938A
Other languages
English (en)
Other versions
JPH09179999A (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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP7350938A priority Critical patent/JP2882465B2/ja
Priority to US08/773,951 priority patent/US6456283B1/en
Publication of JPH09179999A publication Critical patent/JPH09179999A/ja
Application granted granted Critical
Publication of JP2882465B2 publication Critical patent/JP2882465B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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)
  • Image Generation (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータグラフ
ィックスにおける画像生成方法およびその装置に関し、
特に隠面消去処理を高速に行なう画像生成方法およびそ
の装置に関する。
【0002】
【従来技術】コンピュータグラフィックスによる3次元
形状物体を隠面消去した画像を生成する方法としては、
Zバッファ法が有名である(例えば、特開昭62−22
2379号公報等参照)。Zバッファ法は、視点からの
距離である奥行き値を各画素毎に1画面分格納するZバ
ッファと、明るさを表す輝度値を各画素毎に1画面分格
納するフレームバッファとを用い、各画素ごとにZバッ
ファ中の奥行き値と新しく計算した3次元形状物体の奥
行き値とを比較して、視点から近い方の奥行き値および
輝度値をZバッファおよびフレームバッファに残すこと
で、最終的に隠面消去された画像をフレームバッファ中
に生成する方法である。この方法では、3次元形状物体
を画面に投影したときの投影像に含まれる各画素につい
てフレームバッファにリード,モディファイおよびライ
トを行なう必要があり、画像生成を高速に行うにはフレ
ームバッファを構成する大容量メモリへのランダムアク
セスを高速に行なう必要がある。
【0003】メモリへのランダムアクセスを高速に行な
う方法としては、メモリのバスバンド幅を上げるため
に、SRAM(Static Random Acce
ssMemory:エスラム)という高速メモリを使用
したり、メモリを並列動作させることが行なわれてい
る。
【0004】
【発明が解決しようとする課題】上述した従来の画像生
成方法では、フレームバッファへのランダムアクセスを
高速に行なうために、高価なメモリを使用したり、メモ
リを並列動作させるのにメモリを大量に使ったり信号線
を並列度に応じて多くとる必要があるため、装置が大規
模化し高価なものとなるという問題点があった。
【0005】一方、最近は高速DRAM(Dynami
c Random AccessMemory:ディー
ラム)などの大容量かつ低価格で高速アクセス可能なメ
モリが製造され始めたが、ランダムアクセスを自由に行
なえないなどの制約があり、これまで一般的に行なわれ
てきたままでのZバッファ法ではそのメモリの性能を十
分に引き出せないという問題点が生じている。
【0006】本発明の目的は、画面を複数の矩形ブロッ
ク(以下、単にブロックという)に分割するとともに、
プリミティブを画面への投影像がブロックに完全に収ま
るようにブロック内スパンの集まりに分割して、隠面消
去したブロック画像の生成を繰り返すことにより、高速
DRAMなどの低価格なメモリでも高速に画像生成が行
なえるようにした画像生成方法およびその装置を提供す
ることにある。
【0007】なお、画像データを複数のブロック領域に
分割するブロック化の手法を用いる先行技術として、特
開平1−112377号公報に開示された「画像情報処
理装置」があるが、この装置はブロックごとに符号化を
行うためのものであり、本願発明とは目的および構成が
全く異なるものである。
【0008】
【課題を解決するための手段】本発明の画像生成方法
は、3次元空間中に配置した物体を基本形状であるプリ
ミティブの集まりとして定義し、格子状に並んだ画素で
構成される画面上の各画素毎に視点からの距離を表す奥
行き値に基づいて隠面消去した画像を生成する画像生成
方法において、前記画面を複数の矩形ブロックに分割
し、少なくとも1ブロック分の各画素の輝度値および奥
行き値を格納するキャッシュメモリを用意し、前記プリ
ミティブを前記画面への投影像が前記ブロックに完全に
収まるブロック内スパンの集まりに分割し、前記キャッ
シュメモリ中で前記ブロック内スパンの集まりから隠面
消去したブロック画像を生成することを繰り返すことで
1画面分の画像を生成することを特徴とする。
【0009】また、本発明の画像生成方法は、3次元空
間中に配置した物体を基本形状であるプリミティブの集
まりとして定義し、格子状に並んだ画素で構成される画
面上の各画素位置に対応した、視点からの距離を表す奥
行き値および明るさを表す輝度値をそれぞれ格納するZ
バッファおよびフレームバッファを用いて、前記奥行き
値に基づいて隠面消去した画像を生成する画像生成方法
において、前記画面を複数の矩形ブロックに分割したと
きの少なくとも1ブロック分の画素値を格納できるキャ
ッシュメモリを空の状態に初期化するキャッシュ初期化
ステップと、前記物体を構成する全てのプリミティブの
中で取り出していないプリミティブがあれば取り出し、
なければ終了のための処理に移るプリミティブ有り判定
ステップと、前記プリミティブの前記画面への投影像を
含む全てのブロックを抽出する投影ブロック抽出ステッ
プと、前記プリミティブの前記画面への投影像を含む全
てのブロックの中で取り出していないブロックがあれば
取り出し、なければ前記プリミティブ有り判定ステップ
に移るブロック有り判定ステップと、前記ブロックの画
素値が前記キャッシュメモリ中になければ、前記画素値
を前記キャッシュメモリに読み込むと共に、前記キャッ
シュメモリ中に既に別のブロックの画素値が記憶されて
いて前記ブロックの画素値で上書きされるときは、前記
別のブロックの画素値を前記Zバッファおよび前記フレ
ームバッファに書き出すキャッシュ入れ換えステップ
と、前記プリミティブを前記画面への投影像が前記ブロ
ックに完全に収まるようにブロック内スパンの集まりに
分割したときのブロック内スパン情報を求めるブロック
内スパン生成ステップと、前記ブロック内スパンに含ま
れる画素の画素値を前記ブロック内スパン情報から求め
ると共に、それら画素値の奥行き値と前記キャッシュメ
モリに記憶されている前記ブロック中の奥行き値とを比
較して前記視点から可視となるブロック内スパンの画素
値を前記キャッシュメモリ中に保存させる処理を行なっ
た後に前記ブロック有り判定ステップに移るブロック画
像生成ステップと、前記プリミティブ有り判定ステップ
における終了のための処理として、前記キャッシュメモ
リに記憶されている輝度値を前記フレームバッファに書
き出すキャッシュ排出ステップとを含むことを特徴とす
る。
【0010】さらに、本発明の画像生成方法は、前記キ
ャッシュ入れ換えステップで、前記ブロックの画素値が
前記キャッシュメモリ中になければ、前記ブロック中の
奥行き値を前記キャッシュメモリに読み込むと共に、前
記キャッシュメモリ中に既に別のブロックの画素値が記
憶されていて前記ブロックの画素値で上書きされるとき
は、前記別のブロックの画素値のうちの変更のあった画
素値のみを前記Zバッファおよび前記フレームバッファ
に書き出すことを特徴とする。
【0011】さらにまた、本発明の画像生成方法は、3
次元空間中に配置した物体を基本形状であるプリミティ
ブの集まりとして定義し、格子状に並んだ画素で構成さ
れる画面上の各画素位置に対応した、明るさを表す輝度
値を格納するフレームバッファ中に、前記プリミティブ
の視点からの距離を表す奥行き値に基づいて隠面消去し
た画像を生成する画像生成方法において、前記画面を複
数の矩形ブロックに分割したときの少なくとも1ブロッ
ク分以上の各画素の輝度値および奥行き値からなる画素
値を格納できるキャッシュメモリを空の状態に初期化す
るキャッシュ初期化ステップと、前記プリミティブの前
記画面への投影像を含む可能性があるブロックを表す位
置情報を全てのプリミティブについて求めて記憶する全
プリミティブ位置算出ステップと、前記画面上の全ての
ブロックについて、取り出していないブロックがあれば
その画面上の並び順に1つブロックを取り出すブロック
有り判定ステップと、前記ブロックに前記画面への投影
像が含まれる可能性があるプリミティブを前記位置情報
に基づいて全て抽出するプリミティブ抽出ステップと、
前記抽出されたプリミティブの中で取り出していないプ
リミティブがあれば取り出し、なければ終了のための処
理に移るプリミティブ有り判定ステップと、前記プリミ
ティブを前記画面への投影像が前記ブロックに完全に収
まるようにブロック内スパンの集まりに分割したときの
ブロック内スパン情報を求めるブロック内スパン生成ス
テップと、前記ブロック内スパンに含まれる画素の画素
値を前記ブロック内スパン情報から求めると共に、それ
ら画素値の奥行き値と前記キャッシュメモリに記憶され
ている前記ブロック中の奥行き値とを比較して前記視点
から可視となるプリミティブの画素値を前記キャッシュ
メモリ中に保存させる処理を行なった後に前記プリミテ
ィブ有り判定ステップに移るブロック画像生成ステップ
と、前記プリミティブ有り判定ステップにおける終了の
ための処理として、前記キャッシュメモリに記憶されて
いる輝度値を前記フレームバッファに書き出すと共に前
記キャッシュメモリを空の状態に初期化し、前記ブロッ
ク有り判定ステップに移るキャッシュ排出ステップとを
含むことを特徴とする。
【0012】一方、本発明の画像生成装置は、3次元空
間中に配置した物体を基本形状であるプリミティブの集
まりとして定義したときの各プリミティブを表現するプ
リミティブ情報を設定するプリミティブ設定部と、前記
画面中の各画素における前記プリミティブの視点からの
距離を表す奥行き値および明るさを表す輝度値をそれぞ
れ格納するZバッファおよびフレームバッファを含むメ
モリと、前記画面を複数の矩形ブロックに分割したとき
の1ブロック分以上の各画素の奥行き値および輝度値か
らなる画素値を格納できるキャッシュメモリと、前記プ
リミティブ情報に基づいて、前記プリミティブを前記画
面への投影像が前記ブロックに完全に収まるようにブロ
ック内スパンの集まりに分割したときのブロック内スパ
ン情報を求めると共に、前記プリミティブの前記画面へ
の投影像を含むブロックを示すブロック情報を求めるブ
ロック分割部と、前記ブロック内スパン情報を記憶する
ブロック内スパン記憶部と、前記ブロック情報に基づい
て、前記ブロックの画素値が前記キャッシュメモリ中に
なければ前記画素値を前記メモリから前記キャッシュメ
モリに読み込むと共に、前記キャッシュメモリ中に既に
別のブロックの画素値が記憶されていて前記ブロックの
画素値で上書きされるときは前記別のブロックの画素値
を前記メモリに書き出し、前記ブロックに投影されるブ
ロック内スパンを表すブロック内スパン情報を前記ブロ
ック内スパン記憶部から読み出す制御を行なうキャッシ
ュ制御部と、前記ブロック内スパンに含まれる画素の画
素値を前記ブロック内スパン情報から求めると共に、前
記キャッシュメモリに記憶されている前記ブロック中の
奥行き値を前記キャッシュ制御部を通して読み出して前
記画素値の奥行き値と比較し、前記視点から可視となる
画素値を前記キャッシュ制御部を通して前記キャッシュ
メモリに書き込む画素処理部と、前記フレームバッファ
中の画像を表示する画像表示部とを有することを特徴と
する。
【0013】また、本発明の画像生成装置は、前記キャ
ッシュ制御部が、各ブロックを使用したか否かのフラグ
を持ち、未使用のブロックについては前記メモリから前
記キャッシュメモリに画素値を読み込まないように制御
することを特徴とする。
【0014】さらに、本発明の画像生成装置は、前記キ
ャッシュ制御部が、前記別のブロックの画素値を書き出
す際に、変更のなかった画素値は前記メモリに書き出さ
ないように制御することを特徴とする。
【0015】さらにまた、本発明の画像生成装置は、前
記キャッシュ制御部が、各ブロックを使用したか否かの
フラグを持ち、未使用のブロックについては前記メモリ
から前記キャッシュメモリに奥行き値を読み込まないよ
うに制御することを特徴とする。
【0016】また、本発明の画像生成装置は、3次元空
間中に配置した物体を基本形状であるプリミティブの集
まりとして定義したときの各プリミティブを表現するプ
リミティブ情報を設定して記憶するプリミティブ設定記
憶部と、前記画面中の各画素における前記プリミティブ
の明るさを表す輝度値を格納するメモリと、前記画面を
複数の矩形ブロックに分割したときの1ブロック分以上
の、視点からの距離を表す奥行き値および輝度値からな
る画素値を格納できるキャッシュメモリと、前記画面上
のブロックの並び順に、そのブロックに前記画面への
影像が含まれる可能性があるプリミティブを表すプリミ
ティブ情報を前記プリミティブ設定記憶部から読み出す
と共に、ブロックの終了を知らせる終了情報を出力する
ブロックソート部と、前記プリミティブ情報に基づい
て、前記プリミティブを前記画面への投影像が前記ブロ
ックに完全に収まるようにブロック内スパンの集まりに
分割したときのブロック内スパン情報を求めるブロック
分割部と、前記ブロック内スパン情報を記憶するブロッ
ク内スパン記憶部と、前記終了情報に基づいて、前記ブ
ロックに投影されるブロック内スパンを表すブロック内
スパン情報を前記ブロック内スパン記憶部から読み出
し、前記ブロックの処理が終了したならば前記キャッシ
ュメモリ中の輝度値を前記フレームバッファに書き出す
制御を行なうキャッシュ制御部と、前記ブロック内スパ
ンに含まれる画素の画素値を前記ブロック内スパン情報
から求めると共に、前記キャッシュメモリに記憶されて
いる前記ブロック中の奥行き値を前記キャッシュ制御部
を通して読み出して前記画素値の奥行き値と比較し、前
記視点から可視となる画素値を前記キャッシュ制御部を
通して前記キャッシュメモリに書き込む画素処理部と、
前記フレームバッファ中の画像を表示する画像表示部と
を有することを特徴とする。
【0017】
【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
【0018】
【実施例】図1は、本発明の第1実施例に係る画像生成
方法の処理の流れを示すフロー図である。図1に示すよ
うに、この画像生成方法は、キャッシュ初期化ステップ
S101と、プリミティブ有り判定ステップS102
と、投影ブロック抽出ステップS103と、ブロック有
り判定ステップS104と、キャッシュ入れ換えステッ
プS105と、ブロック内スパン生成ステップS106
と、ブロック画像生成ステップS107と、キャッシュ
排出ステップS108とからなる。
【0019】図2は、図1に示した第1実施例の画像生
成方法が適用された本発明の第1実施例に係る画像生成
装置の構成を示すブロック図である。図2に示すよう
に、この画像生成装置は、プリミティブ設定部21と、
ブロック分割部22と、ブロック内スパン記憶部23
と、画素処理部24と、画像表示部25と、キャッシュ
制御部26と、キャッシュメモリ27と、Zバッファ2
9およびフレームバッファ30を含むメモリ28とから
構成されている。なお、例えば、キャッシュメモリ27
はSRAMでなり、メモリ28はDRAMでなる。
【0020】プリミティブ設定部21は、3次元形状物
体O(図4参照)を構成するプリミティブP(図4参
照)を表現するプリミティブ情報を入力する。この入力
方法は、キーボードによって直接入力してもよいし、メ
インメモリやフロツピーディスクのような記憶媒体から
入力してもよい。また、ネットワークを通して他の装置
から入力してもよい。
【0021】ブロック分割部22は、プリミティブPの
画面Dへの投影像PI(図9参照)をブロック内スパン
L(図9参照)に分割し、ブロック内スパン情報をブロ
ック内スパン記憶部23に記憶する。また、ブロック分
割部22は、生成されたブロック内スパンLが入るブロ
ックB(図3参照)の位置をブロック情報としてキャッ
シュ制御部26に送る。
【0022】ブロック内スパン記憶部23は、ブロック
内スパン情報を記憶する。
【0023】画素処理部24は、ブロック内スパン記憶
部23から入力されたブロック内スパン情報に基づいて
ブロック内スパンLに含まれる画素値を求め、キャッシ
ュメモリ27中に隠面消去した画像を生成する。ただ
し、キャッシュメモリ27からの画素値の読み出しとキ
ャッシュメモリ27への画素値の書き込みとは、キャッ
シュ制御部26を通して行なう。
【0024】画像表示部25は、メモリ28のフレーム
バッファ30から輝度値を読み出して画像を表示する。
ただし、輝度値を格納するフレームバッファ30が2つ
ある場合には、キャッシュ制御部26が使っていない方
のフレームバッファ30中の画像を表示するようにす
る。こうすることで、画像生成過程を表示しないように
でき、滑らかな動画像を表示できる。
【0025】キャッシュ制御部26は、まずキャッシュ
メモリ27を初期化する。次に、キャッシュ制御部26
は、ブロック分割部22が送ってくるブロック情報に基
づいてそのブロックBの輝度値および奥行き値がキャッ
シュメモリ27に入っているかどうかを調べ、もしなけ
ればメモリ28のZバッファ29およびフレームバッフ
ァ30から読み込むと共に上書きされるキャッシュメモ
リ27内の別のブロックBの輝度値および奥行き値をメ
モリ28のZバッファ29およびフレームバッファ30
に書き出す。必要なブロックBの輝度値および奥行き値
がキャッシュメモリ27に揃ったならば、キャッシュ制
御部26は、ブロック内スパン記憶部23からブロック
内スパン情報を読み出し、画素処理部24に送る。
【0026】キャッシュメモリ27は、複数ブロック分
の輝度値および奥行き値を格納できる容量を持つ。キャ
ッシュメモリ27の容量を増やすことにより、キャッシ
ュヒット率を向上させることができ、メモリ28とのデ
ータ転送量を減らせるのでより高速に画像生成が行なえ
る。
【0027】メモリ28は、プリミティブP内部の各画
素での奥行き値を1画面分格納できる記憶容量を持つZ
バッファ29と、プリミティブP内部の各画素での輝度
値を1画面分格納できる記憶容量を持つフレームバッフ
ァ30とから構成されている。あるいは、輝度値を格納
するフレームバッファ30に関しては、2画面分格納で
きる記憶容量を持たせて、片方の画面を表示していると
きに、もう片方の画面に画像生成を行なえるようにして
もよい。
【0028】図3は、画面Dのブロック分割方法の一例
を示す説明図である。図3に示すように、画面Dの分割
方法は、1つのブロックBm,n に横にk画素、縦にl画
素(k,lは正整数)が入るように、等しい容量の複数
の矩形ブロックBm,n (m=0〜M,n=0〜N)に分
割する。キャッシュメモリ27には、1ブロック分の画
素値を格納する領域を1つ以上用意する。例えば、画面
サイズが640×480、ブロックサイズが16×8
(k=16,l=8)の場合を考える。この場合、横方
向に(640/16)=40個、縦方向に(480/
8)=60個ブロックが並ぶことになる。また、画面サ
イズが642×481のようにブロックサイズで割り切
れない場合には、画面サイズを656×488のように
ブロックサイズで割り切れるように広くとって、その中
の必要な領域だけを使うようにすればよい。
【0029】図4は、3次元形状物体Oとプリミティブ
Pとの一例を示す説明図である。図4に示すように、3
次元形状物体Oは、複数のプリミティブPで構成され
る。プリミティブPは、図4のように三角形でもよい
し、より角数の多い多角形でもよい。あるいは曲面の一
部でもよい。プリミティブPを表す情報(プリミティブ
情報)は、プリミティブPの境界を求める情報と、プリ
ミティブP内部の輝度値の赤,緑,青の各成分R,G,
Bなどを求めるための情報とである。特に、プリミティ
ブPが多角形でできた面の場合、その境界を求める情報
としては、多角形の頂点座標値でもよいし、境界線の始
点と傾きなどの情報でもよい。また、プリミティブP内
部の輝度値を求めるための情報としては、頂点での輝度
値であってもよいし、予め輝度値が格納されているテー
ブル内の位置を示すアドレスでもよい。あるいは、輝度
値やアドレスの初期値と増分値などの情報でもよい。
【0030】図5は、プリミティブPの画面Dへの投影
像PIを含むブロックBを抽出する方法の一例を示す説
明図である。図5に示すように、プリミティブPの画面
Dへの投影像PIを含むブロックBは、Bm,n ,B
m+1,n ,Bm,n+1 およびBm+1,n+1である。それらブロ
ックBの求め方は、例えば、プリミティブPの画面Dへ
投影像PIに外接する矩形(破線図示)の4頂点を求
め、それらを含む連続したブロック群を求めればよい。
【0031】あるいは、図6に示すようなアルゴリズム
によって、プリミティブPの画面Dへの投影像PIを含
むブロック群を抽出してもよい。図6は、プリミティブ
Pの画面Dへの投影像PIを含むブロックBを抽出する
方法の流れを示すフロー図である。画面Dの左上隅のブ
ロックをB0,0 ,そのブロックから右方向にm番目、下
方向にn番目のブロックをBm,n とする(m,nは正整
数)。このとき、(Bm,n-x=Bm-1,n ,(Bm,n
+x=Bm+1,n ,(Bm,n+y=Bm,n+1 によって、()
-x,()+x,()+yを定義する。図6に示したアルゴリ
ズムを説明すると、まず、最上の頂点を含むブロックを
Bとして、Bを出力する。次に、Bの下にプリミティブ
が続くかどうかを判定し、もし続かなければBB にNE
LLを、続けばBB に(B)+yを代入する。さらに、B
L にBを代入する。次に、BL の左側にプリミティブが
続くかどうかを判定し、続けばそのブロック(BL-X
をBL に代入してBL に移動するとともにBL を出力す
る。また、BL の下にプリミティブが続けばBB に(B
L+Yを代入し、続かなければBB はそのままにしてお
く。そして、BL の左側にプリミティブが続くかぎりこ
れらの処理を繰り返す。BL の左側にプリミティブが続
かなくなったならば、BR にBを代入する。そして、B
R の右側にプリミティブが続くかどうかを判定し、続け
ばそのブロック(BR+XをBR に代入してBR に移動
するとともにBR を出力する。また、BR の下にプリミ
ティブが続けばBR に(BR+Yを代入し、続かなけれ
ばBB はそのままにしておく。そして、BR の右側にプ
リミティブが続くかぎりこれらの処理を繰り返す。次
に、BB がNULLかどうかを判定する。そして、もし
BがNULLならば全ての処理を終了し、NULLで
なければBにBB を代入してそのブロックBに移るとと
もにBを出力し、Bを起点に上で述べた処理を繰り返
す。
【0032】図7は、図6のフロー図に従ってプリミテ
ィブPの画面Dへの投影像PIを含むブロック群を抽出
する順番の一例を示す説明図である。図7に示すよう
に、図6のフロー図により、プリミティブPの画面Dへ
投影像PIの最上の点Aを含むブロックBm,n から順
にブロック群を抽出する。すなわち、ブロックBm,n
らスタートして、その下のブロックBm,n+1 に移り、左
側にプリミティブPの画面Dへの投影像PIが存在する
かぎり、ブロックBm-1,n+1 ,Bm-2,n+1 と移動し、プ
リミティブPの画面Dへの投影像PIがなくなったなら
ば右側のブロックBm+1,n+1 に移る。そして、その下の
ブロックBm-1,n+2 に移って左側にプリミティブPの
面Dへの投影像PIがなくなるまで、ブロックB
m,n+2 ,Bm-1,n+2,Bm-2,n+2 というように移動して
行く。さらに、その下のブロックBm-1,n+3,B
m,n+3 ,Bm+1,n+3 というように移動する。
【0033】図8は、あるブロックBの画素値がキャッ
シュメモリ27中にあるか否かを調べる方法の一例を示
す説明図である。図8に示すように、例えば、キャッシ
ュメモリ27内の領域位置を示すキャッシュ領域番号8
1と画面D中のブロックBの位置を示すブロック番号8
2とを対応させる表を用いる。その表の作成方法は、新
しいブロックBの画素値を読み込む毎にその読み込む領
域位置に対応するキャッシュ領域番号81の右欄にその
ブロックBを示すブロック番号を書き込めばよい。そし
て、あるブロックBがキャッシュメモリ27中にあるか
否かを調べるには、この表中の全てのブロック番号をチ
ェックすることで判定できる。
【0034】図9は、ブロック内スパンLを示す説明図
である。図9に示すように、ブロック内スパンLは、ブ
ロックBとプリミティブPの画面Dへの投影像PIとの
交差領域(斜線図示)に収まるスキャンラインの一部区
間である。ブロック内スパンLの値の求め方は、交差領
域とスキャンラインとの交点をプリミティブPの画面D
への投影像PIの頂点Aでの値から補間によって求めれ
ばよい。具体的には、プリミティブPの画面Dへの投影
像PIとスキャンラインとの交点がブロックB内にあれ
ばその位置での値をプリミティブPの画面Dへの投影像
PIの頂点Aでの値からの補間などで求め、ブロックB
外にあればスキャンラインとブロック境界との交点を求
め、その点での値をプリミティブPの画面Dへの投影像
PIの頂点Aからの補間などで求めてもよい。
【0035】次に、このように構成された第1実施例に
係る画像生成方法およびその装置の動作について説明す
る。
【0036】まず、キャッシュ初期化ステップS101
では、キャッシュ制御部26は、格子状に並んだ画素で
構成される画面Dの各画素における視点からの距離を表
す奥行き値および明るさを表す輝度値をそれぞれ格納す
るZバッファ29およびフレームバッファ30をメモリ
28中に用意する。また、キャッシュ制御部26は、画
面Dを同じ大きさの矩形形状のブロックBに分割したと
きの、複数ブロック分の各画素の奥行き値および輝度値
を画素値として格納するキャッシュメモリ27を空の状
態に初期化する。キャッシュメモリ27に記憶する情報
は、Zバッファ29に記憶される奥行き値およびフレー
ムバッファ30に記憶される輝度値からなる画素値であ
る。初期化法としては、例えば、輝度値をある固定値に
してもよいし、ユーザが指定した任意の設定値にしても
よい。また、奥行き値は、視点から最も遠くを示す値に
しておいてもよいし、ユーザが指定した任意の設定値に
してもよい。
【0037】次に、プリミティブ有り判定ステップS1
02では、ブロック分割部22は、3次元形状物体Oを
構成する基本要素であるプリミティブPのうちの取り出
していない1つをプリミティブ設定部21を通じて取り
出し、なければ終了のための処理として、キャッシュ排
出ステップS108に移る。プリミティブPの取り出し
法は、各プリミティブPに番号を付けておき、番号の順
番に取り出すなどすればよい。
【0038】続いて、投影ブロック抽出ステップS10
3では、ブロック分割部22は、プリミティブ有り判定
ステップS102で取り出されたプリミティブPを画面
Dに投影したときの投影像PIを含むブロックBを全て
抽出する。
【0039】次に、ブロック有り判定ステップS104
では、ブロック分割部22は、投影ブロック抽出ステッ
プS103で求めたブロックBを1つ取り出し、そのブ
ロック情報をキャッシュ制御部26に送る。そして、取
り出すブロックBがなくなったならば、プリミティブ有
り判定ステップS102に移る。
【0040】キャッシュ入れ換えステップS105で
は、キャッシュ制御部26は、ブロック有り判定ステッ
プS104で求めたブロックBの画素値がキャッシュメ
モリ27中にあるか否かを調べる。そして、もしなけれ
ば、キャッシュ制御部26は、1ブロック分の領域を確
保してその領域にZバッファ29およびフレームバッフ
ァ30中にある画素値を読み込む。ただし、確保した領
域にすでに別のブロックBの画素値が記憶されている場
合には、キャッシュ制御部26は、その別のブロックB
の画素値をZバッファ29およびフレームバッファ30
に書き出す。
【0041】次に、ブロック内スパン生成ステップS1
06では、ブロック分割部22は、プリミティブPを
面Dへの投影像PIがブロックBに完全に収まるように
ブロック内スパンLの集まりに分割したときのブロック
内スパン情報をプリミティブ情報から求め、ブロック内
スパン記憶部23に格納する。ブロック内スパン情報
は、プリミティブPの画面Dへの投影像PIの頂点Aに
輝度値が与えられている場合には、ブロック内スパンL
の両端点での座標値,輝度値などで表現できる。また、
プリミティブPの画面Dへの投影像PIの頂点Aに輝度
値を格納したテーブルのアドレスが与えられている場合
には、ブロック内スパンLの座標値およびテーブルのア
ドレスで表現できる。あるいは、ブロック内スパンLの
左端での値とスキャンライン方向への増分値などで表現
してもよい。
【0042】続いて、ブロック画像生成ステップS10
7では、画素処理部24は、まずブロック内スパン記憶
部23に記憶されたブロック内スパン情報からブロック
内スパンLに含まれる各画素での奥行き値および輝度値
を求める。各画素での奥行き値は、ブロック内スパンL
の端点からの補間などで求められる。また、各画素位置
での輝度値は、ブロック内スパンLに輝度値が与えられ
ている場合には、奥行き値と同様に補間によって求めら
れる。輝度値を格納したテーブル内のアドレスが与えら
れている場合には、各画素でのアドレスの値を補間など
して求め、そのアドレスから輝度値のテーブルを参照し
て求めればよい。なお、こうしたテーブルを参照して輝
度値を求める方法は、テクスチャマッピングと呼ばれて
いる。
【0043】次に、画素処理部24は、このようにして
求めた奥行き値および輝度値とキャッシュメモリ27内
部の奥行き値および輝度値とに基づいて、ブロックB内
で隠面消去を行なう。ここでの隠面消去法は、Zバッフ
ァ法と呼ばれ、求めた画素位置での奥行き値とキャッシ
ュメモリ27に記憶してある奥行き値とを比較し、視点
に近い方の輝度値をキャッシュメモリ27中に残すよう
にする。
【0044】そして、これら一連の処理を、プリミティ
ブPの画面Dへの投影像PIを含む全てのブロックBに
ついて行ない、さらに3次元形状物体Oを構成する全て
のプリミティブPについて行なう。
【0045】最後に、キャッシュ排出ステップS108
では、キャッシュ制御部26は、キャッシュメモリ27
中に残っている輝度値をフレームバッファ30に書き出
すことで、フレームバッファ30中に画像を生成する。
【0046】以上説明したように、第1実施例の画像生
成方法およびその装置では、Zバッファ法による隠面消
去を一旦キャッシュメモリ27に画素値を取り込むこと
で行なう。キャッシュメモリ27は、複数分のブロック
Bの記憶領域を持ち、ブロックB毎にZバッファ29お
よびフレームバッファ30とデータ転送を行なう。ま
た、プリミティブPを画面Dへの投影像PIが必ず1つ
のブロックB内に収まるようにブロック内スパンLの集
まりに分割している。このため、1つのブロックBの処
理がひとまず終了した後に別のブロックBの処理に移る
ことができ、Zバッファ29およびフレームバッファ3
0とキャッシュメモリ27とのデータ転送が必ずブロッ
ク単位で行なえ、常にメモリ28のページモードが使え
るので、簡単な制御でZバッファ29およびフレームバ
ッファ30を常に高速にアクセスでき、高速なデータ転
送が行なえる。
【0047】また、キャッシュメモリ27の採用によ
り、キャッシュヒットが起こればZバッファ29および
フレームバッファ30へのアクセス回数が減るため、高
速な画像生成を阻む要因となっているZバッファ29お
よびフレームバッファ30へのアクセス回数を減らすこ
とができ、従来のように毎回Zバッファ29およびフレ
ームバッファ30をアクセスする場合に比べて高速に画
像生成が行なえ、かつメモリ28の制御も容易になる。
このため、低価格なメモリ28でも高速に画像生成が行
なえ、安価で高速なシステムを実現することができる。
【0048】なお、キャッシュ制御部26は、以下のよ
うなブロック転送制御を行うことでメモリ28とキャッ
シュメモリ27との間のデータ転送量を減らすこともで
きる。この処理は、メモリ28とキャッシュメモリ27
とが異なったモジュールに分かれていて、十分なデータ
転送性能が得られないような場合に特に有効である。
【0049】図10は、ブロック転送制御の方法を示す
説明図である。図10に示すように、画面Dの各ブロッ
クBに1,2,3,…,N+1,N+2,N+3,…,
2N+1,2N+2,2N+3,…という具合に番号を
付ける。そして、各ブロック番号に対応して0か1かを
記憶できるブロック有効テーブル101を準備してお
き、初期値として全てに0を記憶させておく。キャッシ
ュ制御部26は、ブロック分割部22が送ってくるブロ
ック情報に基づいてそのブロックBの輝度値および奥行
き値がキャッシュメモリ27に入っているかどうかを調
べる。入っていなければ、ブロック有効テーブル101
をチェックする。そして、そのブロックに対応するブロ
ック有効テーブル101内の値を調べ、1ならばメモリ
28からキャッシュメモリ27内への画素値の読み込み
を行う。一方、0ならば、予め定めておいた初期値をキ
ャッシュメモリ27に書き込み、そのブロックに対応す
るブロック有効テーブル101内の値を1に書き換え
る。
【0050】上で述べた処理は、初めて使用されるブロ
ックBには予め定めておいた初期値を書き込み、それ以
降で使用されるブロックBにはメモリ28の画素値を読
み込んで書き込むことになる。このような処理を行なう
ことで、初めて使われるブロックBでは、メモリ28か
らの奥行き値および輝度値の読み込みを行わなくてすむ
ため、キャッシュメモリ27とメモリ28との間でのデ
ータ転送量を少なくできる。
【0051】あるいは、キャッシュ制御部26は、以下
のような画像書き出し制御を行うことでメモリ28とキ
ャッシュメモリ27との間のデータ転送量を減らすこと
もできる。この処理も、メモリ28とキャッシュメモリ
27とが異なったモジュールに分かれていて十分なデー
タ転送性能が得られないような場合に特に有効である。
【0052】図11は、画像書き出し制御を行う方法を
示した説明図である。図11に示すように、キャッシュ
メモリ27内の各ブロックBの各画素に有効ビットを設
け、描画された画素に1、何も描画されない画素に0を
設定するようにする。例えば、ブロックBにプリミティ
ブPの画面Dへの投影像PIを描画するような場合、各
画素の有効ビットを初めは0としておき、プリミティブ
Pの画面Dへの投影像PIを描画する画素の有効ビット
を1にする。そして、キャッシュメモリ27の画素値を
メモリ28に書き出すとき、有効ビット1の画素値のみ
を書き出すようにする。
【0053】このような制御をする利点は、輝度値をメ
モリ28からキャッシュメモリ27に読み込む必要がな
い点である。すなわち、ブロック分割部22が送ってく
るブロック情報に基づいてそのブロックBの輝度値およ
び奥行き値がキャッシュメモリ27に入っていない場
合、奥行き値のみをメモリ28から読み込んでキャッシ
ュメモリ27に書き込めばよく、輝度値は読み込む必要
がない。これは、奥行き値は隠面消去のためのZバッフ
ァ29との比較が必要であるが、輝度値はその必要がな
いためである。このため、メモリ28からキャッシュメ
モリ27への輝度値の読み込みが不要になり、メモリ2
8とキャッシュメモリ27との間のデータ転送量が削減
できる。
【0054】図12は、本発明の第2実施例に係る画像
生成方法の処理の流れを示すフロー図である。第2実施
例に係る画像生成方法は、第1実施例に係る画像生成方
法におけるキャッシュヒット率を向上させ、かつ1フレ
ーム分のZバッファを不要とする方法である。図12に
示すように、この画像生成方法は、キャッシュ初期化ス
テップS201と、全プリミティブ位置算出ステップS
202と、ブロック有り判定ステップS203と、プリ
ミティブ抽出ステップS204と、プリミティブ有り判
定ステップS205と、ブロック内スパン生成ステップ
S206と、ブロック画像生成ステップS207と、キ
ャッシュ排出ステップS208とからなる。
【0055】図13は、図12に示した画像生成方法を
適用した本発明の第2実施例に係る画像生成装置の構成
を示すブロック図である。図13に示すように、この画
像生成装置は、プリミティブ設定記憶部41と、ブロッ
クソート部42と、ブロック分割部43と、ブロック内
スパン記憶部44と、画素処理部45と、画像表示部4
6と、キャッシュ制御部47と、キャッシュメモリ48
と、メモリ49とからなる。なお、例えば、キャッシュ
メモリ48はSRAMでなり、メモリ49はDRAMで
なる。
【0056】プリミティブ設定記憶部41は、3次元形
状物体Oを構成するプリミティブPを表現するプリミテ
ィブ情報を入力して記憶する。入力方法などは、第1実
施例に係る画像生成装置におけるプリミティブ設定部2
1と同様である。
【0057】ブロックソート部42は、画面D上のブロ
ックBの並び順に、そのブロックBに表示する可能性の
あるプリミティブPを見つけ出して、ブロック分割部4
3に送る。また、ブロックソート部42は、その注目す
るブロックBの位置をブロック情報として、ブロック分
割部43およびキャッシュ制御部47に送る。
【0058】ブロック分割部43は、ブロック情報に基
づいて、第1実施例に係る画像生成装置におけるブロッ
ク分割部22と同様に、プリミティブPを画面Dへの投
影像PIがブロックBに完全に収まるようにブロック内
スパンLの集まりに分割して、ブロック内スパン記憶部
44に格納する。
【0059】ブロック内スパン記憶部44,画素処理部
45および画像表示部46は、第1実施例に係る画像生
成装置におけるブロック内スパン記憶部23,画素処理
部24および画像表示部25と全く同様である。
【0060】キャッシュ制御部47は、基本的には第1
実施例に係る画像生成装置におけるキャッシュ制御部2
6と同様であるが、メモリ49に奥行き値がないことか
ら奥行き値をメモリ49から読み込んだりメモリ49に
書き込む処理はしない。
【0061】キャッシュメモリ48は、第1実施例に係
る画像生成装置におけるキャッシュメモリ27と同様で
ある。
【0062】メモリ49は、プリミティブP内部の各画
素での輝度値を1画面分格納できる記憶容量を持つフレ
ームバッファ50から構成される。あるいは、2画面分
格納できる記憶容量を持たせて、片方の画面を表示して
いるときに、もう片方の画面に画像生成を行なえるよう
にしてもよい。
【0063】次に、このように構成された第2実施例の
画像生成方法およびその装置の動作について説明する。
【0064】キャッシュ初期化ステップS201では、
キャッシュ制御部47は、第1実施例に係る画像生成方
法におけるキャッシュ初期化ステップS101と全く同
様に、キャッシュメモリ48の初期化を行なう。また、
画面の分割法やキャッシュメモリ48の構成法も全く同
様である。
【0065】次に、全プリミティブ位置算出ステップS
202では、ブロックソート部42は、プリミティブ設
定記憶部41からプリミティブPの画面Dへの投影像P
Iを含む可能性のあるブロックBを表す位置情報を求め
る。その位置情報としては、例えば、プリミティブPを
含む最小の矩形の左上隅および右下隅を含むブロック位
置とすればよい。図5の例では、ブロックBm,n とブロ
ックBm+1,n+1 とである。
【0066】続いて、ブロック有り判定ステップS20
3では、ブロック分割部43は、画面Dの左上隅のブロ
ックBから順に右方向にブロックBを1つずつ取り出
し、右方向にブロックBがなくなったならば、すぐ下の
ブロックBの内の最も左にあるブロックBを取り出す。
このようにして画面D上のブロックBを1つずつ取り出
すが、ブロックBを1つ取り出す毎にプリミティブ抽出
ステップS204の処理に進む。そして、取り出すべき
ブロックBがなくなったならば、ブロック分割部43は
処理を終了する。
【0067】プリミティブ抽出ステップS204では、
ブロック分割部43は、ブロック有り判定ステップS2
03で取り出されたブロックBに、画面Dへの投影像P
Iが含まれる可能性があるプリミティブPを全て抽出す
る。その方法は、例えば、全てのプリミティブPに関し
て、全プリミティブ位置算出ステップS202で求めた
ブロック位置からプリミティブPの画面Dへの投影像P
Iを含む可能性のあるブロックBが全て分かるから、そ
の中にブロックBが含まれるかどうかを判定すればよ
い。図5の例では、ブロックBm,n ,Bm+1,n ,B
m,n+1 およびBm+1,n+1がプリミティブPの画面Dへの
投影像PIを含む可能性があることが分かるから、ブロ
ックBがこれらの4つのブロックBm,n ,Bm+1,n ,B
m,n+1 およびBm+1,n+1 に含まれるかどうかを判定すれ
ばよい。
【0068】しかし、どのブロックBについても、この
ように全てのプリミティブPに対して毎回判定していた
のでは高速処理ができない。そのため、全プリミティブ
位置算出ステップS202では、プリミティブソートリ
ストを作成し、ブロックBに含まれるプリミティブPを
抽出してもよい。
【0069】図14は、プリミティブソートリストの一
例を示す説明図である。図14に示すように、プリミテ
ィブソートリストには、画面D中のブロック数分の先頭
ポインタがあり、その先に、その先頭ポインタに対応す
るブロックBがプリミティブ位置の左上隅を含むように
プリミティブ番号が繋がれている。図5の例では、この
プリミティブPに対応する番号は、ブロックBm,n に対
応する先頭ポインタの先に繋がれることになる。
【0070】次に、このプリミティブソートリストを用
いて画面Dへの投影像PIがブロックBに含まれる可能
性があるプリミティブPを抽出する方法を説明する。こ
の処理は、プリミティブ抽出ステップS204で行なわ
れる。ブロック有り判定ステップS203でのブロック
Bの抽出順は画面Dの左上から右に行き、右端まで行っ
たならば、すぐ下の左端に行くので、その順にプリミテ
ィブPを抽出して行く。
【0071】まず、ブロック分割部43は、画面Dの左
上隅のブロックBに対応する先頭リストを手繰ること
で、画面Dへの投影像PIがそのブロックBに含まれる
可能性のあるプリミティブPをすべて抽出する。そのと
き、抽出されたプリミティブPがその右のブロックBに
も含まれる可能性があるときは、ブロック分割部43
は、右のブロックBに対応する先頭リストにそのプリミ
ティブPの番号を付け加える。また、右のブロックBに
含まれる可能性がないが、下のブロックBに含まれる可
能性があれば、ブロック分割部43は、すぐ下のブロッ
クBの中でそのプリミティブPの画面Dへの投影像PI
を含む可能性のある最も左のブロックBに対応する先頭
リストにそのプリミティブPの番号を付け加える。
【0072】次に、ブロック分割部43は、画面Dへの
投影像PIが右のブロックBに含まれる可能性のあるプ
リミティブPの抽出処理に移る。このブロックBの処理
も左上隅のブロックBと同様に、そのブロックBに対応
する先頭リストを手繰ることで、画面Dへの投影像PI
そのブロックBに含まれる可能性のあるプリミティブ
Pをすべて抽出できる。そのとき、抽出されたプリミテ
ィブPの画面Dへの投影像PIがその右のブロックBに
も含まれる可能性があるときは、右のブロックBに対応
する先頭リストにそのプリミティブPの番号を付け加
え、右のブロックBに含まれる可能性がないが、下のブ
ロックBに含まれる可能性があれば、すぐ下のブロック
Bの中でそのプリミティブPの画面Dへの投影像PI
含む可能性のある最も左のブロックBに対応する先頭リ
ストにそのプリミティブPの番号を付け加える処理を行
なう。
【0073】このようなブロックBの処理を画面Dの左
上のブロックBから右のブロックBに進め、右端まで行
ったならば、すぐ下の左端のブロックBに順に進めて行
くことで、それぞれのブロックBに含まれる可能性があ
るプリミティブPを全て抽出することができる。
【0074】次に、プリミティブ有り判定ステップS2
05では、ブロック分割部43は、プリミティブ抽出ス
テップS204で得られた、画面Dへの投影像PIが
つのブロックBに入る可能性のあるプリミティブ群から
1つのプリミティブPを取り出し、そのプリミティブP
に対するブロック内スパン生成ステップS206に進
む。そして、取り出すプリミティブPがなくなったなら
ば、キャッシュ排出ステップS208に進む。
【0075】ブロック内スパン生成ステップS206,
ブロック画像生成ステップS207およびキャッシュ排
出ステップS208の処理は、第1実施例に係る画像処
理方法におけるブロック内スパン生成ステップS10
6,ブロック画像生成ステップS107およびキャッシ
ュ排出ステップS108と全く同様に行なわれる。
【0076】このように、第2実施例に係る画像生成方
法およびその装置では、ブロックBごとに画面Dへの投
影像PIがそのブロックBに入る全てのプリミティブP
ブロック内スパンLの集まりの処理を行なうため、そ
のブロックBの処理が完全に終了するまでは他のブロッ
クBの処理に移らない。このため、一度ブロックBの画
素値をキャッシュメモリ48からフレームバッファ50
に書き出したならば、再びキャッシュメモリ48に読み
込むことはないため、キャッシュヒット率が向上して、
メモリ49とのデータ転送量が少なくなる。また、この
処理では、Zバッファへのアクセスを行なわないため、
Zバッファは必要としない。
【0077】
【発明の効果】以上説明したように、Zバッファ法によ
る隠面消去を一旦キャッシュメモリに画素値を取り込む
ことで行ない、プリミティブを画面への投影像が必ず1
つのブロック内に収まるようにブロック内スパンの集ま
に分割しているので、1つのブロックの処理がひとま
ず終了した後に別のブロックの処理に移ることができ、
このためZバッファやフレームバッファとキャッシュメ
モリとのデータ転送が必ずブロック単位で行なえるの
で、常にメモリのぺージモードが使え、簡単な制御で高
速にデータ転送が行なえるという効果がある。
【0078】また、キャッシュヒットが起これば、Zバ
ッファやフレームバッファへのアクセス回数が減るた
め、従来のように毎回Zバッファやフレームバッファを
アクセスする場合に比べて高速に画像生成が行なえ、か
つメモリの制御も容易になるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1実施例に係る画像生成方法の処理
の流れを示すフロー図である。
【図2】第1実施例に係る画像生成方法が適用された本
発明の第1実施例に係る画像生成装置の構成を示すブロ
ック図である。
【図3】第1実施例の画像生成方法における画面のブロ
ック分割方法の一例を示す説明図である。
【図4】第1実施例の画像生成方法における3次元形状
物体とプリミティブとの一例を示す説明図である。
【図5】第1実施例の画像生成方法においてブロックを
抽出する方法の一例を示す説明図である。
【図6】第1実施例の画像生成方法においてプリミティ
ブの画面への投影像を含むブロックを抽出する方法の一
例を示すフロー図である。
【図7】第1実施例の画像生成方法においてプリミティ
の画面への投影像を含むブロックを抽出する順番の一
例を示す説明図である。
【図8】第1実施例の画像生成方法においてブロックの
画素値がキャッシュメモリ中にあるか否かを調べる方法
の一例を示す説明図である。
【図9】第1実施例の画像生成方法においてブロック内
スパンを示す説明図である。
【図10】第1実施例の画像生成方法においてブロック
転送制御の方法を説明する図である。
【図11】第1実施例の画像生成方法において画像書き
出し制御を行なう方法を説明する図である。
【図12】本発明の第2実施例に係る画像生成方法の処
理の流れを示すフロー図である。
【図13】第2実施例に係る画像生成方法が適用された
本発明の第2実施例に係る画像生成装置の構成を示すブ
ロック図である。
【図14】第2実施例の画像生成方法において用いられ
るプリミティブソートリストの一例を示す説明図であ
る。
【符号の説明】
21 プリミティブ設定部 22,43 ブロック分割部 23,44 ブロック内スパン記憶部 24,45 画素処理部 25,46 画像表示部 26,47 キャッシュ制御部 27,48 キャッシュメモリ 28,49 メモリ 29 Zバッファ 30,50 フレームバッファ 41 プリミティブ設定記憶部 42 ブロックソート部 101 ブロック有効テーブル S101,S201 キャッシュ初期化ステップ S102,S205 プリミティブ有り判定ステップ S103 投影ブロック抽出ステップ S104,S203 ブロック有り判定ステップ S105 キャッシュ入れ換えステップ S106,S206 ブロック内スパン生成ステップ S107,S207 ブロック画像生成ステップ S108,S208 キャッシュ排出ステップ S202 全プリミティブ位置算出ステップ S204 プリミティブ抽出ステップ

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 3次元空間中に配置した物体を基本形状
    であるプリミティブの集まりとして定義し、格子状に並
    んだ画素で構成される画面上の各画素毎に視点からの距
    離を表す奥行き値に基づいて隠面消去した画像を生成す
    る画像生成方法において、 前記画面を複数の矩形ブロックに分割し、少なくとも1
    ブロック分の各画素の輝度値および奥行き値を格納する
    キャッシュメモリを用意し、前記プリミティブを前記画
    面への投影像が前記ブロックに完全に収まるブロック内
    スパンの集まりに分割し、前記キャッシュメモリ中で前
    記ブロック内スパンの集まりから隠面消去したブロック
    画像を生成することを繰り返すことで1画面分の画像を
    生成することを特徴とする画像生成方法。
  2. 【請求項2】 3次元空間中に配置した物体を基本形状
    であるプリミティブの集まりとして定義し、格子状に並
    んだ画素で構成される画面上の各画素位置に対応した、
    視点からの距離を表す奥行き値および明るさを表す輝度
    値をそれぞれ格納するZバッファおよびフレームバッフ
    ァを用いて、前記奥行き値に基づいて隠面消去した画像
    を生成する画像生成方法において、 前記画面を複数の矩形ブロックに分割したときの少なく
    とも1ブロック分の画素値を格納できるキャッシュメモ
    リを空の状態に初期化するキャッシュ初期化ステップ
    と、 前記物体を構成する全てのプリミティブの中で取り出し
    ていないプリミティブがあれば取り出し、なければ終了
    のための処理に移るプリミティブ有り判定ステップと、 前記プリミティブの前記画面への投影像を含む全てのブ
    ロックを抽出する投影ブロック抽出ステップと、 前記プリミティブの前記画面への投影像を含む全てのブ
    ロックの中で取り出していないブロックがあれば取り出
    し、なければ前記プリミティブ有り判定ステップに移る
    ブロック有り判定ステップと、 前記ブロックの画素値が前記キャッシュメモリ中になけ
    れば、前記画素値を前記キャッシュメモリに読み込むと
    共に、前記キャッシュメモリ中に既に別のブロックの画
    素値が記憶されていて前記ブロックの画素値で上書きさ
    れるときは、前記別のブロックの画素値を前記Zバッフ
    ァおよび前記フレームバッファに書き出すキャッシュ入
    れ換えステップと、 前記プリミティブを前記画面への投影像が前記ブロック
    に完全に収まるようにブロック内スパンの集まりに分割
    したときのブロック内スパン情報を求めるブロック内ス
    パン生成ステップと、 前記ブロック内スパンに含まれる画素の画素値を前記ブ
    ロック内スパン情報から求めると共に、それら画素値の
    奥行き値と前記キャッシュメモリに記憶されている前記
    ブロック中の奥行き値とを比較して前記視点から可視と
    なるブロック内スパンの画素値を前記キャッシュメモリ
    中に保存させる処理を行なった後に前記ブロック有り判
    定ステップに移るブロック画像生成ステップと、 前記プリミティブ有り判定ステップにおける終了のため
    の処理として、前記キャッシュメモリに記憶されている
    輝度値を前記フレームバッファに書き出すキャッシュ排
    出ステップとを含むことを特徴とする画像生成方法。
  3. 【請求項3】 前記キャッシュ入れ換えステップで、前
    記ブロックの画素値が前記キャッシュメモリ中になけれ
    ば、前記ブロック中の奥行き値を前記キャッシュメモリ
    に読み込むと共に、前記キャッシュメモリ中に既に別の
    ブロックの画素値が記憶されていて前記ブロックの画素
    値で上書きされるときは、前記別のブロックの画素値の
    うちの変更のあった画素値のみを前記Zバッファおよび
    前記フレームバッファに書き出す請求項2記載の画像生
    成方法。
  4. 【請求項4】 3次元空間中に配置した物体を基本形状
    であるプリミティブの集まりとして定義し、格子状に並
    んだ画素で構成される画面上の各画素位置に対応した、
    明るさを表す輝度値を格納するフレームバッファ中に、
    前記プリミティブの視点からの距離を表す奥行き値に基
    づいて隠面消去した画像を生成する画像生成方法におい
    て、 前記画面を複数の矩形ブロックに分割したときの少なく
    とも1ブロック分以上の各画素の輝度値および奥行き値
    からなる画素値を格納できるキャッシュメモリを空の状
    態に初期化するキャッシュ初期化ステップと、 前記プリミティブの前記画面への投影像を含む可能性が
    あるブロックを表す位置情報を全てのプリミティブにつ
    いて求めて記憶する全プリミティブ位置算出ステップ
    と、 前記画面上の全てのブロックについて、取り出していな
    いブロックがあればその画面上の並び順に1つブロック
    を取り出すブロック有り判定ステップと、 前記ブロックに前記画面への投影像が含まれる可能性が
    あるプリミティブを前記位置情報に基づいて全て抽出す
    るプリミティブ抽出ステップと、 前記抽出されたプリミティブの中で取り出していないプ
    リミティブがあれば取り出し、なければ終了のための処
    理に移るプリミティブ有り判定ステップと、 前記プリミティブを前記画面への投影像が前記ブロック
    に完全に収まるようにブロック内スパンの集まりに分割
    したときのブロック内スパン情報を求めるブロック内ス
    パン生成ステップと、 前記ブロック内スパンに含まれる画素の画素値を前記ブ
    ロック内スパン情報から求めると共に、それら画素値の
    奥行き値と前記キャッシュメモリに記憶されている前記
    ブロック中の奥行き値とを比較して前記視点から可視と
    なるプリミティブの画素値を前記キャッシュメモリ中に
    保存させる処理を行なった後に前記プリミティブ有り判
    定ステップに移るブロック画像生成ステップと、 前記プリミティブ有り判定ステップにおける終了のため
    の処理として、前記キャッシュメモリに記憶されている
    輝度値を前記フレームバッファに書き出すと共に前記キ
    ャッシュメモリを空の状態に初期化し、前記ブロック有
    り判定ステップに移るキャッシュ排出ステップとを含む
    ことを特徴とする画像生成方法。
  5. 【請求項5】 3次元空間中に配置した物体を基本形状
    であるプリミティブの集まりとして定義したときの各プ
    リミティブを表現するプリミティブ情報を設定するプリ
    ミティブ設定部と、 前記画面中の各画素における前記プリミティブの視点か
    らの距離を表す奥行き値および明るさを表す輝度値をそ
    れぞれ格納するZバッファおよびフレームバッファを含
    むメモリと、 前記画面を複数の矩形ブロックに分割したときの1ブロ
    ック分以上の各画素の奥行き値および輝度値からなる画
    素値を格納できるキャッシュメモリと、 前記プリミティブ情報に基づいて、前記プリミティブを
    前記画面への投影像が前記ブロックに完全に収まるよう
    にブロック内スパンの集まりに分割したときのブロック
    内スパン情報を求めると共に、前記プリミティブの前記
    画面への投影像を含むブロックを示すブロック情報を求
    めるブロック分割部と、 前記ブロック内スパン情報を記憶するブロック内スパン
    記憶部と、 前記ブロック情報に基づいて、前記ブロックの画素値が
    前記キャッシュメモリ中になければ前記画素値を前記メ
    モリから前記キャッシュメモリに読み込むと共に、前記
    キャッシュメモリ中に既に別のブロックの画素値が記憶
    されていて前記ブロックの画素値で上書きされるときは
    前記別のブロックの画素値を前記メモリに書き出し、前
    記ブロックに投影されるブロック内スパンを表すブロッ
    ク内スパン情報を前記ブロック内スパン記憶部から読み
    出す制御を行なうキャッシュ制御部と、 前記ブロック内スパンに含まれる画素の画素値を前記ブ
    ロック内スパン情報から求めると共に、前記キャッシュ
    メモリに記憶されている前記ブロック中の奥行き値を前
    記キャッシュ制御部を通して読み出して前記画素値の奥
    行き値と比較し、 前記視点から可視となる画素値を前記キャッシュ制御部
    を通して前記キャッシュメモリに書き込む画素処理部
    と、 前記フレームバッファ中の画像を表示する画像表示部と
    を有することを特徴とする画像生成装置。
  6. 【請求項6】 前記キャッシュ制御部が、各ブロックを
    使用したか否かのフラグを持ち、未使用のブロックにつ
    いては前記メモリから前記キャッシュメモリに画素値を
    読み込まないように制御する請求項5記載の画像生成装
    置。
  7. 【請求項7】 前記キャッシュ制御部が、前記別のブロ
    ックの画素値を書き出す際に、変更のなかった画素値は
    前記メモリに書き出さないように制御する請求項5記載
    の画像生成装置。
  8. 【請求項8】 前記キャッシュ制御部が、各ブロックを
    使用したか否かのフラグを持ち、未使用のブロックにつ
    いては前記メモリから前記キャッシュメモリに奥行き値
    を読み込まないように制御する請求項7記載の画像生成
    装置。
  9. 【請求項9】 3次元空間中に配置した物体を基本形状
    であるプリミティブの集まりとして定義したときの各プ
    リミティブを表現するプリミティブ情報を設定して記憶
    するプリミティブ設定記憶部と、 前記画面中の各画素における前記プリミティブの明るさ
    を表す輝度値を格納するメモリと、 前記画面を複数の矩形ブロックに分割したときの1ブロ
    ック分以上の、視点からの距離を表す奥行き値および輝
    度値からなる画素値を格納できるキャッシュメモリと、 前記画面上のブロックの並び順に、そのブロックに前記
    画面への投影像が含まれる可能性があるプリミティブを
    表すプリミティブ情報を前記プリミティブ設定記憶部か
    ら読み出すと共に、ブロックの終了を知らせる終了情報
    を出力するブロックソート部と、 前記プリミティブ情報に基づいて、前記プリミティブを
    前記画面への投影像が前記ブロックに完全に収まるよう
    にブロック内スパンの集まりに分割したときのブロック
    内スパン情報を求めるブロック分割部と、 前記ブロック内スパン情報を記憶するブロック内スパン
    記憶部と、 前記終了情報に基づいて、前記ブロックに投影されるブ
    ロック内スパンを表すブロック内スパン情報を前記ブロ
    ック内スパン記憶部から読み出し、前記ブロックの処理
    が終了したならば前記キャッシュメモリ中の輝度値を前
    記フレームバッファに書き出す制御を行なうキャッシュ
    制御部と、 前記ブロック内スパンに含まれる画素の画素値を前記ブ
    ロック内スパン情報から求めると共に、前記キャッシュ
    メモリに記憶されている前記ブロック中の奥行き値を前
    記キャッシュ制御部を通して読み出して前記画素値の奥
    行き値と比較し、前記視点から可視となる画素値を前記
    キャッシュ制御部を通して前記キャッシュメモリに書き
    込む画素処理部と、 前記フレームバッファ中の画像を表示する画像表示部と
    を有することを特徴とする画像生成装置。
JP7350938A 1995-12-25 1995-12-25 画像生成方法およびその装置 Expired - Lifetime JP2882465B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7350938A JP2882465B2 (ja) 1995-12-25 1995-12-25 画像生成方法およびその装置
US08/773,951 US6456283B1 (en) 1995-12-25 1996-12-26 Method and system for generating image in computer graphics

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7350938A JP2882465B2 (ja) 1995-12-25 1995-12-25 画像生成方法およびその装置

Publications (2)

Publication Number Publication Date
JPH09179999A JPH09179999A (ja) 1997-07-11
JP2882465B2 true JP2882465B2 (ja) 1999-04-12

Family

ID=18413937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7350938A Expired - Lifetime JP2882465B2 (ja) 1995-12-25 1995-12-25 画像生成方法およびその装置

Country Status (2)

Country Link
US (1) US6456283B1 (ja)
JP (1) JP2882465B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
JP3721951B2 (ja) * 2000-06-08 2005-11-30 日本ビクター株式会社 画像生成方法及び装置
JP2003263650A (ja) * 2002-03-12 2003-09-19 Sony Corp 画像処理装置およびその方法
JP2003281564A (ja) * 2002-03-20 2003-10-03 Victor Co Of Japan Ltd 画像生成装置
US7376763B2 (en) * 2003-07-17 2008-05-20 International Business Machines Corporation Method for transferring data from a memory subsystem to a network adapter by extending data lengths to improve the memory subsystem and PCI bus efficiency
US7356664B2 (en) * 2003-07-17 2008-04-08 International Business Machines Corporation Method and apparatus for transferring data from a memory subsystem to a network adapter for improving the memory subsystem and PCI bus efficiency
JP4364706B2 (ja) 2004-04-05 2009-11-18 富士通株式会社 陰線処理方法
JP4284285B2 (ja) * 2005-02-24 2009-06-24 株式会社東芝 画像処理装置、画像処理方法および画像処理プログラム
JP4319157B2 (ja) * 2005-03-03 2009-08-26 株式会社リコー 画像処理方法、改ざん検出方法、画像処理装置、改ざん検出装置
JP4609805B2 (ja) * 2009-05-28 2011-01-12 Necカシオモバイルコミュニケーションズ株式会社 端末装置及びプログラム
US20110145725A1 (en) * 2009-12-11 2011-06-16 Richard John Campbell Methods and Systems for Attaching Semantics to a Collaborative Writing Surface
US9398297B2 (en) * 2013-11-04 2016-07-19 Intel Corporation Integral image coding
GB2526598B (en) 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
JP6802129B2 (ja) * 2017-08-31 2020-12-16 Kddi株式会社 情報処理装置、方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62222379A (ja) 1986-03-25 1987-09-30 Mutoh Ind Ltd コンピュータグラフィックスにおける隠線・隠面処理方法
JP2693457B2 (ja) 1987-10-26 1997-12-24 キヤノン株式会社 画像処理装置
US5056044A (en) * 1989-12-21 1991-10-08 Hewlett-Packard Company Graphics frame buffer with programmable tile size
JPH03255589A (ja) * 1990-03-05 1991-11-14 Nec Corp Zバッファキャッシュ方式
GB2267203B (en) * 1992-05-15 1997-03-19 Fujitsu Ltd Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping
JPH0855239A (ja) * 1994-07-21 1996-02-27 Internatl Business Mach Corp <Ibm> グラフィカル・オブジェクトの可視性を判定するための方法および装置
US5977987A (en) * 1995-07-26 1999-11-02 Raycer, Incorporated Method and apparatus for span and subspan sorting rendering system
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5825363A (en) * 1996-05-24 1998-10-20 Microsoft Corporation Method and apparatus for determining visible surfaces

Also Published As

Publication number Publication date
US6456283B1 (en) 2002-09-24
JPH09179999A (ja) 1997-07-11

Similar Documents

Publication Publication Date Title
JP4203128B2 (ja) 3次元の三角形描画におけるブロック及びバンド志向走査
JP2882465B2 (ja) 画像生成方法およびその装置
JP5579741B2 (ja) タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化
US6961065B2 (en) Image processor, components thereof, and rendering method
JP2763499B2 (ja) 画像合成装置及び画像合成方法
JP3645024B2 (ja) 描画装置及び描画方法
US6937246B2 (en) Cache invalidation method and apparatus for a graphics processing system
US5920687A (en) Z-buffer storage based on opacity and depth using pointers
JP3586991B2 (ja) テクスチャ・データ読出装置およびレンダリング装置
US5321809A (en) Categorized pixel variable buffering and processing for a graphics system
US5621866A (en) Image processing apparatus having improved frame buffer with Z buffer and SAM port
JP4061697B2 (ja) 画像表示方法及びそれを実行する画像表示装置
JP2003503775A (ja) Zバッファをレンダリングする方法及び装置
CN114461406A (zh) DMA OpenGL优化方法
CN1430769B (zh) 拼块式图形结构
JPH0927045A (ja) 画像処理装置
JP2000067264A (ja) カラ―及びzバッファを用いて表現するときのペ―ジ落ちを減少させるフレ―ムバッファメモリ―システム
US6614443B1 (en) Method and system for addressing graphics data for efficient data access
US6992673B2 (en) Memory access device, semiconductor device, memory access method, computer program and recording medium
US20030231180A1 (en) Image processing apparatus and method of same
US7372466B2 (en) Image processing apparatus and method of same
JP3971448B2 (ja) 描画装置及び描画方法
JP2776793B2 (ja) 画像表示方法およびその表示装置
JPH09212654A (ja) 描画装置及び描画方法
JP3934111B2 (ja) 描画装置及び描画方法