(57)【要約】  ３次元オブジェクトの第１の部品が表示のために生成され、ディスプレイデバイスに表示される。第１の部品は、少なくとも、基底界面と、第１の界面とを有する。表示される第１の部品は、形状を変更させられる。３次元オブジェクトの第２の部品が表示のために生成され、第２の部品は、少なくとも、基底界面を有する。第２の部品は、第２の部分がディスプレイデバイスに表示されるときに、第２の部品の基底界面が第１の部品の第１の界面と適合するように、並進され且つ方向付けられる。第２の部品は、第１の部品の第１の界面が第２の部品の基底界面と適合した状態でディスプレイデバイスに表示される。
2022500761.tif 000002
【特許請求の範囲】
【請求項１】
３次元オブジェクトの表示を生成するコンピュータ実装される方法であって、
３次元オブジェクトの第１の部品を表示のために生成することであって、前記第１の部品は、少なくとも、基底界面と、第１の界面とを有する、生成することと、
前記第１の部品をディスプレイデバイスに表示することと、
前記表示される第１の部品に形状を変えさせることと、
前記３次元オブジェクトの第２の部品を表示のために生成することであって、前記第２の部品は、少なくとも、基底界面を有する、生成することと、
前記第２の部品が前記ディスプレイデバイスに表示されるときに、前記第２の部品の前記基底界面が前記第１の部品の前記第１の界面と適合するよう、前記第２の部品を並進させ且つ方向付けることと、
前記第２の部品の前記基底界面が前記第１の部品の前記第１の界面と適合した状態で前記第２の部品を前記ディスプレイデバイスに表示することと、を含む、
方法。
【請求項２】
前記表示される第１の部品に形状を変えさせることは、前記表示される３次元オブジェクトが時間の経過と共に形状を変えるように、前記表示される第１の部品に時間の経過と共に形状を変えさせる、請求項１に記載の方法。
【請求項３】
前記表示される第１の部品に更に形状を変えさせることと、
前記表示される第２の部品に形状を変えさせることと、を含み、
前記第１の部品および前記第２の部品の形状を変えることは、前記第２の部品の前記基底界面が前記第１の部品の前記第１の界面と適合し続けるように行われる、
請求項１または請求項２に記載の方法。
【請求項４】
前記３次元オブジェクトの第３の部品を表示のために生成することであって、前記第３の部品は、少なくとも基底界面を有する、生成することと、
前記ディスプレイデバイスに前記第３の部品を表示することであって、前記表示される第３の部品は、前記第３の部品の前記基底界面が前記第１の部品の第２の界面または前記第２の部品の第１の界面と適合するように、必要に応じて並進させられ且つ方向付けられる、表示することと、を含む、
請求項３に記載の方法。
【請求項５】
前記オブジェクトの各部品は、同じデータ構造に基づいてグラフィックスプロセッサによってインスタンス化され、前記データ構造は、基準部品の形状を定義するデータを含み、前記データ構造は、前記基準部品の前記形状に対する多数の異なる時点での前記オブジェクトの前記部品の前記形状における差を定義する差データを含む、請求項１〜４のうちのいずれか１項に記載の方法。
【請求項６】
前記基準部品の前記形状は、複数の頂点によって定義され、前記差データは、各頂点についての並進データを含み、各頂点についての前記並進データは、前記基準部品の頂点の位置に対する異なる時点での前記オブジェクトの各部品の頂点についての位置の差を表す、請求項５に記載の方法。
【請求項７】
時間変化するアセットをコンピュータディスプレイで生成するコンピュータ実装される方法であって、
電子記憶装置に格納されるルールのセットにアクセスすることであって、該ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するために前記ルールを評価することと、
表示のためにアセットを構築するために前記階層コマンドを評価することであって、前記階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、該ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも１つであり、前記アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置される前記アセットの時間を通じた多数のスライスである、評価することと、
表示のために時間における前記アセットの連続的なスライスを生成し且つ前記アセットをコンピュータディスプレイに提示することによって、表示のために前記アセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従って前記スライスを変換するための変換データを有する、視覚化することと、を含む、
方法。
【請求項８】
前記アクセスすること、前記評価すること、および前記視覚化することのうちの少なくとも１つは、前記アセットを時間変化する方法で前記コンピュータディスプレイでレンダリングするよう実行時に計算される、請求項７に記載の方法。
【請求項９】
コンピュータシステムによって実行されるときに、該コンピュータシステムに３次元オブジェクトの表示を生成する方法を実行させる、コンピュータ可読命令のセットを含む、コンピュータプログラムであって、前記方法は、
３次元オブジェクトの第１の部品を表示のために生成することであって、前記第１の部品は、少なくとも、基底界面と、第１の界面とを有する、生成することと、
前記第１の部品をディスプレイデバイスに表示することと、
前記表示される第１の部品に形状を変えさせることと、
前記３次元オブジェクトの第２の部品を表示のために生成することであって、前記第２の部品は、少なくとも、基底界面を有する、生成することと、
前記第２の部品が前記ディスプレイデバイスに表示されるときに、前記第２の部品の前記基底界面が前記第１の部品の前記第１の界面と適合するよう、前記第２の部品を並進させ且つ方向付けることと、
前記第２の部品の前記基底界面が前記第１の部品の前記第１の界面と適合した状態で前記第２の部品を前記ディスプレイデバイスに表示することと、を含む、
コンピュータプログラム。
【請求項１０】
コンピュータシステムによって実行されるときに、該コンピュータシステムに、時間変化するアセットをコンピュータディスプレイで生成させる、コンピュータ可読命令のセットを含む、コンピュータプログラムであって、前記方法は、
電子記憶装置に格納されるルールのセットにアクセスすることであって、該ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するために前記ルールを評価することと、
表示のためにアセットを構築するために前記階層コマンドを評価することであって、前記階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、該ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも１つであり、前記アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置される前記アセットの時間を通じた多数のスライスである、評価することと、
表示のために時間における前記アセットの連続的なスライスを生成し且つ前記アセットをコンピュータディスプレイに提示することによって、表示のために前記アセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従って前記スライスを変換するための変換データを有する、視覚化することと、を含む、
コンピュータプログラム。
【請求項１１】
前記ルールは、アセットを定義するデータ記号の線形構造として表される、請求項７または請求項８に記載の方法。
【請求項１２】
前記ルールは、並列書き換えシステムに従って評価される、請求項７、請求項８、または請求項１１に記載の方法。
【請求項１３】
前記変換データは、４Ｄ位置オフセット、前記アセット上の各分枝点について、次のアセットを整列させるための四元数を含み、前記４Ｄ位置オフセットの第４の成分は、隣接するアセットに対して各アセットの年数をオフセットさせる、請求項７、請求項８、請求項１１、または請求項１２に記載の方法。
【請求項１４】
前記ユーティリティコマンドは、重力、カスタム力、無作為力、時計回りヨー回転、反時計回りヨー回転、終端枝、および枝老化防止のうちの１以上の命令である、請求項７、請求項８、または請求項１１〜１３のうちのいずれか１項に記載の方法。
【請求項１５】
シェーダがテクスチャから相対変形データをサンプリングし、相応して、メッシュの頂点を再配置することができるよう、均一なパラメータを介して前記変換データを管理する材料に対して年数を設定することを含む、請求項７、請求項８、または請求項１１〜１４のうちのいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、３次元オブジェクト(３次元物体)の表示(ディスプレイ)を生成する方法、装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
ディスプレイデバイスでの表示のために３次元オブジェクトがコンピュータ生成される多くの用途がある。これは、例えば、コンピュータゲーム、コンピュータ図面、アニメーションパッケージおよび同等物を含む。現在のところ、生成される３次元オブジェクトは、それらが時間の経過と共に変化または進化しない或いは変化または進化し得ないという意味で、通常は静的である。３次元オブジェクトが時間の経過と共に変化または進化することが意図されるならば、現在のところ、３次元オブジェクトの各反復を異なるときに前もってモデル化することが一般的である。これは、実際には、異なるときに３次元オブジェクトの静止画像のセットを生成し、次に、それらは順番に表示される。しかしながら、これは時間がかかる。何故ならば、アーティストまたは他のコンテンツ作成者は、各画像を個別に準備しなければならないからである。代替として、コンピュータを用いて、異なるときに３次元オブジェクトの静止画像を手順的にモデル化することができるが、これは外観が同一であるか或いは少なくとも不自然なオブジェクトをもたらす傾向を有する。いずれにしても、それは、潜在的に大量のデータが格納され、表示のために、例えば、グラフィックスプロセッサに送信される必要があり、次に、グラフィックスプロセッサは、大量のデータを処理する必要があり、それは必ずしも実用的でないか或いは実行可能でさえない場合もあることを意味する。
【発明の概要】
【０００３】
この概要は、発明を実施するための形態において以下に更に記載する概念の選択を簡略化された形式で導入するために提供される。この概要は、特許請求する主題事項の鍵となる構成または本質的な構成を特定することを意図したものでなく、特許請求する主題事項の範囲を限定するために使用することを意図したものでもない。特許請求する主題事項は、本明細書に記載する欠点のいずれかまたは全てを解決する実装に限定されない。
【０００４】
本明細書に開示する第１の態様によれば、３次元オブジェクトの表示を生成するコンピュータ実装される方法が提供され、方法は、
３次元オブジェクトの第１の部品を表示のために生成することであって、第１の部品は、少なくとも、基底界面(ベース界面)と、第１の界面とを有する、生成することと、
第１の部品をディスプレイデバイスに表示することと、
表示される第１の部品に形状を変えさせることと、
３次元オブジェクトの第２の部品を表示のために生成することであって、第２の部品は、少なくとも、基底界面を有する、生成することと、
第２の部品がディスプレイデバイスに表示されるときに、第２の部品の基底界面が第１の部品の第１の界面と適合(嵌合)するよう、第２の部品を並進させ且つ方向付けることと、
第２の部品の基底界面が第１の部品の第１の界面と適合した状態で第２の部品をディスプレイデバイスに表示することと、を含む。
【０００５】
これは第１の部品および第２の部品がシームレスに接合されることを可能にして、部分から形成される最終オブジェクトに滑らかな外観をもたらす。
【０００６】
第２の部品の基底界面は、典型的には、第１の部品の第１の界面と同じ形状を有する。その上、幾つかの例において、３次元物体の第２の部品を表示のために生成することは、第２の部品が表示されるときに、第２の部品の基底界面が第１の部品の第１の界面と同じサイズであるように、第２の部品のサイズを設定することを含む。これは第２の部品の基底界面と第１の部品の第１の界面との間にシームレスな接合があることを保証するのを更に助ける。第２の部品の基底界面および第１の部品の第１の界面のそれぞれのサイズは、正確に同じである必要はなく、例えば、如何なる僅かな差もディスプレイデバイスの視認者に知覚可能でないような許容範囲内で同じであってよい。これに関連する要因は、例えば、ディスプレイデバイス（すなわち、ディスプレイデバイスに送られる画像）のスクリーン解像度を含む。
【０００７】
ある例において、表示される第１の部品に形状を変えさせることは、表示される３次元オブジェクトが時間の経過と共に形状を変えるように、表示される第１の部品に時間の経過と共に形状を変えさせる。
【０００８】
ある例において、方法は、
表示される第１の部品に更に形状を変えさせることと、
表示される第２の部品に形状を変えさせることと、を含み、
第１の部品および第２の部品の形状を変えることは、第２の部品の基底界面が第１の部品の第１の界面と適合し続けるように行われる。
【０００９】
ある例において、方法は、
３次元オブジェクトの第３の部品を表示のために生成することであって、第３の部品は、少なくとも基底界面を有する、生成することと、
ディスプレイデバイスに第３の部品を表示することであって、表示される第３の部品は、第３の部品の前記基底界面が第１の部品の第２の界面または第２の部品の第１の界面と適合するように、必要に応じて並進させられ且つ方向付けられる、表示することと、を含む。
【００１０】
更なる部品は、同様に生成および表示されてよく、更なる部品は、任意的に階層的な様式において、以前に表示された部品と適合される。
【００１１】
ある例において、オブジェクトの各部品は、同じデータ構造に基づいてグラフィックスプロセッサによってインスタンス化される。
【００１２】
これはグラフィックスプロセッサの効率的な使用をもたらす。何故ならば、それはグラフィックスプロセッサによって処理されなければならないデータの量を減少させるからである。それはグラフィックプロセッサに送信されなければならないデータの量も減少させる。
【００１３】
ある例において、データ構造は、基準部品(reference  part)の形状を定義するデータを含み、データ構造は、基準部品の形状に関する多数の異なる時点におけるオブジェクトの部品の形状の差を定義する差データ(difference  data)を含む。
【００１４】
これはグラフィックスプロセッサの効率的な使用を更に提供する。何故ならば、それはグラフィックスプロセッサによって処理されなければならないデータの量を更に減少させるからである。それはグラフィックスプロセッサに送信しなければならないデータの量も更に減少させる。３次元オブジェクトの異なる部品は、その部品がディスプレイデバイスに表示されているときに対応する基準部品からの形状の差に基づいて表示のために生成されることができる。
【００１５】
基準部品は、例えば、全体的に成熟した部品であってよく、全体的に成熟した部品は、それが最大サイズにあるときの部品である。表示されるときに時間の経過と共に成長することが意図されるオブジェクトの場合、これは部品が最も古い状態にあるときに対応する。他方、表示されるときに時間の経過と共に縮小または減少することが意図されるオブジェクトの場合、これは部品が最も若い状態にあるときに対応する。それにも拘わらず、一般的には、例えば、基準部品と無関係に、最も古いものから最も若いものまでまたは最も若いものから最も古いものまでを混合することが可能である。
【００１６】
ある例において、基準部品の形状は、複数の頂点によって定義され、差データは、各頂点についての並進データ(translational  data)を含み、各頂点についての並進データは、基準部品の頂点の位置に対する異なる時点でのオブジェクトの各部品の頂点についての位置の差を表す
【００１７】
並進データは、基準部品の形状を定義するデータと共にテクスチャ(texture)としてグラフィックスプロセッサに送られてよい。
【００１８】
本明細書に開示する第２の態様によれば、時間変化するアセット(asset)をコンピュータディスプレイで生成するコンピュータ実装される方法が提供され、方法は、
電子記憶装置に格納されるルール(規則)のセットにアクセスすることであって、ルールは、少なくとも、基本アセット(ベースアセット)を定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプ(asset  type)を定義するアセットコマンド(asset  command)と、ユーティリティコマンド(utility  command)とを含み、ユーティリティコマンドは、回転コマンド(rotation  command)および年数制約(age  constraint)のうちの少なくとも１つであり、アセットタイプは、変換データ(transformation  data)と関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンド(age  constraint  utility  command)によって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む。
【００１９】
ある例において、基本アセットは、手動で設計されるメッシュの形態にある。
【００２０】
ある例において、アクセスすること、評価すること、および視覚化することのうちの少なくとも１つは、アセットを時間変化する方法でコンピュータディスプレイにレンダリングするよう実行時に計算される。
【００２１】
ある例において、ルールは、アセットを定義するデータ記号の線形構造として表される。
【００２２】
ある例において、ルールは、並列書き換えシステム(parallel  rewriting  system)に従って評価される。
【００２３】
ある例において、変換データは、４Ｄ位置オフセット、アセット上の各分枝点について、次のアセットを整列させるための四元数を含み、４Ｄ位置オフセットの第４の成分は、隣接するアセットに対して各アセットの年数をオフセットさせる。
【００２４】
ある例において、ユーティリティコマンドは、重力、カスタム力、無作為力、時計回りヨー回転、反時計回りヨー回転、終端枝、および枝老化防止のうちの１以上の命令である。
【００２５】
ある例において、方法は、シェーダ(shader)がテクスチャから相対変形データ(relative  deformation  data)をサンプリングし、相応して、メッシュの頂点を再配置することができるよう、均一なパラメータを介して変換データを管理する材料に対して年数を設定することを含む。
【００２６】
本明細書に開示する第３の態様によれば、コンピュータシステムが提供され、コンピュータシステムは、
少なくとも１つのプロセッサと、
コンピュータプログラム命令を含む少なくとも１つのメモリと、を含み、
少なくとも１つのメモリおよびコンピュータプログラム命令は、少なくとも１つのプロセッサを用いて、コンピュータシステムに３次元オブジェクトの表示を生成する方法を実行させるように構成され、方法は、
３次元オブジェクトの第１の部品を表示のために生成することであって、第１の部品は、少なくとも、基底界面と、第１の界面とを有する、生成することと、
第１の部品をディスプレイデバイスに表示することと、
表示される第１の部品に形状を変えさせることと、
３次元オブジェクトの第２の部品を表示のために生成することであって、第２の部品は、少なくとも、基底界面を有する、生成することと、
第２の部品が前記ディスプレイデバイスに表示されるときに、第２の部品の基底界面が第１の部品の第１の界面と適合するよう、第２の部品を並進させ且つ方向付けることと、
第２の部品の基底界面が第１の部品の第１の界面と適合した状態で第２の部品をディスプレイデバイスに表示することと、を含む。
【００２７】
本明細書に開示する第４の態様によれば、コンピュータシステムが提供され、コンピュータシステムは、
少なくとも１つのプロセッサと、
コンピュータプログラム命令を含む少なくとも１つのメモリと、を含み、
少なくとも１つのメモリおよびコンピュータプログラム命令は、少なくとも１つのプロセッサを用いて、時間変化するアセットをコンピュータディスプレイに生成する方法を実行させるように構成され、方法は、
（ａ）電子記憶装置に格納されるルールのセットにアクセスすることであって、ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
（ｂ）表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも１つであり、アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
（ｃ）表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む。
【００２８】
本明細書に開示する第５の態様によれば、コンピュータシステムによって実行されるときに、コンピュータシステムに３次元オブジェクトの表示を生成する方法を実行させる、コンピュータ可読命令のセットを含む、コンピュータプログラムが提供され、方法は、
３次元オブジェクトの第１の部品を表示のために生成することであって、第１の部品は、少なくとも、基底界面と、第１の界面とを有する、生成することと、
第１の部品をディスプレイデバイスに表示することと、
表示される第１の部品に形状を変えさせることと、
３次元オブジェクトの第２の部品を表示のために生成することであって、第２の部品は、少なくとも、基底界面を有する、生成することと、
第２の部品がディスプレイデバイスに表示されるときに、第２の部品の基底界面が第１の部品の第１の界面と適合するよう、第２の部品を並進させ且つ方向付けることと、
第２の部品の基底界面が第１の部品の前記第１の界面と適合した状態で第２の部品を前記ディスプレイデバイスに表示することと、を含む。
【００２９】
上述のように、コンピュータプログラムを格納する非一時的なコンピュータ可読記憶媒体が提供されてよい。
【００３０】
本明細書に開示する第６の態様によれば、コンピュータシステムによって実行されるときに、コンピュータシステムに、時間変化するアセットをコンピュータディスプレイで生成させる、コンピュータ可読命令のセットを含む、コンピュータプログラムが提供され、方法は、
（ａ）電子記憶装置に格納されるルールのセットにアクセスすることであって、ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
（ｂ）表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも１つであり、アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
（ｃ）表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む
【００３１】
上述のようなコンピュータプログラムを格納する非一時的コンピュータ可読記憶媒体が提供されてよい。
【００３２】
本開示の理解を助けるために並びに実施形態がどのように実施されることがあるかを示すために、一例として添付の図面をする。
【図面の簡単な説明】
【００３３】
【図１】異なる時点における３次元オブジェクトの多数の部品の例を図式的に示している。
【００３４】
【図２】図１の部品のうちの２つを図式的に示している。
【００３５】
【図３】図２の部品の頂点を図式的に示している。
【００３６】
【図４】図１の単一の部品の形状の差についてのデルタの表現を図式的に示している。
【００３７】
【図５】図１の全ての部品の形状の差についてのデルタの表現を図式的に示している。
【００３８】
【図６Ａ】ディスプレイのためのオブジェクトの部品の産出(spawning)および成長(growth)の例を図式的に示している。
【図６Ｂ】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
【図６Ｃ】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
【図６Ｄ】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
【００３９】
【図７Ａ】部品の一例および部品の界面を図式的に示している。
【図７Ｂ】部品の一例および部品の界面を図式的に示している。
【発明を実施するための形態】
【００４０】
この開示において、「手順的に作成する(procedurally  create)」という用語または同等の用語は、ユーザ対話(ユーザ相互作用)なしに自動的に作成することを意味すると理解されることができる。「スタイル付き(styled)」という用語は、一連のルール(規則)を使用して一定のスタイルを定義することを意味すると理解されることができる。例えば、樹木の場合、異なるスタイルが、柳の木または樫の木のような、樹木の異なる種に対応することがある。別の例として、洞穴またはトンネルシステムの場合、異なるスタイルは、例えば、金鉱、氷河洞穴、溶液洞穴などのような、異なる基本的なタイプの洞穴またはトンネルに対応してよい。「階層的(hierarchical)」または「樹形構造(tree-like  structure)」または同等の表現は、樹木、洞窟網、または稲妻を含むが、これらに限定されない、反復するまたはフラクタルタイプの幾何学的形状を示すと理解されることができる。手作りのメッシュアセット(メッシュ資材)(mesh  assets)または部品(parts)は、さもなければ手順的に作成されない、アーティストや他のコンテンツ作成者によって作成されるカスタム幾何学的形状への言及である。これは、例えば、樹上の家(ツリーハウス)の一部またはより複雑な樹木部品であることがある。
【００４１】
この開示は、（Aristid  Lindenmayerによって１９６８年に開発され、以下で更に議論する）従来的なＬ−システムの制限を受けずに、任意の無作為のメッシュから、他の構造を作成することができるが、特に４Ｄ階層構造または樹形構造を含む、ディスプレイデバイスに表示するためのオブジェクトを生成するための方法の例を記載する。本方法によって解決される問題は、カスタムメイドの幾何学的形状区画を使用すること、および意図されるように如何なる穴またはギャップもなくメッシュ区画が互いに適合するのを保証することが、困難なタスクであることである。例えば、樹木を作成するときに、手順的に作成されたチューブが互いに適合するのを保証することは、比較的容易である（以下のAristid  Lindenmayerによって開発されたL-systemsの議論を参照のこと）。しかしながら、樹木の主幹から成長する枝、洞穴システム、または時間の経過と共に発達する照明効果などのような、時間の付加的な要素(component)を備えるより複雑なカスタム幾何学的形状を用いて、例えば、樹木、洞穴システム、または他の複雑なオブジェクトのような、より複雑なオブジェクトを作成する必要があるならば、この複雑な形状を手順的に作成し、次に、それを用いて穴または継ぎ目のない階層的または樹形構造または分枝構造を作成することは、簡単でない。１つの実施形態において、本方法は、手作りされたメッシュアセットまたは部品から、スタイル付き樹形構造または他の階層構造を手順的に作成する。目的は、カスタム幾何学的形状が、より単純で、手順的に生成された構造の方法で利用されることを可能にするので、それらが時間の経過と共に変化するときに、明白な不連続性なしに、それらが現実的に描画(レンダリング)されることができることである。
【００４２】
例示的な方法は、実行時に計算されることができる３つの別個の演算(operations)に分割されると考えられることができるが、本方法は、実行時に作動することに制約されず、前もって「オフライン」で作動させられてよい。これらの３つの別個の演算は、１）構造の生成、２）構造に適合する実体(エンティティ)の作成、および３）必要とされるときに実体を更新することとして要約されるか或いは特徴付けられてよい。
【００４３】
一例における一意的な構造の生成は、２つの別個のステップ、すなわち、一連のコマンドを生成するために一連のルールを評価すること、および最終オブジェクトを構成するアセット(資材)(assets)または部品(parts)を構築するためにそれらのコマンドを評価することの形態を取る。
【００４４】
ルールを評価することの第１のステップでは、あらゆる階層オブジェクトをスタイルに一般化することができる。例えば、銀白色の樹木は、背が高く、細長く、細い枝を有すると定義することができ、特定の洞穴システムは、例えば、金鉱、氷河洞窟、溶液洞穴などのような、特定のタイプの洞穴であると定義されることができる。他のスタイルが、他のタイプの樹木、または樹木ではない他のオブジェクトまたは構造について提供されてよい。このスタイルは、例えば、ユーティリティコマンドおよびオブジェクトの部分を表す、データ記号の（多次元であってよい）線形の構造によって表されることができる。ルールは、多くのレベルを与えられた並列書き換えシステムを用いて評価される。これはコマンドの階層を定義する新しいデータ構造を生成する。この並列書き換えシステムは、リンデンマイヤーのＬ−システムの適応であり、この方法における使用のために適合されるが、類似の原理を使用する。
【００４５】
この点に関して、Aristid  Lindenmayerによって１９６８年に開発された従来的なＬ−システムは、植物の発達における成長過程をモデル化するために開発された並列書き換えシステムである。それらは、樹木の骨格を生成するようコンピュータグラフィックスに適応され、然る後、他の手順的なシステムが、骨格に沿って自動的に管を作成することができる。これらの方法を用いて、無作為に見えるが自然な外観を有する樹木を手順的に作成することができる。しかしながら、このシステムは、管の記述のみを用いることができるという事実によって制限される。コンピュータデバイス内でグラフィカルに描画されるオブジェクトを作成するときに、手順的な管を互いに嵌合させるのを保証することは、比較的容易である。しかしながら、他の幾何学的形状の生成のためにＬ−システムを拡張することは単純な問題でなく、それは描画されることができるグラフィック形状のタイプを制限する。それは異なる時間にオブジェクトをモデル化する必要性を考えるときに特に困難である。
【００４６】
２）それらのコマンドを評価する次のステップは、コマンドの階層を取り、これらを処理して、オブジェクトの最終的な（複数の）アセットまたは（複数の）部品を作成する。この例では、２つのタイプのコマンド、すなわち、アセットタイプおよびユーティリティタイプがある。この例において、アセットタイプは、４次元メッシュへの参照である。この参照は、（典型的には、グラフィックス処理ユニットまたはＧＰＵのようなハードウェアプロセッサ、または処理ソフトウェアまたは同等物において）、シェーダ、特に頂点シェーダによって使用される）オブジェクトおよび変換データ(transformation  data)をシェーディング(shading)するための関連材料も伴う。一例において、変換データは、４Ｄ位置オフセット、オブジェクトの次の部分を整列させるための四元数、および、アセットまたはオブジェクトの部分上の各分枝点についての他のデータを含む。
【００４７】
一例において、ユーティリティタイプは、重力、カスタム力、無作為回転、時計回りヨー回転、反時計回りヨー回転、エンド分枝、および分枝エイジング防止のうちの１つの命令である。他の例は、例えば、植物が光源に向かって成長する光屈性、部分が風と共に曲がるように強制される風向きなどを含む。これらの命令は、以前の分枝方向についての部品回転を修正するか、或いは第４（時間）次元に制約を適用する。各コマンド中に、必要に応じて、オブジェクトのアセットまたは部品が作成され、相応して変換される。システムが全てのコマンドを処理した後に、４次元の階層構造に編成されたオブジェクトの多数のアセットまたは部品が取得される。
【００４８】
第２の演算２）構成に準拠した実体の作成は、互いに接合されて表示オブジェクトを形成する部品やアセットを生成することを含む。これは最終オブジェクトの時間を通じたスライスを視覚化することを含む。第３の演算３）３）必要に応じて実体を更新することについて、一例では、オブジェクトの個々のアセットまたは部品を作成する作成する間に、時間を通じてビジュアルを処理するために、材料が作成されて、割り当てられる。これらの材料は、変換データで符号化されたテクスチャ入力をサンプリングする。このデータは、メッシュを変形させることができ、従って、オブジェクトを、その第４の次元（時間）を通じて表す。このシステムを使用して成長する樹木または形状を変える他の構造を作成するとき、このデータは、メッシュの全ての頂点を、その最終的な円筒状の状態から、薄い円筒(シリンダ)に変形させ、次に、円錐状に変形させ、最終的に、全ての頂点が互いに重なり合って折れ曲がる小さなシードに変形させる。
【００４９】
均一のパラメータを用いて材料の年齢を設定することによって、グラフィックスプロセッサまたは処理ソフトウェアの頂点シェーダは、テクスチャから相対的な変形データをサンプリングし、相応して頂点を再配置する。各部品の材料は、第４の次元（ここでは時間）におけるオフセットが割り当てられる。これは、各部品の個々の年齢またはローカル時間をオフセット(相殺)し、部品間のシームレスな接合を提供するので、部品から形成される最終的なオブジェクトの外観は、単に１つの滑らかなメッシュである。ここで、最終オブジェクト全体に一定の年齢または時間を設定し、第４（時間）次元においてこれらのローカルオフセットを加えることによって、結果は、単数の一致した最終オブジェクトである。
【００５０】
ここで、本開示の特定の例についての記述が与えられる。この例は、形状を変える、特にコンピュータゲームの文脈において時間の経過と共に形状を変える、３次元オブジェクトの表示を生成することに関して与えられる。この例において、３次元オブジェクトの表示の生成は、実行時、すなわち、コンピュータゲームが稼動しているときに実行される。しかしながら、本開示は、時間の経過と共に形状を変える３次元オブジェクトの表示を前もって（すなわち、実行時ではなく）生成するために使用されてよい。本開示は、例えば、コンピュータ作図ソフトウェアパッケージのような、他の用途において使用されてもよい。
【００５１】
本明細書に記載する具体的な例は、２つの主要な段階を有する。第１の段階において、コンテンツおよび関連データが生成される。第２段階において、ディスプレイデバイス上の表示のために３次元オブジェクトが生成され、表示される３次元オブジェクトの形状は、時間の経過と共に変えられる。
【００５２】
本明細書に記載する具体的な例は、３次元オブジェクトが樹木であることに関して与えられる。樹木は、形状を変えることができ、それは、例えば、時間の経過と共に成長する樹木を表すために使用されることがある。しかしながら、本明細書に記載する原理は、時間の経過と共に形状または外観を変える或いは最初から異なる形状または外観を有する他の３次元オブジェクトに適用されてよい。これは、例えば、潅木および植物、葉、花、果実などのような、他の植生を含む。表わされることがある他の３次元物体は、樹上の家または他の建物または構造、洞穴またはトンネルシステム、稲妻、ロボット状のまたは他のアニメーション化されたキャラクタ、生物の触手、川、電線などを含む。他の例において、３次元オブジェクトは、建物または洞穴ネットワークの内部のような、何らかの空間の内部であってよい。他の例において、３次元オブジェクトは、例えば、拡散する光または暗闇の傾向の様式で表示されるシーンまたは表示されるシーン内の特定のオブジェクトの上を或いはそれらを通じて移動する外観を有する、色またはシェーディング効果の表現であってよい。時間の経過と共に変化する形状または外観に加えてまたはその代わりに、例えば、成長する樹木、時間の経過と共に風化する葉、成熟した緑色の状態から枯れた黄色または赤色の秋の状態に移る葉、または、例えば、時間の経過と共に損傷または侵食されるオブジェクトなどを表すために、本明細書に記載する技術は、３次元物体または３次元物体の部分に、計算的に効率的な方法で、最初から物体に亘っておよび／または部分間で異なる外観を持たせるために使用されることができる。
【００５３】
いずれにしても、３次元オブジェクトは、時間の経過と共に或いは何らかの他のパラメータの故に変化するので、これは、４次元モデルと考えられてよい。
【００５４】
第１の段階のコンテンツ作成フェーズにおける第１の演算として、オブジェクトの少なくとも２つの部品が作成される。これらは、例えば、それ自体知られている方法において、コンピュータを用いて、人間によって描かれてよい。２つの部品は、異なる時間におけるオブジェクトの一部分のスナップショットを表す。幾つかの例では、オブジェクトの２つよりも多くの部品が作成されてよい。この段階で作成されるより多くの数の部品は、時間の経過と共に変化するオブジェクトのより流動的またはシームレスな表現をもたらす。他方、この段階で作成されるより少ない数の部品は、この段階でより少ない時間を必要とし、表示のために３次元オブジェクトが生成されているときにより低いデータ記憶能力およびより低い処理能力も必要とする。
【００５５】
この一例が図１に図式的に図示される。これは、１１個の部品１０(parts)を示しており、この具体的な例において、部品１０は、１１の異なる時点における樹木の断面または部分(portion)を表す。他の例では、他のオブジェクトまたは構造をモデル化するときに、そのような部品は、異なる時点での他のオブジェクトまたは構造の一部を表す。更に他の例において、部品は、オブジェクトに亘って異なる外観を有する３次元オブジェクトの部品を表すことがある。これらの部品１０のうちの１つは、次に、３次元オブジェクトが表示のために生成されているときに、基準部品として使用される。この例において、基準部品は、全体的に成熟した部品であり、それはそれが最大サイズにあるときの部品である。表示されるときに時間の経過と共に成長することが意図されるオブジェクトの場合、これは部品が最も古い状態にあり、（図１の最も上の部品にも示されている）図１の最も右の部品にある部品１０’であるときに対応する。表示されるときに時間の経過と共に縮小または減少することが意図されるオブジェクトの場合、これは部品がその最も若い状態にあるときに対応する。他の例では、異なる中間部品１０が基準部品として使用されてよい。
【００５６】
コンピュータモデリング自体において知られているように、各部品１０は、多数の頂点１２によって定義される。図１の例では、時間の経過につれて１つの部品１０から別の部品に向かうと、頂点１２は、互いから離れて移動し、それは時間の経過と共に成長する部品を表す。互いに対する頂点１２の移動は、部品１０の形状が時間の経過と共にどのように発達するかを定義し、以下で更に議論するように、３次元オブジェクトの変化する形状を制御するために使用されることができる。図１の最も左（最も若い）部品１０において、頂点１２の全ては、図中にドットによって示されるように、単一の点に折り畳まれる(collapsed)ことが留意されてよい。加えて、アーティストまたは他のコンテンツ作成者が、最も若い部品および最も古い部品のような２つの部品を「手で(by  hand)」作成し、次に、自動化されたコンピュータプロセスを使用して任意の数の所望の中間部品を生成することが可能であってよい。
【００５７】
原理的には、異なる部品１０は、表示のための３次元オブジェクトの生成のために、このフォーマットで有効に使用されることができる。しかしながら、樹木または他のオブジェクトまたは構造のような、多数のオブジェクトを描くとき、これは表示を生成しているグラフィックスプロセッサまたは同等物に高い要求を課し、多くのグラフィックスプロセッサには実行可能でないことがあり、且つ／或いはぎくしゃくして滑らかでない成長の外観をもたらすことがある。
【００５８】
これを処理するより効率的な方法は、基準部品１０’に対する各部品１０の形状の差を識別して記録し、それらの差に関するデータをグラフィックスプロセッサに送信することである。一例において、作成した部品１０の各々について、基準部品１０’における対応する頂点１２に対する部品の各頂点１２の（見かけの）動きが識別される。一例として図２を参照すると、これは左側に基準部品１０’を示しており、右側に他の部品１０のうちの１つ（この例では、頂点１２の全てが単一の点に折り畳まれている図１の最も左（最も若い）部品１０に続く第１の部品１０）を示している。図２には、基準部品１０’の特定の頂点１４’および他の部品１０の対応する頂点１４が示されている。
【００５９】
図３は、明瞭性のために、基準部品１０’の特定の頂点１４’および他の部品１０の対応する頂点１４を示しており、他の頂点１２は省略されている。図３は、基準部品１０’の特定の頂点１４’が、ベクトルまたは「デルタ」Δ１に沿って、他の部品１０の対応する頂点１４に効果的に移動することを示している。デルタΔ１は、ｘ、ｙ、ｚ成分を有する。図示の例では、図３に示すように、ｚ成分が上を指す左手の座標系が使用される。明らかになる理由の故に、デルタΔ１のｘ，ｙ，ｚ成分は、色のＲＧＢ値として表されてよい。すなわち、デルタΔ１は、着色画素ｐ１として表わされてよい。画素情報は、しばしば、従来的に、８ビット精度、従って、チャネル当たり２５６個の一意的な値で格納されることが留意されてよい。本例では、８ビット精度が使用されてよい。しかし、この例では、データの範囲および精度をより良く維持するために、３２ビット精度が使用される。
【００６０】
基準部品１０’と他の部品１０との間の頂点１２の相対的な移動のこの識別は、頂点１２の全てについて繰り返される。これは、各頂点１２について１つずつ、対応する数のデルタΔｎをもたらす。相応して、これは対応する数の着色画素ｐｎをもたらす。次に、着色画素ｐｎは、（少なくとも概念的には）行(row)に配列されてよい。これは、各部品１０が５０個の頂点を有し、従って、５０個のデルタΔがあり、従って、５０個の着色画素ｐがある場合についての図４に図式的に示されている。図４および図５において、画素ｐの個々の「色」は、場合によって異なり、典型的には、各画素について一意の異なる値であるが、例示の目的のために、以下の表１に示すシェーディング(shading)が、この特定の例における色を図式的に示すために用いられる。
【表０００１】
2022500761.tif 000003
【００６１】
このプロセスは、他の部品１０の各々について実行される。これは多数のデルタのセットをもたらし、それは着色画素の行として表されてよい。これは、合計１１個の部品１０がある場合についての図５に図式的に例示されている。図５は、各部品１０についての各頂点についてのデルタが画素ｐｎｔの２次元行列として表わされてよいことを示しており、ここで、ｎは、頂点１２の数（ここでは５０個）であり、ｔは、部品１０の総数（ここでは１１個）に対応する時間インスタントの数である。第１の最も上の行はブランクであることが留意されてよい。何故ならば、それは基準部品１０’を表すからである。
【００６２】
この結果は、その頂点１２のｘ，ｙ，ｚ場所と、各他の部品１０について１つずつの、多数の差またはデルタΔｎのセットとによって定義される、基準部品１０’であり、その場合、差の各セットは、（この例では）異なる時点における樹木の区画または部分を一緒に表す、頂点１２の相対的な移動を定義するために使用される。この例において、デルタΔｎのセットは、テクスチャとして表わされている。換言すると、この初期作成フェーズの終わりには、１つの３次元メッシュがあり、３次元メッシュは、基準部品１０’と、基準部品１０’またはメッシュ内の頂点１２の相対的な移動を定義するために使用されるデータ構造と考えられてよいテクスチャとがある。共に、これらは、以下に更に議論するように、表示のための３次元オブジェクトを生成し、生成された３次元オブジェクトの形状を時間の経過と共に変化させるために、引き続き使用される。
【００６３】
次の段階として、少なくとも１つの界面(インタフェース)が、部品１０の各々について画定される。界面１０は、異なる部品１０が表示されるオブジェクト中で接合されることを可能にするよう、表示のための３次元オブジェクトの生成中に引き続き使用される。異なる部品１０のこの接合は、ユーザには見えない滑らかなまたはシームレスな接合を提示するようなものである必要がある。表示される画像中で接合される異なる部品１０のこの使用は、表示される３次元オブジェクトが時間の経過と共に形状を変えることを可能にする効率的な方法を提供する。この例では、これは、より大きく成長すること、および任意的に新しい枝、小枝などを加えることによって、樹木が時間の経過と共に成長するように見えることを可能にする。３次元オブジェクトが洞穴またはトンネルシステムである例において、これは、例えば、時間の経過と共に成長する洞穴または他の構造を示すために使用されることができる。この成長は、例えば、樹木と同様に、洞穴または他の構造が、時間の経過と共により大きく成長する意味において、「有機的」であることがある。これは、例えば、洞穴またはトンネルシステムが、それらが掘削されるか或いは新しいトンネルが形成されるなどに応じて深くなることを例示するために、使用されてよい。
【００６４】
三次元物体の表示中に、これが実際にどのように作動するかを例示するために、図６Ａ〜図６Ｄを参照する。この例は、例示の目的のための簡単な例であり、各部品は、樹木の幹の部分または細い枝である。
【００６５】
先ず、３次元オブジェクトの表示中に、部品が表示させるか或いは「生み出させる(spawned)」。この第１の部品は、ゼロに設定されたそのローカル時間を有し、従って、これはシーケンスの最も早い時間を表すので、第１の部品は、図６Ａに示されるように、事実上、点６００である。
【００６６】
次に、第１の部品は、効果的により大きく成長させられる。これは、部品のローカル時間を１単位時間だけ増分させることによって、すなわち、この時点で部品についてのローカル時間を１に設定することによって達成される。（個々の部品の成長がどのように達成されるかの例が以下に更に議論される）。図６Ｂに示されるように、これは、第１の部品を、（この例では）細長いスティック状の部品６０１になるように、より長く、より厚く成長させる。加えて、第２の新しい部品が生み出される。この段階で、第２の部品のローカル時間は、ゼロに設定され、よって、第２の部品は、事実上、図６Ｂに示されるように、点６２０である。
【００６７】
次に、各部品についてのローカル時間は、１だけ増分される。図６Ｃに示されるように、第１の部品は、６０２によって示されるように、より長く、より厚く成長しており、第２の部品も、同様に、６２１によって示されるように、より長く、より厚く成長している。加えて、第３の新しい部品が、そのローカル時間がゼロに設定された状態で産み出され、よって、第３の部品は、事実上、点６４０である。これは、図６Ｄに示されるように、繰り返されることができ、図６Ｄは、第１〜第３の部品のサイズが、それぞれ、参照番号６０３、６２２、６４１によって示されるように成長し、ローカル時間がゼロに設定された新しい部品６６０が追加されていることを示している。
【００６８】
この例では、基本的に、同じ部品６０が３回有効に使用されことが留意されてよい。しかしながら、部品６０は異なる。何故ならば、少なくとも、それらは、時間の異なるスライスを表すからである、すなわち、それらが異なるローカル時間オフセットを有するように、時間における異なる量によってオフセットされるからである。（一般的に、部品６０は、異なる位置に位置するように並進され、また、回転されもするので、異なる）。この時点で、この例では、個々の部品６０、６２、６４から形成されるオブジェクト全体についての「時間」は、３単位時間であるのに対し、個々の部品６０、６２、６４についてのローカル時間は、それぞれ３、２、１であることが留意されてよい。
【００６９】
これは、各々の新しい部品が、以前にディスプレイデバイスに表示されていた部品とどのように接合するかを例示している。部品の滑らかな接合を可能にする重要な側面は、部品が互いに接合する界面である。このために、新しい部品が表示されるときに、新しい部品およびそれが接合される部品上のそれぞれの界面は、滑らかで実質的にシームレスな接合を提供するよう、空間内に配置され、互いに対して方向付けられる。このために、各界面には、２つの主要な成分、すなわち、並進オフセットおよび向きオフセットを有する、変換情報(transformation  information)またはデータ(data)が提供される。並進オフセットは、新しい部品を、それが接続している以前の部品に対して表示された画像内のローカル空間内で移動させる。向きオフセットは、新しい部品を以前の前の部品に対して回転させる。総合すると、これは、それぞれの部品の実際の形状に関係なく、新しい部品が以前の部品に対して正しい位置および向きにあることを可能にする。何故ならば、それぞれの部品の界面は、互いに対して正しく配置および配向されるからである。その上、「シームレスな」接合を得るために、並びに成長するときのまたはその他の方法で形状を変えるときの部品間のスムーズな移行を容易にするために、接続されている各部品の界面は、幾つかの例において、互いに同じサイズになるように配置する。しかしながら、他の例において、接続されているそれぞれの部品の界面は、例えば、所望の効果または外観に依存して、異なるサイズであってよい。例えば、以前の部品と交差する部品を追加することが望ましいことがある。樹木の場合の具体的な例として、これは、例えば、果実または葉が枝などに加えられることを可能にする。全体的に成熟した状態における界面のサイズは、界面の一部として定義されてよい。一例において、変換データは、重力および／または他の力または効果を加えるために、後に実行時システムで使用されてよい、界面の法線、接線、および従法線も含む。
【００７０】
界面を更に議論し、部品７０の一例を示す図７Ａを参照すると、各部品は、少なくとも基底界面７２を有する。基底界面７２は、図７Ｂにより明確に示されている。基底界面７２は、ｎ辺の多角形である。多角形は、一般的に、不規則な多角形であってよいが、幾つかの例において、多角形は、部品を接続するために部品の配向を容易にすることができる規則的な多角形であってよい。多角形の中心Ｏは、基底界面７２の原点である。その上、基底界面７２は、対称的であってよく、一般的には、多角形の側面ｎの数と同じまたは異なる対称性の順序(order  of  symmetry)を有してよい。基底界面７２に対する逆法線
（外０００１）
2022500761.tif 000004
は、ｚ軸に沿って上方を指す。基底界面７２の接線
（外０００２）
2022500761.tif 000005
（すなわち、基底界面７２の表面に対する接線であるベクトル）は、原点Ｏに由来し、ｘ軸に直接沿って向いている。接線
（外０００３）
2022500761.tif 000006
は、この例において、基底界面７２の境界上の頂点７４のうちの１つを通過する。
【００７１】
この例において、部品７０は、終端部分ではなく、従って、基底界面７２に加えて、別の界面、第１の界面、または一次界面７６を有する。この例において、一次界面７６は、多角形であり、多角形は、やはり、一般的には、不規則な多角形であるが、規則的な多角形であってよい。一次界面７６は、並進オフセットと、向きオフセットとを含む。この向きは、以下のように計算される。法線
（外０００４）
2022500761.tif 000007
および接線
（外０００５）
2022500761.tif 000008
は、一次界面７６について導出される。基底界面７２に関して、接線
（外０００６）
2022500761.tif 000009
は、一次界面７６の中心に由来し、一次界面７６の頂点のうちの１つを指す。次に、四元数回転が、それぞれ、［０，０，１］から
（外０００７）
2022500761.tif 000010
および［１，０，０］から
（外０００８）
2022500761.tif 000011
の２つの組み合わせ回転からコンパイルされる。（それ自体知られているように、四元数は、三次元におけるオブジェクトの向きおよび／または回転を表現するための数学的表記を提供する）。この一次界面７６について、四元数は、今や、それ自体の法線を用いて次の部品の基底界面に対する法線を方向付けることができ、接線も一度の計算で整列するように、次の部品をその法線の周りで回転させることもできる。すなわち、これは、隣接する部品の嵌合界面が互いに対して正しく配置および方向付けられることを可能にする。
【００７２】
この例において、部品７０は、更なる界面７８または二次界面７８を有する。これは更なる部品が第１の部品に接合されることを可能にする。この場合には、図面から分かるように、二次界面７８は、部品７０の本体または幹から外れて面し、それは、例えば、樹木の枝を表すために、更なる部品が追加されることを可能にする。しかしながら、追加される更なる部品は、例えば、モデル化されている樹上の家または他のオブジェクトの構成要素のような、他の品目を表すことがある。更なる界面が、部品７０上に設けられてよい。各界面は、一次界面７６と同じ方法で四元数によって定義される。
【００７３】
界面７２、７６、７８のための多角形の使用は、次の部品が実行できる回転を効果的に制限するという利点を有し、それは次の部品の回転がより予測可能であり、次の部品を以前の部品７０とより容易に整列させ得ることを意味する。
【００７４】
コンテンツおよび関連データを生成する第１の段階の最終フェーズとして、ルールが作成または定義され、次に、それらは、オブジェクトの部品、従って、典型的には、オブジェクト全体の外観または「スタイル(style)」を決定するために、視覚化段階で使用される。本例において、スタイルは、異なる種またはタイプの樹木を表す。他の例において、スタイルは、異なるタイプの雷、照明効果、洞窟ネットワーク、建物構造などのような、表示されるべき異なるタイプの他のオブジェクトまたは構造を表すことができる。ルールは、典型的には、アーティストまたは他のコンテンツ作成者によって「手で」生成される。３次元オブジェクトがディスプレイデバイス上での表示のために生成されるときのルールの使用を以下に更に議論する。しかしながら、簡潔には、本例において適用されるとき、ルールの適用は、記号のセットまたはアレイをもたらし、それらは、次に、コマンドとして解釈され、次に、コマンドは、以下で更に議論するように、表示のためのオブジェクトを生成するために引き続き使用される命令を生成するために評価される。
【００７５】
スタイルは、表示されるべきオブジェクトの特性のセットを定義する。各スタイルは、「公理」と、一連のルールとを有する。スタイル、公理、ルール、およびこの段階で作成されたものを理解するのを助けるために、並列書き換えシステムの概要が与えられる。上述のように、本明細書の例で使用され、以下により詳細に議論される、並列書き換えシステムは、LindenmayerのＬ−システムの適用と考えられてよく、この方法における使用のために特に適合させられた類似の原理を使用する。
【００７６】
Ｌ−システムは、一連のルールおよび公理を使用する反復的な並列書き換えシステムである。これを例示するために、Ｌ−システムについての議論が与えられる。本明細書で議論する記号および他の表現は、この技術の例示的な例を提供するために与えられる。実際には、コンピュータ上で実行されるときに、詳細な実装は幾分異なることがあるが、基本概念は同じである。
【００７７】
簡単な例として、公理はＢであってよく、以下のようなルールがある。
【数０００１】
2022500761.tif 000012
【００７８】
並列書き換えシステムの動作中、先ず、ルールが適用されるときに作成される記号のための容器(コンテナ)が作成される。公理（この例示的な例ではＢ）が容器に挿入される。並列書き換えシステムは、反復的なプロセスであり、よって、後続のステップは、繰り返し実行される。繰り返しの度に、容器内の（複数の）記号が検査され、そこにあるあらゆる記号は、ルールに従って置き換えられる。
【００７９】
よって、並列書き換えシステムのこの例示的な例において、初期的に容器内の記号はＢであるので、これは第２のルールに従ってＦ，Ａと置き換えられる。ここで、第１のルールは、ＡをＢと置き換えることを規定し、加えて、Ｆについてルールはないので、それは変更されないままである。それは、次の繰り返しで、Ｆ，Ａがｆ，Ｂと置き換えられることを意味する。同様に繰り返すと、次の対話(インタラクション)で、Ｆは変更されず、Ｂは、Ｆ，Ａと置き換えられる。従って、容器内の記号は、今や、Ｆ，Ｆ，Ａである。これは特定数の繰り返しに亘って続き、（５回の繰り返しについて）以下の表２によって要約されることができる
【表０００２】
2022500761.tif 000013
【００８０】
本例で使用されるような並列書き換えのための既知のＬ−システムの適応は、以下により詳細に議論されるが、簡潔には、多数の繰り返しの後に、結果として得られる記号は、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ｆ、Ａであると仮定する。表示のためのオブジェクトの生成中に、記号Ｆは「部品」または「アセット」コマンドとして解釈されるのに対し、記号Ａは、コマンドとして認識されず、単に無視される。従って、記号のこの特定のアレイは、オブジェクトが互いの上に積み重ねられた１１個の部品からなる表示のためにオブジェクトを構築させる。（４つの部品を有する図６Ｄに示される例と比較のこと）。更に、上記で議論したように、部品上の界面の使用、並びに部品の界面の並進および向きは、様々な部品間の接続または接合が滑らかでシームレスに見えることを可能にする。
【００８１】
知られているように、Ｌ−システムは、枝または若枝などを有する樹木または植物の画像を生成することができるように、分枝構造を扱うことができる。相応して、上述の例は、記号の一次元セットまたはアレイを使用する簡単な例であるが、これは、実際には、例えば、樹木のためであれ、モデル化されている他のオブジェクトまたは構造のためであれ、分枝または他のより複雑な若しくはより洗練された構造に順応するよう、記号の二次元アレイに容易に拡張されてよい。
【００８２】
上述のように、ルールは、アーティストまたはコンテンツ作成者によって、典型的には「手で」作成または定義されるので、最終オブジェクトは、所望のスタイル、すなわち、それにも拘わらず同じスタイルを有する異なるオブジェクトについて異なることができる所望の外観を有する。樹木の例において、これは、例えば、各々が異なる外観を有する多数の同じタイプの樹木（例えば、樫または柳など）を生成し得ることを意味する。別の例として、例えば、洞穴の場合、例えば、金鉱、氷河洞窟、溶液洞穴などのような、異なるタイプの洞穴を表すために、異なる外観が使用されてよい。
【００８３】
ルールの適用は、オブジェクトが表示のために生成されているときに、後続の使用のための命令を生成するためにひいては評価される、コマンドとしてひいては解釈される、記号のセットまたはアレイをもたらす。２つの主要なタイプのコマンド、すなわち、部品またはアセットコマンド、およびユーティリティコマンドがある。
【００８４】
上記の例示的な例では、部品コマンドをＦで記号化した。これは、上述のように、並びに以下で更に議論するように、部品の階層におけるその現在の位置で部品を構築するために使用される。
【００８５】
ユーティリティコマンドは、構造の変更子(modifier)として、すなわち、表示のために生成されているオブジェクトの何らかの部分を変更するように、作用する。オブジェクトが表示のために生成されるときに、ユーティリティコマンドが、階層内の現在の点に何らかの予め定義された機能を適用する命令として解釈される。やはり、これは以下で更に議論される。
【００８６】
ユーティリティコマンドの幾つかの例は、以下の表３に要約されており、これは他の用途に拡張されてよいことが理解される。
【表０００３】
2022500761.tif 000014
【００８７】
ユーティリティコマンドの一部は、「重み付け(weighting)」が指定されて適用されることを許容する。本明細書中のこれらの例の各々において、重み付けを許容するユーティリティコマンドは、オブジェクトの一部分を以前の部品に対して回転させるコマンドである。具体的な例として、枝が樹木の幹から離れて伸びるときに、樹木の枝を下方に垂れ下がるように、重力が適用されてよく、垂下の量または程度は、適用される重み付けによって決定されてよい。重み付けは、例えば、パラメータ、例えば、カスタム力の５０％の重み付けについての＃（０．５）において、ルールにおいて指定されてよい。重み付けが指定されないならば、１のデフォルト値(初期設定値)が想定されてよい。
【００８８】
ルールによって生成されることができ、オブジェクトが表示のために生成されているときにコマンドとして解釈される、様々なタイプの記号を用いて、複雑なスタイルを作成して、対応する複雑なオブジェクトをもたらすことができる。これは、それにも拘わらず互いに非常に異なる外観を有することができるオブジェクトの後続の手順的な生成を容易にする。作成できるスタイルの可能な複雑さを例示するために、この例のルールおよび公理の意味の詳細に触れることなく、スタイルは、以下のようなルールのセットを有してよく、
【数０００２】
2022500761.tif 000015
そして、以下のような公理を有してよい。
【数０００３】
2022500761.tif 000016
【００８９】
この第１の予備的またはセットアップ段階に続いて、３次元オブジェクトは、ディスプレイデバイス上の表示のために生成され、表示される３次元オブジェクトの形状は、第２の段階において時間の経過と共に変えられる。この第２の段階は、コンピュータプログラム中の命令に従って作動するコンピューティングデバイスによって実行される。上述のように、これは、例えば、コンピュータゲームがコンピューティングデバイス上で稼動しているときに、実行時に実行されてよい。他の例において、これは、それぞれの場合においてコンピューティングデバイス上で、ソフトウェア作図パッケージを用いて芸術的作品を生成するため、フィルムまたは映画の動画を生成するため、画像の後処理のためなどのように、別個のプロセスとして実行されてよい。そのようなコンピューティングデバイスは、１つ以上のプロセッサと、ＲＡＭまたは他の作業メモリと、および任意的に永続的な記憶装置とを有する。３次元オブジェクトの生成は、例えば、グラフィックスカードによって提供されるグラフィックスプロセッサによって或いは中央処理装置の一部として提供される統合グラフィックスによって実行されてよい。コンピューティングデバイスは、一体型ディスプレイデバイスを有してよく、或いは別個のディスプレイデバイスに表示するために画像データを送信してよく、或いはディスプレイデバイスに後に送信するために画像データを記憶装置に送信してよい。
【００９０】
前述のように、一例において、第２の段階は、実行時に計算されることができるが、実行時に計算されるように制約されない、３つの別個の演算を含むものと考えられることができる。この文脈において、実行時は、オブジェクトがディスプレイスクリーン上で可視化されるようにレンダリング(描画)される時を意味する。
【００９１】
３つの演算は、以下のように要約されてよい。
１）一意的な構造の生成、
２）構造に適合する実体の作成、および
３）必要とされされるときに実体を更新すること。
【００９２】
先ず、１）一意的な構造の生成に関して、一例において、これは２つの別個のステップ、すなわち、（ｉ）ルールの評価、および（ｉｉ）コマンドの評価の形態を取る。（ｉ）ルールを評価する目的は、並列書き換えシステム技術を用いて、コマンドの２次元階層アレイを生成することである。（ｉｉ）コマンドを評価する目的は、命令の最適なバッファを生成することである。これらの命令は、オブジェクトをどこに配置するか、どのオブジェクトを配置するか、回転などを決定するために、更なる計算が必要とされないように、次のステップで使用される必要最小限の情報を含む。例えば、命令は、「世界空間」における特定の場所で、特定の向きにおいて、特定の幾何学的形状（例えば、表示されるオブジェクトの一部分）を配置するようにシステムに通知する。（「世界空間」は、ディスプレイデバイス上でモデル化されている世界中のあらゆるものが絶対座標内に配置される基準系である）。全てのこれらの命令が処理された後に、これは以前に定義された構造に適合するオブジェクトをもたらす。
【００９３】
次に、１）ルールの評価をより詳細に議論すると、スタイルのルールが適用されるときに、システムは、先ず、生成される記号の各々を検査して、それらが部品コマンドであるかどうかを確認する。記号が部品コマンドであるならば、システムは、その部品がいずれかの二次界面を含むかどうか確認する。もしそうであるならば、上述の界面の議論に沿って、システムは、これらの二次界面を岐として扱う。新しい記号アレイが作成され、二次界面に予め定義された「追加的コマンド(additional  command)」記号でインスタンス化されたる。次に、元の記号アレイは、「分枝記号(branching  symbol)」を追加しすることによって、この枝の注釈を行う。この分枝記号は、新たに作成される記号アレイへのポインタである。これは以下の例によって理解される。この例では、０，１，．．．とインデックス付けされる、複数の記号アレイがあることが留意されるべきである。
【００９４】
インデックス(索引)０を有する第１の記号アレイは、記号Ｆ，Ａを含む。（ここでも、これは例を例示する目的のための単純化された例であり、通常、記号のアレイは実際にはより複雑であることが強調される）。これは以下の表４によって表されることができる。
【表０００４】
2022500761.tif 000017
【００９５】
上述のように、この例示的な例において、記号Ｆは、「部品」コマンドとして解釈される。（そして、記号Ａは、コマンドとして認識されず、単に無視される）。従って、部品がいずれかの二次界面を含むかどうかが確認される。イエス(はい)であるならば、新しい記号が、作成され、次のインデックス、ここではインデックス１でラベル付けされる。
【００９６】
ここで、任意の二次界面について、追加コマンドが定義される。この目的は、並列書き換えシステムにおける新しい枝についての新しい公理として役立つことである。これがないならば、枝は、突然終わり、如何なる幾何学的形状もないであろう。この二次界面についての追加コマンドは、記号Ｂによって表されると想定する。これは、次に、（ここではインデックス１を有する）新しく作成されたアレイの公理で設定される。更に、分枝記号が（ここではインデックス０を有する）元のアレイに挿入される。分枝記号を｛１｝とする。
【００９７】
この例において、このルール評価の結果は、次の表５によって表されることができる。
【表０００５】
2022500761.tif 000018
【００９８】
ルール評価プロセスにおけるオプションとして、可能性の要素(element  of  chance)を導入することができる。すなわち、ルールに従って記号が置き換えられる可能性または確率は、ルールの一部として指定されることができる。さもなければ、可能性が指定されないならば、記号は、常にルールに従って置き換えられる。これの利点は、オブジェクトが手順的に生成されるとしても、表示のために生成されるオブジェクトが、少なくともルールによって指定された程度は、無作為な外観を有することを可能にすることである。これは外観が全て同一でない複数のオブジェクトを表示のために生成することを更に助ける。
【００９９】
これは、次の例によって例示され、ここで、ルールは、以下の通りであり、
【数０００４】
2022500761.tif 000019
ここで、ルール２に従う可能性は、８０％である。
【０１００】
この例において、これは記号ＢがＦ，Ａによって置き換えられる８０％の可能性があり、記号Ｂが変更されない２０％の可能性があることを意味する。
【０１０１】
１）ｉ）ルールの評価が完了した後に、今やアレイ記号のセットがある。次に、これらの記号は、１）（ｉｉ）コマンドの評価を可能にするように処理され、それによって、表示のためのオブジェクトを生成するために引き続き必要とされる命令を生成する。これは例によって最も簡単に説明される。ここでも、これは単なる例示的な例であり、実際の実装は、本明細書に開示する方法で可能である詳細および複雑さの両方に関して大きく異なることが理解されるであろう。
【０１０２】
この例において、記号は、先ず、コマンドでない全ての記号を除去するように処理される。この点に関して、幾つかの記号は、ルールを評価するプロセス中にのみ使用されることが思い起こされるであろう。従って、記号は検査され、コマンドでないあらゆる記号は除去される。
【０１０３】
例えば、ルールの評価の結果として以下の記号アレイが生成されたと想定する。
【表０００６】
2022500761.tif 000020
【０１０４】
ここでの記号ＡおよびＢはコマンドではないと認識され、従って、除去されて、この例では以下がもたらされる。
【表０００７】
2022500761.tif 000021
【０１０５】
今やコマンドを評価することができる。これは、先ず、インデックス０を有する第１の記号アレイを考慮することによって実行される。第１の記号アレイのコンテンツ内の記号は、順番に処理される。この例において、第１のコマンドＦは、部品コマンドとして認識される。従って、部品を構築するために、すなわち、Ｆの幾何学的形状をインスタンス化するために引き続き使用される命令が生成される。一般的には、部品コマンドについて、部品Ｆは、部品の階層中のその現在の位置でインスタンス化される。この場合、これは構築またはインスタンス化されている第１の部品であるので、部品は、この例で生成されている全体的なオブジェクトの根(ルート)または基底(ベース)でインスタンス化される。その上、他の部品は以前に作成されていないので、全体的なオブジェクトは初期的な回転を有さないと仮定すると、その部品は、その幾何学的形状がｚ方向において上向きであり且つ回転を有さない状態でインスタンス化される。しかしながら、例えば、何らかの回転が必要とされるならば、これは容易に修正されることができることが理解されるであろう。
【０１０６】
表７を再び参照すると、この例において、（今やコマンドとして扱われる）第１の記号の後に｛１｝が続き、それは、この例において、分枝コマンドであることが分かる。従って、システムは、部品Ｆが１つの二次界面を含むことを知っている。従って、この例において、分枝コマンドで参照されるインデックスを有する記号アレイは、次に処理される。この例において、これはインデックス１を有する記号アレイである。何故ならば、この分枝コマンド｛｝は、ポインタ１を含むからである。
【０１０７】
この例の記号アレイ１は、（この簡単な例示的な例では、このアレイ中の唯一の記号である）第１の記号Ｄを有する。これは、この例において、部品コマンドとして認識される。従って、部品Ｄを構成する、すなわち、部品Ｄの幾何学的形状をインスタンス化するために使用される命令が生成される。その上、これは分枝であるので、部品Ｄは、必要に応じて、その基底界面が部品Ｆ（の第１のインスタンス）の第１の、唯一の、二次界面と整列するように、位置決めされ、回転される。
【０１０８】
この例では、記号アレイ１にはそれ以上のコマンドがないので、プロセスは、以前の記号アレイに、ここでは、記号アレイ０に、具体的には、記号アレイ０が以前に（｛１｝で）分岐した記号アレイ０中のポイントに戻る。この例において、記号アレイ０における次のコマンドは、〜である。この例において、これは、特定の例では、無作為回転(random  rotation)を適用する命令を生成するために使用される、ユーティリティコマンドである。無作為回転は、部品Ｆの一次界面の対称性の順序に一致するように計算される。無作為回転は、この時点で、後の使用のために格納される。
【０１０９】
次に、処理は、記号アレイ０中の次のコマンドに移動する。この例において、これはＳであり、Ｓは、この例において、別の部品コマンドである。従って、部品Ｓが（この例では以前に計算された無作為回転を含む）所要の累積並進および回転と共に生成されるような命令が生成されるので、部品Ｓの基底界面は部品Ｆの一次界面と整合し、その上、それは全体的に生成されたオブジェクトについて提供されるスタイルにも一致する。
【０１１０】
このプロセスは、記号アレイの全てにおける記号の全てが処理されるまで、記号アレイ中の残余の記号を通じて同様に継続する。この例において、これは部品Ｆの別のインスタンスであるＦ｛２｝を含む。
【０１１１】
この段階でのこの結果は、次に、表示のためのオブジェクトを生成するために使用されることができる、命令のセットである。これらの命令は、互いに依存せず、一般的に、任意の順序で実行可能であることが留意されてよい。これは、全ての変換データがその最も単純な形態で表され、それ以上の計算を必要としないからである。このデータは、オブジェクトが配置される世界空間にも関係する。上述のように、ある例において、変換データは、４Ｄ位置オフセット、オブジェクトの次の部品を整列させるための四元数、並びにオブジェクトのアセットまたは部品上の各分枝点についての他のデータを含む。各部品が継承する全ての変換および時間オフセットは、世界空間において部品の最終変換および時間オフセットを作成するために一緒にコンパイルされる。
【０１１２】
従って、オブジェクトは、作成された命令を使用して表示のために今や生成されることができる。一例において、これは、各命令をシーケンスで実行し、その特定の世界空間変換および時間オフセットで各部品の幾何学的形状またはメッシュのインスタンスを生成し、材料のインスタンスを部品に割り当てることによって進行する。この「シーケンス」は、一般的に順不同であること、すなわち、一般的に任意の順序で命令を実行できることが再び言及される。
【０１１３】
ある例では、先ず、部品は、命令を使用してインスタンス化される。例として、命令は、以下の情報、すなわち、メッシュ、（複数の）材料、並進、回転、および時間オフセットを含む。
【０１１４】
この点に関して、簡単に言えば、材料は、部品の外観を決定する。例えば、グラフィックスプロセッサまたは処理ソフトウェアまたは類似物で使用される特定のシェーダに依存して、材料は、部品がどれぐらい光っているか、反射しているか、或いはつや消しされているか、部品の色または透明度、タイリング情報などを定義する。前述のように、命令は、一般的に、任意の順序で実行されることができる。
【０１１５】
インスタンス化自体は、グラフィックス処理で使用されるよく知られている技術である。従って、標準的なインスタンス化技術に対する本例の主な相違のみが本明細書で議論されている。
【０１１６】
本例では、ある材料がある部品上にまたはある部品のためにインスタンス化されるとき、その材料への参照が格納される。材料についてのデータは、比較的大きく、その上、データを作成するために材料を処理することは、比較的プロセッサ集約的である。同じ材料の新しいインスタンスがインスタンス化される必要があるとき、その材料への参照が注記され、同じ材料がその格納される参照からインスタンス化されることができる。これは実際には同じである潜在的に極めて多数の材料を作成して格納しなければならないことを回避し、材料当たり１つのインスタンスのみが格納される必要がある。これはシーンが（上記で議論したような樹木または他のオブジェクトであってよい）多数のそのようなオブジェクトを含むことがあり、各オブジェクトが多数の部品から形成される場合があるならば、特に有用である。
【０１１７】
各部品の時間オフセットは、グラフィックスプロセッサのシェーダまたは処理ソフトウェアまたは同等物によって命令から読み取られる。部品の視覚化または外観は、必要に応じて調整されることができる。
【０１１８】
特に、この例において、各部品についての予め計算されたデータは、シェーダによって復号される。各部品についての予め計算されたデータは、上記で議論されて、図５に一例として図式的に示されている、デルタ符号化テクスチャデータ構造に含まれる。このテクスチャデータ構造中のデルタは復号されて、特定の部品についてのオブジェクト空間オフセットとして適用される。ここでの重要な考慮事項は、全体的なオブジェクトを構成する他の部品に対して、並びに、他のオブジェクトに対して、そして、コンピュータゲームまたは同等物の場合には、ゲームの総実行時間に対して、その部品が正しい時間と形状で視覚化されるように、その部品について設定されるべき「時間」である。
【０１１９】
時間に関して、先ず、コンピュータゲームまたは同等物の場合には、（例えばプレイヤまたは他のユーザによって）コンピュータゲームが開始されてからの経過時間を表す「グローバル時間(global  time)」が存在することがある。このグローバル時間が全てのオブジェクトのために使用されるならば、オブジェクトの全ては同時に作成されるように見え、同時に「成長する」か或いはさもなければ形状を変える。これは幾つかの場合に或いは幾つかのオブジェクトに適していることがある。しかしながら、他の場合には、オブジェクト（の少なくとも一部）が異なる時に作成され、異なる時に「成長」するか或いはさもなければ形状を変えるように見えることが望ましい。従って、特定のオブジェクトを構成する部品には、グローバル時間オフセットが割り当てられてよく、それは、コンピュータゲームの開始からのそのグローバル時間オフセットの経過後に、その部品、従って、そのオブジェクトに、成長を開始させ、或いは他の方法で形状を変化させる。これを例示する簡単な例として、あるオブジェクトがゲーム開始後の１２０秒で成長を開始するならば、その特定のオブジェクトについての全てのメッシュインスタンスは、１２０のグローバル時間オフセット値を持つように指示される。すなわち、この例において、その特定のオブジェクト全体のローカル時間は、シェーダによって以下のように計算されてよい。
【数０００５】
2022500761.tif 000022
【０１２０】
加えて、上記で議論したように、ある例において、オブジェクトの各々の個別の部品は、それ自体のローカル時間オフセットを有する。これは、部品が異なる時間のスライスを実質的に表している、すなわち、異なる量の時間によってオフセットされているからである。従って、オブジェクトの特定の部品のローカル時間は、シェーダによって次のように計算されてよい。
【数０００６】
2022500761.tif 000023
【０１２１】
上記に続いて、オブジェクトは、異なるオブジェクトについてのグローバル時間オフセットに従って異なる時間に現れるように作成／視覚化され、更に、オブジェクトの個々の部品の個々のローカル時間オフセットに従って成長するか或いはさもなければ形状を変える。この点に関して、この例では、オブジェクトは、同じ速度で成長するか或いはさもなければ形状を変える。これは幾つかの場合に望ましいことがある。しかしながら、物体が異なる速度で成長するか或いはさもなければ形状を変えることが望ましいならば、更なるスカラー変数「成長速度(grow  speed)」が追加されてよい。そのような場合、オブジェクトの特定の部品についてのローカル時間は、シェーダによって以下のように計算されてよい。
【数０００７】
2022500761.tif 000024
【０１２２】
この方法を使用するならば、必要な情報の全ては、オブジェクトが成長するか或いはさもなければ形状を変えるときに、オブジェクトのライフサイクルに亘って１回だけインスタンスバッファに渡される必要がある。通常通りのコンピューティングデバイスのＣＰＵまたは他のメインプロセッサからのグローバル時間の通過以外には、単にオブジェクトを時間の経過と共に成長するか或いはさもなければ形状を変えるように見えさせるために、コンピューティングデバイスのＣＰＵまたは他のメインプロセッサからグラフィックスプロセッサまたは処理ソフトウェアまたは同等物への更なる通信の必要はない。従来の技術では、オブジェクトが形状を変えるか或いはさもなければ更新されるならば、典型的には、コンピューティングデバイスのＣＰＵまたは他のメインプロセッサは、グラフィックスプロセッサまたは処理ソフトウェアと通信して命令を送信しなければならず、次に、命令は、グラフィックスプロセッサによって処理されなければならない。ＣＰＵとＧＰＵとの間のこの通信は、通常、更新プロセスの遅い部分であり、少量のデータであるＣＰＵからＧＰＵへのグローバル時間の通常の通過を除いて、本明細書に記載する例では回避される。その結果、本明細書に記載する例は、オブジェクトの形状の滑らかで中断のない変化を可能にし、オブジェクトの如何なる選択的な更新も必要としない。
【０１２３】
ここで、データを格納するためのデータ記憶装置を参照する。これは単一のデバイスによって或いは複数のデバイスによって提供されてよい。適切なデバイスは、例えば、ハードディスクおよび不揮発性半導体メモリ（例えば、ソリッドステートドライブまたはＳＳＤ）などを含む。
【０１２４】
図面を参照して本明細書に記載する実施形態の少なくとも幾つかの態様は、処理システムまたはプロセッサで実行されるコンピュータプロセスを含むが、本発明は、本発明を実施するように適合されるコンピュータプログラム、特にキャリア上またはキャリア内のコンピュータプログラムにも及ぶ。プログラムは、非一時的ソースコード、オブジェクトコード、コード中間ソースコード、および部分的にコンパイルされた形態のようなオブジェクトコードの形態、または本発明に従ったプロセスの実装における使用に適した任意の他の非一時的形態であってよい。キャリアは、プログラムを支持することができる任意の実体またはデバイスであってよい。例えば、キャリアは、ソリッドステートドライブ（ＳＳＤ）または他の半導体ベースのＲＡＭのような記憶媒体、ＲＯＭ、例えば、ＣＤ−ＲＯＭまたは半導体ＲＯＭ、磁気記録媒体、例えば、フロッピーディスクまたはハードディスク、一般的な光メモリデバイスなどを含んでよい。
【０１２５】
本明細書で言及するプロセッサまたは処理システムまたは回路構成は、実際には、具体的な用途に依存して、任意的に、チップセット、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、グラフィックス処理ユニット（ＧＰＵ）などとして提供される、単一のチップまたは集積回路または複数のチップまたは集積回路によって提供されてよいことが理解されるであろう。チップまたは複数のチップは、例示的な実施形態に従って作動するように構成可能な、データプロセッサまたはプロセッサ、デジタル信号プロセッサ、ベースバンド回路構成、および無線周波数回路構成のうちの少なくとも１つ以上を具現するための回路構成（および場合によってはファームウェア）を含んでよい。この点に関して、例示的な実施形態は、少なくとも部分的には、（非一時的な）メモリに格納されてプロセッサによって実行可能なコンピュータソフトウェアによって、或いはハードウェアによって、或いは有形に格納されたソフトウェアとハードウェア（および有形に格納されたファームウェア）の組み合わせによって実装されてよい。
【０１２６】
本明細書に記載する例は、本発明の実施形態の例示的な例として理解されるべきである。本発明は、モデル、例えば、樹木、建物または他の構造、洞穴またはトンネルシステム、稲妻、ロボットのようなまたは他のアニメーション化されたキャラクタ、生き物の触手、河川、電線などに適用されてよい。他の例において、モデル化されるオブジェクトは、建物の内部または洞穴ネットワークのような、何らかの空間の内部であってよい。他の例において、モデル化されるオブジェクトは、例えば、拡散する光または暗闇の傾向の様式におけるディスプレイシーン内の表示されるシーンまたは特定のオブジェクトの上を或いはそれらを通じて移動する外観を有する、色またはシェーディング効果の表現であってよい。更なる実施形態および例が想定される。任意の１つの例または実施形態に関連して記載される任意の構成は、単独でまたは他の構成との組み合わせにおいて使用されてよい。加えて、任意の１つの例または実施形態に関連して記載されるあらゆる構成は、任意の他の例もしくは組み合わせのうちの１つ以上の構成または任意の他の例もしくは実施形態の任意の組み合わせとの組み合わせにおいて使用されてよい。更に、本明細書に記載されていない均等物および修正物も、特許請求の範囲に定義される本発明の範囲内で利用されることがある。
【図１】
2022500761.tif 000025
【図２】
2022500761.tif 000026
【図３】
2022500761.tif 000027
【図４】
2022500761.tif 000028
【図５】
2022500761.tif 000029
【図６Ａ】
2022500761.tif 000030
【図６Ｂ】
2022500761.tif 000031
【図６Ｃ】
2022500761.tif 000032
【図６Ｄ】
2022500761.tif 000033
【図７Ａ】
2022500761.tif 000034
【図７Ｂ】
2022500761.tif 000035
【国際調査報告】
2022500761.tif 000036
2022500761.tif 000037
2022500761.tif 000038
2022500761.tif 000039
2022500761.tif 000040