JP2008033710A - 非透視投影の設計方法及び設計システム - Google Patents
非透視投影の設計方法及び設計システム Download PDFInfo
- Publication number
- JP2008033710A JP2008033710A JP2006207570A JP2006207570A JP2008033710A JP 2008033710 A JP2008033710 A JP 2008033710A JP 2006207570 A JP2006207570 A JP 2006207570A JP 2006207570 A JP2006207570 A JP 2006207570A JP 2008033710 A JP2008033710 A JP 2008033710A
- Authority
- JP
- Japan
- Prior art keywords
- camera parameters
- dimensional
- lattice points
- point
- projection
- 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)
Abstract
【課題】非透視投影の設計を容易とする。
【解決手段】まず、2次元投影図中に表示された物体の上に操作用オブジェクトを表示する。ここで、2次元投影図は、3次元モデルを投影することによって生成されたものである。前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられている。ついで、2次元投影図上に表示された操作用オブジェクトへの操作を受け付ける。ついで、操作用オブジェクト中の可動部におけるカメラパラメータを取得する。ついで、格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する。ついで、物体の頂点に対応するカメラパラメータを、格子点のカメラパラメータから、補間により取得する。さらに、物体の頂点に対応するカメラパラメータを用いて取得された、物体の2次元投影図を表示する。
【選択図】図2
【解決手段】まず、2次元投影図中に表示された物体の上に操作用オブジェクトを表示する。ここで、2次元投影図は、3次元モデルを投影することによって生成されたものである。前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられている。ついで、2次元投影図上に表示された操作用オブジェクトへの操作を受け付ける。ついで、操作用オブジェクト中の可動部におけるカメラパラメータを取得する。ついで、格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する。ついで、物体の頂点に対応するカメラパラメータを、格子点のカメラパラメータから、補間により取得する。さらに、物体の頂点に対応するカメラパラメータを用いて取得された、物体の2次元投影図を表示する。
【選択図】図2
Description
本発明は、非透視投影の設計方法及び設計システムに関するものである。
投影は、3次元情報を2次元画像上に視覚的に表現する方法として、我々の日常生活に欠かせない重要な役割を演じており、実際様々な投影表現が存在する。
3次元コンピュータグラフィックスでは、一般的に透視投影が用いられているのに対し、人間が描く絵では、表現したい対象の特徴に応じて、誇張された投影が用いられている。例えば、案内図では、観光スポット等が、遮蔽を回避しつつわかりやすく配置され、模式図では、強調したい部分が、他とは異なる分かりやすい視点から投影されている。
このように、一般の透視投影と異なり、誇張を伴う投影のことを、ここでは非透視投影と呼び、先ほどの例のように我々の生活に欠かせない視覚情報伝達手段となっている。非透視投影とは、一般に、「複数の異なる視点からの見えが1枚の投影図において混在しているような投影」ということができる。
近年、非透視投影に関する研究が行われるようになっており、非透視投影特有の見えを実現するために、さまざまな手法が提案されてきている。例えば、通常の透視投影の画像を2次元的な変換を用いてゆがめることで、複数の視点からの見えを作り出す手法[非特許文献8,4]や、視線を曲げることにより投影図をゆがめる方法[非特許文献2]、セルアニメーションにおいて、与えられたカメラの動きに追随するパノラマ背景画を生成する手法[非特許文献7]、個々の独立した物体を別々の視点から描画したのち、奥行きを考慮してひとつの2次元投影図として合成する手法[非特許文献1]などが提案されてきている。
さらに、複数の視点からの見えが混在するように3次元モデル自体を変形する方法[非特許文献3]や、3次元空間中の複数のカメラの投影を合成する手法[非特許文献6,5]が考案され、表現能力が向上してきた。
しかしながら、これらの手法では、3次元空間内での操作が必要であり、その操作が2次元の投影図にどのように反映されるかについては、数多くの試行錯誤による確認が必要となる。
つまり、従来提案されてきている技術では、非透視投影の設計が煩雑であるという問題があった。
[1] M. Agrawala, D. Zorin, and T. Munzner.Artisticmultiprojection rendering, 2000. [2] Y. Kurzion and R. Yagel. Interactivespace deformationwith hardware-assisted rendering. IEEEComputer Graphics &Applications, 17(5):66-77, 1997. [3] Paul Rademacher. View-dependentgeometry. InAlyn Rockwood, editor, Siggraph 1999, ComputerGraphics Proceedings,pages 439-446, LosAngeles, 1999. Addison Wesley Longman. [4] S. M. Seitz and C. R. Dyer. Viewmorphing. In Computer Graphics (Proceedings of Siggraph’96), pages 21-30,1996.5 [5] Karan Singh. A fresh perspective. InGraphicsInterface (GI’02), pages 17-24, May 2002. [6] Shigeo Takahashi, Naoya Ohta, HirokoNakamura,Yuriko Takeshima, and Issei Fujishiro.Modeling surperspectiveprojection of landscapesfor geographical guide-map generation. ComputerGraphicsForum, 21(3):259-268, 2002. [7] Daniel N. Wood, Adam Finkelstein, JohnF.Hughes, Craig E. Thayer, and David Salesin.Multiperspective panoramas for celanimation. In SIGGRAPH, pages 243-250, 1997. [8] D. Zorin and A. H. Barr. Correction ofgeometricperceptual distortions in pictures. In ComputerGraphics (Proceedingsof Siggraph ’95), pages257-264, 1995.
[1] M. Agrawala, D. Zorin, and T. Munzner.Artisticmultiprojection rendering, 2000. [2] Y. Kurzion and R. Yagel. Interactivespace deformationwith hardware-assisted rendering. IEEEComputer Graphics &Applications, 17(5):66-77, 1997. [3] Paul Rademacher. View-dependentgeometry. InAlyn Rockwood, editor, Siggraph 1999, ComputerGraphics Proceedings,pages 439-446, LosAngeles, 1999. Addison Wesley Longman. [4] S. M. Seitz and C. R. Dyer. Viewmorphing. In Computer Graphics (Proceedings of Siggraph’96), pages 21-30,1996.5 [5] Karan Singh. A fresh perspective. InGraphicsInterface (GI’02), pages 17-24, May 2002. [6] Shigeo Takahashi, Naoya Ohta, HirokoNakamura,Yuriko Takeshima, and Issei Fujishiro.Modeling surperspectiveprojection of landscapesfor geographical guide-map generation. ComputerGraphicsForum, 21(3):259-268, 2002. [7] Daniel N. Wood, Adam Finkelstein, JohnF.Hughes, Craig E. Thayer, and David Salesin.Multiperspective panoramas for celanimation. In SIGGRAPH, pages 243-250, 1997. [8] D. Zorin and A. H. Barr. Correction ofgeometricperceptual distortions in pictures. In ComputerGraphics (Proceedingsof Siggraph ’95), pages257-264, 1995.
本発明は、前記の状況に鑑みてなされたものである。本発明は、3次元空間内の操作を、2次元投影面を介して直接行う手法を提供することにより、非透視投影の設計を容易とすることを目的としている。
本発明に係る非透視投影の設計方法は、以下のステップを備えている:
(1)2次元投影図中に表示された物体の上に操作用オブジェクトを表示するステップ、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付けるステップ;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得するステップ;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得するステップ;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得するステップ;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を表示するステップ。
(1)2次元投影図中に表示された物体の上に操作用オブジェクトを表示するステップ、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付けるステップ;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得するステップ;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得するステップ;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得するステップ;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を表示するステップ。
本発明に係る非透視投影の設計システムは、表示部と制御部とを備えている。前記制御部は、以下の処理を行うものである:
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
本発明に係るコンピュータプログラムは、表示部と制御部とを備えた非透視投影の設計システム用のプログラムである。このコンピュータプログラムは、前記制御部に以下の処理を行わせる構成となっている:
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
本発明に係るデータ構造は、複数の格子点を有する三次元モデルデータと、前記格子点毎に対応するカメラパラメータとを備えている。
本発明によれば、非透視投影の設計が容易となる設計方法及び設計システムを提供することができる。
以下、本発明の一実施形態を、添付図面を参照して説明する。
(本実施形態の構成)
本実施形態に係る、非透視投影の設計システムは、図1に示されるように、表示部1と、制御部2と、入力部3と、記憶部4と、通信路5とを備えている。
本実施形態に係る、非透視投影の設計システムは、図1に示されるように、表示部1と、制御部2と、入力部3と、記憶部4と、通信路5とを備えている。
表示部1は、制御部2で生成された非透視投影図を表示する構成となっている。表示部1としては、例えば、CRTやLCDなどのディスプレイである。
制御部2は、例えばCPUにより構成することができる。制御部2は、コンピュータ用ソフトウエア(プログラム)の動作により、以下の処理を実行する構成となっている。
(1)表示部1によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、表示部1によって表示する処理。ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている。
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理。
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理。
(4)前記固定部と前記可動部との間における、前記格子点のカメラパラメータを、補間により取得する処理。
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理。
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
(1)表示部1によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、表示部1によって表示する処理。ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている。
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理。
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理。
(4)前記固定部と前記可動部との間における、前記格子点のカメラパラメータを、補間により取得する処理。
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理。
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。
これらの処理の詳細は、本実施形態の動作として後述する。また、これらの処理は、計算機(又はCPU)上で実行されるコンピュータソフトウエアにより実施することができる。
入力部3は、制御部2への指令を入力できる機器であり、例えばキーボードやマウスやタッチパッドである。
記憶部4は、制御部2での処理に用いられる各種のデータ(3次元モデルやカメラパラメータなど)、制御部2を動作させるために必要なコンピュータソフトウエア、制御部2で生成された各種データ(非透視投影図など)、及びその他の必要なデータを記憶できるようになっている。記憶部4は、内部記憶装置あるいは外部記憶装置により構成することができる。
通信路5は、前記した各機能ブロックの間における、情報のやりとりを可能にする媒体である。通信路5は、例えば、コンピュータ内のバスラインであるが、LANやインターネットなどのネットワークであってもよい。すなわち、各機能ブロックは、物理的に離間した位置にあり、ネットワークによって接続されたものであっても良い。ネットワークに接続するための手段、例えばインタフェースの構成やプロトコルは良く知られているので、詳細な説明は省略する。
(本実施形態の動作)
次に、前記したシステムを用いて非透視投影図を生成する方法について、図2のフローチャートを参照しながら説明する。ここでは、対象の局所部分における「見え」(つまり2次元投影図上での物体の見え)を操作する方法と、そのような見えを実現するカメラパラメータの計算方法について述べる。
次に、前記したシステムを用いて非透視投影図を生成する方法について、図2のフローチャートを参照しながら説明する。ここでは、対象の局所部分における「見え」(つまり2次元投影図上での物体の見え)を操作する方法と、そのような見えを実現するカメラパラメータの計算方法について述べる。
非透視投影では、描画物体の局所部分ごとに、それぞれ異なるカメラで投影する必要があるため、そのカメラのパラメータを、その局所部分の見えから求めなければならない。
(カメラモデル)
まず、以下で取り扱うカメラモデルについて定義する。カメラパラメータとしてカメラ7の位置、向き、投影の中心、投影面の高さ、および幅を用いる(図3参照)。ここで、投影面9はカメラの視線方向に垂直であり、焦点距離Fはカメラと投影面との距離として固定であるとする。投影の中心は、「カメラの視線と投影面との交点を原点とし、カメラのアップベクトルがy軸、それに垂直な軸がx軸として定義される投影面上の2次元の座標系」を用いて表される。本実施形態で説明するカメラモデルの自由度は、位置が3、向きが3、投影の中心が2、投影面の高さが1、投影面の幅が1の合計10となる。
まず、以下で取り扱うカメラモデルについて定義する。カメラパラメータとしてカメラ7の位置、向き、投影の中心、投影面の高さ、および幅を用いる(図3参照)。ここで、投影面9はカメラの視線方向に垂直であり、焦点距離Fはカメラと投影面との距離として固定であるとする。投影の中心は、「カメラの視線と投影面との交点を原点とし、カメラのアップベクトルがy軸、それに垂直な軸がx軸として定義される投影面上の2次元の座標系」を用いて表される。本実施形態で説明するカメラモデルの自由度は、位置が3、向きが3、投影の中心が2、投影面の高さが1、投影面の幅が1の合計10となる。
(局所部分の見えの操作)
(図2のステップSa−1)
ここでは、対象の局所部分として、3次元物体の頂点とその近傍に注目する。そして、ユーザは、図4に示されるような操作用オブジェクト10を、表示部1の表示画面によって表示する。操作用オブジェクト10は、3つの制御点P、Q、R(Rは2点あるがどちらも同じ働きをするので1つのRとして扱う)と、一つの固定点Fとを備えている。制御点P、Q、Rは、本発明における可動部の一例に対応し、固定点Fは、本発明における固定部の一例に相当する。操作用オブジェクト10の配置例の詳細は後述する。
(図2のステップSa−1)
ここでは、対象の局所部分として、3次元物体の頂点とその近傍に注目する。そして、ユーザは、図4に示されるような操作用オブジェクト10を、表示部1の表示画面によって表示する。操作用オブジェクト10は、3つの制御点P、Q、R(Rは2点あるがどちらも同じ働きをするので1つのRとして扱う)と、一つの固定点Fとを備えている。制御点P、Q、Rは、本発明における可動部の一例に対応し、固定点Fは、本発明における固定部の一例に相当する。操作用オブジェクト10の配置例の詳細は後述する。
(図2のステップSa−2)
ついで、ユーザは、制御点P、Q、Rのいずれか又は全ての、2次元投影面上の位置を、表示画面上において変更する。操作用オブジェクト10を、投影図中の物体上に配置した状態を、図5に示す。ただし、この図では、固定点Fは省略している。
ついで、ユーザは、制御点P、Q、Rのいずれか又は全ての、2次元投影面上の位置を、表示画面上において変更する。操作用オブジェクト10を、投影図中の物体上に配置した状態を、図5に示す。ただし、この図では、固定点Fは省略している。
各制御点の位置等を変更する操作は、例えば、各点を入力部3によってドラッグして移動させることにより実施することができる。これにより、表1に示されるような3種類の見えを操作することができる。
具体的には、点Pをドラッグすることで物体頂点の描画位置が操作される。また、点Rをドラッグすることで、点Pを中心に点Rを通る正方形が拡大縮小し、その拡大率に応じて点Pの周りの描画サイズが変化する。さらに、線PQを、点Pを通る特徴線(物体表面上の模様、物体頂点間の稜線又は輪郭を表す線)に沿わせることにより、その特徴線の長さや傾きを操作する。本実施形態に係るシステムにおいては、点PとQはユーザによって選択された描画物体上の頂点であるとする。つまりユーザによって、あるいはシステム側の補助によって、そのような頂点に置かれるものとする。また、本実施形態のシステムは、点P及びQの3次元位置を、入力部3からの入力データに基づいて取得できるものとする。
(図2のステップSa−3)
前記した3種類の見えの操作を、表1のようにカメラパラメータの変化と対応させることによって、本実施形態では、合計5次元のカメラパラメータ空間を操作することができる。
前記した3種類の見えの操作を、表1のようにカメラパラメータの変化と対応させることによって、本実施形態では、合計5次元のカメラパラメータ空間を操作することができる。
ここで注意すべきことは、線分PQの傾きや長さはカメラの投影面に平行な移動量に1対1に対応させることができるが、カメラを移動させると同時に点Pの描画位置も変化してしまうことである。そこで、点Pの描画位置が変わらないように投影の中心を補正する必要がある(他の見えについても同様のことが必要となる場合がある)。各制御点の操作とカメラパラメータの計算方法について以下にまとめる。
(投影の中心)
点Pが投影された座標PsがP’sに移動されたとすると(図6(a))、投影の中心は点PがまるでP’sに投影されるように調整される(図6(b))。投影の中心の移動量Dcpは以下のように計算される。
Dcp=Ps−P’s(1)
点Pが投影された座標PsがP’sに移動されたとすると(図6(a))、投影の中心は点PがまるでP’sに投影されるように調整される(図6(b))。投影の中心の移動量Dcpは以下のように計算される。
Dcp=Ps−P’s(1)
点Pの周りの見えは制御点Pの操作では変化せず、投影面上に投影される位置のみが独立に移動される。
(投影面の大きさ)
図7(a)のように点Rが点R’にドラッグされたとする。点Rを備える正方形の大きさがD1からD2になり、その見えの大きさの拡大比率kはk=D1/D2となるので、投影面9の大きさは1/k倍に拡大、もしくは縮小する。そうすることで、投影面上の物体の見た目の大きさがk倍となる。
図7(a)のように点Rが点R’にドラッグされたとする。点Rを備える正方形の大きさがD1からD2になり、その見えの大きさの拡大比率kはk=D1/D2となるので、投影面9の大きさは1/k倍に拡大、もしくは縮小する。そうすることで、投影面上の物体の見た目の大きさがk倍となる。
点Pの投影面上の位置が変化しないように、点Pを中心として拡大、縮小をする必要があるので、投影の中心を変える必要がある。その変化量(Dx,Dy)は、以下のように計算される。
Dx=W*0.5*(1−(1/k))(2)
Dy=H*0.5*(1−(1/k))(3)
ここで、WとHはそれぞれ投影面の幅と高さとする。
Dx=W*0.5*(1−(1/k))(2)
Dy=H*0.5*(1−(1/k))(3)
ここで、WとHはそれぞれ投影面の幅と高さとする。
(視点位置)
図8(a)のように、点Qが点Q’にドラッグされたとする。PQのy成分をD1とし、PQ’のy成分をD2とする。カメラを投影面に対してy軸方向に動かすことにより、投影面上のPQの長さをD1からD2に変えることができる(図8(b))。その移動距離は、以下のように計算される。
D=(D2−D1)*d*(d+r)/(f*r)(4)
ここで、dはカメラの視線方向ベクトルとベクトルPQの内積、rは点Pのカメラからの視線方向成分、fは焦点距離である。さらに、点Pの投影面上の位置が変わらないように投影の中心を調整する必要がある。その移動距離Dcpは次のように計算される。
Dcp=D*f*d(5)
図8(a)のように、点Qが点Q’にドラッグされたとする。PQのy成分をD1とし、PQ’のy成分をD2とする。カメラを投影面に対してy軸方向に動かすことにより、投影面上のPQの長さをD1からD2に変えることができる(図8(b))。その移動距離は、以下のように計算される。
D=(D2−D1)*d*(d+r)/(f*r)(4)
ここで、dはカメラの視線方向ベクトルとベクトルPQの内積、rは点Pのカメラからの視線方向成分、fは焦点距離である。さらに、点Pの投影面上の位置が変わらないように投影の中心を調整する必要がある。その移動距離Dcpは次のように計算される。
Dcp=D*f*d(5)
x軸方向についても同様にカメラの移動量が計算される。もし、線分PQの奥行き成分がゼロの場合は、線の傾きと長さが視点の位置から一意に決まらない。そのため、そのようなP,Qをあらかじめ選べないようにする。点PとQを物体上の特徴線にあわせることにより、その特徴線の傾きや長さを調整することができる。
(カメラパラメータの場を用いた非透視投影の設計)
(図2のステップSa−3)
非透視投影では、描画対象の局所部分ごとに異なるカメラで投影を行う必要がある。そこで、本実施形態では、そのような投影を実現するためのデータ構造として、3次元空間中に明示的にカメラパラメータの場を保持する。カメラパラメータ場は、一種の関数として把握することができる。カメラパラメータ場は、記憶部4に記憶される。
(図2のステップSa−3)
非透視投影では、描画対象の局所部分ごとに異なるカメラで投影を行う必要がある。そこで、本実施形態では、そのような投影を実現するためのデータ構造として、3次元空間中に明示的にカメラパラメータの場を保持する。カメラパラメータ場は、一種の関数として把握することができる。カメラパラメータ場は、記憶部4に記憶される。
(カメラパラメータ場の定義)
(図2のステップSa−4)
まず、前提として、物体の3次元モデルは、3次元格子(つまりボクセルモデル)により表現されるとする。カメラパラメータ場は、3次元格子における格子状サンプル点(格子点)のそれぞれにカメラパラメータを割り当てることで実現する。割り当てられるカメラパラメータは、前記で定義した10個のパラメータとする。ユーザは、カメラパラメータ場を、2次元的なツールである操作用オブジェクト10を用い、投影面を介して編集する。そして、ユーザ操作によるカメラパラメータの変化を各格子点の値に蓄積していく。
(図2のステップSa−4)
まず、前提として、物体の3次元モデルは、3次元格子(つまりボクセルモデル)により表現されるとする。カメラパラメータ場は、3次元格子における格子状サンプル点(格子点)のそれぞれにカメラパラメータを割り当てることで実現する。割り当てられるカメラパラメータは、前記で定義した10個のパラメータとする。ユーザは、カメラパラメータ場を、2次元的なツールである操作用オブジェクト10を用い、投影面を介して編集する。そして、ユーザ操作によるカメラパラメータの変化を各格子点の値に蓄積していく。
ここで、格子点毎のカメラパラメータは、補間により生成することができる。補間方法としては、各格子点について、固定点F(カメラパラメータの変化なし)と可動点P(カメラパラメータの変化有り)との間で、徐々にカメラパラメータが変化するように補間(例えば線形補間)することができる。つまり、格子点のカメラパラメータを、可動点Pのカメラパラメータ(これは可動点Pの移動に従って変化している)に基づいて生成し、取得することができる。
(非透視投影の計算)
(図2のステップSa−5)
ついで、描画対象となっている物体の局所部分(ここでは、物体頂点)ごとに、その領域を投影するカメラが持つパラメータを計算する必要がある。そのパラメータの値は、3次元カメラパラメータ場から補間で求めることができる。例えば、物体頂点の8近傍の格子点におけるカメラパラメータを3重線形補間することで計算することができる(図9)。このとき、カメラパラメータの向きについては球面線型補間を用い、他のパラメータについては線型補間を用いることが好ましい。格子点毎にカメラパラメータを生成しておけば、投影図を生成する際に、描画物体の各頂点に対応するカメラパラメータを計算するコストは一定となる。
(図2のステップSa−5)
ついで、描画対象となっている物体の局所部分(ここでは、物体頂点)ごとに、その領域を投影するカメラが持つパラメータを計算する必要がある。そのパラメータの値は、3次元カメラパラメータ場から補間で求めることができる。例えば、物体頂点の8近傍の格子点におけるカメラパラメータを3重線形補間することで計算することができる(図9)。このとき、カメラパラメータの向きについては球面線型補間を用い、他のパラメータについては線型補間を用いることが好ましい。格子点毎にカメラパラメータを生成しておけば、投影図を生成する際に、描画物体の各頂点に対応するカメラパラメータを計算するコストは一定となる。
(図2のステップSa−6)
ついで、描画物体の各頂点に対応するカメラパラメータに基づいて2次元投影図を生成することができる。これにより、非透視投影図を生成することができる。
ついで、描画物体の各頂点に対応するカメラパラメータに基づいて2次元投影図を生成することができる。これにより、非透視投影図を生成することができる。
(非透視投影の編集)
前記した原理に基づく、非透視投影の編集方法を、図10を参照しながら以下にさらに説明する。まず、ユーザは、3次元物体上の点(固定部)Fを選択し、その点のスクリーン上の位置は固定される。
前記した原理に基づく、非透視投影の編集方法を、図10を参照しながら以下にさらに説明する。まず、ユーザは、3次元物体上の点(固定部)Fを選択し、その点のスクリーン上の位置は固定される。
次に、3次元物体上に点(可動部)Pを選ぶ。ユーザは、制御点Pだけを操作して、その見え(投影中心)を操作することもできる。
さらに、点Qを、線PQが物体上の特徴線に沿うように選ぶ。点Qまで選ばれると、他の制御点Rも表示される。これらの制御点P、Q、R(可動部)を操作することにより、点Pのまわりの見えが操作される。この操作により、その効果(すなわち2次元投影面上での「見え」)が生成され、線分PFに沿うように反映される。この反映は、システム側の動作により、リアルタイムで行われる。
カメラパラメータ場から計算された点Pに対応するカメラパラメータをCpとする。一方、ユーザによって指定された見えを実現するカメラパラメータをC’pとする。本実施形態のシステムでは、3次元カメラパラメータ場(各格子点でのカメラパラメータ)は、前記したとおり、可動部Pのカメラパラメータに基づいて生成される。
例えば、格子点Lに加えられるカメラパラメータは、「Cp−C’pの値に対して、2つの線分の比率SF/RF(但し、点Sが点Fから見て点Pと反対側にある場合は負号を付す)を乗算して得られた値」となる(図10参照)。「点Sが点Fから見て点Pと反対側にある場合は負号を付す」というのは、外挿(これも補間の一種とする)に対応した処理である。また、ここで、点SはLから直線PFに下ろした垂線の足とする。これは、カメラパラメータの演算であり、位置や投影の中心といったパラメータ同士で、演算を行うものとする。ただし、向き(クォータニオン)の場合は、回転角について演算を行うものとする。実際の手描きの絵では、直線に沿ってカメラパラメータが変化したように描かれる場合が多いので、本システムではこのような入力の仕方を採用している。さらに、2点P、Fが同一物体上の点として選ばれた場合、ユーザ操作によって値の変化する格子点は、その物体のバウンディングボックス(物体を囲む仮想的な箱)に含まれる格子点にのみ限定される。このことにより、特定の物体の見えのみを、他の物体に影響を与えることなく、変更することができる。
本実施形態によれば、3次元空間のカメラパラメータ場を定義することで、1つの投影図の中に複数の視点からの見えを混在させ、非透視投影特有の効果を柔軟に記述できる。そして、ユーザが描画物体の局所部分の見え(ここでは、物体頂点の位置や、特徴線の傾きや長さ)を2次元投影面上で操作することにより、先に定義した3次元カメラパラメータ場の値を編集できる。
(実施例)
ウサギと机がある部屋のシーンについて、その投影面上での見えを操作していく様子を、本実施形態の実施例として示す。図11は、実装したプログラムのインターフェースであり、ディスプレイ上に表示される。
ウサギと机がある部屋のシーンについて、その投影面上での見えを操作していく様子を、本実施形態の実施例として示す。図11は、実装したプログラムのインターフェースであり、ディスプレイ上に表示される。
まず、点F、P、Qがユーザによって選択される。選択は、画面上の点をクリックすることで行われる。点Qをクリックすると点Rがシステムの動作により表示される。
点P、Q、Rをドラッグすることで、投影面上の見えを操作することができる。
以下、3種類の見えの操作による編集効果についてまとめる。
・描画位置の操作
床とロッカーの境界線に沿うようにツールを設置した状態を図12(a)に示す。ついで、点Pをドラッグして移動させた状態を図12(b)に示す。点Pの周りの見え、すなわち、ロッカーと床の線の傾きは変化していないことに注意する。
床とロッカーの境界線に沿うようにツールを設置した状態を図12(a)に示す。ついで、点Pをドラッグして移動させた状態を図12(b)に示す。点Pの周りの見え、すなわち、ロッカーと床の線の傾きは変化していないことに注意する。
・描画サイズの操作
床とロッカーの境界線に沿うようにツール(操作用オブジェクト)を設置した状態を、図13(a)に示す。ついで、点Rをドラッグして、点Pの周りの見えの大きさを調整する(図13(b))。その際、点Pの位置やロッカーと床の線の傾きは変化していないことに注意する。
・特徴線の操作
ロッカーの上部の稜線に沿うようにツールを設置した(図14(a))。ついで、点Qをドラッグすることで、点Pを通る稜線の傾きや長さを調整することができる(図14(b))。その際、点Pの位置やその周りの描画サイズは変化していないことに注意する。
床とロッカーの境界線に沿うようにツール(操作用オブジェクト)を設置した状態を、図13(a)に示す。ついで、点Rをドラッグして、点Pの周りの見えの大きさを調整する(図13(b))。その際、点Pの位置やロッカーと床の線の傾きは変化していないことに注意する。
・特徴線の操作
ロッカーの上部の稜線に沿うようにツールを設置した(図14(a))。ついで、点Qをドラッグすることで、点Pを通る稜線の傾きや長さを調整することができる(図14(b))。その際、点Pの位置やその周りの描画サイズは変化していないことに注意する。
(手描きの絵にあわせる例)
さらに、3Dシーンの投影図を、図15(a)のような手描きの絵にあわせる例について見てみる。投影図を手描きの絵に重ねてみると、図15(b)のようになる。
さらに、3Dシーンの投影図を、図15(a)のような手描きの絵にあわせる例について見てみる。投影図を手描きの絵に重ねてみると、図15(b)のようになる。
図16(a)〜(j)に、設置されたツールの操作によって投影図が変化していく様子を示した。その際、ユーザは、ロッカーと床の間の線、窓の平行線といった特徴を頼りに操作する。最終的には、図16(j)に示されるように、手描きの図と同様な非透視投影図を得ることができた。
なお、前記各実施形態の記載は単なる一例に過ぎず、本発明に必須の構成を示したものではない。各部の構成は、本発明の趣旨を達成できるものであれば、上記に限らない。
さらに、各実施形態を実現するための各部(機能ブロックを含む)の具体的手段は、ハードウエア、ソフトウエア、ネットワーク、これらの組み合わせ、その他の任意の手段を用いることができ、このこと自体は当業者において自明である。また、機能ブロックどうしが複合して一つの機能ブロックに集約されても良い。さらに、機能ブロックが複数のハードウエアまたはソフトウエアの協働によって実現されても良い。
1 表示部
2 制御部
3 入力部
4 記憶路
5 通信部
7 カメラ
9 投影面
10 操作用オブジェクト
F 固定点(固定部)
P 制御点(可動部)
Q 制御点(可動部)
R 制御点(可動部)
2 制御部
3 入力部
4 記憶路
5 通信部
7 カメラ
9 投影面
10 操作用オブジェクト
F 固定点(固定部)
P 制御点(可動部)
Q 制御点(可動部)
R 制御点(可動部)
Claims (4)
- 以下のステップを備えることを特徴とする、非透視投影の設計方法:
(1)2次元投影図中に表示された物体の上に操作用オブジェクトを表示するステップ、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付けるステップ;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得するステップ;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得するステップ;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得するステップ;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を表示するステップ。 - 表示部と制御部とを備え、前記制御部は、以下の処理を行うことを特徴とする、非透視投影の設計システム:
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。 - 表示部と制御部とを備えた非透視投影の設計システム用のコンピュータプログラムであって、前記制御部に以下の処理を行わせる構成となっているコンピュータプログラム:
(1)前記表示部によって表示されている2次元投影図に含まれる物体の上に、操作用オブジェクトを、前記表示部によって表示する処理、
ここで、前記2次元投影図は、3次元モデルを投影することによって生成されたものであり、前記3次元モデルは、複数の格子点を備えており、前記複数の格子点には、それぞれ、カメラパラメータが対応づけられており、前記操作用オブジェクトは、固定部と可動部とを備えている;
(2)前記2次元投影図上に表示された前記操作用オブジェクトの可動部への操作を受け付ける処理;
(3)前記操作用オブジェクト中の可動部におけるカメラパラメータを取得する処理;
(4)前記格子点のカメラパラメータを、前記可動部でのカメラパラメータに基づいて取得する処理;
(5)前記物体の頂点に対応するカメラパラメータを、前記格子点のカメラパラメータから、補間により取得する処理;
(6)前記物体の頂点に対応するカメラパラメータを用いて取得された物体の2次元投影図を、前記表示部によって表示する処理。 - 複数の格子点を有する三次元モデルデータと、前記格子点毎に対応するカメラパラメータとを備えるデータ構造。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006207570A JP2008033710A (ja) | 2006-07-31 | 2006-07-31 | 非透視投影の設計方法及び設計システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006207570A JP2008033710A (ja) | 2006-07-31 | 2006-07-31 | 非透視投影の設計方法及び設計システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008033710A true JP2008033710A (ja) | 2008-02-14 |
Family
ID=39123036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006207570A Pending JP2008033710A (ja) | 2006-07-31 | 2006-07-31 | 非透視投影の設計方法及び設計システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008033710A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091471A (ja) * | 2015-11-17 | 2017-05-25 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
-
2006
- 2006-07-31 JP JP2006207570A patent/JP2008033710A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017091471A (ja) * | 2015-11-17 | 2017-05-25 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163942B (zh) | 一种图像数据处理方法和装置 | |
US9692965B2 (en) | Omnidirectional image editing program and omnidirectional image editing apparatus | |
US7324121B2 (en) | Adaptive manipulators | |
Tolba et al. | A projective drawing system | |
JP4199663B2 (ja) | ヒューマン−コンピュータインターフェイスにおける視覚画像による触覚調整 | |
JPH07262410A (ja) | 画像合成方法及び装置 | |
CN106683177B (zh) | 基于互动漫游式房屋装修数据交互方法及装置 | |
JPH05342310A (ja) | 線要素データの3次元変換装置及び方法 | |
JP2720920B2 (ja) | 画像処理システムにおける実写画像とコンピュータグラフィックスの合成方法 | |
JP3104638B2 (ja) | 3次元画像作成装置 | |
JP3744039B2 (ja) | 透視図作成支援方法 | |
JPH1049704A (ja) | 画像変換方法 | |
JPH0997355A (ja) | モデリング方法およびモデリングシステム | |
US9401044B1 (en) | Method for conformal visualization | |
JPH10111953A (ja) | 画像処理方法および装置および記憶媒体 | |
JP2000076488A (ja) | 3次元仮想空間表示装置及びテクスチャオブジェクト設定情報作成装置 | |
US8669996B2 (en) | Image processing device and image processing method | |
JP2832463B2 (ja) | 3次元モデルの再構成方法および表示方法 | |
JP2010033397A (ja) | 画像合成装置および方法 | |
JP2008033710A (ja) | 非透視投影の設計方法及び設計システム | |
Teng et al. | Augmented-reality-based 3D Modeling system using tangible interface | |
JP3309841B2 (ja) | 合成動画像生成装置および合成動画像生成方法 | |
JP7401245B2 (ja) | 画像合成装置、画像合成装置の制御方法およびプログラム | |
WO2014014928A2 (en) | Systems and methods for three-dimensional sketching and imaging | |
JP4269951B2 (ja) | 3次元コンピュータ・グラフィックス・モデリング・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090707 |
|
A131 | Notification of reasons for refusal |
Effective date: 20110607 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20111018 Free format text: JAPANESE INTERMEDIATE CODE: A02 |