JPWO2003001458A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JPWO2003001458A1
JPWO2003001458A1 JP2003507765A JP2003507765A JPWO2003001458A1 JP WO2003001458 A1 JPWO2003001458 A1 JP WO2003001458A1 JP 2003507765 A JP2003507765 A JP 2003507765A JP 2003507765 A JP2003507765 A JP 2003507765A JP WO2003001458 A1 JPWO2003001458 A1 JP WO2003001458A1
Authority
JP
Japan
Prior art keywords
coordinates
matrix
coordinate
calculating
information processing
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.)
Withdrawn
Application number
JP2003507765A
Other languages
English (en)
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.)
HI Corp
Original Assignee
HI 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 HI Corp filed Critical HI Corp
Publication of JPWO2003001458A1 publication Critical patent/JPWO2003001458A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • 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
    • G06T1/00General purpose image data processing

Landscapes

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

Abstract

3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P1(x1,y1)と点P2(x2,y2)とをとおる直線のy座標に対するx座標の変化れる定数μを、y座標の変化量に関連付けてメモリに格納しておく。Δxを演算する際、前記y座標の変化量に対応するμを前記メモリより読み出して乗算により、Δx’=μ*(x2−x1);を算出し、この結果をΔxとする。

Description

技術分野
本発明は3次元画像の描画の技術に関し、特に3次元画像の描画の処理時に行われるジオメトリ演算や除算の処理を軽減し、FPU(浮動小数点演算ユニット)を持たない情報処理装置や、CPUの処理能力が低い情報処理装置であっても3次元グラフィクの描画を可能とする技術に関する。
背景技術
3次元グラフィクを描画する場合、情報処理端末は、
(1)3次元の物体をずらしたりする座標変換演算(Transformation)、
(2)物体に光源(例えば太陽など)から光が当たっていると考えて、日向になっている部分と日陰になっている部分とを計算する光源計算処理(Lighting)
(3)物体をドットと呼ばれるカラムに分割する処理(ラスタライズ)
(4)そのカラムにテクスチャー(模様)を張り込んでいく(テクスチャーマッピング)
等の処理を行う。
通常、情報処理装置本体のCPUは、(1)と(2)とのいわゆるジオメトリ演算という作業を担当し、CPUのFPU(浮動小数点演算ユニット)を利用して処理している。
更に、(3)と(4)とのいわゆるラスタライズの処理は、通常、3Dグラフィックスアクセラレータが行っている。
しかしながら、(1)と(2)とのいわゆるジオメトリ演算という作業はCPUのFPU(浮動小数点演算ユニット)を利用して行なわれていが、FPUはジオメトリ演算だけでなく、浮動小数点一般を計算するために設計されているほか、CPUは他の処理も行ったりしており、必ずしも3次元のグラフィクを描画する処理に適したものではない。
そこで、そのジオメトリ演算をグラフィックスチップで行えるように設計した(つまりジオメトリエンジンを内蔵)3Dグラフィックスアクセラレータも登場しており、CPUの負荷率を下げる工夫がされているほか、何よりもジオメトリ演算の性能をCPUで行う場合に比べて大幅に向上させることが可能、つまり3Dの描画性能を向上させることを可能としている。
しかしながら、3Dグラフィックスアクセラレータは高価なのものであり、全ての情報処理装置が備えている訳ではない。
更に、情報処理装置の中には、例えば携帯電話や、PDA(Personal Digital(Data)Assistants)のように3Dグラフィックスアクセラレータどころか、FPU(浮動小数点演算ユニット)も備えていないものもある。
このような情報処理装置では、一般にCPUの能力も低く、3Dグラフィックスは無理とされていた。
更に、除算処理は乗算処理に比べてたいへん低速であり、高速に演算処理を行う為には、除算をなるべく減らすことが好ましい。
そこで、本発明は、3次元グラフィクの描画の処理時に行われるジオメトリ演算において、整数演算処理を行うことによって、FPU(浮動小数点演算ユニット)を持たない情報処理装置であっても3次元グラフィクの描画を可能とする技術を提供することを目的としている。
また、本発明は、ラスタライズ処理の際、除算を行わずラスタライズ処理を行うことによって、処理能力が低いCPUを持つ情報処理装置であっても、3次元グラフィクの描画を高速に可能とする技術を提供することを目的としている。
発明の開示
上記目的を達成する第1の発明は、3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる
Figure 2003001458
処理装置において、
Figure 2003001458
れて格納されたメモリと、
Δxを演算する際、前記y座標の変化量に対応するμを前記メモリより読み出して乗算により、
Figure 2003001458
を算出し、この結果をΔxとして演算する演算手段と
を有することを特徴とする。
上記目的を達成する第2の発明は、上記第1の発明において、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算する手段を更に有することを特徴とする。
上記目的を達成する第3の発明は、上記第1、2の発明において、座標値が整数に限定され、座標(x,y,z)を、
Figure 2003001458
で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行う場合、
アフィン変換の行列
Figure 2003001458
にλ(≠0)をかけた行列
Figure 2003001458
と、行列(t,t,tと、形状データとが格納されたメモリと、
前記形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’y’,z’)に変換する際、前記メモリより、行列A’と、行列(t,t,tとを読み出し、
Figure 2003001458
を演算して、座標(x’,y’,z’)を演算する演算手段と
を更に有することを特徴とする。
上記目的を達成する第4の発明は、上記第3の発明において、前記λを2(n1)に限定し、
前記演算手段は、
Figure 2003001458
の除算演算を、n桁右シフトすることにより演算する手段であることを特徴とする。
上記目的を達成する第5の発明は、上記第4の発明において、前記演算手段は、各被除数に定数λ/2を加えた後、n桁右シフトすることにより演算する手段であることを特徴とする。
上記目的を達成する第6の発明は、上記第3、4,5の発明において、予めλ(≠0)をかけた二つ以上のパラメータを合成する合成手段を有することを特徴とする。
上記目的を達成する第7の発明は、3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる
Figure 2003001458
を算出する3次元画像の描画処理方法であって、
Figure 2003001458
変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出すステップと、
前記読み出したμに基づいて、乗算により、
Figure 2003001458
を算出し、この結果をΔxとして演算するステップと
を有することを特徴とする。
上記目的を達成する第8の発明は、上記第7の発明において、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算するステップを更に有することを特徴とする。
上記目的を達成する第9の発明は、上記第7、8の発明において、座標値が整数に限定され、座標(x,y,z)を、
Figure 2003001458
で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行う際、
形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
Figure 2003001458
と、行列(t,t,tとを読み出すステップと、
前記読み出した行列A’と、行列(t,t,tとに基づいて、
Figure 2003001458
を演算して、座標(x’,y’,z’)を演算するステップと
を更に有することを特徴とする。
上記目的を達成する第10の発明は、上記第9の発明において、前記λを2(n1)に限定し、
前記演算するステップは、
Figure 2003001458
の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算するステップであることを特徴とする。
上記目的を達成する第11の発明は、上記第10の発明において、前記n桁右シフトする前に、各被除数に定数λ/2を加算するステップを更に有することを特徴とする。
上記目的を達成する第12の発明は、上記第9、10、11の発明において、予めλ(≠0)をかけた二つ以上のパラメータを合成するステップを更に有することを特徴とする。
上記目的を達成する第13の発明は、3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとお
Figure 2003001458
算処理を情報処理装置に行わせるプログラムであって、
前記プログラムは情報処理装置に、
Figure 2003001458
変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出させるステップと、
前記読み出したμに基づいて、乗算により、
Figure 2003001458
を算出し、この結果をΔxとして演算させるステップと
を有することを特徴とするプログラムである。
上記目的を達成する第14の発明は、上記第13の発明において、情報処理装置に、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算させるステップを更に有することを特徴とするプログラムである。
上記目的を達成する第15の発明は、上記第13、14の発明において、情報処理装置に、座標値が整数に限定され、座標(x,y,z)を、
Figure 2003001458
で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行わせる際、
形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
Figure 2003001458
と、行列(t,t,tとを読み出させるステップと、
前記読み出した行列A’と、行列(t,t,tとに基づいて、
Figure 2003001458
を演算して、座標(x’,y’z’)を演算させるステップと
を更に有することを特徴とするプログラムである。
上記目的を達成する第16の発明は、上記第15の発明において、前記λを2(n1)に限定し、
前記演算するステップは、
Figure 2003001458
の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算させるステップであることを特徴とするプログラムである。
上記目的を達成する第17の発明は、上記第16の発明において、情報処理装置に、前記n桁右シフトする前に、各被除数に定数λ/2を加算させるステップを更に有することを特徴とするプログラムである。
上記目的を達成する第18の発明は、上記第15、16、17の発明において、情報処理装置に、予めλ(≠0)をかけた二つ以上のパラメータを合成させるステップを更に有することを特徴とするプログラムである。
上記目的を達成する第19の発明は、3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる直線のy座標に対するx座標の変化量
Figure 2003001458
を算出する演算処理を情報処理装置に行わせるプログラムが格納された記録媒体であって、
前記プログラムは情報処理装置に、
Figure 2003001458
変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出させるステップと、
前記読み出したμに基づいて、乗算により、
Figure 2003001458
を算出し、この結果をΔxとして演算させるステップと
を有することを特徴とする記録媒体である。
上記目的を達成する第20の発明は、上記第19の発明において、前記プログラムが、情報処理装置に、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算させるステップを更に有することを特徴とする記録媒体である。
上記目的を達成する第21の発明は、上記第19、20の発明において、前記プログラムは、
情報処理装置に、座標値が整数に限定され、座標(x,y,z)を、
Figure 2003001458
で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行わせる際、
形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
Figure 2003001458
と、行列(t,t,tとを読み出させるステップと、
前記読み出した行列A’と、行列(t,t,tとに基づいて、
Figure 2003001458
を演算して、座標(x’,y’,z’)を演算させるステップと
を更に有することを特徴とする記録媒体である。
上記目的を達成する第22の発明は、上記第21の発明において、前記λを2(n1)に限定し、
前記演算するステップは、
Figure 2003001458
の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算させるステップであることを特徴とする記録媒体である。
上記目的を達成する第23の発明は、上記第22の発明において、前記プログラムは、情報処理装置に、前記n桁右シフトする前に、各被除数に定数λ/2を加算させるステップを更に有することを特徴とする記録媒体である。
上記目的を達成する第24の発明は、上記第21、22、23の発明において、前記プログラムは、情報処理装置に、予めλ(≠0)をかけた二つ以上のパラメータを合成させるステップを更に有することを特徴とする記録媒体である。
発明を実施するための最良の形態
本発明の実施するための最良の形態を説明する。
まず、本発明の特徴である情報処理装置を用いた整数によるジオメトリ演算と、除算を使用しない三角形ラスタライズとについて説明する。
<整数によるジオメトリ演算>
1.アフィン変換による座標変換
座標(x,y,z)から座標(x’,y’,z’)へのアフィン変換を、
Figure 2003001458
の形で表すとき、C言語的な数値演算で、x’,y’,z’を求める場合、
Figure 2003001458
のようになる。但し、全ての数値型が無限の範囲と精度とをもっているものとする。
有限範囲の整数で座標計算する場合、計算精度と演算のオーバーフローとが問題となる。
オーバーフローに関しては、扱う座標の範囲を制限すれば、問題とならないが、計算精度は絶対値の小さい実数を整数に丸めるときに(小数を含む数値などで、必要とする右端の位(または桁)より一つ下の位(または桁)の値を四捨五入等して、数値を短縮すること。四捨五入以外にも切り上げや切り捨てなどの場合もありうる。)、相対誤差が大きくなる。特に、行列Aの成分は絶対値が1以下の場合が非常に多く、その数値を整数に丸めた場合は期待する結果から大きくずれてしまう。
そこで、行列Aの成分を整数に丸めるとき、相対誤差をなるべく少なくするために、予めλ(≠0)を行列Aの成分に掛けておく。
Figure 2003001458
この行列A’で座標変換するときに
Figure 2003001458
のように計算する。
C言語的な数値演算で、x’,y’,z’を求める場合、
Figure 2003001458
のようになる。但し、すべての数値型は整数である。
このような計算でも、整数計算となり、浮動小数点演算を行う必要はないが、高速化のために実行時の整数除算を避けるためλを2(n1)に限定し、λ’=logλとして、
Figure 2003001458
のように算術右シフトで除算とほぼ同じ演算を行う。
また、算術右シフトを整数除算として利用する場合、丸めは−∞方向になるので、
Figure 2003001458
のように算術右シフトを行う前に定数λ/2を加えて誤差を修正する。
具体的な例で説明すると、例えば、座標(111,222,333)の点をアフィン変換する場合を考える。
上記の式2の行列A次びt(t,t,tを、
Figure 2003001458
Figure 2003001458
とすると、
実数で計算した場合の式2の結果は、
Figure 2003001458
となる。
ここで、上述した如く、本発明のアフィン変換を用いると、λ=4096(212)とした場合、行列A’は、
Figure 2003001458
となる。
この行列A’と、行列t(t,t,tとを使ったアフィン変換を、C言語の式で表すと、
Figure 2003001458
となる。
この計算結果は、(991,579,1316)となり、上記の実数の演算結果とほぼ同じ結果となる。
情報処理装置の実際処理では、行列Aにλを乗算した行列A’と、行列t(t,t,tとが、情報処理装置のメモリにパラメータとして格納されており、アフィン変換による座標変換をする際に、該当する行列Aに対応する行列A’と、行列t(t,t,tとをメモリから読み出し、読み出した行列A’基づいて、各要素毎に演算が行われる。そして、その結果に定数λ/2を加えたものを、定数λ’回右シフトを行い、その結果に行列t(t,t,tを加えて、座標を算出する。
2.アフィン変換の合成
2つのアフィン変換f,g(変換パラメータ)をそれぞれ、
Figure 2003001458
である。A’=λA、B’=λBのとき、
Figure 2003001458
である。
Figure 2003001458
とすると、式8は、
Figure 2003001458
となる。
この式11の右辺と式4の右辺は同じ形である。
Figure 2003001458
として、C言語的な数値演算でMとtとの成分を求める場合、
Figure 2003001458
となる。λを2(n1)に限定し、λ’=logλとして全ての整数型を整数で計算するようにすると、
Figure 2003001458
Figure 2003001458
となる。
この方法により、事前にλを掛けたアフィン変換同士の合成ができる。
具体的な例で説明すると、例えば、
Figure 2003001458
とし、λ=4096とすると、
Figure 2003001458
となる。
λAとλBとの要素を最近整数値に丸めた行列は、
Figure 2003001458
である。
従って、上述した数式により、行列Mと行列tとを求めると、
Figure 2003001458
となる。
このように、上記の如く計算した
Figure 2003001458
と、ほぼ同様な値を得ることができる。
<除算を使用しない三角形ラスタライズ>
直線上のx座標の変化量を求める場合、2次元平面上の点Pの座標を(x,y)、点Pの座標を(x,y)とする。y≠yのとき、PとPとをとおる直線のy座標に対するx座標の変化量は、
Figure 2003001458
である。
Δx’=λΔxとし、Δx’をC言語的な数値演算で求める場合、
Figure 2003001458
のようになる。
Figure 2003001458
としたときは
Figure 2003001458
のように乗算の形式になる。
整数のみで計算する場合、|λ|が十分に大きく|y−y|がある程度小さければ、丸めによる相対誤差が小さくなる。
そこで、λを定数にして、y座標の範囲を制限すれば、μは予め用意された少ない配列から得ることができる。すなわち、μを|y−y|に対応させて、情報処理装置のメモリに予め格納しておく。そして、|y−y|をインデックスとして、μを読み出して、
Figure 2003001458
を計算すれば、乗算だけでほぼΔxと同じ値のΔx’を求めることができる。
また、λを2(n1)に制限すれば、算術右シフトによって、Δxを算出することができる。
よって、除算を一切使わずにx座標の変化量が求まる。
また、テクスチャー座標も同じ理由により、除算は必要ない。
具体的な例として、λ=65536として、座標(10,20)の始点Pと座標(85,120)の始点Pとの線分の例を説明する。
この線分のy座標に対するx座標の変化量は、
Figure 2003001458
となり、Δx’=λx=49152.0となる。
Δx’を整数のみで除算を使用しないで計算する場合、上述したように120−20=100をインデックスとして、対応するμをメモリから読み出してくる。
この場合、
Figure 2003001458
とすると、
Figure 2003001458
となり、除算を使用したΔx’=λx=49152.0とほぼ同じ値を得ることができる。
次に、上述の方法を携帯端末等に用いた場合について説明する。
図1は携帯端末のブロック図である。
図1中、1は3次元グラフィクを表示するディスプレイであり、2はFPU(浮動小数点演算ユニット)を持たないCPU等で構成された演算手段である制御部、3はプログラムやデータが格納されたメモリ部である。
尚、メモリ部3には、変換パラメータ(上述した行列A’と、行列t(t,t,t)が格納された変換パラメータテーブル4と、上述した|y−y|をインデックスとしてμが格納された逆数テーブル5とが格納されている。
以下の本説明の3次元グラフィクの描画では、物体をすべて多角形の平面の組み合わせで表現する。そして、その多角形のことをポリゴンと呼ぶ。3次元空間にある物体(ポリゴン)は、X,Y,Zの3つの座標値を持っており、この座標を動かすことで、物体の位置や向きを変更することができる。さらに、3次元座標で表現されるものを、最終的に2次元のスクリーンに表示させる為、スクリーン座標系への変換が行われる。
このような、一連の座標変換、透視変換、光源計算などの処理(演算)は、ジオメトリ演算と呼ばれる。そして、計算によって変換されたポリゴンは、最終的にフレームバッファに書き込まれ、描画が行われる。
通常、ジオメトリ演算という処理はCPUのFPU(浮動小数点演算ユニット)を利用して行なわれていが、FPUはジオメトリ演算だけでなく、浮動小数点一般を計算するために設計されている。更に、携帯電話に代表される携帯端末の機器では、高価になるという理由で、FPU(浮動小数点演算ユニット)を持たないものも多い。
そこで、携帯端末のようなFPU(浮動小数点演算ユニット)を持たないCPUの情報処理装置でも、ジオメトリ演算を可能とする為、本発明では制御部3が整数によるジオメトリ演算を行う。
また、物体をドットに分割するラスタライズについても、3Dグラフィックスアクセラレータのない携帯端末では、処理負荷が増大する。
そこで、本発明では、処理負荷を軽減する為に、制御部3が除算を使用しないで三角形をラスタライズする。
次に、制御部3が行う、上述した演算を用いた3次元グラフィクの描画動作を説明する。
図2は3次元グラフィクの基本的な描画動作を示すフローチャートである。
まず、描画先の仮想フレームバッファの情報を設定する(step 100)。
次に、モデルオブジェクトに、メモリ部3から幾何学的座標データである形状データを読み込む(step 101)。
ここで読み込まれる形状データは、頂点座標列、ポリゴン列及びセグメント列の情報が含まれる。また、セグメントのデータには、基本姿勢用の変換パラメータ、所属頂点群及び親セグメントのID(識別情報)を含む。
尚、読み出される変換パラメータは、基本の行列Aにλ(2(n1))を乗算した行列A’と行列t(t,t,tとであり、行列A’と行列t(t,t,tとは、変換パラメータテーブル4から読み出される。
続いて、形状データに対応するテクスチャーデータ、例えば質感等のデータを読み込む(Step 102)。
そして、モデル座標系から視点座標系への変換パラメータを設定し(Step 103)、視点座標系からスクリーン座標系への変換パラメータを設定する(Step 104)。
仮想フレームバッファに2次元の背景を描画する(Step 105)。
仮想フレームバッファにモデルオブジェクトを描画する(Step 106)。
最後に、仮想フレームバッファの内容を実際の画面に表示する(Step 107)。
そして、Step 103からStep 107を繰り返すことによって3次元グラフィクが描画されることになる。
続いて、本発明の特徴である演算が用いられるモデルオブジェクトを制御部3が描画するStep 106について、更に詳細に説明する。
図3はモデルオブジェクトを描画のステップであるStep 106の動作を更に詳細に示すフローチャートである。
まず、モデルの頂点座標をローカル座標系からスクリーン座標系に変換する(Step 200)。
ここで、モデルの構造について説明する。通常、モデルは内部に複数のセグメントを持ち,各セグメントは複数の頂点を持っている。それらの頂点はセグメント座標系での座標値を持っている。セグメントは複数の子セグメントを持つことができ,セグメントに含まれる頂点の座標を親セグメント座標系に変換するための変換パラメータを持つ。最上位のセグメントが持つ変換パラメータは,そのセグメントが含む頂点の座標をモデル座標系に変換するための値になる。また、基本姿勢用の変換パラメータの情報も有する。
そこで、セグメント座標系での座標値を持つモデルの頂点座標をローカル座標系からスクリーン座標系に変換するため、まず、セグメント座標系からモデル座標系への変換を行う。
セグメント座標系からモデル座標系への変換パラメータの算出は,上述した整数によるジオメトリ演算によるアフィン変換の合成により行われる。
親セグメントを持つセグメントの場合は,セグメントが持つ変換パラメータfと、親セグメントのセグメント座標系からモデル座標系への変換パラメータgとを合成して,セグメント座標系からモデル座標
Figure 2003001458
この合成に際し、上述したアフィン変換の合成の手法が用いられる。
尚、親セグメントを持たないセグメントの場合は、セグメントが持つ変換パラメータfとすると、セグメント座標系からモデル座標系への変換パラメータは、h=fになる。
続いて、モデル座標系からスクリーン座標系への変換について、説明する。
モデル座標系からスクリーン座標系への変換パラメータも同じ方法で計算する。
モデル座標系から視点座標系への変換パラメータをpとし,視点座標系からスクリーン座標系への変換パラメータをqとすると,モデル
Figure 2003001458
最後に、上述の如く算出された、セグメント座標系からモデル座標系への変換パラメータhと、モデル座標系からスクリーン座標系への変換パラメータrとに基づいて、セグメント座標系からスクリーン座標系への変換パラメータsを算出する。
セグメント座標系からスクリーン座標系への変換パラメータsは、
Figure 2003001458
必要があるが、rはl体のモデルの計算では1度しか計算する必要がない。
このように算出された変換パラメータsを使ってセグメント座標系の頂点座標をスクリーン座標系の座標に変換する。
座標変換の演算は、上述した整数によるジオメトリ演算のアフィン変換により座標変換により行う。
すなわち、セグメント座標系の頂点座標(x,y,z)を、変換パラメータsを使ってスクリーン座標系の座標(x’,y’,z’)に変換する。
続いて、スクリーン空間で裏面のポリゴンを処理対象から外す(Step 201)。
処理対象のポリゴンを視点座標系のZ値(奥行き)でソートする(Step 202)。
最後に、スクリーン座標で仮想フレームバッファにポリゴンを描画する(Step 203)。
本ステップを更に詳細に説明すると、まず、ここでは描画領域に三角形が表示される可能性をチェックする。三角形が完全に描画領域の外にある場合は以降の描画処理をスキップする。
そして、三角形を走査するための数値を事前に計算する。この計算は、主に三角形の稜線座標やテクスチャー座標などの変化量を計算する。この変化量は、上述した除算を使用しない三角形ラスタライズの演算により行われる。
三角形の走査は,加算やビットシフトなどの単純操作を繰り返し、仮想フレームバッファにピクセル値を書き込む。
具体的な演算の方法としては、直線上のx座標の変化量を求める場合、2次元平面上の点Pの座標を(x,y)、点Pの座標を(x,y)とする。y≠yのとき、PとPとをとおる直線のy座標に対するx座標の変化量は、上述した通り、
Figure 2003001458
である。
Δx’=λΔxとし、Δx’をC言語的な数値演算で求める場合、
Figure 2003001458
のようになる。
Figure 2003001458
としたときは
Figure 2003001458
のように乗算の形式になる。
整数のみで計算する場合、|λ|が十分に大きく|y−y|がある程度小さければ、丸めによる相対誤差が小さくなる。
そこで、λを定数にして、y座標の範囲を制限すれば、μは少ない配列から得ることができる。
そこで、|y−y|をインデックスとしたμの値を、メモリ部3の逆数テーブル5に予め格納しておく。そして、|y−y|に対応するμを逆数テーブル5から読み出し、このμと(x−x)とを除算することにより、Δx’を算出する。
そして、処理の高速化のため、Δx’で必要な演算を行っていき、仮想フレームバッファにピクセル値を書き込む際にλで除算する。
また、除算の段階で、λを2(n1)としてあれば、算術右シフトによって、Δxを算出することができ、除算を使わずにx座標の変化量が求まることが可能となる。
尚、テクスチャー座標も同様な処理が可能である。
次に、本発明の実際の具体例として、制御部3で実行されるC言語で記載されたプログラムを説明する。
まず、整数によるジオメトリ演算のプログラムを以下に記す。
以下は、メモリに記憶されている、変換パラメータ、すなわち行列A’と行列(t,t,tの例である。
Figure 2003001458
ここで、public int m00からpublic int m23は、コメントにあるようにアフィン変換の行列A’と、行列(t,t,tの各要素に相当する。また、λ=4096である。
次に、座標変換について以下に示す。
Figure 2003001458
Figure 2003001458
ここで、@param srcは上記の式2で示される座標(x,y,z)に相当し、@param dstは上記の式2で示される座標(x’,y’,z’)に相当する。
次に、アフィン変換の合成について以下に示す。
Figure 2003001458
Figure 2003001458
Figure 2003001458
次に、ポリゴン描画について示す。
Figure 2003001458
Figure 2003001458
Figure 2003001458
尚、上記テーブルは、上述したμの値の逆数テーブル5に相当するものであるが、メモリの記憶容量節約の観点から、μ−1としてある。そして、|y−y|の大きさの順に並んでいる。
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
Figure 2003001458
以上が、本発明を実施する為のプログラムの一例である。
産業上の利用可能性
本発明は、3次元画像の描画の演算処理の際、整数の範囲で演算処理が行えるので、携帯電話や、PDA(Personal Digital(Data)Assistants)のようにFPU(浮動小数点演算ユニット)も備えていないものであっても、3次元画像が扱える。
また、演算処理の際、処理負荷の高い除算を行わないようにしているので、CPUの能力が低い情報処理装置であっても、スムーズな描画処理が行える。
【図面の簡単な説明】
図1は携帯端末のブロック図であり、図2は3次元グラフィクの基本的な描画動作を示すフローチャートであり、図3はモデルオブジェクトを描画のステップであるStep 106の動作を更に詳細に示すフローチャートである。

Claims (24)

  1. 3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる直線のy座標に対するx座標の変化量
    Figure 2003001458
    を算出する情報処理装置において、
    Figure 2003001458
    れて格納されたメモリと、
    Δxを演算する際、前記y座標の変化量に対応するμを前記メモリより読み出して乗算により、
    Figure 2003001458
    を算出し、この結果をΔxとして演算する演算手段と
    を有することを特徴とする情報処理装置。
  2. 前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算する手段を更に有することを特徴とする請求項1に記載の情報処理装置。
  3. 座標値が整数に限定され、座標(x,y,z)を、
    Figure 2003001458
    で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行う場合、
    アフィン変換の行列
    Figure 2003001458
    にλ(≠0)をかけた行列
    Figure 2003001458
    と、行列(t,t,tと、形状データとが格納されたメモリと、
    前記形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、前記メモリより、行列A’と、行列(t,t,tとを読み出し、
    Figure 2003001458
    を演算して、座標(x’,y’,z’)を演算する演算手段と
    を更に有することを特徴とする請求項1又は請求項2に記載の情報処理装置。
  4. 前記λを2(n1)に限定し、
    前記演算手段は、
    Figure 2003001458
    の除算演算を、n桁右シフトすることにより演算する手段であることを特徴とする請求項3に記載の情報処理装置。
  5. 前記演算手段は、各被除数に定数λ/2を加えた後、n桁右シフトすることにより演算する手段であることを特徴とする請求項4に記載の情報処理装置。
  6. 予めλ(≠0)をかけた二つ以上のパラメータを合成する合成手段を有することを特徴とする請求項3から請求項5のいずれかに記載の情報処理装置。
  7. 3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる直線のy座標に対するx座標の変化量
    Figure 2003001458
    を算出する3次元画像の描画処理方法であって、
    Figure 2003001458
    変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出すステップと、
    前記読み出したμに基づいて、乗算により、
    Figure 2003001458
    を算出し、この結果をΔxとして演算するステップと
    を有することを特徴とする3次元画像の描画処理方法。
  8. 前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算するステップを更に有することを特徴とする請求項7に記載の3次元画像の描画処理方法。
  9. 座標値が整数に限定され、座標(x,y,z)を、
    Figure 2003001458
    で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行う際、
    形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
    Figure 2003001458
    と、行列(t,t,tとを読み出すステップと、
    前記読み出した行列A’と、行列(t,t,tとに基づいて、
    Figure 2003001458
    を演算して、座標(x’,y’,z’)を演算するステップと
    を有することを特徴とする請求項7又は請求項8に記載の3次元画像の描画処理方法。
  10. 前記λを2(n1)に限定し、
    前記演算するステップは、
    Figure 2003001458
    の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算するステップであることを特徴とする請求項9に記載の3次元画像の描画処理方法。
  11. 前記n桁右シフトする前に、各被除数に定数λ/2を加算するステップを更に有することを特徴とする請求項10に記載の3次元画像の描画処理方法。
  12. 予めλ(≠0)をかけた二つ以上のパラメータを合成するステップを更に有することを特徴とする請求項9から請求項11のいずれかに記載の3次元画像の描画処理方法。
  13. 3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる直線のy座標に対するx座標の変化量
    Figure 2003001458
    を算出する演算処理を情報処理装置に行わせるプログラムであって、
    前記プログラムは情報処理装置に、
    Figure 2003001458
    変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出させるステップと、
    前記読み出したμに基づいて、乗算により、
    Figure 2003001458
    を算出し、この結果をΔxとして演算させるステップと
    を有することを特徴とするプログラム。
  14. 情報処理装置に、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算させるステップを更に有することを特徴とする請求項13に記載のプログラム。
  15. 情報処理装置に、座標値が整数に限定され、座標(x,y,z)を、
    Figure 2003001458
    で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行わせる際、
    形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
    Figure 2003001458
    と、行列(t,t,tとを読み出させるステップと、
    前記読み出した行列A’と、行列(t,t,tとに基づいて、
    Figure 2003001458
    を演算して、座標(x’,y’,z’)を演算させるステップと
    を有することを特徴とする請求項13又は請求項14に記載のプログラム。
  16. 前記λを2n(n1)に限定し、
    前記演算するステップは、
    Figure 2003001458
    の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算させるステップであることを特徴とする請求項15に記載のプログラム。
  17. 情報処理装置に、前記n桁右シフトする前に、各被除数に定数λ/2を加算させるステップを更に有することを特徴とする請求項16に記載のプログラム。
  18. 情報処理装置に、予めλ(≠0)をかけた二つ以上のパラメータを合成させるステップを更に有することを特徴とする請求項15から請求項17のいずれかに記載のプログラム。
  19. 3次元画像の描画のラスタライズ処理を行う際、2次元平面上の点P(x,y)と点P(x,y)とをとおる直線のy座標に対するx座標の変化量
    Figure 2003001458
    を算出する演算処理を情報処理装置に行わせるプログラムが格納された記録媒体であって、
    前記プログラムは情報処理装置に、
    Figure 2003001458
    変化量に関連付けられて格納されたメモリから、算出するΔxのy座標の変化量に対応するμを読み出させるステップと、
    前記読み出したμに基づいて、乗算により、
    Figure 2003001458
    を算出し、この結果をΔxとして演算させるステップと
    を有することを特徴とする記録媒体。
  20. 前記プログラムは、情報処理装置に、前記λを2(n1)に限定し、前記算出されたΔx’を、n桁右シフトすることにより、Δxを演算させるステップを更に有することを特徴とする請求項19に記載の記録媒体。
  21. 前記プログラムは、
    情報処理装置に、座標値が整数に限定され、座標(x,y,z)を、
    Figure 2003001458
    で表現されるアフィン変換により、座標(x’,y’,z’)に変換処理を行わせる際、
    形状データの座標(x,y,z)を、行列A及び行列(t,t,tとのアフィン変換により、座標(x’,y’,z’)に変換する際、メモリに記憶されている、行列Aにλ(≠0)をかけたパラメータA’
    Figure 2003001458
    と、行列(t,t,tとを読み出させるステップと、
    前記読み出した行列A’と、行列(t,t,tとに基づいて、
    Figure 2003001458
    を演算して、座標(x’,y’,z’)を演算させるステップと
    を更に有することを特徴とする請求項19又は請求項20に記載の記録媒体。
  22. 前記λを2(n1)に限定し、
    前記演算するステップは、
    Figure 2003001458
    の除算演算を、n桁右シフトすることにより、座標(x’,y’,z’)を演算させるステップであることを特徴とする請求項21に記載の記録媒体。
  23. 前記プログラムは、情報処理装置に、前記n桁右シフトする前に、各被除数に定数λ/2を加算させるステップを更に有することを特徴とする請求項22に記載の記録媒体。
  24. 前記プログラムは、情報処理装置に、予めλ(≠0)をかけた二つ以上のパラメータを合成させるステップを更に有することを特徴とする請求項21から請求項23のいずれかに記載の記録媒体。
JP2003507765A 2001-06-21 2002-06-20 情報処理装置 Withdrawn JPWO2003001458A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001187619 2001-06-21
JP2001187619 2001-06-21
PCT/JP2002/006159 WO2003001458A1 (fr) 2001-06-21 2002-06-20 Processeur de donnees

Publications (1)

Publication Number Publication Date
JPWO2003001458A1 true JPWO2003001458A1 (ja) 2004-10-14

Family

ID=19026886

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003507764A Expired - Fee Related JP4046233B2 (ja) 2001-06-21 2002-06-20 情報処理装置
JP2003507765A Withdrawn JPWO2003001458A1 (ja) 2001-06-21 2002-06-20 情報処理装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003507764A Expired - Fee Related JP4046233B2 (ja) 2001-06-21 2002-06-20 情報処理装置

Country Status (8)

Country Link
US (2) US7030880B2 (ja)
EP (2) EP1406214A4 (ja)
JP (2) JP4046233B2 (ja)
KR (2) KR20030043935A (ja)
CN (2) CN1465035A (ja)
IL (4) IL154451A0 (ja)
TW (2) TWI239488B (ja)
WO (2) WO2003001458A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7107081B1 (en) 2001-10-18 2006-09-12 Iwao Fujisaki Communication device
US7127271B1 (en) 2001-10-18 2006-10-24 Iwao Fujisaki Communication device
US7466992B1 (en) 2001-10-18 2008-12-16 Iwao Fujisaki Communication device
US8229512B1 (en) 2003-02-08 2012-07-24 Iwao Fujisaki Communication device
US8241128B1 (en) 2003-04-03 2012-08-14 Iwao Fujisaki Communication device
US8090402B1 (en) 2003-09-26 2012-01-03 Iwao Fujisaki Communication device
US7917167B1 (en) 2003-11-22 2011-03-29 Iwao Fujisaki Communication device
US8041348B1 (en) 2004-03-23 2011-10-18 Iwao Fujisaki Communication device
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
US7202877B2 (en) * 2004-05-21 2007-04-10 Texas Instruments Incorporated Sprite rendering
US7664338B2 (en) * 2004-09-28 2010-02-16 Qualcomm Incorporated Perspective transformation of two-dimensional images
US8208954B1 (en) 2005-04-08 2012-06-26 Iwao Fujisaki Communication device
KR101249988B1 (ko) * 2006-01-27 2013-04-01 삼성전자주식회사 사용자의 위치에 따른 영상을 디스플레이하는 장치 및 방법
US8692809B2 (en) * 2006-07-06 2014-04-08 Elo Touch Solutions, Inc. Auto-gain switching module for acoustic touch systems
US7936921B2 (en) * 2007-01-04 2011-05-03 Freescale Semiconductor, Inc. Efficient fixed-point real-time thresholding for signal processing
US8559983B1 (en) 2007-05-03 2013-10-15 Iwao Fujisaki Communication device
US7890089B1 (en) 2007-05-03 2011-02-15 Iwao Fujisaki Communication device
US8676273B1 (en) 2007-08-24 2014-03-18 Iwao Fujisaki Communication device
US8639214B1 (en) 2007-10-26 2014-01-28 Iwao Fujisaki Communication device
US8472935B1 (en) 2007-10-29 2013-06-25 Iwao Fujisaki Communication device
US8744720B1 (en) 2007-12-27 2014-06-03 Iwao Fujisaki Inter-vehicle middle point maintaining implementer
US8543157B1 (en) 2008-05-09 2013-09-24 Iwao Fujisaki Communication device which notifies its pin-point location or geographic area in accordance with user selection
US8340726B1 (en) 2008-06-30 2012-12-25 Iwao Fujisaki Communication device
US8452307B1 (en) 2008-07-02 2013-05-28 Iwao Fujisaki Communication device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760548A (en) * 1986-06-13 1988-07-26 International Business Machines Corporation Method and apparatus for producing a curve image
US5028848A (en) * 1988-06-27 1991-07-02 Hewlett-Packard Company Tile vector to raster conversion method
US5715385A (en) * 1992-07-10 1998-02-03 Lsi Logic Corporation Apparatus for 2-D affine transformation of images
JP3131041B2 (ja) * 1992-08-28 2001-01-31 三菱電機株式会社 量子化装置
US5581665A (en) * 1992-10-27 1996-12-03 Matsushita Electric Industrial Co., Ltd. Three-dimensional object movement and transformation processing apparatus for performing movement and transformation of an object in a three-diamensional space
JPH0778269A (ja) * 1993-06-30 1995-03-20 Nec Corp 3次元描画装置
JP2526505B2 (ja) * 1993-09-28 1996-08-21 日本電気株式会社 画像処理装置
WO1996003717A1 (en) * 1994-07-22 1996-02-08 Apple Computer, Inc. Method and system for the placement of texture on three-dimensional objects
KR0170934B1 (ko) * 1994-12-29 1999-03-20 배순훈 프랙탈 영상 부호화를 위한 고속 아핀 변환 장치
JPH09305789A (ja) * 1996-05-21 1997-11-28 Hitachi Ltd 演算方法およびグラフィックス表示装置
AUPP091197A0 (en) * 1997-12-15 1998-01-08 Liguori, Vincenzo Direct manipulation of compressed geometry
US6215915B1 (en) * 1998-02-20 2001-04-10 Cognex Corporation Image processing methods and apparatus for separable, general affine transformation of an image
US6389154B1 (en) * 1998-07-15 2002-05-14 Silicon Graphics, Inc. Exact evaluation of subdivision surfaces generalizing box splines at arbitrary parameter values
US6483514B1 (en) * 1999-04-15 2002-11-19 Pixar Animation Studios Motion blurring implicit surfaces
JP4244444B2 (ja) * 1999-05-28 2009-03-25 ソニー株式会社 データ処理装置、除算回路および画像処理装置
GB2359884B (en) * 1999-11-25 2004-06-30 Canon Kk Image processing method and apparatus
JP2002008060A (ja) * 2000-06-23 2002-01-11 Hitachi Ltd データ処理方法、記録媒体及びデータ処理装置

Also Published As

Publication number Publication date
US6970178B2 (en) 2005-11-29
CN1465035A (zh) 2003-12-31
US20030185460A1 (en) 2003-10-02
CN1465036A (zh) 2003-12-31
IL154451A (en) 2009-07-20
EP1406213A1 (en) 2004-04-07
KR20030045036A (ko) 2003-06-09
EP1406214A1 (en) 2004-04-07
JP4046233B2 (ja) 2008-02-13
EP1406213A4 (en) 2009-01-14
IL154450A (en) 2008-11-26
JPWO2003001457A1 (ja) 2004-10-14
IL154450A0 (en) 2003-09-17
WO2003001458A1 (fr) 2003-01-03
TWI239488B (en) 2005-09-11
EP1406214A4 (en) 2009-01-14
IL154451A0 (en) 2003-09-17
TWI257795B (en) 2006-07-01
KR100924250B1 (ko) 2009-10-30
US7030880B2 (en) 2006-04-18
WO2003001457A1 (fr) 2003-01-03
US20030184543A1 (en) 2003-10-02
KR20030043935A (ko) 2003-06-02

Similar Documents

Publication Publication Date Title
JPWO2003001458A1 (ja) 情報処理装置
US8059119B2 (en) Method for detecting border tiles or border pixels of a primitive for tile-based rendering
US5903273A (en) Apparatus and method for generating an image for 3-dimensional computer graphics
CN110084875B (zh) 使用计算着色器作为顶点着色器的前端
TWI552109B (zh) 一種使用誤差項之保守格柵化基元的方法、非暫時性電腦可讀儲存媒體及系統
US8379025B1 (en) Methods and apparatus for rendering vector art on graphics hardware
CN102227752A (zh) 使用三维图形硬件的二维图形渲染期间的顶点丢弃
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
US8040357B1 (en) Quotient remainder coverage system and method
EP3563352B1 (en) Indexed value blending for use in image rendering
CN114494564A (zh) 法线贴图生成方法、设备、电子设备及存储介质
US8179399B2 (en) Rasterizing method
JPH11161819A (ja) 画像処理装置、画像処理方法、及び画像処理プログラムを記録した記録媒体
US20100302259A1 (en) Drawing data processing method, graphics drawing system and graphics drawing data generation program
JP3979162B2 (ja) 画像処理装置およびその方法
CN110570504B (zh) 闭合符号绘制方法、装置、电子设备及存储介质
KR100388587B1 (ko) 정점 데이터에 오프셋값을 가산하여 폴리곤을 묘화하는3차원 그래픽스 묘화 장치 및 그 방법
JP3522714B2 (ja) 画像生成方法
US7372466B2 (en) Image processing apparatus and method of same
KR100684558B1 (ko) 텍스쳐 밉매핑 장치 및 방법
JP4556646B2 (ja) 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法
JP4483026B2 (ja) 図形情報変換装置、図形情報変換方法及び記録媒体
CN118097008A (zh) 用于将mesh格式文件转换为数值分析软件文件的方法
CN115063509A (zh) 一种基于daa直线表示的光栅化方法、装置及存储介质
CN117224963A (zh) 虚拟资产的处理方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070718

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070914