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

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

Info

Publication number
JPH09179999A
JPH09179999A JP7350938A JP35093895A JPH09179999A JP H09179999 A JPH09179999 A JP H09179999A JP 7350938 A JP7350938 A JP 7350938A JP 35093895 A JP35093895 A JP 35093895A JP H09179999 A JPH09179999 A JP H09179999A
Authority
JP
Japan
Prior art keywords
block
primitive
value
pixel
image
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
JP7350938A
Other languages
English (en)
Other versions
JP2882465B2 (ja
Inventor
Hirobumi Ishida
博文 石田
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
NEC 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 NEC Corp filed Critical NEC Corp
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

Abstract

(57)【要約】 【課題】 画面を複数の矩形ブロックに分割し隠面消去
したブロック画像の生成を繰り返すことにより、隠面消
去した画像の生成を高速に行えるようにする。 【解決手段】 ブロック分割部22は、プリミティブ設
定部21からのプリミティブ情報に基づいてプリミティ
ブをその投影像がブロックに完全に収まるようにブロッ
ク内スパンの集まりに分割したときのブロック内スパン
情報を求めるとともに、プリミティブの画面への投影像
を含むブロックを示すブロック情報を求める。画素処理
部24は、ブロック内スパン記憶部23のブロック内ス
パン情報からブロック内スパンに含まれる画素値を求め
るとともに、キャッシュメモリ27に記憶されているブ
ロック中の奥行き値をキャッシュ制御部26を通して読
み出して画素値の奥行き値と比較し、視点から可視とな
る画素値をキャッシュ制御部26を通してキャッシュメ
モリ27に書き込む。

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】本発明の目的は、画面を複数の矩形ブロッ
ク(以下、単にブロックという)に分割し、隠面消去し
たブロック画像の生成を繰り返すことにより、高速DR
AMなどの低価格なメモリでも高速に画像生成が行なえ
るようにした画像生成方法およびその装置を提供するこ
とにある。
【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の
投影像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の投影像PIを含
むブロックBを抽出する方法の一例を示す説明図であ
る。図5に示すように、プリミティブPの画面Dへの投
影像PIを含むブロックBは、Bm,n ,Bm+1,n ,B
m,n+1 およびBm+1,n+1 である。それらブロックBの求
め方は、例えば、プリミティブPの投影像PIに外接す
る矩形(破線図示)の4頂点を求め、それらを含む連続
したブロック群を求めればよい。
【0031】あるいは、図6に示すようなアルゴリズム
によって、プリミティブPの投影像PIを含むブロック
群を抽出してもよい。図6は、プリミティブPの投影像
PIを含むブロックBを抽出する方法の流れを示すフロ
ー図である。画面Dの左上隅のブロックをB0,0 ,その
ブロックから右方向にm番目、下方向にn番目のブロッ
クをBm,n とする(m,nは正整数)。このとき、(B
m,n -x=Bm-1,n ,(Bm,n +x=Bm+1,n ,(B
m,n +y=Bm,n+1 によって、()-x,()+x,()+y
を定義する。図6に示したアルゴリズムを説明すると、
まず、最上の頂点を含むブロックをBとして、Bを出力
する。次に、Bの下にプリミティブが続くかどうかを判
定し、もし続かなければBB にNELLを、続けばBB
に(B)+yを代入する。さらに、BL にBを代入する。
次に、BL の左側にプリミティブが続くかどうかを判定
し、続けばそのブロック(BL -XをBL に代入してB
L に移動するとともにBL を出力する。また、BL の下
にプリミティブが続けばBBに(BL +Yを代入し、続
かなければBB はそのままにしておく。そして、BL
左側にプリミティブが続くかぎりこれらの処理を繰り返
す。BL の左側にプリミティブが続かなくなったなら
ば、BR にBを代入する。そして、BR の右側にプリミ
ティブが続くかどうかを判定し、続けばそのブロック
(BR +XをBR に代入してBR に移動するとともにB
R を出力する。また、BR の下にプリミティブが続けば
R に(BR +Yを代入し、続かなければBB はそのま
まにしておく。そして、BR の右側にプリミティブが続
くかぎりこれらの処理を繰り返す。次に、BB がNUL
Lかどうかを判定する。そして、もしBB がNULLな
らば全ての処理を終了し、NULLでなければBにBB
を代入してそのブロックBに移るとともにBを出力し、
Bを起点に上で述べた処理を繰り返す。
【0032】図7は、図6のフロー図に従ってプリミテ
ィブPの投影像PIを含むブロック群を抽出する順番の
一例を示す説明図である。図7に示すように、図6のフ
ロー図により、プリミティブPの投影像PIの最上の点
Aを含むブロックBm,n から順にブロック群を抽出す
る。すなわち、ブロックBm,n からスタートして、その
下のブロックBm,n+1 に移り、左側にプリミティブPの
投影像PIが存在するかぎり、ブロックBm-1,n+1 ,B
m-2,n+1 と移動し、プリミティブPの投影像PIがなく
なったならば右側のブロックBm+1,n+1 に移る。そし
て、その下のブロックBm-1,n+2 に移って左側にプリミ
ティブPの投影像PIがなくなるまで、ブロックB
m,n+2 ,Bm-1,n+2 ,Bm-2,n+2 というように移動して
行く。さらに、その下のブロックBm-1,n+3
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の投影像PIとの交差領域
(斜線図示)に収まるスキャンラインの一部区間であ
る。ブロック内スパンLの値の求め方は、交差領域とス
キャンラインとの交点をプリミティブPの投影像PIの
頂点Aでの値から補間によって求めればよい。具体的に
は、プリミティブPの投影像PIとスキャンラインとの
交点がブロックB内にあればその位置での値をプリミテ
ィブPの投影像PIの頂点Aでの値からの補間などで求
め、ブロックB外にあればスキャンラインとブロック境
界との交点を求め、その点での値をプリミティブPの投
影像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をそ
の投影像PIがブロックBに完全に収まるようにブロッ
ク内スパンLの集まりに分割したときのブロック内スパ
ン情報をプリミティブ情報から求め、ブロック内スパン
記憶部23に格納する。ブロック内スパン情報は、プリ
ミティブPの投影像PIの頂点Aに輝度値が与えられて
いる場合には、ブロック内スパンLの両端点での座標
値,輝度値などで表現できる。また、プリミティブPの
投影像PIの頂点Aに輝度値を格納したテーブルのアド
レスが与えられている場合には、ブロック内スパンLの
座標値およびテーブルのアドレスで表現できる。あるい
は、ブロック内スパンLの左端での値とスキャンライン
方向への増分値などで表現してもよい。
【0042】続いて、ブロック画像生成ステップS10
7では、画素処理部24は、まずブロック内スパン記憶
部23に記憶されたブロック内スパン情報からブロック
内スパンLに含まれる各画素での奥行き値および輝度値
を求める。各画素での奥行き値は、ブロック内スパンL
の端点からの補間などで求められる。また、各画素位置
での輝度値は、ブロック内スパンLに輝度値が与えられ
ている場合には、奥行き値と同様に補間によって求めら
れる。輝度値を格納したテーブル内のアドレスが与えら
れている場合には、各画素でのアドレスの値を補間など
して求め、そのアドレスから輝度値のテーブルを参照し
て求めればよい。なお、こうしたテーブルを参照して輝
度値を求める方法は、テクスチャマッピングと呼ばれて
いる。
【0043】次に、画素処理部24は、このようにして
求めた奥行き値および輝度値とキャッシュメモリ27内
部の奥行き値および輝度値とに基づいて、ブロックB内
で隠面消去を行なう。ここでの隠面消去法は、Zバッフ
ァ法と呼ばれ、求めた画素位置での奥行き値とキャッシ
ュメモリ27に記憶してある奥行き値とを比較し、視点
に近い方の輝度値をキャッシュメモリ27中に残すよう
にする。
【0044】そして、これら一連の処理を、プリミティ
ブPの投影像PIを含む全てのブロックBについて行な
い、さらに3次元形状物体Oを構成する全てのプリミテ
ィブPについて行なう。
【0045】最後に、キャッシュ排出ステップS108
では、キャッシュ制御部26は、キャッシュメモリ27
中に残っている輝度値をフレームバッファ30に書き出
すことで、フレームバッファ30中に画像を生成する。
【0046】以上説明したように、第1実施例の画像生
成方法およびその装置では、Zバッファ法による隠面消
去を一旦キャッシュメモリ27に画素値を取り込むこと
で行なう。キャッシュメモリ27は、複数分のブロック
Bの記憶領域を持ち、ブロックB毎にZバッファ29お
よびフレームバッファ30とデータ転送を行なう。ま
た、プリミティブPが必ず1つのブロックB内に収まる
ようにブロック内スパンLに分割している。このため、
1つのブロックBの処理がひとまず終了した後に別のブ
ロックBの処理に移ることができ、Zバッファ29およ
びフレームバッファ30とキャッシュメモリ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の投影像PIを描画するような場合、各画素の有効
ビットを初めは0としておき、プリミティブPの投影像
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をブロック内ス
パン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の投影像PIを含む可
能性のあるブロックBを表す位置情報を求める。その位
置情報としては、例えば、プリミティブPを含む最小の
矩形の左上隅および右下隅を含むブロック位置とすれば
よい。図5の例では、ブロックBm,n とブロックB
m+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に、投影像PIが含まれ
る可能性があるプリミティブPを全て抽出する。その方
法は、例えば、全てのプリミティブPに関して、全プリ
ミティブ位置算出ステップS202で求めたブロック位
置からプリミティブPの投影像PIを含む可能性のある
ブロックBが全て分かるから、その中にブロックBが含
まれるかどうかを判定すればよい。図5の例では、ブロ
ックBm,n ,Bm+1,n ,Bm,n+1 およびBm+1,n+1 がプ
リミティブPの投影像PIを含む可能性があることが分
かるから、ブロックBがこれらの4つのブロック
m,n ,Bm+1,n ,Bm,n+1 およびBm+1,n+1 に含まれ
るかどうかを判定すればよい。
【0068】しかし、どのブロックBについても、この
ように全てのプリミティブPに対して毎回判定していた
のでは高速処理ができない。そのため、全プリミティブ
位置算出ステップS202では、プリミティブソートリ
ストを作成し、ブロックBに含まれるプリミティブPを
抽出してもよい。
【0069】図14は、プリミティブソートリストの一
例を示す説明図である。図14に示すように、プリミテ
ィブソートリストには、画面D中のブロック数分の先頭
ポインタがあり、その先に、その先頭ポインタに対応す
るブロックBがプリミティブ位置の左上隅を含むように
プリミティブ番号が繋がれている。図5の例では、この
プリミティブPに対応する番号は、ブロックBm,n に対
応する先頭ポインタの先に繋がれることになる。
【0070】次に、このプリミティブソートリストを用
いてブロックBに含まれる可能性があるプリミティブP
を抽出する方法を説明する。この処理は、プリミティブ
抽出ステップS204で行なわれる。ブロック有り判定
ステップS203でのブロックBの抽出順は画面Dの左
上から右に行き、右端まで行ったならば、すぐ下の左端
に行くので、その順にプリミティブPを抽出して行く。
【0071】まず、ブロック分割部43は、画面Dの左
上隅のブロックBに対応する先頭リストを手繰ること
で、そのブロックBに含まれる可能性のあるプリミティ
ブPをすべて抽出する。そのとき、抽出されたプリミテ
ィブPがその右のブロックBにも含まれる可能性がある
ときは、ブロック分割部43は、右のブロックBに対応
する先頭リストにそのプリミティブPの番号を付け加え
る。また、右のブロックBに含まれる可能性がないが、
下のブロックBに含まれる可能性があれば、ブロック分
割部43は、すぐ下のブロックBの中でそのプリミティ
ブPを含む可能性のある最も左のブロックBに対応する
先頭リストにそのプリミティブPの番号を付け加える。
【0072】次に、ブロック分割部43は、右のブロッ
クBに含まれる可能性のあるプリミティブPの抽出処理
に移る。このブロックBの処理も左上隅のブロックBと
同様に、そのブロックBに対応する先頭リストを手繰る
ことで、そのブロックBに含まれる可能性のあるプリミ
ティブPをすべて抽出できる。そのとき、抽出されたプ
リミティブPがその右のブロックBにも含まれる可能性
があるときは、右のブロックBに対応する先頭リストに
そのプリミティブPの番号を付け加え、右のブロックB
に含まれる可能性がないが、下のブロックBに含まれる
可能性があれば、すぐ下のブロックBの中でそのプリミ
ティブPを含む可能性のある最も左のブロックBに対応
する先頭リストにそのプリミティブPの番号を付け加え
る処理を行なう。
【0073】このようなブロックBの処理を画面Dの左
上のブロックBから右のブロックBに進め、右端まで行
ったならば、すぐ下の左端のブロックBに順に進めて行
くことで、それぞれのブロックBに含まれる可能性があ
るプリミティブPを全て抽出することができる。
【0074】次に、プリミティブ有り判定ステップS2
05では、ブロック分割部43は、プリミティブ抽出ス
テップS204で得られた、1つのブロックBに入る可
能性のあるプリミティブ群から1つのプリミティブPを
取り出し、そのプリミティブPに対するブロック内スパ
ン生成ステップS206に進む。そして、取り出すプリ
ミティブPがなくなったならば、キャッシュ排出ステッ
プS208に進む。
【0075】ブロック内スパン生成ステップS206,
ブロック画像生成ステップS207およびキャッシュ排
出ステップS208の処理は、第1実施例に係る画像処
理方法におけるブロック内スパン生成ステップS10
6,ブロック画像生成ステップS107およびキャッシ
ュ排出ステップS108と全く同様に行なわれる。
【0076】このように、第2実施例に係る画像生成方
法およびその装置では、ブロックBごとにそのブロック
Bに入る全てのブロック内スパン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)

    【特許請求の範囲】
  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 true JPH09179999A (ja) 1997-07-11
JP2882465B2 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001351122A (ja) * 2000-06-08 2001-12-21 Victor Co Of Japan Ltd 画像生成方法
JP2002526842A (ja) * 1998-08-20 2002-08-20 アップル コンピュータ インコーポレイテッド ディファード・シェーディング(deferredshading)を伴うグラフィックス・プロセッサ(graphicsprocessor)
JP2002527835A (ja) * 1998-10-14 2002-08-27 株式会社日立製作所 3次元グラフィックプロセッサ
JP2003263650A (ja) * 2002-03-12 2003-09-19 Sony Corp 画像処理装置およびその方法
JP2003281564A (ja) * 2002-03-20 2003-10-03 Victor Co Of Japan Ltd 画像生成装置
JP2006235926A (ja) * 2005-02-24 2006-09-07 Toshiba Corp 画像処理装置、画像処理方法および画像処理プログラム
US7518607B2 (en) 2004-04-05 2009-04-14 Fujitsu Limited Hidden-line removal method
JP2019046080A (ja) * 2017-08-31 2019-03-22 Kddi株式会社 情報処理装置、方法及びプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03255589A (ja) * 1990-03-05 1991-11-14 Nec Corp Zバッファキャッシュ方式

Family Cites Families (8)

* 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
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> グラフィカル・オブジェクトの可視性を判定するための方法および装置
AU6600496A (en) * 1995-07-26 1997-02-26 Raycer, Incorporated Method and apparatus for span 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03255589A (ja) * 1990-03-05 1991-11-14 Nec Corp Zバッファキャッシュ方式

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526842A (ja) * 1998-08-20 2002-08-20 アップル コンピュータ インコーポレイテッド ディファード・シェーディング(deferredshading)を伴うグラフィックス・プロセッサ(graphicsprocessor)
JP2002527835A (ja) * 1998-10-14 2002-08-27 株式会社日立製作所 3次元グラフィックプロセッサ
JP2001351122A (ja) * 2000-06-08 2001-12-21 Victor Co Of Japan Ltd 画像生成方法
JP2003263650A (ja) * 2002-03-12 2003-09-19 Sony Corp 画像処理装置およびその方法
JP2003281564A (ja) * 2002-03-20 2003-10-03 Victor Co Of Japan Ltd 画像生成装置
US7518607B2 (en) 2004-04-05 2009-04-14 Fujitsu Limited Hidden-line removal method
JP2006235926A (ja) * 2005-02-24 2006-09-07 Toshiba Corp 画像処理装置、画像処理方法および画像処理プログラム
US7948486B2 (en) 2005-02-24 2011-05-24 Kabushiki Kaisha Toshiba Apparatus and method for performing hidden surface removal and computer program product
JP2019046080A (ja) * 2017-08-31 2019-03-22 Kddi株式会社 情報処理装置、方法及びプログラム

Also Published As

Publication number Publication date
JP2882465B2 (ja) 1999-04-12
US6456283B1 (en) 2002-09-24

Similar Documents

Publication Publication Date Title
JP4203128B2 (ja) 3次元の三角形描画におけるブロック及びバンド志向走査
JP3761085B2 (ja) 画像処理装置及びその構成部品、レンダリング処理方法
US6714196B2 (en) Method and apparatus for tiled polygon traversal
JP3645024B2 (ja) 描画装置及び描画方法
JPH09179999A (ja) 画像生成方法およびその装置
JP2003524810A (ja) 階層順によるラスタ化方法および装置
US6661424B1 (en) Anti-aliasing in a computer graphics system using a texture mapping subsystem to down-sample super-sampled images
JPH08161526A (ja) 画像合成装置及び画像合成方法
JP3586991B2 (ja) テクスチャ・データ読出装置およびレンダリング装置
JP4061697B2 (ja) 画像表示方法及びそれを実行する画像表示装置
EP0587439A2 (en) Computer graphics system
JP3029878B2 (ja) 画像を表す複数の多角形を処理する装置及び方法
JPH09212412A (ja) メモリアクセス方法及びデータ処理装置
US7999806B2 (en) Three-dimensional shape drawing device and three-dimensional shape drawing method
JP2000067264A (ja) カラ―及びzバッファを用いて表現するときのペ―ジ落ちを減少させるフレ―ムバッファメモリ―システム
JP2003323339A (ja) メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体
JP3548648B2 (ja) 描画装置及び描画方法
JP3971448B2 (ja) 描画装置及び描画方法
JP2776793B2 (ja) 画像表示方法およびその表示装置
JP3481382B2 (ja) 画像処理装置
JP3899977B2 (ja) 描画装置、方法及びプログラム
JP2003281564A (ja) 画像生成装置
JPH08235380A (ja) 多面体表示方法および多面体表示装置
JPH11203486A (ja) 半透明オブジェクトの表示方法及び、これを用いる画像表示装置
JPH08106537A (ja) 画像生成装置