(57)【特許請求の範囲】
【請求項１】
３次元レーザスキャンデータの画像をレンダリングする方法であって、
前記３次元レーザスキャンデータから作成された、距離テクスチャを含む距離キューブマップと、濃淡テクスチャおよびカラーテクスチャのうち少なくとも一方を含む画像キューブマップと、を提供する段階であって、前記画像キューブマップは前記距離キューブマップに対応する、段階と、
グラフィック処理ユニットにより、
前記距離キューブマップを用いてテッセレーションパターンを生成する段階と、
前記画像キューブマップをサンプリングすることにより、前記テッセレーションパターンに基づき画像をレンダリングする段階と
を備える方法。
【請求項２】
３次元レーザスキャンデータを処理する方法であって、
プロセッサにより、
前記３次元レーザスキャンデータから、距離テクスチャを含む距離キューブマップと、濃淡テクスチャおよびカラーテクスチャのうち少なくとも一方を含む画像キューブマップと、を作成する段階であって、前記画像キューブマップは前記距離キューブマップに対応する、段階を備える方法。
【請求項３】
前記距離キューブマップおよび前記対応する画像キューブマップを作成することを含むレンダリング前処理と、
前記距離キューブマップを用いてテッセレーションパターンを生成すること、および前記画像キューブマップを用いて画像をレンダリングすることを含むレンダリング処理と
を備える、請求項１または２に記載の方法。
【請求項４】
前記レンダリング前処理は、前記距離キューブマップおよび前記対応する画像キューブマップを作成するために一回実行され、前記レンダリング処理は、一回より多く実行される、請求項３に記載の方法。
【請求項５】
球状パノラマ距離テクスチャから前記距離キューブマップを生成する段階を備える、請求項１から４の何れか一項に記載の方法。
【請求項６】
球状パノラマ画像テクスチャから前記画像キューブマップを生成する段階を備える、請求項１から５の何れか一項に記載の方法。
【請求項７】
前記画像キューブマップを生成する段階は、
キューブの面のタイルに配置された頂点のセットを提供する段階と、
前記キューブの各面について、各タイルをテッセレーションし、対応する球状パノラマ距離テクスチャにおける対応する距離テクセルを用いて、前記キューブの前記面上へテッセレーションされたポイントを投影する段階と
を有する、請求項６に記載の方法。
【請求項８】
前記画像キューブマップを生成する段階は、対応する頂点のセットを含む少なくとも１つのプリミティブをカリングする段階を有する、請求項６または７に記載の方法。
【請求項９】
前記画像キューブマップを生成する段階は、
１または複数の条件のセットを満たさない１または複数の距離値を有する１または複数のタイルを識別する段階と、
面の前記１または複数のタイルのＩＤをファイルに格納する段階と
を有する、請求項６から８の何れか一項に記載の方法。
【請求項１０】
前記画像キューブマップを生成する段階は、
各プリミティブをプリミティブのフラグメントに分割する段階と、
各プリミティブフラグメントについて、前記球状パノラマ画像テクスチャ内の対応するテクセルをサンプリングする段階と
を有する、請求項６から９の何れか一項に記載の方法。
【請求項１１】
レンダリング中、各フレームについて、複数のスキャンに対応する画像を任意の視点について比較的低い解像度でスクリーン外でレンダリングし、前記任意の視点について比較的高い解像度でスクリーン内でレンダリングすべき画像を選択する段階をさらに備える、請求項１から１０の何れか一項に記載の方法。
【請求項１２】
前記画像をレンダリングする段階は、タイルマップを生成または使用する段階を有する、請求項１に記載の方法。
【請求項１３】
前記画像をレンダリングする段階は、
前記タイルマップにおける少なくとも１つのタイルをテッセレーションする段階と、
前記距離キューブマップにおける対応する距離テクセルを用いて、テッセレーションされたポイントをキューブの面上へ投影する段階と
を有する、請求項１２に記載の方法。
【請求項１４】
前記画像をレンダリングする段階は、１または複数の条件のセットを満たさない１または複数の距離値をタイルが有することに応じて、前記タイルをテッセレーションしない段階を有する、請求項１２または１３に記載の方法。
【請求項１５】
コンピュータに請求項１から１４の何れか一項に記載の方法を実行させるためのコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納するコンピュータ可読記録媒体。
【請求項１７】
メモリと、
少なくとも１つのグラフィック処理ユニットと
を備え、
前記少なくとも１つのグラフィック処理ユニットは、距離キューブマップを用いてテッセレーションパターンを生成し、３次元レーザスキャンデータから作成された前記距離キューブマップに対応する画像キューブマップをサンプリングすることにより、前記テッセレーションパターンに基づき画像をレンダリングし、前記距離キューブマップは、距離テクスチャを含み、前記画像キューブマップは、濃淡テクスチャおよびカラーテクスチャのうち少なくとも一方を含む、
コンピュータシステム。
【請求項１８】
前記少なくとも１つのグラフィック処理ユニットは、ＯｐｅｎＧＬアプリケーション・プログラミング・インタフェースを用いて構成されている、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記少なくとも１つのグラフィック処理ユニットは、マイクロソフト（登録商標）ＤｉｒｅｃｔＸ（登録商標）アプリケーション・プログラミング・インタフェースを用いて構成されている、請求項１７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザスキャンデータの画像をレンダリングする方法およびシステムに関する。
【背景技術】
【０００２】
３次元レーザスキャナが、処理工場、船舶または他の施設などの環境を調査するのに用いられ得る。典型的なスキャナは、スキャナとビュー内にある表面上のポイントとの間の距離を測定し得るレーザ距離計を含む。視野（通常、水平方向に３６０度、鉛直方向にほぼ１８０度）を掃引することにより、スキャナは、周囲環境の距離のセット（本明細書において「レーザスキャンデータ」と称される）をキャプチャし得る。これらは、「ポイントクラウド」としばしば称されるポイントのセットを３次元空間内で生成するのに用いられ得る。ポイントクラウドの例がＥＰ  １  １７６ ３９３Ａ２において説明されている。
【０００３】
ある環境の複数の異なる位置で複数のスキャンが実行され得る。複数の異なるスキャンからの複数のポイントクラウドを組み合わせて、より広いエリアをカバーする、組み合わされた（または「統合された」）ポイントクラウドを生成することができる。ポイントクラウドデータを組み合わせることの例がＷＯ  ２００４／００３８４４  Ａ１にみられる。
【０００４】
距離データを取得することに加え、スキャナは、反射レーザ光の濃淡を測定することにより、またはカメラを用いることにより、周囲環境の画像もキャプチャし得る。
【０００５】
（複数の）ポイントクラウドおよび複数の画像は、ポイントクラウドビューアアプリケーションまたは３次元コンピュータ支援設計アプリケーション（ＣＡＤ）を用いて、環境を可視化および／または分析するのに用いられ得る。これらのアプリケーションは通常、２つのカテゴリに分類される。すなわち、個々のスキャンからの複数のポイントについて動作するものと、複数のスキャンからの組み合わされた複数のポイントについて動作するものである。
【０００６】
レーザスキャニングの最も単純な用途の１つが、単一のスキャンによりキャプチャされた画像を表示することである。レーザスキャンからの画像は、球状であり、レーザスキャナの周囲のエリアをカバーするので、このソフトウェアアプリケーションは、球体内部に画像をマッピングし得る。このアプリケーションは、球体の一部をコンピュータスクリーン上に表示し得る。ユーザは、画像全体の異なる複数の部分を見るべく、ビューを回転し得る。この表示方法は、「バブルビュー」と呼ばれる。
【０００７】
バブルビュー内で、ユーザは、画像上のスポットを選択し得、そのレーザスキャンのポイントクラウドデータを用いて、その位置の３次元座標を取得し得る。２つのポイントを選択することにより、ユーザは、複数の距離を測定し得る。
【０００８】
１種類のアプリケーションは、バブルビュー内で３次元ＣＡＤモデルをオーバーレイし得る。このアプリケーションは、バブルビュー内の複数のポイントの３次元位置を認識しているので、バブルビューの背後にＣＡＤモデルの適切な複数の部分を覆い隠し得る。この組み合わされた画像は、施設の複数の新しいエリアを設計する場合に有用であり得る。
【０００９】
バブルビューの魅力的な特徴は、それがリアルに見えることである。リアルさは、画像がスキャナの位置でキャプチャされることから生じる。しかしながら、バブルビューの制約は、それらが、レーザスキャナが配置された複数の位置についてのみ生成され得ることである。ユーザは、バブルビューを選択して左右または上下に回転し得るが、環境を異なる視点から見るべく前方向、後方向、水平方向または鉛直方向に移動させ得ない。
【００１０】
フリーローミングを可能にするべく、いくつかのソフトウェアアプリケーションは、複数のスキャンからの組み合わされたポイントクラウドについて動作する。そのようなアプリケーションを用い、ユーザは、施設内の位置および見る方向を選択する。アプリケーションは次に、ユーザの視点からその位置の周囲の組み合わされたポイントクラウドにおける各ポイントを表示する。ユーザは、見る位置および方向を移動させて、複数の異なる視点から複数のポイントを見得る。
【００１１】
いくつかのアプリケーションは、同じ３次元空間内に、ＣＡＤモデルを組み合わされたポイントクラウドとして表示し得る。ユーザは次に、ＣＡＤモデル内の複数の位置とポイントクラウド内の複数のポイントとの間の距離を測定し得る。ユーザは、ポイントクラウドの複数の部分がＣＡＤモデルの複数の部分と交差するかどうかも判断し得る。
【００１２】
組み合わされたポイントクラウドを表示することで、ユーザは、複数のポイントを１より多くの視点から見ることが可能になるものの、このアプローチには、１または複数の欠点があり得る。
【００１３】
複数の個々のポイントを表示すると、計算コストが高くなる傾向がある。複数の近い距離にあるスキャンされた表面の描写には複数のギャップが生じ得るので、複数の表面を判別するのが困難になり得る。
【発明の概要】
【００１４】
本発明の第１の態様に従い、３次元レーザスキャンデータの画像をレンダリングする方法が提供される。方法は、距離キューブマップおよび対応する画像キューブマップを提供する段階と、距離キューブマップを用いてテッセレーションパターンを生成する段階と、画像キューブマップをサンプリングすることによりテッセレーションパターンに基づき画像をレンダリングする段階とを備える。
【００１５】
本発明の第２の態様に従い、３次元レーザスキャンデータを処理する方法が提供される。方法は、３次元レーザスキャンデータからのレンダリングにおいて用いるための距離キューブマップおよび対応する画像キューブマップを作成する段階を備える。
【００１６】
（複数のスキャンのレーザスキャンデータを統合するのとは反対に）任意のスキャンのレーザスキャンデータをポイントのセットとして保存することにより、かつ、レーザスキャンデータが、グラフィックスシステムが直接扱い得る変位マップの形式で提供され得ることの利点を生かすことにより、レーザスキャンデータの画像は、効率的および／または迅速にレンダリングされ得る。これは、複数のスキャンからの複数の画像を組み合わせる場合に特に役立つ。なぜなら、各スキャンは、独立して処理され、複数の異なるスキャンからの複数の画像は、共通のバッファにおいて簡単に組み合わされ得るからである。これにより、例えばユーザが環境をウォークスルーする時に、静止画のみならず、動画の効率的なレンダリングも可能になる。 
【００１７】
さらに、画像は、パノラマ球状テクスチャの形式にまだなっていない場合、スキャンデータをパノラマ球状テクスチャに変換し、次にパノラマ球状テクスチャをキューブ上へマッピングすることで、スキャンデータの各セットをキューブマップに変換することにより、より効率的および／または迅速にレンダリングされ得る。
【００１８】
画像キューブマップは、スキャンのモノクロ画像をレンダリングするための濃淡テクスチャ、または（カメラを用いてキャプチャされる）、スキャンのカラー画像をレンダリングするためのカラーテクスチャを含み得る。
【００１９】
方法は、一回実施され得る、距離キューブマップおよび前記対応する画像キューブマップを作成する段階を含むレンダリング前処理、および後続のレンダリング処理を含み得る。レンダリング前処理は、好ましくは、１または複数のグラフィック処理ユニット（ＧＰＵ）を用いて実施される。レンダリング処理は、好ましくは、１または複数のＧＰＵを用いて実施される。同じＧＰＵまたは複数のＧＰＵは、レンダリング前処理およびレンダリング処理に用いられ得る。
【００２０】
方法は、例えばレンダリング前処理において、球状パノラマ距離テクスチャから距離キューブマップを生成する段階を備え得る。 
【００２１】
方法は、例えばレンダリング前処理において、球状パノラマ画像テクスチャから画像キューブマップを生成する段階を備え得る。画像キューブマップは、濃淡テクスチャ画像キューブマップを含み得る。画像キューブマップは、カラーテクスチャ画像キューブマップを含み得る。
【００２２】
方法は、例えばレンダリング前処理において、第1の画像キューブマップおよび第２の画像キューブマップを生成する段階を備え得る。第１の画像キューブマップは、濃淡テクスチャ画像キューブマップであり得、第２のキューブマップは、カラーテクスチャ画像キューブマップであり得る。
【００２３】
その、またはそれぞれの画像キューブマップを生成する段階は、タイルマップを生成または使用する段階を有し得る。タイルマップは、キューブの各面上の複数のタイルを含み得る。タイルマップは、それぞれが３またはそれより多くの頂点を有する、複数の多角形タイルを含み得る。複数のタイルは、同じ形状であり得る。複数のタイルは、同じサイズであり得る。複数のタイルは、長方形であり得る。面は、ｎ×ｍ個（ここで、ｎおよびｍは正の整数。ｎはｍと等しい。すなわち、ｎ＝ｍ）のタイルを含み得る。
ｎは、少なくとも８、すなわちｎ≧８であり得る。ｎは、最大で６４、すなわちｎ≦６４であり得る。ｎは、１６に等しい。すなわち、ｎ＝１６である。長方形タイルは、対角線上で向かい合う２つの頂点を用いて定義され得る。各タイルは、複数のプリミティブに分割され得る。複数のプリミティブは、複数の三角形であり得る。方法は、各タイルをテッセレーションし、球状パノラマ距離テクスチャにおける複数の対応する距離テクセルを用いてキューブの面上へ複数のテッセレーションされたポイントを投影する段階を備え得る。
【００２４】
その、またはそれぞれの画像キューブマップを生成する段階は、キューブの面の複数のタイルに配置された頂点のセットを提供する段階と、各面について、各タイルをテッセレーションし、球状パノラマ距離テクスチャにおける複数の対応する距離テクセルを用いてキューブの面上へ複数のテッセレーションされたポイントを投影する段階とを有し得る。
【００２５】
その、またはそれぞれの画像キューブマップを生成する段階はさらに、少なくとも１つのプリミティブ（例  三角形）をカリングする段階を有し得る。複数のプリミティブをカリングする段階は、あるプリミティブがあるスキャン起点に対して鋭角な向きであるかを判断する段階と、そのプリミティブがそのスキャン起点に対して鋭角な向きであるとの判断に応じて前記プリミティブをカリングする段階とを有し得る。あるプリミティブがある視点に対して鋭角な向きであるかを判断する段階は、法線試験を実行する段階を有し得る。
【００２６】
方法は、１または複数の条件のセット（例えば、ゼロの距離を有すること、および／または任意の閾値を上回ること）を満たさない複数の距離値に対応する１または複数のタイル（デッドタイル）を識別する段階と、面のその（複数の）デッドタイルのアイデンティティをファイルに格納する段階とを備え得る。
【００２７】
その、またはそれぞれの画像キューブマップを生成する段階は、各プリミティブを複数のプリミティブフラグメント（例  複数の三角形フラグメント）に分割する段階と、各プリミティブフラグメントについて、球状パノラマ画像テクスチャの対応するテクセルをサンプリングする段階とを有し得る。
【００２８】
画像キューブマップは、メモリ（例  グラフィックメモリおよび／またはシステムメモリ）および／または記憶装置に格納され得る。
【００２９】
レンダリング前処理は、一回実施され得る。その後、球状パノラマ距離テクスチャ、画像テクスチャおよび／またはカラーテクスチャは、後続のレンダリング中、用いられる必要はない。
【００３０】
方法は、各フレームについて、複数のスキャンに対応する複数の画像を任意の視点について比較的低い解像度でスクリーン外でレンダリングし、任意の視点について比較的高い解像度でスクリーン内でレンダリングすべき複数の画像を選択する段階を備え得る。
【００３１】
レンダリングは、タイルマップを生成または使用する段階を有し得る。タイルマップは、キューブの各面上の複数のタイルを含み得る。タイルマップは、それぞれが３またはそれより多くの頂点を有する、複数の多角形タイルを含み得る。複数のタイルは、同じ形状であり得る。複数のタイルは、同じサイズであり得る。複数のタイルは、長方形であり得る。面は、ｎ×ｍ個（ここで、ｎおよびｍは正の整数。ｎはｍと等しい。すなわち、ｎ＝ｍである）のタイルを含み得る。ｎは、少なくとも８、すなわちｎ≧８であり得る。ｎは、最大で６４、すなわちｎ≦６４である。ｎは、１６に等しくなり得る、すなわちｎ＝１６であり得る。長方形タイルは、対角線上で向かい合う２つの頂点を用いて定義され得る。各タイルは、複数のプリミティブに分割され得る。複数のプリミティブは、複数の三角形であり得る。方法は、各タイルをテッセレーションし、球状パノラマ距離テクスチャにおける複数の対応する距離テクセルを用いてキューブの面上へ複数のテッセレーションされたポイントを投影する段階を備え得る。
【００３２】
レンダリングは、キューブの面の複数のタイルに配置された頂点のセットを提供する段階を有し得る。あるタイルがデッドタイルであるとの判断に応じて、そのデッドタイルは、テッセレーションされる必要はない。換言すれば、複数のデッドタイルの複数の頂点は、カリングされ得る。これは、ＧＰＵリソースの使用を低減する一助になり得る。複数のデッドタイルの複数の頂点のカリングは、テッセレーション制御シェーダ（または同じか同様の機能を有するシェーダ）により実行され得る。
【００３３】
レンダリングは、各面について、各タイルをテッセレーションする段階と、距離キューブマップにおける複数の対応する距離テクセルを用いて、複数のテッセレーションされたポイントをキューブの面上へ投影する段階とを有し得る。
【００３４】
レンダリングは、複数のプリミティブ（例  複数の三角形）をカリングする段階を有し得る。複数のプリミティブをカリングする段階は、あるプリミティブがあるスキャン起点に対して鋭角な向きであるかを判断する段階と、そのプリミティブがそのスキャン起点に対して鋭角な向きであるとの判断に応じて前記プリミティブをカリングする段階とを有し得る。あるプリミティブがある視点に対して鋭角な向きであるかを判断する段階は、法線試験を実行する段階を有し得る。
【００３５】
画像をレンダリングする段階は、濃淡キューブマップをサンプリングする段階を有し得る。画像をレンダリングする段階は、カラーキューブマップをサンプリングする段階を有し得る。
【００３６】
（複数の）ＧＰＵは、ＯｐｅｎＧＬ４．３（またはそれより後のバージョン）またはマイクロソフト（登録商標）ＤｉｒｅｃｔＸ（登録商標）１１（またはそれより後のバージョン）アプリケーション・プログラミング・インタフェース（ＡＰＩ）を用いて構成され得る。
【００３７】
方法はさらに、画素のセットをスキャン用に生成する段階と、深度試験を実行する段階とを備え得る。
【００３８】
方法は、画素の法線に応じて画素をカラーリングする段階を備え得る。方法は、濃淡および／または画像の対応する部分に応じて画素をカラーリングする段階を備え得る。
【００３９】
方法は、各々がそれぞれのスキャンに対応する、レーザスキャンデータの１より多いセットを提供する段階を備え得る。レーザスキャンデータの各セットは、それぞれの距離キューブマップおよび少なくとも１つの画像キューブマップとして提供される。方法は、複数の異なるスキャンからの複数のレンダリングされた画像を組み合わせる段階を有し得る。複数の異なるスキャンからの複数のレンダリングされた画像を組み合わせる段階は、深度バッファを用いる段階を有し得る。
【００４０】
本発明の第３の態様に従い、方法を実行するための複数の命令を含むコンピュータプログラムが提供される。
【００４１】
本発明の第４の態様に従い、コンピュータプログラムを格納するコンピュータ可読媒体または非一時的コンピュータ可読媒体が提供される。
【００４２】
本発明の第５の態様に従い、メモリと、少なくとも１つの処理ユニットとを備えるコンピュータシステムが提供される。少なくとも１つの処理ユニットは、距離キューブマップを用いてテッセレーションパターンを生成し、距離キューブマップに対応する画像キューブマップをサンプリングすることにより、前記テッセレーションパターンに基づき画像をレンダリングするよう構成される。
【００４３】
少なくとも１つの処理ユニットは、好ましくは、少なくとも１つのグラフィック処理ユニットを備える。少なくとも１つの処理ユニットは、１つの中央演算処理装置、例えば１つのグラフィック処理ユニットを備え得る。
【００４４】
少なくとも１つの処理ユニットは、ＯｐｅｎＧＬ４．３（またはそれより後のバージョン）アプリケーション・プログラミング・インタフェースを用いて構成可能であり得る。少なくとも１つの処理ユニットは、マイクロソフト（登録商標）ＤｉｒｅｃｔＸ（登録商標）１１（またはそれより後のバージョン）アプリケーション・プログラミング・インタフェースを用いて構成可能であり得る。
【図面の簡単な説明】
【００４５】
ここで、本発明の特定の実施形態が、添付の図面を参照すると、例を挙げて説明される。
【図１】レーザスキャンデータを取得および処理し、画像をレンダリングするためのシステムの概略ブロック図である。
【図２】レーザスキャンデータを処理し、画像をレンダリングするのに用いられるコンピュータシステムの概略ブロック図である。
【図３】レンダリング前処理の処理フロー図である。
【図４】パノラマ球状テクスチャをキューブにマッピングする（本明細書において、「キューブマッピング」と称される）ためのパイプラインの概略ブロック図である。
【図５】各面が複数のタイルに分割されたキューブの実例を示す。
【図６】キューブマッピング中の、複数のテッセレーションされたポイントのキューブ上への投影を示す。
【図７】パノラマ球状テクスチャをキューブの面上へサンプリングしてキューブマップを生成しているところを示す。
【図８】キューブマッピングの実例を概略的に示す。
【図９】実スキャンおよび画像データを用いたキューブマッピングの実例を示す。
【図１０】キューブマップ配置を示す。
【図１１】デッドタイルのマーキングの実例を概略的に示す。
【図１２】実カラーパノラマ球状テクスチャのレンダリングされた画像、およびデッドタイル有りおよび無しの、３次元画像空間における、その対応するカラーキューブマップの複数のレンダリングされた画像の実例を示す。
【図１３】プロジェクトデータの概略ブロック図である。
【図１４】レンダリング処理の処理フロー図である。
【図１５】第１のテッセレーションされた表面および第２のテッセレーションされた表面ならびに視点の実例を示す。
【図１６】レンダリング処理のパイプラインの概略ブロック図である。
【図１７】各面が複数のタイルに分割されたキューブの実例を示す。
【図１８】レンダリング中の、複数のテッセレーションされたポイントのキューブ上への投影を示す。
【図１９】レンダリング中の、モノクロ／カラーキューブマップを用いたシェーディング／カラーリングの実例を示す。
【図２０】調査されている環境のフライスルー中に第１の視点から撮影された第１のスクリーンショットである。
【図２１】図２０に示された調査されている環境のフライスルー中に第２の視点から撮影された第２のスクリーンショットである。
【発明を実施するための形態】
【００４６】
システムの概要
図１を参照すると、レーザスキャンデータを生成および処理し、画像をレンダリングするためのシステム１が示される。
【００４７】
システム１は、複数の目標表面４を含む環境３（または「シーン」）を調査するための、１または複数の３次元レーザスキャナ２を含む。その、またはそれぞれのレーザスキャナ２は、例えば各画素について距離、濃淡、方位角および仰角を含む（かつ、圧縮形式で格納され得る）生レーザスキャンデータ６（本明細書において、単に「レーザスキャンデータ」または単に「スキャンデータ」と称される）を生成するレーザスキャニングユニット５と、例えばＪＰＥＧファイル形式のカラー画像データ８を生成するのに用いられ得る任意で用いられるカラーカメラ７と、データ６、８を格納するための内蔵記憶装置９とを含む。レーザスキャンデータ６は、ＺＦＣファイル形式に変換され得る。その、またはそれぞれのレーザスキャナ２は、レーザスキャンデータ６を処理するのに、例えばデータおよび／または画像データ８をフォーマットするのに用いられ得る、（複数の）プロセッサ１０とメモリ１１とを含む。
【００４８】
レーザスキャニングユニット５は、パルス状のレーザビーム１２を任意の方向（すなわち、任意の水平角および任意の鉛直角）で放射すること、目標表面４により反射されてレーザスキャナ２に戻るビーム１３を感知すること、およびレーザビーム１２、１３の飛行時間に基づいて目標表面４に対して距離Ｒを決定することにより、ポイントのスキャンデータ６の要素（「画素」と称され得る）を生成する。スキャンデータ６のセットは、高速上方環状掃引、すなわち鉛直スキャン平面での掃引で、低速でターンしながら、すなわち鉛直軸を中心としてスキャン平面を回転させながら、スキャナ２の周囲にポイントのセットを構築するようにレーザビーム１２をスキャンすることにより、取得され得る。スキャンデータ６における各ポイントは、デカルト座標のセットの形式で提供される。すなわち各ポイントは（ｘ，ｙ，ｚ）で示される。データ６のセットにおける複数のポイントは、方位角および仰角により順序付けられる。 
【００４９】
スキャンデータ６および画像データ８は、スキャンデータサーバ１４（本明細書において「ゲートウェイ」とも称される）にアップロードされる。スキャンデータサーバ１４は、スキャンデータ処理モジュール１５と、記憶装置１６とを含む。スキャンデータサーバ１４は、例えばモノクロ画像のスキャンデータ６から濃淡データ１７を抽出することにより、スキャンデータ６を前処理し得る。
【００５０】
スキャンデータ６、濃淡データ１７、および任意で画像データ８は、レンダリング用にコンピュータシステム１９にダウンロードされる。コンピュータシステム１９は、１回限りのデータ前処理を実施するための、レンダリング前システム２０と記憶装置２１とを含む。
【００５１】
レンダリング前システム２０は、スキャンデータ６、濃淡データ１７および画像データ８を、対応する正距極パノラマ球状テクスチャ２２、２３、２４（本明細書において、「パノラマ球状テクスチャ」または「エクイレクタングラーテクスチャ」とも称される）に変換する。変換により、テクスチャ２２、２３、２４に複数のギャップまたは複数のホール（図示せず）が生じ得るので、レンダリング前システム２０は、例えば補間を用いて、ホールファイリングも実施し得る。
【００５２】
レンダリング前システム２０は、各スキャンでのパノラマ球状テクスチャ２２、２３、２４を、対応するキューブマップ２５、２６、２７に変換する。レンダリング前システム２０は、デッドタイルファイル２８、すなわち、有用な距離データを含まないキューブ面の複数の領域を識別する、各キューブマップの各面についてのファイルも生成する。これは特に、屋外でのスキャンに役立つ。
【００５３】
パノラマ球状テクスチャ２２、２３、２４をキューブの複数の面上へマッピングすることは、ビューの質を知覚可能レベルで全く損なうことなく、格納されるデータの量を（例  最大で約４分の１だけ）低減する一助となり得る。さらに、要求に応じて、キューブマップ２５、２６、２７の面は、レンダリング用のグラフィックスシステムに個別にロードされ得る。また、キューブマップ面は、例えばデッドタイル（すなわち、有用な距離データを含まない領域）を破棄することにより、メモリ内でより効果的に管理され得る。
【００５４】
コンピュータシステム１９は、ユーザ入力デバイス３０（マウスおよび／またはキーボードなど）と、レンダリングシステム３１と、ある視点（ＰＯＶ）３４からのシーン３の画像３３を表示するためのディスプレイ３２（または複数のディスプレイ３２）とを含む。レンダリングシステム３１は、１または複数の異なるスキャンから取得されたテクスチャ２５、２６、２７を用いて、三角化された複数の３次元表面を生成し、任意の視点３４から当該複数の表面をリアルタイムでレンダリングして、ある画像の（複数の）スキャンから取得された複数の表面を組み合わせる。
【００５５】
レンダリング前システム２０およびレンダリングシステム３１は、同じコンピュータシステムに実装される。しかしながら、システム２０、３１は、複数の異なるコンピュータシステムに実装され得る。 
【００５６】
図２も参照すると、コンピュータシステム１９が、より詳細に示される。 
【００５７】
コンピュータシステム１９は、ワークステーション、デスクトップコンピュータ、ラップトップコンピュータまたは他の十分な能力を有するコンピューティングデバイスの形態であり得る。
【００５８】
コンピュータシステム１９は、それぞれのメモリキャッシュ（図示せず）を有する１または複数の中央演算処理装置（ＣＰＵ）３５と、システムメモリ３６と、グラフィック処理ユニット（ＧＰＵ）３８、およびとりわけフレームバッファ４０を提供するグラフィックメモリ３９（「ビデオＲＡＭ」と称され得る）を含み、例えばグラフィックカードの形態であるグラフィックモジュール３７と、バスシステム４２により、動作可能なように接続された入力／出力（Ｉ／Ｏ）インタフェース４１とを含む。適切なグラフィックモジュール３７の例が、１ギガバイトのビデオＲＡＭを有するＮＶＩＤＩＡ（登録商標）ＧｅＦｏｒｃｅ  ４６０  ＧＰＵである。
【００５９】
Ｉ／Ｏインタフェース４１は、スキャンデータ６、画像データ８および濃淡データ１７を受信するためのバスおよび／または（複数の）ネットワークインタフェース４３（Ｅｔｈｅｒｎｅｔ（登録商標）インタフェースまたはＷＬＡＮインタフェースなど）に、動作可能なように接続される。Ｉ／Ｏインタフェース４１は、ユーザ入力デバイス３０、ならびに例えば１または複数のハードディスクドライブおよび／またはソリッドステートドライブの形態である記憶装置２１にも、動作可能なように接続される。取外し可能記憶装置および他のコンピュータ構成品などのいくつかの周辺機器は、図示されていない。コンピュータシステム１９は、図２に示されたものとは異なる構成を有し得る。
【００６０】
後により詳細に説明されるように、プロジェクトデータ４４は、記憶装置２１に格納される。プロジェクトデータ４４は、スキャン４５の複数のセットの処理済スキャンデータ（図１３）を含む。各セットは、ネーム４６（図１３）、変換４７（図１３）、ならびに各キューブ面６３（図１３）の距離テクスチャ２５、濃淡テクスチャ２６、オプショナルカラーテクスチャ２７およびデッドタイルファイル２８を含む。
【００６１】
スキャンデータ６および濃淡データ１７ならびにオプショナル画像データ８の対応するパノラマ球状テクスチャ２２、２３、２４への変換は、（複数の）ＣＰＵ３５により実行されるソフトウェアに実装される。変換を実装するためのコンピュータコード４８は、記憶装置２１に保持され、（複数の）ＣＰＵ３５による実行のためにメモリ３６にロードされる。他の複数のレンダリング前処理、すなわち、キューブマッピングおよびデッドタイル検出は、好ましくはＧＰＵ３８を用いて実装される。
【００６２】
レンダリングは、ＧＰＵの高度なグラフィック処理能力、特にテッセレーションの利点を生かすように、ＧＰＵ３８を用いて実装される。 
【００６３】
アプリケーションソフトウェア４９は、プロジェクトデータ４４にアクセスするのに、またグラフィックモジュール３７とインタフェースするのに用いられる。
【００６４】
レンダリング前処理
図１、図２および図３を参照すると、ここで、レンダリング前システム２０のオペレーションがより詳細に説明される。
【００６５】
スキャンデータのパノラマ球状テクスチャへの変換
レンダリング前システム２０は、スキャンの、スキャンデータ６と、濃淡データ１７と、任意でカラー画像データ８とからなるセットを、通信ネットワーク（図示せず）を介して、スキャンデータサーバ１４からロードする（段階Ｓ３−１）。
【００６６】
レンダリング前システム２０は、スキャンデータ６、濃淡データ１７、および任意でカラー画像データ８を、対応するパノラマ球状テクスチャ２２、２３、２４に変換する（段階Ｓ３−２）。各パノラマテクスチャ２２、２３、２４は通常、１０，０００×５，０００画素を含む。
【００６７】
距離データのスキャナ座標からパノラマ球状座標へのマッピングは、複数のホールをもたらし得る。従って、複数の距離値が、不連続を回避するように、補間された値を用いて追加され得る（段階Ｓ３−３）。複数のホールは、ゼロ値を有するので、複数のホールを探すのに、また周囲隣接値を用いて非ゼロ値を算出してホールを満たすのに、画像がスキャンされる。
【００６８】
複数の濃淡値は、同じやり方で、コピーされ、濃淡パノラマ球状テクスチャ２３にマッピングされる。例えばＲＧＢ成分値の形式である色データ８は、同様のやり方でパノラマ球状カラーマップ２７にコピーされ得る。
【００６９】
パノラマ球状テクスチャ２２、２３、２４は、一時的に記憶装置２１に格納される。後により詳細に説明されるように、パノラマ球状テクスチャ２２、２３、２４は、対応するキューブマップ２５、２６、２７に変換される。一度変換されると、テクスチャ２２、２３、２４は、破棄され得る。
【００７０】
パノラマ球状テクスチャのキューブマップへの変換
レンダリング前システム２０は、各パノラマ球状テクスチャ２２、２３、２４を、対応するキューブマップ２５、２６、２７に変換する。キューブマッピングは、（複数の）ＣＰＵ３５により実施され得るが、ＧＰＵ３８によってより迅速に実行され得る。
【００７１】
図４を参照すると、キューブマッピングは、ＧＰＵ３８により実装されるパイプライン５１を用いて実施される（図２）。パイプライン５１は、頂点シェーダ５２、テッセレーション制御シェーダ５３、テッセレーション評価シェーダ５４、ジオメトリシェーダ５５およびフラグメントシェーダ５６を含む。テッセレーション制御シェーダ５３は、「ハルシェーダ」と称され得、テッセレーション評価シェーダ５４は、「ドメインシェーダ」と称され得、フラグメントシェーダ５６は、「画素シェーダ」と称され得る。
【００７２】
図５も参照すると、パイプライン５１は、６個の面６０を有するキューブ５９の複数のタイル５８に配置された複数の頂点５７（本明細書において、「頂点データ」とも称される）を処理する。複数の頂点５７は、（ｕ，ｖ）座標で示される。各面６０は、複数のタイル５８に分割される。この場合、各面は、１６×１６個のタイル５８に分割される。
【００７３】
各面６０の複数の頂点５７は、複数のタイル５８において、頂点シェーダ５２に送られる。頂点シェーダ５２は、複数の頂点５７をテッセレーション制御シェーダ５３まで通過させる。テッセレーション制御シェーダ５３は、各タイル５８のテッセレーションレベル（図示せず）をテッセレーション評価シェーダ５４に出力する。この場合、デフォルトのテッセレーション値が用いられる。
【００７４】
図６も参照すると、テッセレーション評価シェーダ５４は、各タイル５８をテッセレーションし、複数のテッセレーションされたポイント６１を３次元空間内のユニットキューブ６３の面６２上へ投影する。タイル５８は、デカルト空間の上部左隅および下部右隅を利用して説明される。ユニットキューブ上に位置する、各三角形ファセット６４の各頂点５７は、一回テッセレーションされると、距離テクスチャ２２を用いて、その対応する距離値により投影される。複数の頂点５７は次に、例えば４×４同種変換行列の形式であるスキャン変換４７を用いて正しい世界位置に投影され、位置および向きを保持する。
【００７５】
複数のテッセレーションされたポイント６２は、ジオメトリシェーダ５５に渡される。ジオメトリシェーダ５５は、複数の三角形６４のカリングを担う。スキャンに対して鋭角である複数の三角形６４は、ダンプされる。これは、各三角形６４について表面法線試験を用いて行われる。得られる複数のポイント６１は、フラグメントシェーダ５６に渡される。
【００７６】
図７も参照すると、フラグメントシェーダ５６は、濃淡および／またはカラーテクスチャ２３、２４を複数の正確な三角形６４上へ壁紙貼付する。フラグメントシェーダ５６は、濃淡および／またはカラーテクスチャ２３、２４をサンプリングし、テクスチャ２３、２４におけるテクセル６５の値をキューブ６３の面６２上の三角形フラグメント６６（「画素」とも称され得る）の値にコピーすることにより、新しいキューブベースのテクスチャ２３、２４、すなわちキューブマップ２３、２４を生成する。キューブマップ２５は、カラムに配置が示され得る。しかしながら、他のキューブ配置も用いられ得る。フラグメントシェーダ５６は、また、キューブレンダリングにおいて見え得る青シェード内で、複数の後面、すなわち複数の外部外側向き面７３（図１２）を描画する。
【００７７】
（複数の）キューブマップ２３、２４は、例えばスクリーン外バッファ４０に格納される。
【００７８】
図８は、パノラマ球状テクスチャ２２、２３、２４の対応するキューブマップ２５（極６７、６８、極６７、６８間の水平線７０上の中心点６９、中心点６９を通り抜ける経線７１を含む）への変換の実例を概略的に示す。図８は、複数の極の１つ６８の周囲のブラインドスポット７２を示す。
【００７９】
図９は実カラーパノラマ球状テクスチャ２２の画像ならびにその対応する配置された距離およびカラーキューブマップ２５、２７の複数の画像の実例を示す。
【００８０】
デッドタイルの検出
図１０を参照すると、キューブマップ２５の各面６２は、タイル７４から構築される。いくつかのタイル７４は、有用な距離データを含まないことがある。例えば、スキャンが屋外で実行された場合、スキャンは、空をカバーし得る。よって、キューブマップ２５の上面６２のタイル７４の全てが有用なデータを含まない可能性がある。さらに、前後左右の面６２の複数の上部のタイル７４も有用な距離データを含まない可能性がある。
【００８１】
図１１を参照すると、例えば距離値がないか、距離値が任意の閾値を上回る、有用な距離データを含まない各タイル７４Ｄが識別され、デッドタイル７４Ｄに対応するタイル識別子７２がデッドタイル７４Ｄのリスト２８に追加される。デッドタイルファイル２８は、記憶装置２１に格納される（図２）。 
【００８２】
複数のデッドタイル７４Ｄは、レンダリング前処理において検出される。検出が一回行われ、次にその結果が格納される。複数のデッドタイル７４Ｄは、ジオメトリシェーダ５５においてみられる（図４）。デッドタイル７４の複数の三角形６４（図６）は、通常鋭角なので、カリングされる。よって、そのタイル７４Ｄには三角形６４がなくなるので、デッドとしてログ記録される。
【００８３】
後により詳細に説明されるように、対応する画像キューブマップ２６、２７の複数のデッドタイル７４Ｄは、レンダリングされない。複数のデッドタイル７４Ｄをレンダリングしないことで、シーンのレンダリングの速度を上げ得る。
【００８４】
図１２は、複数のデッドタイル７４Ｄがある場合とない場合の、３次元画像空間における、実カラーパノラマ球状テクスチャ２４のレンダリングされた画像およびその対応するカラーキューブマップ２７の複数のレンダリングされた画像の実例を示す。
【００８５】
プロジェクトデータ
以上に説明したように、レンダリング前データ処理工程は、各スキャンについて一回のみ実行すればよい。複数の距離テクスチャ２５、複数の濃淡テクスチャ２６、複数のカラーテクスチャ２７および複数のデッドタイルファイル２８がスキャン用に一回生成されると、元のスキャンデータ６、濃淡データ１７および任意でカラー画像データ８ならびに球状パノラマテクスチャ２２、２３、２４は、破棄され得る。
【００８６】
複数の距離テクスチャ２５、複数の濃淡テクスチャ２６および複数のオプショナルカラーテクスチャ２７は一般的に、フル解像度を有するように格納される。レンダリング中、テクスチャ２５、２６、２７は、フル解像度で、すなわち１：１の比でサンプリングされ得るか、ｎ：１の比（ここでｎは、正の整数）でサブサンプリングされ得る。
【００８７】
図１３は、プロジェクトデータ４４を示す。プロジェクトデータ４４は、多数の（例  ５００個またはそれより多くの）スキャンのスキャンデータ４５を格納し得る。
【００８８】
図１３を参照すると、スキャンデータ４５の各セットは、スキャンネーム４６、スキャン変換４６、ならびに各キューブ面６２の距離テクスチャ２５、濃淡テクスチャ２６、オプショナルカラーテクスチャ２７およびデッドタイルファイル２８を含む。
【００８９】
レンダリング
図１、図２、図１３および図１４を参照し参照すると、ここで、レンダリング処理が説明される。
【００９０】
レンダリングシステム３１が初期化され（段階Ｓ１４−１）、システム３１は、ユーザが入力デバイス３０を介して制御し得る視点３４を識別する（段階Ｓ１４−２）。
【００９１】
先に説明されたように、レーザスキャンプロジェクトは、最大で５００個またはそれより多くのスキャンを含み得る。グラフィックモジュール３７が扱うには多すぎるスキャンが存在し得る。レンダリングシステム３１は、各フレームの起点で決定キーをレンダリングすることにより（段階Ｓ１４−３）、かつレンダリングすべきスキャンを識別することにより（段階Ｓ１４−４）、視点３４についてどのスキャンをレンダリングすべきかを決定する。選択された複数のスキャンは、レンダリングされ（段階Ｓ１４−５）、レンダリング処理は、次のフレームで続く（段階Ｓ１４−６）。
【００９２】
決定キー
決定キーは、投影内の複数のスキャンの全てを非常に低い解像度でスクリーン外でレンダリングすることに関連する。
【００９３】
各面は、１６×１６個のタイルを有する。ＧＰＵ３８は、各面が２５６段階の大まかな距離レベルを有するように各タイルの平均距離を算出する。よって、各スキャンは、１，５３６個のポイント（すなわち、６面×２５６距離レベル）からなる。しかしながら、ポイントの数は、例えばタイルの数が異なるので、異なる。
【００９４】
図１５を参照すると、互いに異なる第１のスキャンおよび第２のスキャンから生じた第１のテッセレーションされた表面７５および第２のテッセレーションされた表面７６が、３次元画像空間に示されている。第１のテッセレーションされた表面７５は、視点３４から見ることができ、最小サイズ閾値を上回る。しかしながら、第２のテッセレーションされた表面７５は、第１の表面により覆い隠され得、および／またはサイズ閾値を下回り得る。これは、複数のシェーダの後に、Ｚバッファ（図示せず）において自動的に起こる。複数のシェーダには、画像の可視性を累積的に有することはなく、決定キーは、Ｚバッファにおいて実行される。最も近い複数の三角形は、前景に描かれる。
【００９５】
レンダリング
レンダリングシステム３１は、決定キーにおいて識別された複数のスキャン４５の複数の距離テクスチャ２５、複数の濃淡テクスチャ２６、複数のカラーテクスチャ２７および複数のデッドタイルファイル３５を記憶装置２１から抽出し、複数のテクスチャ２５、２６、２７および複数のデッドタイルファイル２８をグラフィックモジュール３７に渡す。
【００９６】
図１６を参照すると、レンダリングは、ＧＰＵ３８により実装され（図２）、かつ頂点シェーダ８２、テッセレーション制御シェーダ８３、テッセレーション評価シェーダ８４、ジオメトリシェーダ８５およびフラグメントシェーダ８６を含むパイプライン８１を用いて実施される。複数のシェーダは、複数の他のネームを用いて称され得る。
【００９７】
図１７も参照すると、パイプライン８１は、６個の面９０を有するキューブ８９の複数のタイル８８に配置された複数の頂点８７を処理する。複数の頂点８７は、（ｕ，ｖ）座標で示される。各面９０は、複数のタイル８８に分割される。この場合、各面は、１６×１６個のタイルに分割される。
【００９８】
各面９０の複数の頂点８７は、複数のタイル８８において、頂点シェーダ８２まで送られる。頂点シェーダ８２は、ユーザが定義した視点３４に基づくスキャン変換９２を適用する。頂点シェーダ８２は、変換された頂点データ８２をテッセレーション制御シェーダ８３に出力する。テッセレーション制御シェーダ８３は、各タイル８８のテッセレーションレベル（図示せず）をテッセレーション評価シェーダ５４に出力する。
【００９９】
複数のデッドタイルの複数の頂点８７は、テッセレーション制御シェーダ８３により検出され、カリングされるが、通されない。よって、これは、ＧＰＵリソースの使用を低減する一助になり得るので、レンダリングの速度を上げ得る。
【０１００】
図１８も参照すると、テッセレーション評価シェーダ８４は、各タイル８８をテッセレーションし、複数のテッセレーションされたポイント９２を３次元空間内のユニットキューブ９４の面９３上へ、ポイント８７の（ｕ，ｖ）座標で距離テクスチャ２５における複数の距離テクセル９５をサンプリングすることにより取得された距離Ｒだけ変位させて投影する。
【０１０１】
一連の複数のテッセレーションされたポイント９２は、ジオメトリシェーダ８５に送られる。ジオメトリシェーダ８５は、複数の鈍角に所在する複数の三角形をカリングする。
【０１０２】
図１９も参照すると、モノクロ画像がレンダリングされているか、カラー画像がレンダリングされているかに応じて、フラグメントシェーダ８６は、濃淡キューブマップ２６またはカラーキューブマップ２７をサンプリングし、キューブマップ２６、２７におけるテクセル９６の値をキューブ９４の面９３上の三角形フラグメント９７の値にコピーする。これは、キューブ９４の面９３を越えて、距離テクスチャにより提供された起伏上へモノクロまたはカラー画像を投影する効果がある。
【０１０３】
画素データ９７は、フレームバッファ４０に送信される。数回のスキャンから生成された画素データ９７は、同じフレームバッファ４０に書き込まれ得る。よって、数回のスキャンからのデータを含む画像が形成され得る。
【０１０４】
図２０および図２１は、（「Ｌａｗ  Ｓｃｈｏｏｌ  Ｍａｎａｇｅｍｅｎｔ  Ｓｃｈｏｏｌ」というマークが付いている）建物９８を含む調査されている環境の「フライスルー」中のスクリーンショットの実例を示す。スキャン用カラーパノラマ球状テクスチャ２５ならびに対応する配置された距離およびカラー画像キューブマップ２５、２７が図９に示される。対応するカラー画像データが図１２に示される。複数のシーンは、数回のスキャンから形成され、複数の異なる視点からレンダリングされる。ユーザは、環境をリアルタイムでスムーズにフライスルーできる。複数のスクリーンショットは、スキャンを実施する場合のスキャナ２（図１）の位置９９を示す「複数の影」を示す。
【０１０５】
以上に説明された複数の実施形態に対して様々な修正がなされ得ることが理解されよう。そのような複数の修正は、複数のレーザスキャンシステムおよび／または複数のグラフィック処理システムならびにそれらの構成部品の設計、製造および使用において既に公知であり、かつ、本明細書において既に説明された複数の特徴の代わりに、またはそのような複数の特徴に加えて用いられ得る、複数の同等の、および他の特徴を伴い得る。１つの実施形態の複数の特徴は、別の実施形態の複数の特徴により、置き換えられたり、補足されたりし得る。
【０１０６】
請求項は、本願において複数の特徴の複数の特定の組み合わせに対してまだ明確に述べられてはいないが、本発明の開示の範囲は、それがいずれかの請求項において現に請求されているものと同じ発明に関するか否かを問わず、かつ、それが本発明が軽減するように同じ技術的課題のいずれかまたは全てを軽減するか否かを問わず、明示的にであれ、黙示的にであれ、本明細書において開示されたあらゆる新規の特徴もしくはあらゆる新規の特徴の組み合わせまたはそれらを一般化したものも含むことが理解されるべきである。出願人らは、ここに、新しい請求項が、本願または本願から派生する更なる出願のプロセキューション中にそのような複数の特徴および／またはそのような複数の特徴の複数の組み合わせに対して明確に述べられ得ることを通告する。
【図１】
0006725110.tif 000002
【図２】
0006725110.tif 000003
【図３】
0006725110.tif 000004
【図４】
0006725110.tif 000005
【図５】
0006725110.tif 000006
【図６】
0006725110.tif 000007
【図７】
0006725110.tif 000008
【図８】
0006725110.tif 000009
【図９】
0006725110.tif 000010
【図１０】
0006725110.tif 000011
【図１１】
0006725110.tif 000012
【図１２】
0006725110.tif 000013
【図１３】
0006725110.tif 000014
【図１４】
0006725110.tif 000015
【図１５】
0006725110.tif 000016
【図１６】
0006725110.tif 000017
【図１７】
0006725110.tif 000018
【図１８】
0006725110.tif 000019
【図１９】
0006725110.tif 000020
【図２０】
0006725110.tif 000021
【図２１】
0006725110.tif 000022