JPH07271847A - 造成地形のモデリング方法及び装置 - Google Patents
造成地形のモデリング方法及び装置Info
- Publication number
- JPH07271847A JPH07271847A JP6064844A JP6484494A JPH07271847A JP H07271847 A JPH07271847 A JP H07271847A JP 6064844 A JP6064844 A JP 6064844A JP 6484494 A JP6484494 A JP 6484494A JP H07271847 A JPH07271847 A JP H07271847A
- Authority
- JP
- Japan
- Prior art keywords
- point
- points
- line
- grid
- terrain
- 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.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】
【目的】 地形を造成して生じる造形状を、3次元コン
ピュータ・グラフィックスにより表現するために、高速
で高精度なモデリング方法を提供する。 【構成】 地形面と造成面を表示し、Zバッファとフレ
ームバッファを参照して、両者の交線形状を求める。格
子状の格子点による標高値だけでなく、格子の線上およ
び内部にも標高値を設定して形状を定める。 【効果】 本発明によれば、処理が単純なZバッファア
ルゴリズムにより造成形状を求めているので、処理を高
速化できる。また、格子の間隔以下の細かな地形情報も
表現できるので、造成形状の高精度化ができる。
ピュータ・グラフィックスにより表現するために、高速
で高精度なモデリング方法を提供する。 【構成】 地形面と造成面を表示し、Zバッファとフレ
ームバッファを参照して、両者の交線形状を求める。格
子状の格子点による標高値だけでなく、格子の線上およ
び内部にも標高値を設定して形状を定める。 【効果】 本発明によれば、処理が単純なZバッファア
ルゴリズムにより造成形状を求めているので、処理を高
速化できる。また、格子の間隔以下の細かな地形情報も
表現できるので、造成形状の高精度化ができる。
Description
【0001】
【産業上の利用分野】本発明は、CG(Computer Graph
ics)表示技術により三次元の景観映像を生成するため
の造成地形のモデリング方法に係わり、特に地形の造成
作業により生成された造成地形の詳細な形状表現を行う
のに適した造成地形のモデリング方法及び装置に関す
る。
ics)表示技術により三次元の景観映像を生成するため
の造成地形のモデリング方法に係わり、特に地形の造成
作業により生成された造成地形の詳細な形状表現を行う
のに適した造成地形のモデリング方法及び装置に関す
る。
【0002】
【従来の技術】CG表示技術により自然の地形の景観映
像を生成する手法としては、第1の従来例として、特開
平3−75682号において述べられている方法が知ら
れている。これは格子状に標高値を持つ地形の形状デー
タに対して、対応する地域の航空写真をマッピングし、
地形の映像を生成する手法である。
像を生成する手法としては、第1の従来例として、特開
平3−75682号において述べられている方法が知ら
れている。これは格子状に標高値を持つ地形の形状デー
タに対して、対応する地域の航空写真をマッピングし、
地形の映像を生成する手法である。
【0003】自然な地形ではなく造成した地形を表現す
るためには、第2の従来例として、特公平5−4470
9号において述べられている方法が知られている。メッ
シュ状の地形データの中に、造成対象となる領域を指定
し、その領域内の格子点の標高値の変化を算出して、造
成後の形状の格子点データを求めるものである。
るためには、第2の従来例として、特公平5−4470
9号において述べられている方法が知られている。メッ
シュ状の地形データの中に、造成対象となる領域を指定
し、その領域内の格子点の標高値の変化を算出して、造
成後の形状の格子点データを求めるものである。
【0004】造成地形の表現は、図形の集合演算によっ
ても可能である。もとの地形に対して、切土部分は差演
算によってカットし、盛土部分は和演算によりプラスす
ることで造成面を作成できる。この集合演算のために
は、交差する図形を特定するために、まず図形同士の干
渉検出が必要である。図形の干渉の有無を、面の方程式
から解析的に求めると、大規模な地形データでは極めて
多くの面から構成されているため、検出に非常に時間が
かかる。これを効率的に行なうためには、第3の従来例
として、特開平5−108764号において述べられて
いる方法が知られている。これは、三次元図形の隠面処
理のためのZバッファを活用して、図形の干渉を検出す
る方法である。即ち、ある図形を表示している状態で、
次の図形を表示させたとき、Zバッファが更新されてい
れば、両者の図形は干渉していたものと見なす。
ても可能である。もとの地形に対して、切土部分は差演
算によってカットし、盛土部分は和演算によりプラスす
ることで造成面を作成できる。この集合演算のために
は、交差する図形を特定するために、まず図形同士の干
渉検出が必要である。図形の干渉の有無を、面の方程式
から解析的に求めると、大規模な地形データでは極めて
多くの面から構成されているため、検出に非常に時間が
かかる。これを効率的に行なうためには、第3の従来例
として、特開平5−108764号において述べられて
いる方法が知られている。これは、三次元図形の隠面処
理のためのZバッファを活用して、図形の干渉を検出す
る方法である。即ち、ある図形を表示している状態で、
次の図形を表示させたとき、Zバッファが更新されてい
れば、両者の図形は干渉していたものと見なす。
【0005】
【発明が解決しようとする課題】上記第1の従来例で
は、地形の形状に航空写真の情報が付加されているの
で、リアルな地形表現が可能である。しかし造成のよう
に、地形の形状を操作することはできない。
は、地形の形状に航空写真の情報が付加されているの
で、リアルな地形表現が可能である。しかし造成のよう
に、地形の形状を操作することはできない。
【0006】また上記第2の従来例では、造成後の地形
の形状を格子点データとして得ることができる。しかし
格子点データは、一定の間隔で地形の標高値をサンプリ
ングしたものなので、サンプリング間隔以下の細かい形
状を表現できない。造成形状の詳細まで、三次元モデル
化できる機能が必要である。
の形状を格子点データとして得ることができる。しかし
格子点データは、一定の間隔で地形の標高値をサンプリ
ングしたものなので、サンプリング間隔以下の細かい形
状を表現できない。造成形状の詳細まで、三次元モデル
化できる機能が必要である。
【0007】また上記第3の従来例では、Zバッファア
ルゴリズムが高速なため、解析的に処理する場合よりも
高速化が可能である。しかしながら、造成地形を表現す
るためには、単に干渉を検出するだけでなく、地形面と
造成面の交線を求める機能が必要であるが、この方法は
示されていない。
ルゴリズムが高速なため、解析的に処理する場合よりも
高速化が可能である。しかしながら、造成地形を表現す
るためには、単に干渉を検出するだけでなく、地形面と
造成面の交線を求める機能が必要であるが、この方法は
示されていない。
【0008】本発明の目的は、地形面と造成面の交線を
求め、自然地形の中に造成地形を正確に表現することの
できる造成地形のモデリング方法及び装置を提供するに
ある。
求め、自然地形の中に造成地形を正確に表現することの
できる造成地形のモデリング方法及び装置を提供するに
ある。
【0009】
【課題を解決するための手段】上記の目的は、メッシュ
状に分割してその格子点位置の標高値で表した地形面デ
ータと、その平面形状及び上記格子点位置における標高
値から成る造成面データとが与えられたときに、上記地
形面データ及び造成面データの有するどの標高値よりも
大きい標高値を持つ視点を定め、地形面及び造成面を上
記格子点を頂点とする三角形に分割する第一次分割を行
い、上記メッシュを複数の小メッシュに分割したときの
小メッシュの小格子点を上記格子点の標高値から内挿に
よって求め、上記第一次分割によって生成された各三角
形を、その頂点及び辺上の上記小格子点の標高値を上記
視点からの垂直距離に換算したZ値で表してZバッファ
に格納し、造成面と地形面とが重なっている領域では上
記Z値がより小さい方を上記Zバッファから取り出す隠
面処理を行い、また重なっていない領域では造成面のZ
値をそのまま取り出し、さらに各造成面と地形面の各々
には異なる表示属性を与えて表示用画素値としてフレー
ムバッファへ格納し、表示画面上で隣接する上記小格子
点であってその小格子点対応の上記フレームバッファの
画素値が異なる表示属性を有する小格子点を境界点とし
て検出し、上記境界点から地形面と造成面の境界を与え
る交線形状を求め、該交線形状の外側を三角形要素に分
割して地形面の表示属性を与え、かつ上記交線形状の内
側を三角形要素に分割して造成面の表示属性を与える第
二次分割を行い、こうして生成された三角形要素を用い
て三次元グラフィック表示を行うことにより達成され
る。
状に分割してその格子点位置の標高値で表した地形面デ
ータと、その平面形状及び上記格子点位置における標高
値から成る造成面データとが与えられたときに、上記地
形面データ及び造成面データの有するどの標高値よりも
大きい標高値を持つ視点を定め、地形面及び造成面を上
記格子点を頂点とする三角形に分割する第一次分割を行
い、上記メッシュを複数の小メッシュに分割したときの
小メッシュの小格子点を上記格子点の標高値から内挿に
よって求め、上記第一次分割によって生成された各三角
形を、その頂点及び辺上の上記小格子点の標高値を上記
視点からの垂直距離に換算したZ値で表してZバッファ
に格納し、造成面と地形面とが重なっている領域では上
記Z値がより小さい方を上記Zバッファから取り出す隠
面処理を行い、また重なっていない領域では造成面のZ
値をそのまま取り出し、さらに各造成面と地形面の各々
には異なる表示属性を与えて表示用画素値としてフレー
ムバッファへ格納し、表示画面上で隣接する上記小格子
点であってその小格子点対応の上記フレームバッファの
画素値が異なる表示属性を有する小格子点を境界点とし
て検出し、上記境界点から地形面と造成面の境界を与え
る交線形状を求め、該交線形状の外側を三角形要素に分
割して地形面の表示属性を与え、かつ上記交線形状の内
側を三角形要素に分割して造成面の表示属性を与える第
二次分割を行い、こうして生成された三角形要素を用い
て三次元グラフィック表示を行うことにより達成され
る。
【0010】上記目的は、メッシュ状に分割してその格
子点位置の標高値で表した地形面データと、その平面形
状及び上記格子点位置における標高値から成る造成面デ
ータとを与えて造成地形のモデリングを行う造成地形の
モデリング装置において、上記地形面データ及び造成面
データの有するどの標高値よりも大きい標高値を持つ視
点を定める手段と、地形面及び造成面を上記格子点を頂
点とする三角形に分割する第一次分割を行い、上記メッ
シュを複数の小メッシュに分割したときの小メッシュの
小格子点を上記格子点の標高値から内挿によって求める
手段と、上記第一次分割によって生成された各三角形
を、その頂点及び辺上の上記小格子点の標高値を上記視
点からの垂直距離に換算したZ値で表してZバッファに
格納する手段と、造成面と地形面とが重なっている領域
では上記Z値がより小さい方を上記Zバッファから取り
出す隠面処理を行い、また重なっていない領域では造成
面のZ値をそのまま取り出し、さらに各造成面と地形面
の各々には異なる表示属性を与えて表示用画素値として
フレームバッファへ格納する手段と、表示画面上で隣接
する上記小格子点であってその小格子点対応の上記フレ
ームバッファの画素値が異なる表示属性を有する小格子
点を境界点として検出する手段と、上記境界点から地形
面と造成面の境界を与える交線形状を求める手段と、該
交線形状の外側を三角形要素に分割して地形面の表示属
性を与え、かつ上記交線形状の内側を三角形要素に分割
して造成面の表示属性を与える第二次分割を行い、こう
して生成された三角形要素を用いて三次元グラフィック
表示を行う手段と、を用いて達成される。
子点位置の標高値で表した地形面データと、その平面形
状及び上記格子点位置における標高値から成る造成面デ
ータとを与えて造成地形のモデリングを行う造成地形の
モデリング装置において、上記地形面データ及び造成面
データの有するどの標高値よりも大きい標高値を持つ視
点を定める手段と、地形面及び造成面を上記格子点を頂
点とする三角形に分割する第一次分割を行い、上記メッ
シュを複数の小メッシュに分割したときの小メッシュの
小格子点を上記格子点の標高値から内挿によって求める
手段と、上記第一次分割によって生成された各三角形
を、その頂点及び辺上の上記小格子点の標高値を上記視
点からの垂直距離に換算したZ値で表してZバッファに
格納する手段と、造成面と地形面とが重なっている領域
では上記Z値がより小さい方を上記Zバッファから取り
出す隠面処理を行い、また重なっていない領域では造成
面のZ値をそのまま取り出し、さらに各造成面と地形面
の各々には異なる表示属性を与えて表示用画素値として
フレームバッファへ格納する手段と、表示画面上で隣接
する上記小格子点であってその小格子点対応の上記フレ
ームバッファの画素値が異なる表示属性を有する小格子
点を境界点として検出する手段と、上記境界点から地形
面と造成面の境界を与える交線形状を求める手段と、該
交線形状の外側を三角形要素に分割して地形面の表示属
性を与え、かつ上記交線形状の内側を三角形要素に分割
して造成面の表示属性を与える第二次分割を行い、こう
して生成された三角形要素を用いて三次元グラフィック
表示を行う手段と、を用いて達成される。
【0011】
【作用】フレームバッファのデータから、造成面と地形
面を区別する交線形状を容易に求めることができ、かつ
格子点よりもより細分した点のデータで交線を求めて表
示できるから、造成で生じる幾何的形状を簡単な処理で
かつ正確に表現できる。
面を区別する交線形状を容易に求めることができ、かつ
格子点よりもより細分した点のデータで交線を求めて表
示できるから、造成で生じる幾何的形状を簡単な処理で
かつ正確に表現できる。
【0012】
【実施例】以下、本発明のモデリング方法を実施例によ
り説明する。図1は本発明のモデリング方法の一実施例
を示すフローチャートで、ステップ101では、地形メ
ッシュのデータ入力および視野条件の設定を行なう。地
形メッシュとは、図2に示すように、格子状に標高値を
記録した三次元形状データで、同図では、地形面202
を地形メッシュ201が表している。地形メッシュ20
1のデータは、格子の標高値だけが一定の順序で記録さ
れており、ステップ101ではファイルなどからこの情
報を入力する。また視野条件の設定とは、三次元CG処
理で表示する際の視点やスクリーンの位置関係を設定す
ることである。ここでは、格子はXY平面と平行にあ
り、視点は対象としている地形の最高地点よりも高い+
Zの位置にあるものとする。そしてこの視点から地形を
垂直に見下ろすように設定する。なお、この時のスクリ
ーンへの投影には平行投影を使用するものとし、パース
のつく透視投影は使用しないものとする。従って、スク
リーンには地形形状を+Z方向に正射影で投影したとき
の形状が表示される。スクリーンに投影された内容はフ
レームバッファに記録され、そのときの各画素について
視点からの距離値がZバッファに記録される。視野条件
の一つとして、スクリーンの解像度を設定することで、
フレームバッファおよびZバッファに使用する画素数も
決定される。
り説明する。図1は本発明のモデリング方法の一実施例
を示すフローチャートで、ステップ101では、地形メ
ッシュのデータ入力および視野条件の設定を行なう。地
形メッシュとは、図2に示すように、格子状に標高値を
記録した三次元形状データで、同図では、地形面202
を地形メッシュ201が表している。地形メッシュ20
1のデータは、格子の標高値だけが一定の順序で記録さ
れており、ステップ101ではファイルなどからこの情
報を入力する。また視野条件の設定とは、三次元CG処
理で表示する際の視点やスクリーンの位置関係を設定す
ることである。ここでは、格子はXY平面と平行にあ
り、視点は対象としている地形の最高地点よりも高い+
Zの位置にあるものとする。そしてこの視点から地形を
垂直に見下ろすように設定する。なお、この時のスクリ
ーンへの投影には平行投影を使用するものとし、パース
のつく透視投影は使用しないものとする。従って、スク
リーンには地形形状を+Z方向に正射影で投影したとき
の形状が表示される。スクリーンに投影された内容はフ
レームバッファに記録され、そのときの各画素について
視点からの距離値がZバッファに記録される。視野条件
の一つとして、スクリーンの解像度を設定することで、
フレームバッファおよびZバッファに使用する画素数も
決定される。
【0013】ステップ102では、地形面の三角形分割
と表示および造成前Zバッファ値を記録する。ここで図
5により地形メッシュとZバッファの関係について説明
する。通常、地形面は三角形で分割し、その集合を三次
元モデルとする。いま4つの格子点m1、m2、m3お
よびm4で構成される1つの格子を考えると、同図のよ
うに三角形分割を行なって、2つの三角形により格子の
形状が表現できる。各三角形の頂点には、格子点の標高
値をZ値として割り当てる。ここで、ステップ101で
の視野条件の設定により、スクリーンの解像度は格子の
間隔よりも細かく設定されているものとし、同図の例で
は1格子間隔が、7画素で正射影で投影表示されるよう
に設定されている。今、格子点m1、m2およびm3を
結ぶ三角形を考えると、格子点は三角形の頂点であるの
で、Zバッファ内では格子点の標高値が、視点からの距
離に変換されて代入されていることになる。これ以外の
三角形の内部の補間点については、3頂点からの線形補
間により求めた値が代入される。本ステップは、造成前
の地形データを先の視野条件にて表示させ、そのときの
Zバッファの値をメモリなどに記録しておく処理であ
る。
と表示および造成前Zバッファ値を記録する。ここで図
5により地形メッシュとZバッファの関係について説明
する。通常、地形面は三角形で分割し、その集合を三次
元モデルとする。いま4つの格子点m1、m2、m3お
よびm4で構成される1つの格子を考えると、同図のよ
うに三角形分割を行なって、2つの三角形により格子の
形状が表現できる。各三角形の頂点には、格子点の標高
値をZ値として割り当てる。ここで、ステップ101で
の視野条件の設定により、スクリーンの解像度は格子の
間隔よりも細かく設定されているものとし、同図の例で
は1格子間隔が、7画素で正射影で投影表示されるよう
に設定されている。今、格子点m1、m2およびm3を
結ぶ三角形を考えると、格子点は三角形の頂点であるの
で、Zバッファ内では格子点の標高値が、視点からの距
離に変換されて代入されていることになる。これ以外の
三角形の内部の補間点については、3頂点からの線形補
間により求めた値が代入される。本ステップは、造成前
の地形データを先の視野条件にて表示させ、そのときの
Zバッファの値をメモリなどに記録しておく処理であ
る。
【0014】ステップ103では、多角形指示による造
成面フロア203の形状設定およびマスク設定を行な
う。ここで、造成面フロアとは造成時の仕上げ面となる
領域で、地形内にこの領域が確保できるように、後で法
面部分が付加される。本発明では、造成面フロアと法面
を総称して造成面と呼ぶ。例えば図2のように、多角形
の頂点p1、p2、p3およびp4の座標を指示して、
造成面フロア203を決定する。また、マスクとは造成
面フロア203に重ならない地形部分が見えないように
するもので、地形全体を覆うことができる大きさの平面
に対して、造成面フロア203を投影させた形状で穴を
開けたものとして定義する。また、マスクや造成面およ
び地形面には異なった属性を与えておく。これは、後で
フレームバッファの内容を解析する際に、表示物を識別
するために利用する。
成面フロア203の形状設定およびマスク設定を行な
う。ここで、造成面フロアとは造成時の仕上げ面となる
領域で、地形内にこの領域が確保できるように、後で法
面部分が付加される。本発明では、造成面フロアと法面
を総称して造成面と呼ぶ。例えば図2のように、多角形
の頂点p1、p2、p3およびp4の座標を指示して、
造成面フロア203を決定する。また、マスクとは造成
面フロア203に重ならない地形部分が見えないように
するもので、地形全体を覆うことができる大きさの平面
に対して、造成面フロア203を投影させた形状で穴を
開けたものとして定義する。また、マスクや造成面およ
び地形面には異なった属性を与えておく。これは、後で
フレームバッファの内容を解析する際に、表示物を識別
するために利用する。
【0015】ステップ104では、造成のレベル設定お
よびフレームバッファ値からの盛土/切土判定を行な
う。ここで、造成のレベル設定とは、造成面フロアの仕
上げ時の標高値を設定する作業である。図2のように、
マウスなどからの指示により、ユーザがZ軸方向に造成
面フロアを上下させて、最適な造成レベルを決定する。
このレベル設定時には、造成面フロアが盛土あるいは切
土のいずれで造成されるのかを知る必要がある。そこで
フレームバッファの内容を解析して、盛土/切土判定を
行なう。その方法を図3に示す。(1)が盛土のみで造
成されるケースで、地形面よりも造成面フロアが高いの
で、Zバッファでの隠面処理により、フレームバッファ
には造成面フロアのみが表示される。マスクと造成面フ
ロアと地形面は、異なる属性値が与えられているので、
フレームバッファの色彩値で識別ができる。フレームバ
ッファ上でマスク以外の部分の画素を調べて、全てが造
成面の画素であれば、盛土のみであると判定する。同様
にして、地形面の画素が含まれれば(2)の盛土と切土
が混在するケースである。また、全てが地形面の画素で
あれば、(3)の切土のみのケースであると判定する。
よびフレームバッファ値からの盛土/切土判定を行な
う。ここで、造成のレベル設定とは、造成面フロアの仕
上げ時の標高値を設定する作業である。図2のように、
マウスなどからの指示により、ユーザがZ軸方向に造成
面フロアを上下させて、最適な造成レベルを決定する。
このレベル設定時には、造成面フロアが盛土あるいは切
土のいずれで造成されるのかを知る必要がある。そこで
フレームバッファの内容を解析して、盛土/切土判定を
行なう。その方法を図3に示す。(1)が盛土のみで造
成されるケースで、地形面よりも造成面フロアが高いの
で、Zバッファでの隠面処理により、フレームバッファ
には造成面フロアのみが表示される。マスクと造成面フ
ロアと地形面は、異なる属性値が与えられているので、
フレームバッファの色彩値で識別ができる。フレームバ
ッファ上でマスク以外の部分の画素を調べて、全てが造
成面の画素であれば、盛土のみであると判定する。同様
にして、地形面の画素が含まれれば(2)の盛土と切土
が混在するケースである。また、全てが地形面の画素で
あれば、(3)の切土のみのケースであると判定する。
【0016】ステップ105では、造成面フロアのみの
表示およびZバッファ値からの概略の盛土/切土量の算
出を行なう。造成レベル設定時には、盛土/切土量の大
きさを知ることも重要である。この土量計算は、図4に
示すようにZバッファの値を利用する。(a)の様な造
成前の地形のみのZバッファ値は、例えばa1からa7
の様な値として、ステップ102で既に格納されている
から、本ステップでは(b)のように造成面フロアだけ
を表示させて、例えばb1からb7のようなZバッファ
値を求める。a>bの領域は盛土部分なので、a―bが
盛土の高さであり、a<bの領域は切土部分で、b―a
が切土の高さとなる。一つのZバッファで代表される領
域が、実際の地形内で占める面積d*dは、図5のよう
に決められているので、この面積と盛土/切土高さの積
を合計して盛土量と切土量が求められる。このように土
量を計算し、ディスプレイに表示して、ユーザに示す。
表示およびZバッファ値からの概略の盛土/切土量の算
出を行なう。造成レベル設定時には、盛土/切土量の大
きさを知ることも重要である。この土量計算は、図4に
示すようにZバッファの値を利用する。(a)の様な造
成前の地形のみのZバッファ値は、例えばa1からa7
の様な値として、ステップ102で既に格納されている
から、本ステップでは(b)のように造成面フロアだけ
を表示させて、例えばb1からb7のようなZバッファ
値を求める。a>bの領域は盛土部分なので、a―bが
盛土の高さであり、a<bの領域は切土部分で、b―a
が切土の高さとなる。一つのZバッファで代表される領
域が、実際の地形内で占める面積d*dは、図5のよう
に決められているので、この面積と盛土/切土高さの積
を合計して盛土量と切土量が求められる。このように土
量を計算し、ディスプレイに表示して、ユーザに示す。
【0017】ステップ106では、法面勾配の設定によ
る造成面の定義と三角形分割およびマスク再設定を行な
う。造成面フロアからの勾配を指定して法面を作成し、
造成形状とする。図6に切土の場合の造成面を三角形分
割したモデルを示す。点p1、p2、p3およびp4が
造成面フロアの多角形で、この多角形の各辺に対して一
定の勾配を持つ面を法面として定め、それぞれ法面1、
法面2、法面3および法面4とする。ここで図6のよう
に、法面高さは最大地形高さよりも大きな値とする。こ
れは、後にフレームバッファの画像上で、法面と地形面
の交線を求めるので、法面の最上部が地形面より上側と
なる必要があるからである。またマスクについては、造
成面フロアに法面の形状が追加されたので、法面部分も
可視となるように形状を再設定する。
る造成面の定義と三角形分割およびマスク再設定を行な
う。造成面フロアからの勾配を指定して法面を作成し、
造成形状とする。図6に切土の場合の造成面を三角形分
割したモデルを示す。点p1、p2、p3およびp4が
造成面フロアの多角形で、この多角形の各辺に対して一
定の勾配を持つ面を法面として定め、それぞれ法面1、
法面2、法面3および法面4とする。ここで図6のよう
に、法面高さは最大地形高さよりも大きな値とする。こ
れは、後にフレームバッファの画像上で、法面と地形面
の交線を求めるので、法面の最上部が地形面より上側と
なる必要があるからである。またマスクについては、造
成面フロアに法面の形状が追加されたので、法面部分も
可視となるように形状を再設定する。
【0018】ステップ107では、切土領域が含まれる
か否かにより、処理を分岐させる。この判定は、ステッ
プ104にて盛土/切土判定を行なっているので、その
結果を利用する。切土領域がなければステップ108に
進み、あればステップ109に進む。
か否かにより、処理を分岐させる。この判定は、ステッ
プ104にて盛土/切土判定を行なっているので、その
結果を利用する。切土領域がなければステップ108に
進み、あればステップ109に進む。
【0019】ステップ108では、盛土形状データを配
置する。この場合、切土領域がないから、盛土だけで造
成地形が生成されるケースで、その例を図18に示す。
切土の場合と同様に、造成面フロアの各辺に対して法面
勾配を指定して法面形状を定め、かつ法面の最下部が地
形面よりも低くなるように、法面の高さを設定して造成
形状とする。隠面処理により、地形面より下の部分は消
去されるので、あとは造成形状を配置するのみでよい。
置する。この場合、切土領域がないから、盛土だけで造
成地形が生成されるケースで、その例を図18に示す。
切土の場合と同様に、造成面フロアの各辺に対して法面
勾配を指定して法面形状を定め、かつ法面の最下部が地
形面よりも低くなるように、法面の高さを設定して造成
形状とする。隠面処理により、地形面より下の部分は消
去されるので、あとは造成形状を配置するのみでよい。
【0020】ステップ109では、切土領域が含まれて
いるから、造成面の各面を異なる属性に設定して表示
し、後のステップにおいて、フレームバッファ上で造成
面の各面が識別できるようにする。具体的には各面の色
のRGB値を変えて、面単位に色彩で識別できればよ
い。
いるから、造成面の各面を異なる属性に設定して表示
し、後のステップにおいて、フレームバッファ上で造成
面の各面が識別できるようにする。具体的には各面の色
のRGB値を変えて、面単位に色彩で識別できればよ
い。
【0021】ステップ110では、フレームバッファ上
で地形面の境界画素を検出する。図7にその方法を示
す。(a)はフレームバッファの内容で、図6のような
地形面および造成面を表示させたときの状態である。前
ステップ109での面の設定属性の違いは、ここではハ
ッチングのパターンの違いとして表している。Zバッフ
ァによる隠面処理により、地形面よりも高い位置にある
法面部分だけが可視となる。このうちAの領域だけを拡
大したものが(c)で、一画素が識別できるように表し
ている。造成面を構成する面について、画素単位に調べ
て地形面に接している画素を検出する。この検出は、
(b)のように、ある注目画素の上下左右にある4つの
画素を近傍画素とし、各造成面の画素で、4つの近傍画
素に地形面の画素が少なくとも1つ含まれるものを抽出
し、その画素中心を境界点として記録する。
で地形面の境界画素を検出する。図7にその方法を示
す。(a)はフレームバッファの内容で、図6のような
地形面および造成面を表示させたときの状態である。前
ステップ109での面の設定属性の違いは、ここではハ
ッチングのパターンの違いとして表している。Zバッフ
ァによる隠面処理により、地形面よりも高い位置にある
法面部分だけが可視となる。このうちAの領域だけを拡
大したものが(c)で、一画素が識別できるように表し
ている。造成面を構成する面について、画素単位に調べ
て地形面に接している画素を検出する。この検出は、
(b)のように、ある注目画素の上下左右にある4つの
画素を近傍画素とし、各造成面の画素で、4つの近傍画
素に地形面の画素が少なくとも1つ含まれるものを抽出
し、その画素中心を境界点として記録する。
【0022】ステップ111では、境界画素を結ぶ線分
上で造成面の面が変わる部分を内部点とし、その内部点
を格子の内部で標高を定義する点とする。この方法を図
8にて説明する。(a)はフレームバッファの画素の内
容で、説明のためマスクの内部だけを、図7の例よりも
画素を大きくして表している。点線が地形の格子線で、
その交点が格子点である。一つの格子を拡大したものが
(b)で、既にステップ110で境界点および境界線が
求められている。ここで、境界点を左端から追跡する
と、境界点のbp3とbp4の区間で、所属する法面が
法面1から法面2に変わっている。従って、この区間の
中点の位置を内部点として定める。内部点のZ座標値は
bp3とbp4のZバッファの値を変換して求める。内
部点として登録する情報は、XYZの座標値、および前
後の境界点が属する法面の識別子である。
上で造成面の面が変わる部分を内部点とし、その内部点
を格子の内部で標高を定義する点とする。この方法を図
8にて説明する。(a)はフレームバッファの画素の内
容で、説明のためマスクの内部だけを、図7の例よりも
画素を大きくして表している。点線が地形の格子線で、
その交点が格子点である。一つの格子を拡大したものが
(b)で、既にステップ110で境界点および境界線が
求められている。ここで、境界点を左端から追跡する
と、境界点のbp3とbp4の区間で、所属する法面が
法面1から法面2に変わっている。従って、この区間の
中点の位置を内部点として定める。内部点のZ座標値は
bp3とbp4のZバッファの値を変換して求める。内
部点として登録する情報は、XYZの座標値、および前
後の境界点が属する法面の識別子である。
【0023】ステップ112では、境界画素を結ぶ線分
と地形メッシュの交点を線上点とすし、その線上点を格
子線上で標高値を定義する点とする。図8(b)におい
ては、境界点bp1およびbp6の位置を線上点として
登録する。線上点のZ座標値は、対応するZバッファの
値から求める。線上点として登録する情報は、所属する
格子線の識別子、格子線上での位置を示す座標値、およ
び所属する法面の識別子である。
と地形メッシュの交点を線上点とすし、その線上点を格
子線上で標高値を定義する点とする。図8(b)におい
ては、境界点bp1およびbp6の位置を線上点として
登録する。線上点のZ座標値は、対応するZバッファの
値から求める。線上点として登録する情報は、所属する
格子線の識別子、格子線上での位置を示す座標値、およ
び所属する法面の識別子である。
【0024】ステップ113では、ステップ111で定
めた内部点とステップ112で定めた線上点を接続して
地形面と造成面の交線形状とする。図8(b)のように
内部点を持つ格子の場合には、その位置で交線が曲がる
ことになる。ただし図8(c)のように、内部点を持た
ないような格子については、格子内部での境界線の曲が
りは無視される。こうして、図8(a)の実線のよう
な、閉ループとして地形面と造成面の交線形状が求めら
れる。交線として登録する情報は、内部点および線上点
の点列を順番に記録したものである。
めた内部点とステップ112で定めた線上点を接続して
地形面と造成面の交線形状とする。図8(b)のように
内部点を持つ格子の場合には、その位置で交線が曲がる
ことになる。ただし図8(c)のように、内部点を持た
ないような格子については、格子内部での境界線の曲が
りは無視される。こうして、図8(a)の実線のよう
な、閉ループとして地形面と造成面の交線形状が求めら
れる。交線として登録する情報は、内部点および線上点
の点列を順番に記録したものである。
【0025】ステップ114では、交線形状の内側領域
にある造成面の三角形再分割を行う。この方法を図9
(a)に示す。造成面フロアについては、全て切土の場
合のとき、形状変化がないのでそのままとする。法面に
ついては、先に求めた交線が法面の上端の形状となる。
造成面フロアの頂点と、交線を構成する点を結んで三角
形分割する。例えば法面1については、v6の頂点を始
点として、点v2、v3およびv4を終点とする線分を
発生させて三角形に分割し、それぞれの三角形を構成す
る頂点を記録する。なお、盛土と切土が混在する場合に
ついては、図19(a)に示す。造成面フロアの一部が
盛土になるために、法面だけでなく、造成面フロアと地
形面との交線が現われるが、処理は同様に行なえる。ま
た、盛土部分についてはステップ108のように、別途
造成形状を作成することが必要である。
にある造成面の三角形再分割を行う。この方法を図9
(a)に示す。造成面フロアについては、全て切土の場
合のとき、形状変化がないのでそのままとする。法面に
ついては、先に求めた交線が法面の上端の形状となる。
造成面フロアの頂点と、交線を構成する点を結んで三角
形分割する。例えば法面1については、v6の頂点を始
点として、点v2、v3およびv4を終点とする線分を
発生させて三角形に分割し、それぞれの三角形を構成す
る頂点を記録する。なお、盛土と切土が混在する場合に
ついては、図19(a)に示す。造成面フロアの一部が
盛土になるために、法面だけでなく、造成面フロアと地
形面との交線が現われるが、処理は同様に行なえる。ま
た、盛土部分についてはステップ108のように、別途
造成形状を作成することが必要である。
【0026】ステップ115では、交線形状の外側領域
にある地形面の三角形再分割を行う。この方法を図9
(b)に示す。交線の内部領域には造成面があるので、
地形面については、外側領域だけを三角形分割する。各
格子ごとに分割する三角形形状を定めていくが、内部点
や線上点を含む格子では、特別な分割が必要になる。図
10は、地形面の三角形分割方法を示すもので、一つの
格子について、左下の格子点をm1とし、反時計回りに
順にm2、m3およびm4とする。ここで必要なこと
は、三角形分割のための分割線を、始点と終点で定める
ことである。(a)のように内部点も線上点も存在しな
い格子では、m3を始点とする。線上点がある場合に
は、まず線上点を結んでできる線分で、格子を凸多角形
に分割する。そして、各凸多角形毎に、更に三角形に分
割する。(b)と(c)は内部点が存在する場合で、こ
の場合には必ず内部点を始点とする。内部点により凹多
角形が発生するので、内部点以外では全ての点を結ぶこ
とができない。(d)、(e)および(f)は線上点の
みがある場合で、凹多角形は発生しない。しかし生じる
分割線が、できるだけ(a)の分割線の方向に近くなる
ように始点を選択する。そこで(d)のようにm3の頂
点があれば、これを始点とする。(e)のようにm3が
なくてもm1があれば、これを始点とする。(f)のよ
うにm3もm1もなければ、どちらかに一番近い点を始
点とする。即ち、m1とr1、m1とr4、m3とr3
の距離を計算して、最小距離のr1を始点とする。な
お、盛土と切土が混在するケースについては、図19
(b)に示す。線上点および内部点の定義は変わらない
ので、同様に処理できる。
にある地形面の三角形再分割を行う。この方法を図9
(b)に示す。交線の内部領域には造成面があるので、
地形面については、外側領域だけを三角形分割する。各
格子ごとに分割する三角形形状を定めていくが、内部点
や線上点を含む格子では、特別な分割が必要になる。図
10は、地形面の三角形分割方法を示すもので、一つの
格子について、左下の格子点をm1とし、反時計回りに
順にm2、m3およびm4とする。ここで必要なこと
は、三角形分割のための分割線を、始点と終点で定める
ことである。(a)のように内部点も線上点も存在しな
い格子では、m3を始点とする。線上点がある場合に
は、まず線上点を結んでできる線分で、格子を凸多角形
に分割する。そして、各凸多角形毎に、更に三角形に分
割する。(b)と(c)は内部点が存在する場合で、こ
の場合には必ず内部点を始点とする。内部点により凹多
角形が発生するので、内部点以外では全ての点を結ぶこ
とができない。(d)、(e)および(f)は線上点の
みがある場合で、凹多角形は発生しない。しかし生じる
分割線が、できるだけ(a)の分割線の方向に近くなる
ように始点を選択する。そこで(d)のようにm3の頂
点があれば、これを始点とする。(e)のようにm3が
なくてもm1があれば、これを始点とする。(f)のよ
うにm3もm1もなければ、どちらかに一番近い点を始
点とする。即ち、m1とr1、m1とr4、m3とr3
の距離を計算して、最小距離のr1を始点とする。な
お、盛土と切土が混在するケースについては、図19
(b)に示す。線上点および内部点の定義は変わらない
ので、同様に処理できる。
【0027】ステップ116では、同一の造成面に属す
る三角形の法線ベクトルを同一化する。その方法を図1
1に示す。この形状は図9の造成形状の法面1の部分
で、4つの三角形に分割されている。これらの三角形
は、本来は同一平面上に存在するものであるが、地形面
と造成面の交線を求める際の誤差により、必ずしも同一
平面にはならない。交線の位置をフレームバッファ上
で、離散化された画素情報により求めているので、画素
サイズ以下の誤差は避けられないからである。ところが
三次元CGでは、表示する三角形の面の向きを法線ベク
トルとして与えて、シェーディング処理という光による
陰影つけを行なうが、シェーディングの結果、誤差が面
の輝度の不連続として目立つ。従ってこれを回避するた
めに、三角形の面の向きは同一ではないが、法線ベクト
ルとして強制的に同一の値を割り当てる。例えば、頂点
v1、v2、およびv6で構成される三角形の法線ベク
トルを基準とし、他の三角形の法線ベクトルを補正し
て、これと同一化する。
る三角形の法線ベクトルを同一化する。その方法を図1
1に示す。この形状は図9の造成形状の法面1の部分
で、4つの三角形に分割されている。これらの三角形
は、本来は同一平面上に存在するものであるが、地形面
と造成面の交線を求める際の誤差により、必ずしも同一
平面にはならない。交線の位置をフレームバッファ上
で、離散化された画素情報により求めているので、画素
サイズ以下の誤差は避けられないからである。ところが
三次元CGでは、表示する三角形の面の向きを法線ベク
トルとして与えて、シェーディング処理という光による
陰影つけを行なうが、シェーディングの結果、誤差が面
の輝度の不連続として目立つ。従ってこれを回避するた
めに、三角形の面の向きは同一ではないが、法線ベクト
ルとして強制的に同一の値を割り当てる。例えば、頂点
v1、v2、およびv6で構成される三角形の法線ベク
トルを基準とし、他の三角形の法線ベクトルを補正し
て、これと同一化する。
【0028】ステップ117では、造成後の形状を表示
する。図9のように、造成面と地形面を三角形分割した
結果を表示データとし、Zバッファアルゴリズムにより
隠面処理した結果を表示する。
する。図9のように、造成面と地形面を三角形分割した
結果を表示データとし、Zバッファアルゴリズムにより
隠面処理した結果を表示する。
【0029】ステップ118では、Zバッファの値を用
いた盛土/切土量の計算をする。この方法を図12に示
す。基本的にはステップ105での土量計算と同じであ
るが、造成面フロアだけでなく法面も考慮して土量を求
められる。ここで求めた値を、最終的な盛土/切土量と
して出力する。
いた盛土/切土量の計算をする。この方法を図12に示
す。基本的にはステップ105での土量計算と同じであ
るが、造成面フロアだけでなく法面も考慮して土量を求
められる。ここで求めた値を、最終的な盛土/切土量と
して出力する。
【0030】ステップ119では、地形面および造成面
の三角形データを出力する。以上の処理により、モデリ
ングした最終結果が三角形データであるので、これをフ
ァイルなどに出力する。出力する情報は、三角形を構成
する頂点、頂点座標値、三角形の面の法線ベクトル等で
ある。
の三角形データを出力する。以上の処理により、モデリ
ングした最終結果が三角形データであるので、これをフ
ァイルなどに出力する。出力する情報は、三角形を構成
する頂点、頂点座標値、三角形の面の法線ベクトル等で
ある。
【0031】以上の実施例を実現するための装置構成を
図13に示す。本装置は、CPU1、投影変換部2、隠
面処理部3、シェーディング部4、ディスク5、メモリ
6、三角形分割部7、土量計算部8、交線抽出部9、デ
ィスプレイ10、キーボード11、マウス12、格子点
情報部13、線上点情報部14、内部点情報部15、Z
バッファ16、フレームバッファ17より成る。この構
成は、基本的には三次元グラフィックス・ワークステー
ションとしての構成で、投影変換、隠面処理およびシェ
ーディング処理などには専用の処理部2、3、4を設け
ている。地形面と造成面の交線抽出部9はフレームバッ
ファ17をアクセスし、ステップ110からステップ1
13の処理をして、地形面と造成面の交線を抽出する。
土量計算部8はZバッファ16をアクセスし、ステップ
105またはステップ118の処理をして、盛土/切土
量を算出する。三角形分割部7は格子点情報部13、線
上点情報部14および内部点情報部15をアクセスし、
ステップ114からステップ116の処理をして、三角
形データを出力する。ディスプレイ10、キーボード1
1、マウス12は対話形による各種の入力、及び操作を
行う部分である。CPU1は全体の管理、統括を行う。
ディスク5及びメモリ6は各種データ及び処理に必要な
ソフトウェアを格納するものである。
図13に示す。本装置は、CPU1、投影変換部2、隠
面処理部3、シェーディング部4、ディスク5、メモリ
6、三角形分割部7、土量計算部8、交線抽出部9、デ
ィスプレイ10、キーボード11、マウス12、格子点
情報部13、線上点情報部14、内部点情報部15、Z
バッファ16、フレームバッファ17より成る。この構
成は、基本的には三次元グラフィックス・ワークステー
ションとしての構成で、投影変換、隠面処理およびシェ
ーディング処理などには専用の処理部2、3、4を設け
ている。地形面と造成面の交線抽出部9はフレームバッ
ファ17をアクセスし、ステップ110からステップ1
13の処理をして、地形面と造成面の交線を抽出する。
土量計算部8はZバッファ16をアクセスし、ステップ
105またはステップ118の処理をして、盛土/切土
量を算出する。三角形分割部7は格子点情報部13、線
上点情報部14および内部点情報部15をアクセスし、
ステップ114からステップ116の処理をして、三角
形データを出力する。ディスプレイ10、キーボード1
1、マウス12は対話形による各種の入力、及び操作を
行う部分である。CPU1は全体の管理、統括を行う。
ディスク5及びメモリ6は各種データ及び処理に必要な
ソフトウェアを格納するものである。
【0032】本実施例によれば、地形面と造成面の交線
を高速にかつ正確に求めて、造成後の景観を表示できる
効果がある。
を高速にかつ正確に求めて、造成後の景観を表示できる
効果がある。
【0033】なお、上記実施例においては、三角形分割
の際に格子の内部点が存在する場合にも分割が可能であ
ったが、内部点が複数存在する場合の対応が不可能であ
った。内部点が複数になると、複雑な凹多角形が発生す
るので、内部点を始点としても、それ以外の全ての頂点
と直線で結ぶことはできない。これに対応するための方
法を図14に示す。ここでは複雑な凹多角形を分割し
て、凸多角形に変換することを考える。このための方法
としては、例えば「画像解析ハンドブック」東京大学出
版会(1991年)第298頁から第299頁において
記載されているように、ボロノイ多角形を発生させて図
形を分割すればよい。ボロノイ多角形は、各隣接点間を
結ぶ線分の垂直2等分線によって構成される。したがっ
て、図14のように2つの内部点c1およびc2がある
ようなケースでは、垂直2等分線を引き、これをボロノ
イ分割線とする。これで2つの凸多角形に分割されてい
るので、それぞれの内部点を始点にすれば、他の全ての
頂点と直線で結ぶことができ、三角形分割ができる。本
実施例においては、地形面と造成面の交線の形状が複雑
で、格子内に内部点が複数存在するような場合において
も、三角形分割が可能であるという効果がある。
の際に格子の内部点が存在する場合にも分割が可能であ
ったが、内部点が複数存在する場合の対応が不可能であ
った。内部点が複数になると、複雑な凹多角形が発生す
るので、内部点を始点としても、それ以外の全ての頂点
と直線で結ぶことはできない。これに対応するための方
法を図14に示す。ここでは複雑な凹多角形を分割し
て、凸多角形に変換することを考える。このための方法
としては、例えば「画像解析ハンドブック」東京大学出
版会(1991年)第298頁から第299頁において
記載されているように、ボロノイ多角形を発生させて図
形を分割すればよい。ボロノイ多角形は、各隣接点間を
結ぶ線分の垂直2等分線によって構成される。したがっ
て、図14のように2つの内部点c1およびc2がある
ようなケースでは、垂直2等分線を引き、これをボロノ
イ分割線とする。これで2つの凸多角形に分割されてい
るので、それぞれの内部点を始点にすれば、他の全ての
頂点と直線で結ぶことができ、三角形分割ができる。本
実施例においては、地形面と造成面の交線の形状が複雑
で、格子内に内部点が複数存在するような場合において
も、三角形分割が可能であるという効果がある。
【0034】また、上記実施例においては、境界線から
地形面と造成面の交線を求める際に、境界点の点列を格
子の線上点と内部点に変換していたが、境界線をそのま
ま交線とする方法も可能である。その方法を図15に示
す。本図(a)では図8の場合と異なって、境界線と交
線は同一にする。このためには(b)のように三角形分
割の方法を変更する。1格子内のZバッファの画素の中
心線を結んだものを、副格子線として定義する。副格子
点の値は図5のように、格子点間の補間により求められ
たものであるが、個々にZバッファ値を保持している。
そこで、副格子点を結んで三角形分割を行なうことも可
能である。本実施例においては、境界線の形状を忠実に
交線に反映できるので、造成地形をより正確に表現でき
る効果がある。
地形面と造成面の交線を求める際に、境界点の点列を格
子の線上点と内部点に変換していたが、境界線をそのま
ま交線とする方法も可能である。その方法を図15に示
す。本図(a)では図8の場合と異なって、境界線と交
線は同一にする。このためには(b)のように三角形分
割の方法を変更する。1格子内のZバッファの画素の中
心線を結んだものを、副格子線として定義する。副格子
点の値は図5のように、格子点間の補間により求められ
たものであるが、個々にZバッファ値を保持している。
そこで、副格子点を結んで三角形分割を行なうことも可
能である。本実施例においては、境界線の形状を忠実に
交線に反映できるので、造成地形をより正確に表現でき
る効果がある。
【0035】また、上記実施例においては、格子の線上
点と内部点を接続して交線としていたが、内部点を使用
せずに、線上点だけで造成地形を表現することもでき
る。その方法を図16に示す。(a)は線上点による近
似方法を示すもので、交線およびフロア外形線を近似し
ている。要するに格子の内部点を無視して、線上点だけ
を接続すればよい。ここでは造成面についても、線上点
の点列で表現している。標高値については、交線の部分
は造成前の標高値を、そのまま保持させる。フロア外形
線およびその内部の部分については、造成後のレベルを
同一に与える。三角形分割の結果については(b)に示
す。線上点だけの場合では凹多角形は発生しないので、
図10の(a)、(d)、(e)および(f)の様な分
割パターンのみを考えればよい。本実施例においては、
三角形分割の処理を簡便にできる効果がある。また、造
成面の部分についても格子点と線上点で表現しているの
で、この内部を更に同じアルゴリズムで造成することも
可能である。
点と内部点を接続して交線としていたが、内部点を使用
せずに、線上点だけで造成地形を表現することもでき
る。その方法を図16に示す。(a)は線上点による近
似方法を示すもので、交線およびフロア外形線を近似し
ている。要するに格子の内部点を無視して、線上点だけ
を接続すればよい。ここでは造成面についても、線上点
の点列で表現している。標高値については、交線の部分
は造成前の標高値を、そのまま保持させる。フロア外形
線およびその内部の部分については、造成後のレベルを
同一に与える。三角形分割の結果については(b)に示
す。線上点だけの場合では凹多角形は発生しないので、
図10の(a)、(d)、(e)および(f)の様な分
割パターンのみを考えればよい。本実施例においては、
三角形分割の処理を簡便にできる効果がある。また、造
成面の部分についても格子点と線上点で表現しているの
で、この内部を更に同じアルゴリズムで造成することも
可能である。
【0036】また、上記実施例においては、フレームバ
ッファ上で求めた交線の位置を、そのまま造成面として
いるが、交線の位置を解析的に求めることもできる。そ
の方法を図17に示す。図8の場合と同様にして、交線
が求められたら、その法面と交差する三角形を検出す
る。この三角形と法面とで、実際に面の方程式を解い
て、交点を求める。この値を線上点または内部点の座標
とする。図17の例では、法面1と交差する三角形とし
て、三角形tr1〜tr6の6つの三角形が検出できて
いる。本実施例によれば、線上点と内部点の誤差が少な
くなるので、より正確に造成面を表現できる効果があ
る。
ッファ上で求めた交線の位置を、そのまま造成面として
いるが、交線の位置を解析的に求めることもできる。そ
の方法を図17に示す。図8の場合と同様にして、交線
が求められたら、その法面と交差する三角形を検出す
る。この三角形と法面とで、実際に面の方程式を解い
て、交点を求める。この値を線上点または内部点の座標
とする。図17の例では、法面1と交差する三角形とし
て、三角形tr1〜tr6の6つの三角形が検出できて
いる。本実施例によれば、線上点と内部点の誤差が少な
くなるので、より正確に造成面を表現できる効果があ
る。
【0037】
【発明の効果】本発明によれば、処理が単純なZバッフ
ァアルゴリズムにより造成形状を求めているので、処理
を高速化できる。また、格子の間隔以下の細かな地形情
報も表現できるので、造成形状の高精度化ができる効果
がある。
ァアルゴリズムにより造成形状を求めているので、処理
を高速化できる。また、格子の間隔以下の細かな地形情
報も表現できるので、造成形状の高精度化ができる効果
がある。
【図1】本発明のモデリング方法の一実施例を示すフロ
ーチャートである。
ーチャートである。
【図2】入力データおよび視野条件の説明図である。
【図3】盛土/切土判定の説明図である。
【図4】Zバッファによる土量計算の説明図である。
【図5】地形メッシュとZバッファの関係の説明図であ
る。
る。
【図6】造成面の三角形分割の説明図である。
【図7】地形面と造成面の境界画素の抽出の説明図であ
る。
る。
【図8】地形面と造成面の交線の算出方法の説明図であ
る。
る。
【図9】三角形再分割の結果の説明図である。
【図10】地形面の三角形分割方法の説明図である。
【図11】同一造成面内の法線ベクトルの同一化の説明
図である。
図である。
【図12】法面も含む土量計算の説明図である。
【図13】装置構成の説明図である。
【図14】内部点が複数あるときの三角形分割の説明図
である。
である。
【図15】副格子での三角形再分割の説明図である。
【図16】線上点だけを使う場合の三角形再分割の説明
図である。
図である。
【図17】地形面と造成面の交差範囲だけを特定する方
法の説明図である。
法の説明図である。
【図18】盛土部分の三角形分割の説明図である。
【図19】盛土と切土が混在する場合の三角形再分割の
説明図である。
説明図である。
201 地形メッシュ 202 地形面 203 造成面フロア
Claims (12)
- 【請求項1】 メッシュ状に分割してその格子点位置の
標高値で表した地形面データと、その平面形状及び上記
格子点位置における標高値から成る造成面データとが与
えられたときに、 上記地形面データ及び造成面データの有するどの標高値
よりも大きい標高値を持つ視点を定め、 地形面及び造成面を上記格子点を頂点とする三角形に分
割する第一次分割を行い、 上記メッシュを複数の小メッシュに分割したときの小メ
ッシュの小格子点を上記格子点の標高値から内挿によっ
て求め、 上記第一次分割によって生成された各三角形を、その頂
点及び辺上の上記小格子点の標高値を上記視点からの垂
直距離に換算したZ値で表してZバッファに格納し、 造成面と地形面とが重なっている領域では上記Z値がよ
り小さい方を上記Zバッファから取り出す隠面処理を行
い、また重なっていない領域では造成面のZ値をそのま
ま取り出し、さらに各造成面と地形面の各々には異なる
表示属性を与えて表示用画素値としてフレームバッファ
へ格納し、 表示画面上で隣接する上記小格子点であってその小格子
点対応の上記フレームバッファの画素値が異なる表示属
性を有する小格子点を境界点として検出し、 上記境界点から地形面と造成面の境界を与える交線形状
を求め、 該交線形状の外側を三角形要素に分割して地形面の表示
属性を与え、かつ上記交線形状の内側を三角要素に分割
して造成面の表示属性を与える第二次分割を行い、こう
して生成された三角要素を用いて三次元グラフィック表
示を行うことを特徴とする造成地形のモデリング方法。 - 【請求項2】 前記境界点で隣接するものが別の造成面
の表示属性を有するときに、その境界点の中間点であっ
て2つの造成面の接する点を内部点とし、 上記境界点で隣接するものが前記格子点を結ぶ格子線を
介して隣接しているときに、その境界点の中間の上記格
子線上の点を線上点とし、 前記交線形状は、上記内部点と上記線上点とを結んで形
成し、かつ上記内部点及び線上点のZ値は該当する境界
点の画素値から内挿により算出した値とすることを特徴
とする請求項1に記載の造成地形のモデリング方法。 - 【請求項3】 前記第一次分割により生成された三角形
要素を表すZ値と、前記第二次分割により生成された三
角形要素を表すZ値との差から、前記造成面を造成した
ときの盛土量および切土量を算出して表示することを特
徴とする請求項1または2に記載の造成地形のモデリン
グ方法。 - 【請求項4】 前記第二次分割により生成された造成面
を表す三角形要素であって、当該三角形要素が同一の平
面上にあるものについては、全て同一の法線ベクトルと
なるような補正法線ベクトルを求め、該補正法線ベクト
ルを用いて三次元グラフィック表示を行うことを特徴と
する請求項1または2に記載の造成地形のモデリング方
法。 - 【請求項5】 前記第二次分割は、前記格子点、前記内
部点及び前記線上点とを結ぶ分割線により行うととも
に、 上記格子点のみを含む場合には、一定の対角線方向に上
記分割線が定まるように、該分割線の始点および終点を
上記格子点の中から選択し、 上記格子点および線上点のみを含む場合には、上記分割
線の方向が一定の対角線方向に最も近くなるように上記
分割線の始点を選択し、 上記内部点を含む場合には、該内部点を上記分割線の始
点として選択することを特徴とする請求項2に記載の造
成地形のモデリング方法。 - 【請求項6】 前記メッシュの一つの格子の内部に前記
内部点が複数個存在する場合に、隣接した内部点間を結
ぶ線分の垂直2等分線によって構成されるボロノイ多角
形に分割し、該ボロノイ多角形ごとに上記内部点を前記
分割線の始点として選択することを特徴とする請求項5
に記載の造成地形のモデリング方法。 - 【請求項7】 前記小格子点を順次接続して定まる形状
を前記交線形状とすることを特徴とする請求項1に記載
の造成地形のモデリング方法。 - 【請求項8】 前記第二次分割において、前記内部点が
ある場合であっても、前記格子点と線上点のみから前記
分割線を定めることを特徴とする請求項5に記載の造成
地形のモデリング方法。 - 【請求項9】 前記内部点及び線上点の座標を、当該内
部点または線上点を含む造成面と地形面を表す各面の方
程式から算出することを特徴とする請求項2に記載の造
成地形のモデリング方法。 - 【請求項10】 造成前の地形の標高値をメッシュ状に
記憶した格子点のデータと、 任意位置に設定した造成面と地形面の交線であって、標
高値を折れ線状に接続した標高設定線のデータとから、 該標高設定線がメッシュ状の格子内部で屈曲する位置を
内部点とし、 該標高設定線がメッシュ状の格子線上で交差する位置を
線上点として求め、 各格子につき該格子点と該内部点と該線上点とから定ま
る三次元形状を、三角形要素の集合に分割し、該三角形
要素の三次元コンピュータ・グラフィックス処理により
地形形状を表示することを特徴とする造成地形のモデリ
ング方法。 - 【請求項11】 メッシュ状に分割してその格子点位置
の標高値で表した地形面データと、その平面形状及び上
記格子点位置における標高値から成る造成面データとが
与えて造成地形のモデリングを行う造成地形のモデリン
グ装置において、 上記地形面データ及び造成面データの有するどの標高値
よりも大きい標高値を持つ視点を定める手段と、 地形面及び造成面を上記格子点を頂点とする三角形に分
割する第一次分割を行い、 上記メッシュを複数の小メッシュに分割したときの小メ
ッシュの小格子点を上記格子点の標高値から内挿によっ
て求める手段と、 上記第一次分割によって生成された各三角形を、その頂
点及び辺上の上記小格子点の標高値を上記視点からの垂
直距離に換算したZ値で表してZバッファに格納する手
段と、 造成面と地形面とが重なっている領域では上記Z値がよ
り小さい方を上記Zバッファから取り出す隠面処理を行
い、また重なっていない領域では造成面のZ値をそのま
ま取り出し、さらに各造成面と地形面の各々には異なる
表示属性を与えて表示用画素値としてフレームバッファ
へ格納する手段と、 表示画面上で隣接する上記小格子点であってその小格子
点対応の上記フレームバッファの画素値が異なる表示属
性を有する小格子点を境界点として検出する手段と、 上記境界点から地形面と造成面の境界を与える交線形状
を求める手段と、 該交線形状の外側を三角形要素に分割して地形面の表示
属性を与え、かつ上記交線形状の内側を三角形要素に分
割して造成面の表示属性を与える第二次分割を行い、こ
うして生成された三角形要素を用いて三次元グラフィッ
ク表示を行う手段と、を備えてなる造成地形のモデリン
グ装置。 - 【請求項12】 請求項1〜10のいずれか1つの造成
地形のモデリング法の機能を持つ造成地形のモデリング
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6064844A JPH07271847A (ja) | 1994-04-01 | 1994-04-01 | 造成地形のモデリング方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6064844A JPH07271847A (ja) | 1994-04-01 | 1994-04-01 | 造成地形のモデリング方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07271847A true JPH07271847A (ja) | 1995-10-20 |
Family
ID=13269945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6064844A Pending JPH07271847A (ja) | 1994-04-01 | 1994-04-01 | 造成地形のモデリング方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07271847A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000042421A (ja) * | 1998-07-27 | 2000-02-15 | Toyota Motor Corp | 触媒コンバータの製造方法 |
JP2002073734A (ja) * | 2000-08-31 | 2002-03-12 | Takiron Co Ltd | 土木工事の設計支援システム |
JP2006059061A (ja) * | 2004-08-19 | 2006-03-02 | Asahi Koyo Kk | 3次元データ処理方法、装置及びプログラム |
JP2007179461A (ja) * | 2005-12-28 | 2007-07-12 | Hitachi Ltd | 描画方法、画像データ生成システム、cadシステム、及びビューワシステム |
JP2009249929A (ja) * | 2008-04-07 | 2009-10-29 | Shimizu Corp | 掘削工事の3次元表示装置及び掘削工事表示プログラム |
-
1994
- 1994-04-01 JP JP6064844A patent/JPH07271847A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000042421A (ja) * | 1998-07-27 | 2000-02-15 | Toyota Motor Corp | 触媒コンバータの製造方法 |
JP2002073734A (ja) * | 2000-08-31 | 2002-03-12 | Takiron Co Ltd | 土木工事の設計支援システム |
JP2006059061A (ja) * | 2004-08-19 | 2006-03-02 | Asahi Koyo Kk | 3次元データ処理方法、装置及びプログラム |
JP4543820B2 (ja) * | 2004-08-19 | 2010-09-15 | 朝日航洋株式会社 | 3次元データ処理装置及びプログラム |
JP2007179461A (ja) * | 2005-12-28 | 2007-07-12 | Hitachi Ltd | 描画方法、画像データ生成システム、cadシステム、及びビューワシステム |
JP4616167B2 (ja) * | 2005-12-28 | 2011-01-19 | 株式会社日立製作所 | 描画方法、画像データ生成システム、cadシステム、及びビューワシステム |
JP2009249929A (ja) * | 2008-04-07 | 2009-10-29 | Shimizu Corp | 掘削工事の3次元表示装置及び掘削工事表示プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5751852A (en) | Image structure map data structure for spatially indexing an imgage | |
US7119809B1 (en) | Parallel architecture for graphics primitive decomposition | |
KR100916474B1 (ko) | 등고선이 표현하는 지역을 다각형 세부 영역들로 분해하고 수치표고모델 데이터와 지형 표면 구성 데이터를 산출하는 방법과, 그 방법을 실행하기 위한 프로그램이 기록된 기록 매체 | |
US20230074265A1 (en) | Virtual scenario generation method and apparatus, computer device and storage medium | |
EP2282245B9 (en) | Cutting process simulation display device, method for displaying cutting process simulation, and cutting process simulation display program | |
CN105336003A (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN107220372B (zh) | 一种三维地图线要素注记自动放置方法 | |
US20180247447A1 (en) | Enhanced three-dimensional point cloud rendering | |
JP2015535978A (ja) | 3次元シーンをレンダリングするためのコンピュータグラフィックス方法 | |
CN102663800A (zh) | 一种顾及城市意象的城市建筑综合与渲染的方法 | |
CN115937461A (zh) | 多源融合模型构建及纹理生成方法、装置、介质及设备 | |
Zhang et al. | A geometry and texture coupled flexible generalization of urban building models | |
KR20070099298A (ko) | 모바일 내비게이션용 3차원 형상정보 생성방법 및 장치 | |
JP2837584B2 (ja) | 地形データの作成方法 | |
CN108898679A (zh) | 一种零部件序号自动标注的方法 | |
JPH07271847A (ja) | 造成地形のモデリング方法及び装置 | |
KR100737221B1 (ko) | 숨겨진 라인이 제거된 벡터 이미지를 제공하는 방법 | |
JPH1196394A (ja) | 画像生成装置および画像生成方法 | |
JP4543820B2 (ja) | 3次元データ処理装置及びプログラム | |
CN115019003A (zh) | 一种基于平面地质图的背斜构造三维建模方法 | |
CN115033972A (zh) | 一种建筑主体结构批量单体化方法、系统及可读存储介质 | |
JPH08212334A (ja) | 3次元地形データ生成方法及びその装置 | |
CN118225104B (zh) | 一种山区场景下的三维导航优化方法、设备及介质 | |
Peucker | The use of computer graphics for displaying data in three dimensions | |
CN111862281A (zh) | 线状符号三维绘制方法 |