JP2014199617A - 画像生成システム及びプログラム - Google Patents

画像生成システム及びプログラム Download PDF

Info

Publication number
JP2014199617A
JP2014199617A JP2013075247A JP2013075247A JP2014199617A JP 2014199617 A JP2014199617 A JP 2014199617A JP 2013075247 A JP2013075247 A JP 2013075247A JP 2013075247 A JP2013075247 A JP 2013075247A JP 2014199617 A JP2014199617 A JP 2014199617A
Authority
JP
Japan
Prior art keywords
vertex
screen
division number
angle
virtual camera
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
JP2013075247A
Other languages
English (en)
Other versions
JP6153366B2 (ja
Inventor
潤 永瀬
Jun Nagase
潤 永瀬
高弘 柿沢
Takahiro Kakizawa
高弘 柿沢
石井 源久
Motohisa Ishii
源久 石井
菊池 徹
Toru Kikuchi
徹 菊池
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.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
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 Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2013075247A priority Critical patent/JP6153366B2/ja
Priority to US14/226,045 priority patent/US9495799B2/en
Priority to GB1405619.6A priority patent/GB2514664B/en
Priority to CN201410124526.0A priority patent/CN104077801B/zh
Publication of JP2014199617A publication Critical patent/JP2014199617A/ja
Application granted granted Critical
Publication of JP6153366B2 publication Critical patent/JP6153366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

【課題】頂点分割処理を有効利用した投影画像の歪み補正を実現できる画像生成システム及びプログラム等を提供できる。【解決手段】画像生成システムは、頂点分割数mの設定処理を行う頂点分割数設定部と、オブジェクト空間内の3次元オブジェクトOBに対して、設定された頂点分割数mで頂点分割処理を行う頂点分割処理部と、頂点分割処理後の3次元オブジェクトOBの頂点位置と仮想カメラVCの位置とを結ぶ直線と、プロジェクション用のスクリーンSCとの交点位置を求め、求められた交点位置に基づいて、3次元オブジェクトOBに対応する描画オブジェクトについての、描画バッファでの頂点位置を求める頂点位置演算部と、描画オブジェクトの頂点位置に基づいて、描画オブジェクトを描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する描画部を含む。【選択図】図13

Description

本発明は、画像生成システム及びプログラム等に関する。
従来より、プロジェクタ等の投影装置により曲面スクリーンに対して投影される投影画像の生成システムが知られている。そして、曲面スクリーンに対して歪みの少ない投影画像を投影する従来技術としては、例えば特許文献1に開示される技術がある。
また、シェーダ機能を備えたGPU(Graphics Processing Unit)においては、いわゆるテッセレーションの機能を備えたものがあり、このようなテッセレーションの従来技術としては、例えば特許文献2に開示される技術がある。
特開2003−85586公報 特表2011−515765公報
しかしながら、曲面スクリーン等のプロジェクション用のスクリーンに対する投影画像の歪み補正に対して、テッセレーション等による頂点分割処理を利用する技術については提案されていなかった。
本発明の幾つかの態様によれば、頂点分割処理を有効利用した投影画像の歪み補正を実現できる画像生成システム及びプログラム等を提供できる。
本発明の一態様は、頂点分割数の設定処理を行う頂点分割数設定部と、オブジェクト空間内の3次元オブジェクトに対して、前記頂点分割数設定部で設定された前記頂点分割数で頂点分割処理を行う頂点分割処理部と、前記頂点分割処理後の前記3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、プロジェクション用のスクリーンとの交点位置を求め、求められた前記交点位置に基づいて、前記3次元オブジェクトに対応する描画オブジェクトについての、描画バッファでの頂点位置を求める頂点位置演算部と、求められた前記描画オブジェクトの前記頂点位置に基づいて、前記描画オブジェクトを前記描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する描画部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、頂点分割処理後の3次元オブジェクトの頂点位置に基づいて、描画バッファでの描画オブジェクトの頂点位置が求められて、3次元オブジェクトに対応する描画オブジェクトが描画バッファに描画されて、投影画像が生成される。そのとき、例えばオブジェクト空間内での直線が、描画バッファ上においても直線となることで、歪んだ画像が観察されてしまうような事態の発生を抑制できる。そして、頂点分割処理を有効利用した投影画像の歪み補正を実現できる画像生成システム等の提供が可能になる。
また本発明の一態様では、前記頂点分割処理の対象となる前記3次元オブジェクト内の線分を構成する2つの頂点を第1、第2の頂点とし、前記第1の頂点と前記仮想カメラの位置を結ぶ第1の直線と前記第2の頂点と前記仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、前記頂点分割数をmとした場合に、前記頂点分割数設定部は、前記角度θに応じて前記頂点分割数mを設定してもよい。
このようにすれば、例えば角度θが大きい場合には、頂点分割数mを多くし、角度θが小さい場合には、頂点分割数mを少なくするなどの頂点分割数の設定処理が可能になり、無駄な処理負荷が生じるのを抑制しながら、投影画像の適正な歪み補正を実現できるようになる。
また本発明の一態様では、前記頂点分割数設定部は、前記角度θが第1の角度θ1である場合に、前記頂点分割数mを第1の分割数m1に設定し、前記角度θが第2の角度θ2(θ2<θ1)である場合に、前記頂点分割数mを第2の分割数m2(m2≦m1)に設定してもよい。
このようにすれば、例えば仮想カメラに近い位置に配置される3次元オブジェクトについては、頂点分割数が多くなり、仮想カメラから遠い位置に配置される3次元オブジェクトについては、頂点分割数が少なくなるというような頂点分割数の設定処理の実現が可能になる。
また本発明の一態様では、前記頂点分割数設定部は、前記角度θに対する前記頂点分割数mの設定を、前記頂点分割処理の対象となる前記3次元オブジェクトの頂点の前記スクリーンへの投影位置、前記仮想カメラの位置情報、前記仮想カメラの前記位置情報の時間変化情報、プロジェクタの位置情報、前記プロジェクタの前記位置情報の時間変化情報、前記スクリーンの形状、前記スクリーンの前記形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させてもよい。
このようにすれば、様々な状況に柔軟に対応した頂点分割数の設定処理を実現できるようになる。
また本発明の一態様では、前記頂点分割処理の対象となる前記3次元オブジェクト内の線分を構成する2つの頂点を第1、第2の頂点とし、前記第1の頂点と前記仮想カメラの位置を結ぶ第1の直線と前記第2の頂点と前記仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、前記頂点分割数をmとし、頂点分割数設定の基準となる角度をεとした場合に、前記頂点分割数設定部は、(θ/m)<εとなるように前記頂点分割数mを設定してもよい。
このように角度εを基準にして頂点分割数を設定すれば、頂点分割数の設定処理を簡素な処理で実現して、投影画像の歪み補正を実現できるようになる。
また本発明の一態様では、前記スクリーンでの前記投影画像のピクセルの大きさを前記仮想カメラの位置から見込む角度をδとした場合に、前記頂点分割数設定部は、前記角度δを基準にして設定される前記角度εを用いて、前記頂点分割数mを設定してもよい。
このようにすれば、投影画像のピクセルのスクリーンでの大きさが投影位置によって異なることを適正に反映した投影画像の歪み補正を実現できる。
また本発明の一態様では、前記頂点分割数設定部は、前記角度εを、前記頂点分割処理の対象となる前記3次元オブジェクトの頂点の前記スクリーンへの投影位置、前記仮想カメラの位置情報、前記仮想カメラの前記位置情報の時間変化情報、プロジェクタの位置情報、前記プロジェクタの前記位置情報の時間変化情報、前記スクリーンの形状、前記スクリーンの前記形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させてもよい。
このようにすれば、様々な状況に柔軟に対応した角度εの設定処理を実現できるようになる。
また本発明の一態様では、前記描画部は、前記スクリーンの形状に対応するスクリーンモデルオブジェクトを前記仮想カメラの視点座標系で描画することで、ピクセルごと或いは前記スクリーンモデルオブジェクトの頂点ごとに奥行き値が設定された奥行き画像を生成し、前記頂点位置演算部は、前記3次元オブジェクトの頂点の第1、第2の座標を、前記視点座標系への射影変換行列で変換し、変換後の前記第1、第2の座標に基づいて前記奥行き画像の前記奥行き値を参照することで、前記スクリーンとの前記交点位置を求めてもよい。
このようにすれば、例えばスクリーンの形状が予め形状データとして分かっている場合等に、高速且つ正確に、投影画像の歪み補正を実現することが可能になる。
また本発明の一態様では、前記スクリーンは、1つの曲面又は複数の面により構成されるスクリーンであってもよい。
本実施形態の画像生成システムを適用したゲームシステムの一例。 本実施形態の画像生成システムを適用したゲームシステムの鉛直断面図。 本実施形態の画像生成システムの構成例。 描画バッファのピクセル単位での歪み補正手法の説明図。 ピクセル単位での歪み補正に代理平面を用いる手法の説明図。 ピクセル単位での歪み補正に代理平面を用いる手法での描画バッファ、UVマップ、レンダーテクスチャの関係を示す図。 代理平面を用いる手法の問題点についての説明図。 代理平面を用いる手法の問題点についての説明図。 オブジェクトの頂点単位での歪み補正手法の説明図。 オブジェクトの頂点単位での歪み補正手法の問題点についての説明図。 テッセレータ等が設けられたGPUの構成例。 本実施形態の手法の説明図。 図13(A)、図13(B)は頂点分割数の設定手法の説明図。 頂点分割数の設定手法の説明図。 頂点分割数設定の基準となる角度εの設定手法の説明図。 頂点分割数設定の基準となる角度εの設定手法の説明図。 本実施形態の処理を説明するフローチャート。 図18(A)〜図18(C)は立体視への適用例の説明図。 図19(A)、図19(B)はプロジェクションマッピング用の変換データをスクリーンのモデルデータから作成する手法の説明図。 プロジェクションマッピング用の変換データをスクリーンのモデルデータから作成する手法の説明図。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に、本実施形態の画像生成システムを適用したゲームシステム1の構成例を示す。図2は、このゲームシステム1の鉛直断面図である。
本実施形態のゲームシステム1は、店舗等に設置されてカーレースゲームを実行する業務用のゲームシステムであり、レーシングカーの運転席を模擬したプレーヤシート1002と、ゲーム画面を表示する曲面形状のスクリーン1004と、スクリーン1004に画像(映像)を投影するプロジェクタ1006と、ゲーム音を出力するスピーカ(不図示)と、プレーヤがゲーム操作を入力するためのハンドル1008、アクセルペダル1010、ブレーキペダル1009、シフトレバー(不図示)と、制御基板1020とを備えている。
プレーヤシート1002は、着座したプレーヤの想定正視方向がスクリーン1004の中央付近を向くように、その向きや高さが調整されて設けられている。本実施形態では、着座したプレーヤの正面方向を想定正視方向としている。曲面スクリーン1004は、プレーヤシート1002に着座したプレーヤの正面方向(想定正視方向)に対して凸形状に形成されている。
プロジェクタ1006は、投影装置の一種であり、プレーヤシート1002の後方に設置された支柱1012や筐体フレーム1014に支持されて、プレーヤシート1002の上方であってプレーヤシート1002に着座したプレーヤに干渉しない位置に、その投影中心方向がスクリーン1004の中心付近を向くように設置されている。即ち、投影中心方向がプレーヤの想定正視方向と曲面スクリーンとの交点位置に向くように設置される。また、プロジェクタ1006には、投影レンズとして広角レンズが取り付けられており、この広角レンズを通して、投影画像がスクリーン1004の投影面全体に投影される。
制御基板1020には、CPUやGPU、DSP等の各種マイクロプロセッサ、ASIC、VRAMやRAM、ROM等の各種ICメモリが実装されている。そして、制御基板1020は、ICメモリに記憶されたプログラムやデータ、ハンドル1008、アクセルペダル1010、ブレーキペダル1009等からの操作信号等に基づいて、カーレースゲームを実現するための各種処理を行う。
プレーヤは、プレーヤシート1002に着座して、スクリーン1004に表示されるゲーム画面を見ながら、スピーカからのゲーム音を聞きつつ、ハンドル1006、アクセルペダル1010、ブレーキペダル1009を操作してカーレースゲームを楽しむ。
本実施形態のカーレースゲームでは、オブジェクト空間(仮想3次元空間)に、レースコース等の背景オブジェクトが配置されてゲーム空間が構成される。このオブジェクト空間内には、プレーヤカーや他プレーヤカー等の各種オブジェクトが配置されると共に、プレーヤの視点位置に仮想カメラが配置される。そして、この仮想カメラから見たオブジェクト空間の画像が、ゲーム画像として、プロジェクタ1006によってスクリーン1004に投影(表示)される。
図3に本実施形態の画像生成システムのブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図3に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、プレーヤが操作データを入力するためのものである。図1、図2のゲームシステム1に画像システムを適用した場合には、操作部160は、ハンドル1008、アクセルペダル1010、ブレーキペダル1009等により実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を表示するものである。図1、図2のゲームシステム1に画像生成システムを適用した場合には、表示部190は、液晶プロジェクタにおけるLCDや、DLPプロジェクタにおけるDMDなどにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、頂点分割数設定部110、頂点分割処理部112、頂点位置演算部114、描画部120、音生成部130を含む。なおこれらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、移動体(車、飛行機、人、動物、ロボット、船舶機等)、マップ(地形)、建物、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
移動体演算部106は、車、飛行機等の移動体(移動体オブジェクト)を移動させるための制御処理を行う。また移動体を動作させるための制御処理を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラにより移動体を後方から撮影する場合には、移動体の位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られた移動体の位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態の画像生成システムでは、図1、図2のスクリーン1004に投影する投影画像を生成するために、頂点分割数設定部110、頂点分割処理部112、頂点位置演算部114、描画部120が設けられる。
頂点分割数設定部110は、頂点分割数の設定処理を行う。即ち、頂点分割数を決定して、頂点分割処理部112に対して、頂点分割処理での頂点分割数を指示する。頂点分割処理部112は、オブジェクト空間内の3次元オブジェクトに対して、頂点分割数設定部110で設定された頂点分割数で頂点分割処理を行う。具体的には、3次元オブジェクトを構成する各ポリゴン(プリミティブ)についての頂点分割処理を行う。
頂点位置演算部114は、3次元オブジェクトに対応する描画オブジェクト(2次元オブジェクト)の頂点位置の演算処理を行う。描画部120は、求められた頂点位置に基づいて描画オブジェクトを描画バッファ176(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する処理を行って、図1、図2のスクリーン1004に投影される投影画像を生成する。
具体的には頂点位置演算部114は、頂点分割処理後の3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、プロジェクション用のスクリーンとの交点位置を求める。このプロジェクション用のスクリーンは、図1、図2のスクリーン1004に対応して、仮想3次元空間であるオブジェクト空間に配置設定される投影画像生成用の仮想的なスクリーンであり、この形状に合わせて歪み補正処理(プロジェクションマッピング処理とも呼ばれる)が行われることになる。このプロジェクション用のスクリーンは、1つの曲面又は複数の面(曲面、平面)により構成できる。そして頂点位置演算部114は、求められた交点位置に基づいて、3次元オブジェクト(3次元ポリゴン)に対応する描画オブジェクト(描画ポリゴン)についての、描画バッファ176での頂点位置を求める。なお、3次元オブジェクトは、3次元空間(オブジェクト空間)に配置されるオブジェクトを意味し、例えばその頂点の座標値として3次元の座標値(X、Y、Z座標値)を有するオブジェクトである。一方、描画オブジェクトは、例えばその頂点の座標値として2次元の座標値(X、Y座標)を有するオブジェクトである。
描画部120は、求められた描画オブジェクトの頂点位置に基づいて、描画オブジェクトを描画バッファ176に描画する処理を行って、プロジェクション用の投影画像を生成する。生成された投影画像は、図1、図2のプロジェクタ1006により、スクリーン1004に投影される。これによりプレーヤは、仮想カメラから見たオブジェクト空間の画像を、ゲーム画像として見ることが可能になる。
ここで、頂点分割処理の対象となる3次元オブジェクト内の線分を構成する2つの頂点を第1、第2の頂点とし、第1の頂点と仮想カメラの位置を結ぶ第1の直線と第2の頂点と仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、頂点分割数をmとしたとする。この場合に頂点分割数設定部110は、角度θに応じて頂点分割数mを設定する。
具体的には頂点分割数設定部110は、角度θが第1の角度θ1である場合に、頂点分割数mを第1の分割数m1に設定する。また角度θが第2の角度θ2(θ2<θ1)である場合に、頂点分割数mを第2の分割数m2(m2≦m1)に設定する。即ち、角度θが小さいほど頂点分割数mが少なくなるように(角度θが大きいほど頂点分割数mが多くなるように)、頂点分割数mを設定する。ただし、角度θは実数であるのに対し、分割数は実質的に自然数であることから、θ2<θ1でもm2=m1とする場合も多いため、m2≦m1と記載している。
この場合に頂点分割数設定部110は、角度θに対する頂点分割数mの設定を、頂点分割処理の対象となる3次元オブジェクトの頂点のスクリーンへの投影位置、仮想カメラの位置情報、仮想カメラの位置情報の時間変化情報、プロジェクタの位置情報、プロジェクタの位置情報の時間変化情報、スクリーンの形状、スクリーンの形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させてもよい。
例えば3次元オブジェクトの頂点のスクリーンへの投影位置が第1の位置(例えばスクリーンの上方部や中央部)である場合と、第2の位置(例えばスクリーンの下方部)である場合とで、頂点分割数mを異ならせる。或いは、仮想カメラ(プレーヤ視点)の位置情報やその時間変化情報に応じて、頂点分割数mを異ならせる。例えば仮想カメラの位置が変化して、ゲームシーン(ゲームステージ)等が変化したと考えられるような場合に、それに応じて頂点分割数mを変化させる。或いは、仮想カメラの位置情報の時間変化情報(移動速度、加速度等)に応じて、頂点分割数mを異ならせる。例えば仮想カメラの移動速度が速い場合には頂点分割数mを少なくする。また移動速度が遅い場合には頂点分割数mを多くする。
或いは、プロジェクタの位置情報に応じて頂点分割数mを変化させたり、プロジェクタの位置情報が動的に変化する場合に、その位置情報の時間変化情報(移動速度等)に応じて頂点分割数mを変化させる。或いは、スクリーンの形状に応じて頂点分割数mを変化させたり、スクリーンの形状が動的に変化する場合に、その形状の時間変化情報(形状の変化速度等)に基づいて頂点分割数mを変化させる。或いは、描画部120等での描画負荷に応じて頂点分割数mを異ならせる。例えば描画負荷が重い場合には頂点分割数mを少なくする。また描画負荷が軽い場合には頂点分割数mを多くする。或いは、時間経過等の時間要素に基づいて頂点分割数mを変化させる。例えばゲーム空間や現実空間での時間経過に応じて頂点分割数mを動的に変化させる。或いは、3次元オブジェクトの種類等の属性に応じて頂点分割数mを異ならせる。例えば3次元オブジェクトごとに頂点分割数mを異ならせ、より高精細な画像が要求される3次元オブジェクト(例えばメインの移動体)については頂点分割数mを多くし、それほど精細さを要求されない3次元オブジェクトについては頂点分割数mを少なくする。
また、上述のように3次元オブジェクトの第1の頂点と仮想カメラの位置を結ぶ第1の直線と、3次元オブジェクトの第2の頂点と仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、頂点分割数設定の基準となる角度をεとしたとする。この場合に頂点分割数設定部110は、(θ/m)<εとなるように頂点分割数mを設定する。即ち、(θ/m)が角度εを越えないように、頂点分割数mを制御する。
例えばスクリーンでの投影画像のピクセルの大きさを仮想カメラの位置から見込む角度(プレーヤが見込む角度)をδとしたとする。この場合に頂点分割数設定部110は、角度δを基準にして設定される角度εを用いて、頂点分割数mを設定する。例えばε=k×δ(例えばk=1)と表し、この角度εを、頂点分割数設定の基準角度として、頂点分割数mを設定する。
この場合に頂点分割数設定部110は、角度εを、頂点分割処理の対象となる3次元オブジェクトの頂点のスクリーンへの投影位置、仮想カメラの位置情報、仮想カメラの位置情報の時間変化情報、プロジェクタの位置情報、プロジェクタの位置情報の時間変化情報、スクリーンの形状、スクリーンの形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させてもよい。
例えば3次元オブジェクトの頂点のスクリーンへの投影位置が第1の位置である場合と、第2の位置である場合とで、角度εを異ならせる。或いは、仮想カメラの位置情報やその時間変化情報に応じて、角度εを異ならせる。例えば仮想カメラの位置が変化して、ゲームシーン等が変化したと考えられる場合に、それに応じて角度εも変化させる。或いは、仮想カメラの位置情報の時間変化情報に応じて、角度εを異ならせる。例えば仮想カメラの移動速度が速い場合には角度εを大きくして、例えば頂点分割数mが少なくようにする。また移動速度が遅い場合には角度εを小さくして、頂点分割数mが多くなるようにする。なお、仮想カメラの位置が変化するケースとしては、ゲーム内での仮想カメラの移動による場合のほかに、プレーヤ自身の視点位置が変化した場合に、それをヘッドトラッキング等によって検出し、仮想カメラの位置に反映させる場合などが考えられるが、ここではその片方のみを考慮しても良いし、両方を考慮しても良い。例えば、プレーヤ自身の視点位置の変化の影響が小さいと見なせる場合や、プレーヤ自身の視点位置の検出ができない場合には、それを仮想カメラの位置に反映させなくても良い。或いは、プロジェクタの位置情報に応じて角度εを変化させたり、プロジェクタの位置情報が動的に変化する場合に、その位置情報の時間変化情報に応じて角度εを変化させる。或いは、スクリーンの形状に応じて角度εを変化させたり、スクリーンの形状が動的に変化する場合に、その形状の時間変化情報に基づいて角度εを変化させる。或いは、描画部120等での描画負荷に応じて角度εを異ならせる。例えば描画負荷が重い場合には、角度εを大きくして、頂点分割数mが少なくなるようにする。また描画負荷が軽い場合には、角度εを小さくして、頂点分割数mが多くなるようにする。或いは、時間経過等の時間要素に基づいて角度εを変化させる。例えばゲーム空間や現実空間での時間経過に応じて角度εを動的に変化させる。或いは、3次元オブジェクトの種類等の属性に応じて角度εを異ならせる。例えば3次元オブジェクトごとに角度εを異ならせ、より高精細な画像が要求される3次元オブジェクトについては、角度εを小さくして、頂点分割数mが多くなるようにし、それほど精細さを要求されない3次元オブジェクトについては、角度εを大きくして、頂点分割数mを少なくなるようにする。
また描画部120は、スクリーンの形状に対応するスクリーンモデルオブジェクトを仮想カメラの視点座標系で描画することで、ピクセルごとに奥行き値が設定された奥行き画像、或いはスクリーンモデルオブジェクトの頂点ごとに奥行き値が設定されたメッシュ情報を生成する。例えばスクリーンオブジェクトを仮想カメラの視点座標系で描画することで、Zバッファ178に奥行き画像を生成する。そして頂点位置演算部114は、3次元オブジェクトの頂点の第1、第2の座標を、視点座標系への射影変換行列で変換する。そして、変換後の第1、第2の座標(X、Y座標)に基づいて奥行き画像の奥行き値(Z値)を参照することで、スクリーンとの交点位置を求める。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。なお、以下では、プロジェクション用のスクリーンが曲面のスクリーン(ドーム状のスクリーン)である場合を主に例にとり説明するが、本実施形態はこれに限定されない。プロジェクション用のスクリーンは、単一平面ではないスクリーンの全般を指すものである。例えばプロジェクション用のスクリーンは、1つの曲面又は複数の面(平面、曲面)により構成されるスクリーンであればよい。即ち、当該スクリーンとしては、1つの曲面で構成されるスクリーン、複数の平面で構成されるスクリーン、複数の曲面で構成されるスクリーン、複数の平面及び曲面で構成されるスクリーンなどを想定できる。
2.1 ピクセル単位での歪み補正手法
ドーム状(曲面)のスクリーンに画像を投影する場合に、プロジェクタの位置とプレーヤ(観察者)の位置が離れていると、画像の歪みが目立ってしまう。そこで、この歪みを予め考慮に入れて、プロジェクタからの投影画像(プロジェクタの描画バッファに描く画像)を生成することで、プレーヤから見て歪みのない映像を提示することが可能になる。
この場合に、スクリーンが単一の平面であれば、歪みは線形(パースによる歪み)となるため、射影変換行列を1つ用いるだけで簡単に補正することが可能になる。
しかし、単一平面ではないスクリーン(1つの曲面又は複数の面で構成されるスクリーン)である場合には、線形ではない歪みが加わるため、射影変換行列を1つ用いるだけという簡単な補正手法では、歪みを補正できず、画像の部分に応じて、細かく補正を行う必要がある。
このような歪み補正を実現する手法として、描画バッファのピクセル単位で歪み補正を行う手法と、3次元オブジェクトの頂点単位で歪み補正を行う手法が考えられる。まず、ピクセル単位での歪み補正手法について説明する。
描画バッファのピクセル単位での歪み補正手法では、図4や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。
(1)描画バッファ(フレームバッファ)上のピクセルPX(XP,YP)が、プロジェクタのレンズを通して射出される光線RYを求める。
(2)その光線RYが、スクリーンSCと交差する交点PS(XS,YS,ZS)の位置を求める。例えばスクリーンSCが楕円面の方程式等の数式で表される場合には、直線RYを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。
(3)この交点PS(XS,YS,ZS)の色は、プレーヤ(観察者)がオブジェクト空間(仮想空間)を観察しているときの色である必要がある。そこで、プレーヤの代表視点に対応する仮想カメラVCの位置VPと、交点PS(XS,YS,ZS)の位置を結ぶ直線LVを求める。
(4)この直線LVを視線としてオブジェクト空間の情報から、描画バッファ上の投影画像のピクセルの色を決定する。例えば、オブジェクト空間で最初に到達する3次元オブジェクトOB上の点PB(XB,YB,ZB)の位置を求め、それに応じて、描画バッファ上の投影画像のピクセルの色を決定する。
この場合に、ピクセル単位での歪み補正手法の改良手法では、上記の最後の(4)において、直線LVと3次元オブジェクトOBとの交点PB(XB,YB,ZB)の色を求める代わりに、あらかじめ描画しておいた平面(レンダーテクスチャ)との交点(レンダーテクスチャの座標で(U,V))の色を用いて、投影画像のピクセルの色を決定する。レンダーテクスチャは、予め、投影面になるべく近い平面(以下、代理平面と呼ぶ)を選んでおき、そこに通常の描画方法、すなわち、平面を投影面とする描画を行うことで作成できる。
図5に、このような代理平面PL1、PL2の一例を示す。点PPが直線LVと代理平面PL1(PL2)との交点である。
レンダーテクスチャの参照位置は、視点やプロジェクタの位置が変化しない限り、最初に1度だけ計算しておけばよい。そのデータを保持しておくための代表的な方法としては、描画バッファの1ピクセルごとに、レンダーテクスチャのどの位置(U,V)のピクセル値を参照するかを、1枚のテクスチャとして保持しておく方法がある。このテクスチャを、「UVマップ」と呼ぶ。図6に、プロジェクタの描画バッファとUVマップとレンダーテクスチャの関係を示す。
図6のレンダーテクスチャの対応点(UV座標)を、描画バッファ上の全ピクセルについて求めて保持しておくことは、大きなリソースを必要とする。その大きなリソースを用意する余裕がない場合には、スクリーンSC上に適当に配置された代表頂点について、描画バッファ上の対応点(XP,YP)と、レンダーテクスチャ上の対応点(U,V)を求め、それらをつないだ三角形ポリゴンによるメッシュを作っておく。そして、三角形ポリゴンを描画するときに、三角形ポリゴンの頂点に情報として記録された(U,V)座標を参照し、三角形ポリゴン内部の点についてはそれらから補間された(U,V)座標を用いるようにする。このようにすれば、大幅にリソースを節約することが可能になる。
さて、ピクセル単位での歪み補正手法に共通する問題点として、画質(解像度)が局所的に低下するということが挙げられる。即ち、図7のG1に示すように、スクリーンSCの面の法線NS1が、代理平面PLの法線NPと同じかそれに近い状態である部分については、高い画質が保持される。しかしながら、図7のG2に示すように、スクリーンSCの面の法線NS2と代理平面PLの法線NPの方向が離れるにつれて、画質の低下が顕著となる。
これは図8に示すように、法線の方向が離れるにつれて、プロジェクタPJの描画バッファ上では隣接している画素が、代理平面PLを描画したレンダーテクスチャ上では隣接しなくなり、その離れ方も大きくなるためである。レンダーテクスチャ上での画素の離れ方が大きいと、バイリニア等の画素補間が効果的に働かないため、ジャギーが目立った画像となってしまう。
このような問題を解決する手法として、代理平面の数を増やす手法が考えられる。しかしながら、この手法によると、代理平面が増えた分、描画回数を増やす必要があるため、描画負荷が過大になってしまう。
2.2 頂点単位での歪み補正手法
次に描画オブジェクトの頂点単位で歪み補正を行う手法について説明する。この手法では、オブジェクト空間内の3次元オブジェクトの頂点を、プロジェクタの描画バッファ上の点に変換する。具体的には図9や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。これは図4の手法の処理を逆の順で行うことに相当する。
(1)オブジェクト空間内の3次元オブジェクトOBの頂点V(XV,YV,ZV)の位置と、プレーヤの代表視点に対応する仮想カメラVCの位置VPとを結ぶ直線LVを求める。
(2)求められた直線LVとスクリーンSCの交点PS(XS,YS,ZS)の位置を求める。例えばスクリーンSCが楕円面の方程式等の数式で表される場合には、直線LVを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。
(3)交点PS(XS,YS,ZS)の位置とプロジェクタJPの位置を結ぶ直線LRを求める。
(4)直線LRに対応する描画バッファ上の点PD(XD,YD)の位置を求める。この点PDは、3次元オブジェクトOBに対応する描画バッファ上の描画オブジェクトOBDの頂点に相当する。なお直線LRから点PDを求める際には、プロジェクタPJのレンズの特性や配置等の光学系の情報を用いる。
以後は、描画オブジェクトOBDの頂点と頂点を結んで色を塗るラスタライズ処理を行うことで、描画バッファ上に投影画像を生成できる。
この頂点単位での歪み補正手法では、3次元オブジェクトOBの頂点を、1つ1つ描画バッファ上の点に座標変換する。例えば、図10においてオブジェクト空間内の点P1と点P2を結ぶ直線LN(線分)については、その点P1、P2のそれぞれが描画バッファ上の点に座標変換される。その後は、点P1、P2の間は、描画バッファ上では直線であるとして描画処理が行われる。即ち図10のA1において、描画バッファ上の点PD1はオブジェクト空間内の点P1を座標変換した点であり、描画バッファ上の点PD2はオブジェクト空間内の点P2を座標変換した点である。従って、オブジェクト空間内での直線LNは、描画バッファ上では点PD1とPD2を結ぶ直線LNDとして描画される。
しかしながら、プロジェクション用のスクリーンSCが平面ではない場合には、図10のA2に示すように、オブジェクト空間内の直線LNは、描画バッファ上において直線にはならず、曲線CVになる。従って、描画バッファ上での補間としてA1に示すような直線補間を用いると、プレーヤには、それが歪んだ画像として観察されてしまう。オブジェクト空間内の直線LNが、プレーヤが見た時にも直線として観察されるようにするためには、直線LNを、図10のA2に示すように描画バッファ上では曲線CVとして描画する必要がある。そのためには、例えばオブジェクト空間内の直線LNを細かく分割し、A3に示すように、分割後の全ての点を描画バッファ上に座標変換してつなげることで、オブジェクト空間内の直線LNが、プレーヤが見た時にも直線として観察されるようになる。更に、ポリゴン内部のテクスチャが歪まずに観察されるようにするためには、ポリゴン内部についても十分細かく分割しておく必要がある。
しかしながら、3次元オブジェクト(モデルオブジェクト)を構成する大きいポリゴンを、予め細かく分割しておくことは、手間もかかるし、データ量も増えてしまうという問題がある。更に、3次元オブジェクトが遠くの位置に小さく見えている状態においては、ポリゴンを細かく分割しておくことは無駄であり、描画時に不必要な負荷をかけてしまう結果となる。
2.3 GPUによるシェーダプログラムの変遷
かつてのGPUによるシェーダプログラムのモデルは、頂点シェーダとピクセル・シェーダによるものであった。頂点シェーダは、描画するオブジェクトのオブジェクト空間内での(X,Y,Z)座標を描画平面の(X,Y)座標に変換する。その後、その座標値をもとにラスタライズ処理が行われ、処理対象となる画素ごとに、ピクセル・シェーダが (X,Y)に対応するテクスチャ座標(U,V)の色などを参照して最終的なピクセルの色を決定する。例えば上述したピクセル単位での歪み補正手法は、ピクセル・シェーダを利用する手法であり、頂点単位での歪み補正手法は、頂点シェーダを利用するものである。
そして、現在のGPU(DirectX11準拠)では、図11に示すように、頂点シェーダ210で処理を行ってから、ラスタライザ218に(X,Y)座標を渡す前の段階に、ハル・シェーダ212、テッセレータ214、ドメイン・シェーダ216、ジオメトリ・シェーダ217等の各シェーダが追加されている。これらの追加された新たな機能によって、必要に応じて、描画時に頂点を増やしたり、ポリゴンのメッシュを細かく分割したりすることが可能となっている。
2.4 頂点単位での補正処理への頂点分割処理の適用
そこで本実施形態では、頂点単位での歪み補正手法に対して、GPUに新たに追加された機能である頂点分割処理(テッセレーション)等を適用して、図10で説明した問題点を解決している。
具体的には、まず、図3の頂点分割数設定部110が頂点分割数の設定処理を行う。この頂点分割数設定部110は、例えば図11のハル・シェーダ212により実現できる。このハル・シェーダ212はプログラマブル・シェーダであり、種々の処理をシェーダ言語によりプログラミングして実現できる。
次に頂点分割処理部112が、オブジェクト空間内の3次元オブジェクト(3次元ポリゴン)に対して、設定された頂点分割数での頂点分割処理(テッセレーション)を行う。この頂点分割処理部112は、例えば図11のテッセレータ214により実現できる。なおテッセレータ214に対する分割数の設定としては、ポリゴンのエッジでの分割数の設定とポリゴン内部での分割数の設定がある。ポリゴンにマッピングされるテクスチャが図10と同様の理由で歪んでしまう場合には、ポリゴン内部の分割数を大きな値に設定すればよい。
次に頂点位置演算部114が、頂点分割処理後の3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、プロジェクション用のスクリーンとの交点位置を求める。即ち図9の(1)、(2)に対応する処理を行う。そして頂点位置演算部114が、交点位置(図9のPS)に基づいて、3次元オブジェクト(OB)に対応する描画オブジェクト(OBD)についての、描画バッファでの頂点位置(PD)を求める。即ち図9の(3)、(4)に対応する処理を行う。この頂点位置演算部114は、例えば図11のドメイン・シェーダ216により実現できる。ドメイン・シェーダ216もプログラマブル・シェーダであり、種々の処理をシェーダ言語によりプログラミングして実現できる。なお、3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線を求め、プロジェクション用のスクリーンとの交点位置を求める処理等は、例えば仮想カメラのカメラ座標系(視点座標系)において実行される。
そして最後に描画部120が、求められた描画オブジェクトの頂点位置に基づいて、描画オブジェクトを描画バッファ176に描画する処理を行って、プロジェクション用の投影画像を生成する。即ち、描画バッファに射影された描画オブジェクトの頂点と頂点を結んで色を塗るラスタライズを行って、投影画像を生成する。この描画部120は、例えば図11のラスタライザ218やピクセル・シェーダ220により実現できる。
このように本実施形態では、GPUに新たに追加された機能を有効活用して、図10で説明した頂点単位での歪み補正手法における問題点を解決している。これにより、例えば、3次元オブジェクトを、予め多数の小さなポリゴンで分割したデータとして用意しておかなくても、テッセレーションにより描画時に動的に頂点分割処理を行うことで、歪みが補正されて画質の低下も抑制された投影画像を生成できるようになる。即ち、データ量の増加や処理負荷の増加を抑制しながら、歪みが少なく高い画質の投影画像を生成することが可能になる。
なお、本処理ではジオメトリ・シェーダ217は必須ではないが、別の処理を行う場合などに、本処理と併用して活用することはもちろん可能である。
2.5 頂点分割数の設定
次に本実施形態の頂点分割数の設定手法の詳細について説明する。前述のように頂点単位での歪み補正手法に頂点分割処理を適用した場合に、頂点分割数をどの程度細かくすれば十分なのかを決める基準が、曖昧となってしまうという課題がある。
そこで本実施形態では、このような頂点分割数の基準を決める手法として、以下に説明するような手法を採用している。
例えば図12において、頂点分割処理の対象となる3次元オブジェクトOB内の線分を構成する2つの頂点を第1、第2の頂点V1、V2とする。なお本実施形態では説明の簡素化のために3次元オブジェクトOBが1つの四角形のポリゴンで構成される場合を例にとり説明する。また第1の頂点V1と仮想カメラVCの位置VPを結ぶ第1の直線LN1と、第2の頂点V2と仮想カメラVCの位置VPを結ぶ第2の直線LN2とのなす角度をθとし、頂点分割数をmとする。
この場合に本実施形態では、角度θに応じて頂点分割数mを設定する。例えば角度θが大きければ、頂点分割数mを多くし、角度θが小さければ、頂点分割数mを少なくする。
例えば図13(A)では角度θ=θ1となっており、図13(B)では角度θ=θ2となっている。そして第1の角度θ1と第2の角度θ2の間には、θ2<θ1の関係が成り立っている。
この場合に本実施形態では、角度θ=θ1の場合には、頂点分割数mを第1の分割数m1に設定し、角度θ=θ2の場合には、頂点分割数mを、第1の分割数m1と同じか、それよりも少ない第2の分割数m2に設定している。例えば図13(A)ではm=m1=3となり、図13(B)ではm=m2=2となっており、m2≦m1の関係が成り立っている。即ち図13(A)では、3次元オブジェクトOB内の線分を構成する第1、第2の頂点V1、V2が3分割されて、新たな頂点V11、V12が生成されている。一方、図13(B)では、3次元オブジェクトOBの第1、第2の頂点V1、V2が2分割されて、新たな頂点V11が生成されている。なお、角度θは実数であるのに対し、分割数mは実質的に自然数であるという理由により、θ2<θ1であってもm2=m1となる場合も多いため、関係式はm2≦m1となる。
このようにすれば、図13(A)のように仮想カメラVCに近い位置に配置される3次元オブジェクトOBについては、頂点分割数m(ポリゴン分割数)が多くなり、図13(B)のように仮想カメラVCから遠い位置に配置される3次元オブジェクトOBについては、頂点分割数mが少なくなるという結果になる。従って、LOD (Level of Detail) の効果も得ることができ、描画効率を向上できるという利点がある。
また図14では、頂点分割数設定の基準となる角度ε(視角)を導入して、分割数mを決定している。即ち図14に示すように、(θ/m)<εの関係式が成り立つように、頂点分割数mを設定(決定)する。例えば図13(A)では、θが大きな角度θ1となっているため、(θ/m)<εの関係式を成り立たせるために、m=m1=3というように頂点分割数mを大きな値に設定する。一方、図13(B)では、θが小さな角度θ2となっているため、(θ/m)<εの関係式を成り立たせるために、m=m2=2というように頂点分割数mを小さな値に設定する。
このように角度εを基準にして頂点分割数mを設定すれば、頂点分割数mの設定処理を簡素な処理で実現して、図13(A)、図13(B)に示すようなLODの効果等も得ることが可能になる。
ここで図15に示されるように、角度εは、スクリーンSCでの投影画像のピクセルPXの大きさを仮想カメラVCの位置から見込む角度δを基準にして設定することが望ましい。例えば図15ではε=δに設定されている。そして角度δを基準にして設定される角度εを用いて、頂点分割数mを設定する。
例えばε=k×δ(例えばk≦1)の関係式でεを設定する。具体的には図15に示すようにε=δ(k=1)に設定する。或いは、ε=δ/2(k=1/2)に設定してもよい。このように角度εを角度δに基づき設定する理由は、仮想カメラVCから見込む角度が1ピクセルよりも小さくなるような角度となる頂点分割処理を行っても、処理負荷だけが重くなって、歪み補正や高画質化を実現する上で無意味な処理になってしまうおそれがあるからである。また、画質を優先するのであればk≦1とするのが適切であるが、処理速度を優先したいような場合には、k>1としてももちろん構わない。
なお、図16のC1、C2に示すように、スクリーンSC上での投影画像のピクセルの大きさは、スクリーンSCへの投影位置によって異なる。例えば図16のC2に示すようにプロジェクタPJからスクリーンSCへの距離が遠い場合には、C1に示すように距離が近い場合に比べて、スクリーンSC上での投影画像のピクセルの大きさが大きくなる。従って、投影画像のピクセルの大きさを仮想カメラVCから見込む角度δについても、プロジェクタPJと仮想カメラVCが異なる位置にあることから、C1の場合とC2の場合とで異なり、C1ではδ=δ1となり、C2ではδ=δ2となり、δ1<δ2の関係式が成り立つ。
このように、投影画像のピクセルの大きさはスクリーンへの投影位置によって異なるため、角度εについても投影位置に応じて変化させることが望ましい。具体的には、頂点分割処理の対象となる3次元オブジェクトの頂点のスクリーンへの投影位置に応じて、角度ε(頂点分割数)を変化させる。例えばC1の投影位置では角度εを小さくし、C2の投影位置では角度εを大きくする。
このように角度εを可変にすれば、例えばプロジェクタPJを取り換えるなどして解像度が変化した場合にも、プロジェクタPJの性能(解像度)を必要十分に発揮した描画を行うことが可能になる。
この場合に、例えば、仮想カメラVCの位置情報やその時間変化情報、或いは描画負荷に基づいて、角度ε(頂点分割数)を変化させてもよい。例えば、仮想カメラVCの位置が変化し、ゲームシーン(ゲームステージ)が変化したと考えられる場合には、そのゲームシーンに適した角度εに設定する。また仮想カメラVCの移動速度(位置情報の時間変化情報)や描画負荷に応じて、角度ε(頂点分割数)を変化させる。例えば、前述のようにε=k×δと表される場合に、仮想カメラVC(主人公カメラであり、その位置設定にはプレーヤの視点位置をヘッドトラッキング等で検出して反映させても良い)の移動速度が速い場合や、描画負荷が重い場合に、kを大きくして角度εを大きくする。前述のように、(θ/m)<εの関係式により頂点分割数mを設定する場合には、角度εが大きくなれば、同じ角度θに対して頂点分割数mは小さな値に設定されるようになる。従って、高い画質が求められないシーンにおいて高フレームレートを維持することが可能になる。逆に、比較的ゆっくりしたカメラワークのシーンなど、高フレームレートよりも画質が求められる場面においては、kを小さくして、角度εを小さくすればよい。
或いは、プロジェクタの位置情報及びその時間変化情報や、スクリーンの形状及びその時間変化情報に応じて、角度ε(頂点分割数)を変化させてもよい。例えばプロジェクタの位置情報に応じて角度εを変化させれば、プロジェクタの設置位置等に応じた最適な角度εに設定できる。またプロジェクタの位置情報やその時間変化情報や、スクリーンの形状やその時間変化情報に応じて、角度εを設定すれば、例えば建物等の構造物へのプロジェクションマッピングにおいて柔軟な対応が可能になる。例えば、プロジェクションマッピングの対象となる構造物の形状等が動的に変化する場合にも、これに対応できるようになる。
また、時間要素や3次元オブジェクトの属性に応じて、角度ε(頂点分割数)を変化させてもよい。このようにすれば、例えばゲーム空間における時間経過や、ゲームに登場する3次元オブジェクトの属性(種類)などに応じて、角度εを変化させることが可能になり、ゲーム用の投影画像の生成等に好適な手法を提供できる。
次に図17のフローチャートを用いて本実施形態の処理の詳細例を説明する。
まず、頂点のスクリーンへの投影位置、仮想カメラの位置情報又はその時間変化情報、プロジェクタの位置情報又はその時間変化情報、スクリーンの形状又はその時間変化情報、描画負荷、時間要素、或いは3次元オブジェクトの属性等に基づいて、角度εを設定する(ステップS1)。そして角度εに基づいて頂点分割数を設定する(ステップS2)。
次に、設定された頂点分割数で頂点分割処理を行う(ステップS3)。そして、頂点分割処理後の3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、スクリーンとの交点位置を求める(ステップS4)。
次に、求められた交点位置に基づいて、描画バッファでの描画オブジェクトの頂点位置を求める(ステップS5)。そして、求められた頂点位置に基づいてラスタライズを行って、投影画像を生成する(ステップS6)。
なお本実施形態の手法は立体視用の投影画像の生成にも適用できる。例えば立体視用の投影画像を生成する場合には、図18(A)に示すように左目用仮想カメラVCL(広義には第1視点用仮想カメラ)と右目用仮想カメラVCR(広義には第2視点用仮想カメラ)を用意する。そして、左目用仮想カメラVCL、右目用仮想カメラVCRのそれぞれを用いて、本実施形態で説明した手法により投影画像を生成することで、立体視用の投影画像を生成できる。
左目用仮想カメラVCL、右目用仮想カメラVCRの位置は、ヘッドトラッキング等により、プレーヤの左目および右目の位置を検出して設定しても良い。
また、プレーヤの左目および右目の位置の検出を行うことができない場合であっても、描画対象となる3次元オブジェクトの投影位置に応じて、プレーヤの視点位置はある程度推測できるので、それに合わせて左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定することもできる。例えば、図18(B)、図18(C)に示すように、描画対象となる3次元オブジェクトの投影位置に応じて左目用仮想カメラVCL、右目用仮想カメラVCRの位置(視点位置)を変化させてもよい。
例えば、図18(B)のD1に示す投影位置に投影されるような3次元オブジェクトについては、それを見るプレーヤ(視聴者)も、D1に示す投影位置の方向に顔を向けると考えられる。従って、図18(B)に示すように左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定して、立体視用の投影画像を生成する。
同様に、図18(C)のD2に示す投影位置に投影されるような3次元オブジェクトについては、それを見るプレーヤも、D2に示す投影位置の方向に顔を向けると考えられる。従って、図18(C)に示すように左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定して、立体視用の投影画像を生成する。こうすることで、プレーヤの視線方向等に応じた最適な投影画像を生成できるようになる。
なお、実際に立体視映像を観察するための手段としては、メガネ方式(具体的には、偏光方式、時分割方式、分光方式等)および裸眼方式等が考えられる。それぞれに特徴があり、有利・不利となる環境条件もそれぞれ異なる。実施に当たっては、スクリーンの形状や表示内容、インタラクションの特徴などの環境条件に合わせて、適切なものを用いればよい。
2.6 リアルタイムプロジェクションマッピング
次に、プロジェクションマッピング用の変換データをモデルデータから高速かつ正確に作成する手法について説明する。
説明を簡単にするために、図19(A)に示すようなモデルを考える。プロジェクション用のスクリーンは立方体形状であるとする。もちろん、実際のスクリーンはもっと複雑な形状であることを想定している。このスクリーンのことを、立体スクリーンSCSと呼ぶことにする。また、表示したい仮想オブジェクトOBSは球体のオブジェクトであり、ポリゴンのメッシュで表されているとする。そして図19(B)に示すように、仮想オブジェクトOBSが、あたかも立体スクリーンSCSの中に入っているかに見えるように、描画を行いたいとする。
さて、ドーム投影は、スクリーン形状として楕円面を用いることで、近似できる場合が多く、楕円面の数式は単純なものであるので、視線との交点、プロジェクタの投射直線との交点などを求めることも容易である。しかし、一般的なプロジェクションマッピングの場合、立体スクリーンの形状モデルは、単純な数式で表すことができない場合が多いという問題がある。また、ドーム投影の場合であっても、製造上の都合等により、楕円面とは部分的に形状が異なる場合があり、その部分については歪み補正が難しいという問題がある。
このような問題を解決するために、建物等へのプロジェクションマッピングを行う際には、実際に投影画像を映してみて調整するという手法がしばしば用いられる。
例えば図5で説明したドーム投影の場合と同様に、仮想オブジェクトをいったん投影するための代理平面を適切に選ぶ。そしてプレーヤ(観察者)の位置から、立体スクリーンの形状そのものを、代理平面にレンダリングした画像を作成する。このとき、立体スクリーンの形状のエッジを明るく強調したような画像にしておくと、後の調整がしやすい。
この画像を、実際にプロジェクタからスクリーンに向かって投影する。この場合に、プレーヤの位置から見ると、立体スクリーンに投影されたエッジがずれている。そこで、このエッジがぴったり合うように、画像上の頂点を編集ソフトで動かす。この動かした画像は、前述の2.1で説明した、メッシュの頂点にUV座標を対応させたデータとなる(ここではそれを「メッシュ状のUVマップ」と呼ぶことにする)。以後は、CG画像を、代理平面を射影面として普通にレンダリングし、「メッシュ状のUVマップ」を用いて変換した画像を、プロジェクタで映せばよい。
この手法の問題点としては、毎回その場で合わせるために、準備に時間と労力がかかるというものが挙げられる。また、立体スクリーンが、複雑な凹凸を持つ形状である場合には、調整のための頂点数が多くなり、更に手間がかかる。或いは、複雑な凹凸部分の補正の精度が落ちるという問題もある。
そこで本実施形態では、立体スクリーンSCSの形状が、予め形状データとして分かっている場合に、頂点をいちいち手調整で合わせるような手間をかけることなく、高速かつ正確に、歪みの補正を行う手法を提供する。ここでは、図9のような頂点単位で歪み補正に対して適用する場合の手法について説明する。この手法では、図20や下記に示す(1)、(2)、(3)、(4)、(5)の処理をこの順で実行する。
(1)プレーヤの代表視点の位置に仮想カメラVCを置き、代理平面PLSを設定し、立体スクリーンSCSの形状をZバッファ法でレンダリングする。そのとき、Zバッファには、仮想カメラVCの位置から立体スクリーンSCSまでの距離が、奥行き画像として残るので、それから、立体スクリーンSCSの面の空間座標を求めることができる。これを、テクスチャとして保持しておく。
(2)仮想オブジェクトOBSの各頂点(X,Y,Z)を、(1)でレンダリングを行った際の射影変換行列と同じ射影変換行列で変換することで、(1)で保持していたテクスチャ上の位置(X1,Y1)を求める。
(3)位置(X1,Y1)に対応したテクスチャ上の空間座標値を参照すれば、各頂点と立体スクリーンSCSの交点の空間座標が分かる。
(4)上記の(3)で求められた交点と、プロジェクタPJを結ぶ直線LPSを求め、それに対応する描画バッファ上の位置(X,Y)を計算する。
(5)これで、各頂点の位置を描画バッファ上の位置 (X,Y)に変換できるので、それらをラスタライザに渡して、通常のレンダリング処理を行って、投影画像を生成して、プロジェクタPJにより投影する。この場合に、仮想オブジェクトOBSのポリゴンの頂点分割処理であるテッセレーションを、適宜、行うようにする。
このように図20の手法では、スクリーンの形状に対応するスクリーンモデルオブジェクト(SCS)を仮想カメラ(VC)の視点座標系で描画することで、ピクセルごと或いはスクリーンモデルオブジェクトの頂点ごとに奥行き値(Z値)が設定された奥行き画像(Zバッファのテクスチャ)を生成する。そして、3次元オブジェクト(OBS)の頂点の第1、第2の座標((X,Y))を、視点座標系(VCの座標系)への射影変換行列で変換し、変換後の第1、第2の座標((X1,Y1))に基づいて、奥行き画像(Zバッファのテクスチャ)の奥行き値を参照することで、スクリーン(SCS)との交点位置を求めている。
なお、実際には、立体スクリーンのセッティングによる位置や角度のずれ、また、プレーヤの位置やプロジェクタの位置のずれにより、ぴったり補正することは困難である。そこで、前述した手法と同様に、立体スクリーンそのもののエッジを目立たせた画像をレンダリングし、それをプロジェクタで映して合わせることが望ましい。
しかしながら本実施形態の手法では、立体スクリーンの形状データがある程度正確なものであれば、立体スクリーンの位置と方向、プロジェクタの位置と方向、プレーヤの代表視点の位置、といった、数少ないパラメータで調整することが可能となる。特に、立体スクリーンの形状が複雑な場合には、頂点の数が多くなるため、それを調整ポイントとしていちいち動かして合わせるよりも、はるかに少ない手間や時間で合わせることができる。
また、従来から用いられている別の方法として、プロジェクション用のスクリーンの形状を、距離計測機等を用いて測量することで形状データを作成し、本実施形態と同様に歪み補正を行う、というものがある。しかしこの場合には、測量上の誤差が含まれてしまうことら、正確な形状データを取得するのは難しく、結果として正確に歪み補正ができないという欠点がある。測量に時間をかければ形状データの精度を上げることはできるが、プロジェクション用のスクリーンの形状が変化するような場合に、リアルタイムで正確な歪み補正データを得ることは難しい。正確な形状データや動きの情報が予め得られているのであれば、本実施形態の方法を採用することで、リアルタイムでの歪み補正、すなわちプロジェクションマッピングが可能となる。
このように図20に示す本実施形態の手法によれば、従来では長時間をかけて行わなければならなかった、調整用のマップの作成を、一瞬(レンダリング1回)で行うことができるという利点がある。その優位性が発揮される例としては、立体スクリーン、プロジェクタ、プレーヤの3者のいずれか、或いは複数が同時に、動くような場合が挙げられる。
モーションセンサやヘッドトラッキングシステムを活用して、3者の位置や方向を正確に求めることができれば、以下のような応用が考えられる。
例えばフィギュアやプラモデルなどを立体スクリーンとして活用し、回転台の上に載せて、その回転角度に応じた補正画像を投影する。
或いは、ロボットを立体スクリーンとする。ロボットが動作したときの関節の角度などから、その時点における正確な形状(頂点の位置)を求め、それに応じた補正画像を投影する。
或いは、立体スクリーンに対し、回り込んでも影ができないように複数のプロジェクタを配置しておく。プレーヤに対してヘッドトラッキングを行い、動きに対応した補正画像を投影することで、立体スクリーンを回り込んでも自然に見えるようにする。
或いは、プレーヤが懐中電灯型プロジェクタを持って(或いは、ヘッドランプ状のプロジェクタが装備されたヘルメットを被って)、部屋の中のオブジェクトに光を当てるようなアトラクションで、プレーヤの位置及びプロジェクタの位置・方向に応じた補正画像を投影する。
なお、図20では、プロジェクションマッピング用の変換データをモデルデータから作成する手法を、3次元オブジェクトの頂点単位での歪み補正手法に対して適用した例について説明したが、当該手法は、図4で説明した描画バッファのピクセル単位での歪み補正手法に対しても適用可能である。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、頂点分割数の設定手法、頂点分割処理手法、頂点位置の演算手法、角度εの設定手法等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム等の種々の画像生成システムに適用できる。
SC スクリーン、PJ プロジェクタ、VC 仮想カメラ、VP 仮想カメラの位置、
OB 3次元オブジェクト、OBD 描画オブジェクト、LV、LR 直線、
V 頂点、PS 交点、LN1、LN2 第1、第2の直線、θ、ε 角度、
1 ゲームシステム、100 処理部、102 ゲーム演算部、
104 オブジェクト空間設定部、106 移動体演算部、108 仮想カメラ制御部、
110 頂点分割数設定部、112 頂点分割処理部、114 頂点位置演算部、
120 描画部、130 音生成部、
160 操作部、170 記憶部、172 オブジェクトデータ記憶部、
176 描画バッファ、178 Zバッファ、180 情報記憶媒体、190 表示部、
192 音出力部、194 補助記憶装置、196 通信部、
1002 プレーヤシート、1004 スクリーン、1006 プロジェクタ、
1008 ハンドル、1009 ブレーキペダル、1010 アクセルペダル、
1012 支柱、1014 筺体フレーム、1020 制御基板

Claims (10)

  1. 頂点分割数の設定処理を行う頂点分割数設定部と、
    オブジェクト空間内の3次元オブジェクトに対して、前記頂点分割数設定部で設定された前記頂点分割数で頂点分割処理を行う頂点分割処理部と、
    前記頂点分割処理後の前記3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、プロジェクション用のスクリーンとの交点位置を求め、求められた前記交点位置に基づいて、前記3次元オブジェクトに対応する描画オブジェクトについての、描画バッファでの頂点位置を求める頂点位置演算部と、
    求められた前記描画オブジェクトの前記頂点位置に基づいて、前記描画オブジェクトを前記描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する描画部と、
    を含むことを特徴とする画像生成システム。
  2. 請求項1において、
    前記頂点分割処理の対象となる前記3次元オブジェクト内の線分を構成する2つの頂点を第1、第2の頂点とし、前記第1の頂点と前記仮想カメラの位置を結ぶ第1の直線と前記第2の頂点と前記仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、前記頂点分割数をmとした場合に、
    前記頂点分割数設定部は、
    前記角度θに応じて前記頂点分割数mを設定することを特徴とする画像生成システム。
  3. 請求項2において、
    前記頂点分割数設定部は、
    前記角度θが第1の角度θ1である場合に、前記頂点分割数mを第1の分割数m1に設定し、前記角度θが第2の角度θ2(θ2<θ1)である場合に、前記頂点分割数mを第2の分割数m2(m2≦m1)に設定することを特徴とする画像生成システム。
  4. 請求項2又は3において、
    前記頂点分割数設定部は、
    前記角度θに対する前記頂点分割数mの設定を、前記頂点分割処理の対象となる前記3次元オブジェクトの頂点の前記スクリーンへの投影位置、前記仮想カメラの位置情報、前記仮想カメラの前記位置情報の時間変化情報、プロジェクタの位置情報、前記プロジェクタの前記位置情報の時間変化情報、前記スクリーンの形状、前記スクリーンの前記形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させることを特徴とする画像生成システム。
  5. 請求項1において、
    前記頂点分割処理の対象となる前記3次元オブジェクト内の線分を構成する2つの頂点を第1、第2の頂点とし、前記第1の頂点と前記仮想カメラの位置を結ぶ第1の直線と前記第2の頂点と前記仮想カメラの位置を結ぶ第2の直線とのなす角度をθとし、前記頂点分割数をmとし、頂点分割数設定の基準となる角度をεとした場合に、
    前記頂点分割数設定部は、
    (θ/m)<εとなるように前記頂点分割数mを設定することを特徴とする画像生成システム。
  6. 請求項5において、
    前記スクリーンでの前記投影画像のピクセルの大きさを前記仮想カメラの位置から見込む角度をδとした場合に、
    前記頂点分割数設定部は、
    前記角度δを基準にして設定される前記角度εを用いて、前記頂点分割数mを設定することを特徴とする画像生成システム。
  7. 請求項5又は6において、
    前記頂点分割数設定部は、
    前記角度εを、前記頂点分割処理の対象となる前記3次元オブジェクトの頂点の前記スクリーンへの投影位置、前記仮想カメラの位置情報、前記仮想カメラの前記位置情報の時間変化情報、プロジェクタの位置情報、前記プロジェクタの前記位置情報の時間変化情報、前記スクリーンの形状、前記スクリーンの前記形状の時間変化情報、描画負荷、時間要素、及び前記3次元オブジェクトの属性の少なくとも1つに応じて変化させることを特徴とする画像生成システム。
  8. 請求項1乃至7のいずれかにおいて、
    前記描画部は、
    前記スクリーンの形状に対応するスクリーンモデルオブジェクトを前記仮想カメラの視点座標系で描画することで、ピクセルごと或いは前記スクリーンモデルオブジェクトの頂点ごとに奥行き値が設定された奥行き画像を生成し、
    前記頂点位置演算部は、
    前記3次元オブジェクトの頂点の第1、第2の座標を、前記視点座標系への射影変換行列で変換し、変換後の前記第1、第2の座標に基づいて前記奥行き画像の前記奥行き値を参照することで、前記スクリーンとの前記交点位置を求めることを特徴とする画像生成システム。
  9. 請求項1乃至8のいずれかにおいて、
    前記スクリーンは、1つの曲面又は複数の面により構成されるスクリーンであることを特徴とする画像生成システム。
  10. 頂点分割数の設定処理を行う頂点分割数設定部と、
    オブジェクト空間内の3次元オブジェクトに対して、前記頂点分割数設定部で設定された前記頂点分割数で頂点分割処理を行う頂点分割処理部と、
    前記頂点分割処理後の前記3次元オブジェクトの頂点位置と仮想カメラの位置とを結ぶ直線と、プロジェクション用のスクリーンとの交点位置を求め、求められた前記交点位置に基づいて、前記3次元オブジェクトに対応する描画オブジェクトについての、描画バッファでの頂点位置を求める頂点位置演算部と、
    求められた前記描画オブジェクトの前記頂点位置に基づいて、前記描画オブジェクトを前記描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する描画部として、
    コンピュータを機能させることを特徴とするプログラム。
JP2013075247A 2013-03-29 2013-03-29 画像生成システム及びプログラム Active JP6153366B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013075247A JP6153366B2 (ja) 2013-03-29 2013-03-29 画像生成システム及びプログラム
US14/226,045 US9495799B2 (en) 2013-03-29 2014-03-26 Image distortion correction system
GB1405619.6A GB2514664B (en) 2013-03-29 2014-03-28 Image generation system and method comprising vertex splitting
CN201410124526.0A CN104077801B (zh) 2013-03-29 2014-03-28 图像生成系统及图像生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013075247A JP6153366B2 (ja) 2013-03-29 2013-03-29 画像生成システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2014199617A true JP2014199617A (ja) 2014-10-23
JP6153366B2 JP6153366B2 (ja) 2017-06-28

Family

ID=50737617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013075247A Active JP6153366B2 (ja) 2013-03-29 2013-03-29 画像生成システム及びプログラム

Country Status (4)

Country Link
US (1) US9495799B2 (ja)
JP (1) JP6153366B2 (ja)
CN (1) CN104077801B (ja)
GB (1) GB2514664B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017140151A (ja) * 2016-02-09 2017-08-17 株式会社ユニバーサルエンターテインメント 遊技機及び遊技機の製造方法
WO2018186169A1 (ja) * 2017-04-05 2018-10-11 シャープ株式会社 映像生成装置、映像生成方法および映像生成プログラム
JP2020110596A (ja) * 2019-01-15 2020-07-27 スクウェア エニックス、リミテッドSquare Enix,Ltd., 電子ゲーム表示における、破壊の詳細における動的なレベル

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018501834A (ja) * 2014-11-27 2018-01-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 投影画像における介入器具の位置を決定する装置
GB2540983B (en) * 2015-08-03 2017-11-29 Advanced Risc Mach Ltd Graphics processing
US10726619B2 (en) * 2015-10-29 2020-07-28 Sony Interactive Entertainment Inc. Foveated geometry tessellation
CN105719233B (zh) * 2016-01-21 2018-09-04 万云数码媒体有限公司 一种平面游戏转立体的顶点位置横向变换方法
US10692050B2 (en) 2016-04-06 2020-06-23 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles
US11144889B2 (en) * 2016-04-06 2021-10-12 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles
CN106210859B (zh) * 2016-08-11 2020-03-27 合一网络技术(北京)有限公司 全景视频渲染方法和装置
CN108307089B (zh) * 2017-01-13 2020-06-12 联发科技股份有限公司 扭曲画面校正装置及方法
DE102018130770A1 (de) 2017-12-13 2019-06-13 Apple Inc. Stereoskopische Wiedergabe von virtuellen 3D-Objekten
US10845601B1 (en) 2018-02-07 2020-11-24 Apple Inc. AR/VR controller with event camera
JP7163115B2 (ja) * 2018-09-12 2022-10-31 キヤノン株式会社 ロボットシステム、ロボットシステムの制御方法、物品の製造方法、制御装置、操作装置、撮像装置、制御プログラム及び記録媒体
DE102019105855A1 (de) * 2019-03-07 2020-09-10 Deutsche Post Ag Fahrzeug mit Anzeigeeinrichtung
CN111063015B (zh) * 2019-12-13 2023-07-21 重庆首厚智能科技研究院有限公司 一种高效绘制点位的方法及系统
CN111311752B (zh) * 2020-02-14 2021-04-27 福州大学 一种基于映射图的LiDAR数据随机采样及重构方法
CN115329615B (zh) * 2022-10-18 2023-02-10 北京名洋数字科技股份有限公司 基于数据库预存展品自动投影模型系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030677A (ja) * 2001-07-19 2003-01-31 Namco Ltd 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP2003085586A (ja) * 2001-06-27 2003-03-20 Namco Ltd 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP2006030225A (ja) * 2004-07-12 2006-02-02 Nishiyama Stainless Chem Kk 曲面表示部を有するコンピュータ機器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763280A (en) 1985-04-29 1988-08-09 Evans & Sutherland Computer Corp. Curvilinear dynamic image generation system
US7485438B2 (en) * 2002-03-01 2009-02-03 Szu-Yi Chou Method of producing polyvalent antigens
US20040075654A1 (en) * 2002-10-16 2004-04-22 Silicon Integrated Systems Corp. 3-D digital image processor and method for visibility processing for use in the same
US8643644B2 (en) 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
JP5436794B2 (ja) * 2008-04-04 2014-03-05 株式会社バンダイナムコゲームス ゲーム動画配信システム
CN102915559B (zh) * 2012-08-22 2015-04-29 北京航空航天大学 一种基于三维点云的实时透明物体gpu并行生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085586A (ja) * 2001-06-27 2003-03-20 Namco Ltd 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP2003030677A (ja) * 2001-07-19 2003-01-31 Namco Ltd 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP2006030225A (ja) * 2004-07-12 2006-02-02 Nishiyama Stainless Chem Kk 曲面表示部を有するコンピュータ機器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017140151A (ja) * 2016-02-09 2017-08-17 株式会社ユニバーサルエンターテインメント 遊技機及び遊技機の製造方法
WO2018186169A1 (ja) * 2017-04-05 2018-10-11 シャープ株式会社 映像生成装置、映像生成方法および映像生成プログラム
JP2020110596A (ja) * 2019-01-15 2020-07-27 スクウェア エニックス、リミテッドSquare Enix,Ltd., 電子ゲーム表示における、破壊の詳細における動的なレベル
US10950010B2 (en) 2019-01-15 2021-03-16 Square Enix Ltd. Dynamic levels of destructive detail in electronic game display
JP7009523B2 (ja) 2019-01-15 2022-01-25 スクウェア エニックス、リミテッド 電子ゲーム表示における、破壊の詳細における動的なレベル

Also Published As

Publication number Publication date
US9495799B2 (en) 2016-11-15
CN104077801B (zh) 2018-12-28
CN104077801A (zh) 2014-10-01
GB2514664A (en) 2014-12-03
US20140292755A1 (en) 2014-10-02
GB201405619D0 (en) 2014-05-14
GB2514664B (en) 2020-02-05
JP6153366B2 (ja) 2017-06-28

Similar Documents

Publication Publication Date Title
JP6153366B2 (ja) 画像生成システム及びプログラム
JP7443602B2 (ja) 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
JP2024059761A (ja) 仮想現実および拡張現実ディスプレイシステムのための連続時間ワーピングおよび両眼時間ワーピングおよび方法
CN110546951B (zh) 合成立体视觉图像内容捕获
KR20220027278A (ko) 컬러 가상 콘텐츠 워핑을 갖는 혼합 현실 시스템 및 이를 사용하여 가상 콘텐츠를 생성하는 방법
JP4982862B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP6310898B2 (ja) 画像処理装置、情報処理装置、および画像処理方法
JP2015154219A (ja) 画像生成システム及びプログラム
US20130257857A1 (en) Stereoscopic device and image generation method
US10699372B2 (en) Image generation apparatus and image display control apparatus
JP4868586B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2016192029A (ja) 画像生成システム及びプログラム
US11050993B2 (en) Image generating apparatus and image generating method
JP2009169471A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2010165100A (ja) 画像生成システム、プログラム及び情報記憶媒体
KR101227183B1 (ko) 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법
JP2009064355A (ja) プログラム、情報記憶媒体及び画像生成システム
WO2024004134A1 (ja) 画像送信装置および画像送信方法
JP2019133310A (ja) 画像処理装置、画像処理プログラム及び画像処理方法
WO2022244131A1 (ja) 画像データ生成装置、表示装置、画像表示システム、画像データ生成方法、画像表示方法、および、画像データのデータ構造
JP2012059009A (ja) プログラム、情報記憶媒体及び画像生成システム
CN102014291B (zh) 一种获取照相机水平视角大于180时生成左右眼画面对的方法
JP2002230579A (ja) 画像作成方法および装置
JP2010033300A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2010033289A (ja) プログラム、情報記憶媒体、及び画像生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170406

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170502

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170530

R150 Certificate of patent or registration of utility model

Ref document number: 6153366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250