IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

<>
  • 特開-三次元オブジェクトの生成表示 図1
  • 特開-三次元オブジェクトの生成表示 図2
  • 特開-三次元オブジェクトの生成表示 図3
  • 特開-三次元オブジェクトの生成表示 図4
  • 特開-三次元オブジェクトの生成表示 図5
  • 特開-三次元オブジェクトの生成表示 図6A
  • 特開-三次元オブジェクトの生成表示 図6B
  • 特開-三次元オブジェクトの生成表示 図6C
  • 特開-三次元オブジェクトの生成表示 図6D
  • 特開-三次元オブジェクトの生成表示 図7A
  • 特開-三次元オブジェクトの生成表示 図7B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024036646
(43)【公開日】2024-03-15
(54)【発明の名称】三次元オブジェクトの生成表示
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240308BHJP
   G06T 17/20 20060101ALI20240308BHJP
【FI】
G06T19/00 A
G06T17/20 500
【審査請求】有
【請求項の数】8
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024017838
(22)【出願日】2024-02-08
(62)【分割の表示】P 2021514004の分割
【原出願日】2019-06-25
(31)【優先権主張番号】16/132,152
(32)【優先日】2018-09-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョーク,ダニエル ジェイムス
(57)【要約】
【課題】従来技術の問題を解決する。
【解決手段】3次元オブジェクトの第1の部品が表示のために生成され、ディスプレイデバイスに表示される。第1の部品は、少なくとも、基底界面と、第1の界面とを有する。表示される第1の部品は、形状を変更させられる。3次元オブジェクトの第2の部品が表示のために生成され、第2の部品は、少なくとも、基底界面を有する。第2の部品は、第2の部分がディスプレイデバイスに表示されるときに、第2の部品の基底界面が第1の部品の第1の界面と適合するように、並進され且つ方向付けられる。第2の部品は、第1の部品の第1の界面が第2の部品の基底界面と適合した状態でディスプレイデバイスに表示される。
【選択図】図1

【特許請求の範囲】
【請求項1】
時間変化するアセットをコンピュータディスプレイで生成するコンピュータ実装される方法であって、
電子記憶装置に格納されるルールのセットにアクセスすることであって、該ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するために前記ルールを評価することと、
表示のためにアセットを構築するために前記階層コマンドを評価することであって、前記階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、該ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも1つであり、前記アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置される前記アセットの時間を通じた多数のスライスである、評価することと、
表示のために時間における前記アセットの連続的なスライスを生成し且つ前記アセットをコンピュータディスプレイに提示することによって、表示のために前記アセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従って前記スライスを変換するための変換データを有する、視覚化することと、を含む、
方法。
【請求項2】
前記アクセスすること、前記評価すること、および前記視覚化することのうちの少なくとも1つは、前記アセットを時間変化する方法で前記コンピュータディスプレイ上でレンダリングするよう実行時に計算される、請求項1に記載の方法。
【請求項3】
コンピュータシステムによって実行されるときに、該コンピュータシステムに、コンピュータディスプレイ上で時間変化するアセットを生成する方法を実施させる、コンピュータ可読命令のセットを含む、コンピュータプログラムであって、前記方法は、
電子記憶装置に格納されるルールのセットにアクセスすることであって、該ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するために前記ルールを評価することと、
表示のためにアセットを構築するために前記階層コマンドを評価することであって、前記階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、該ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも1つであり、前記アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置される前記アセットの時間を通じた多数のスライスである、評価することと、
表示のために時間における前記アセットの連続的なスライスを生成し且つ前記アセットをコンピュータディスプレイに提示することによって、表示のために前記アセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従って前記スライスを変換するための変換データを有する、視覚化することと、を含む、
コンピュータプログラム。
【請求項4】
前記ルールは、アセットを定義するデータ記号の線形構造として表される、請求項1または請求項2に記載の方法。
【請求項5】
前記ルールは、並列書き換えシステムに従って評価される、請求項1、請求項2、または請求項4に記載の方法。
【請求項6】
前記変換データは、4D位置オフセット、前記アセット上の各分枝点について、次のアセットを整列させるための四元数を含み、前記4D位置オフセットの第4の成分は、隣接するアセットに対して各アセットの年数をオフセットさせる、請求項1、請求項2、請求項4、または請求項5に記載の方法。
【請求項7】
前記ユーティリティコマンドは、重力、カスタム力、無作為力、時計回りヨー回転、反時計回りヨー回転、終端枝、および枝老化防止のうちの1以上の命令である、請求項1、請求項2、または請求項4~6のうちのいずれか1項に記載の方法。
【請求項8】
シェーダがテクスチャから相対変形データをサンプリングし、相応して、メッシュの頂点を再配置することができるよう、均一なパラメータを介して前記変換データを管理する材料に対して年数を設定することを含む、請求項1、請求項2、または請求項4~7のうちのいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、3次元オブジェクト(3次元物体)の表示(ディスプレイ)を生成する方法、装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
ディスプレイデバイスでの表示のために3次元オブジェクトがコンピュータ生成される多くの用途がある。これは、例えば、コンピュータゲーム、コンピュータ図面、アニメーションパッケージおよび同等物を含む。現在のところ、生成される3次元オブジェクトは、それらが時間の経過と共に変化または進化しない或いは変化または進化し得ないという意味で、通常は静的である。3次元オブジェクトが時間の経過と共に変化または進化することが意図されるならば、現在のところ、3次元オブジェクトの各反復を異なるときに前もってモデル化することが一般的である。これは、実際には、異なるときに3次元オブジェクトの静止画像のセットを生成し、次に、それらは順番に表示される。しかしながら、これは時間がかかる。何故ならば、アーティストまたは他のコンテンツ作成者は、各画像を個別に準備しなければならないからである。代替として、コンピュータを用いて、異なるときに3次元オブジェクトの静止画像を手順的にモデル化することができるが、これは外観が同一であるか或いは少なくとも不自然なオブジェクトをもたらす傾向を有する。いずれにしても、それは、潜在的に大量のデータが格納され、表示のために、例えば、グラフィックスプロセッサに送信される必要があり、次に、グラフィックスプロセッサは、大量のデータを処理する必要があり、それは必ずしも実用的でないか或いは実行可能でさえない場合もあることを意味する。
【発明の概要】
【0003】
この概要は、発明を実施するための形態において以下に更に記載する概念の選択を簡略化された形式で導入するために提供される。この概要は、特許請求する主題事項の鍵となる構成または本質的な構成を特定することを意図したものでなく、特許請求する主題事項の範囲を限定するために使用することを意図したものでもない。特許請求する主題事項は、本明細書に記載する欠点のいずれかまたは全てを解決する実装に限定されない。
【0004】
本明細書に開示する第1の態様によれば、3次元オブジェクトの表示を生成するコンピュータ実装される方法が提供され、方法は、
3次元オブジェクトの第1の部品を表示のために生成することであって、第1の部品は、少なくとも、基底界面(ベース界面)と、第1の界面とを有する、生成することと、
第1の部品をディスプレイデバイスに表示することと、
表示される第1の部品に形状を変えさせることと、
3次元オブジェクトの第2の部品を表示のために生成することであって、第2の部品は、少なくとも、基底界面を有する、生成することと、
第2の部品がディスプレイデバイスに表示されるときに、第2の部品の基底界面が第1の部品の第1の界面と適合(嵌合)するよう、第2の部品を並進させ且つ方向付けることと、
第2の部品の基底界面が第1の部品の第1の界面と適合した状態で第2の部品をディスプレイデバイスに表示することと、を含む。
【0005】
これは第1の部品および第2の部品がシームレスに接合されることを可能にして、部分から形成される最終オブジェクトに滑らかな外観をもたらす。
【0006】
第2の部品の基底界面は、典型的には、第1の部品の第1の界面と同じ形状を有する。その上、幾つかの例において、3次元物体の第2の部品を表示のために生成することは、第2の部品が表示されるときに、第2の部品の基底界面が第1の部品の第1の界面と同じサイズであるように、第2の部品のサイズを設定することを含む。これは第2の部品の基底界面と第1の部品の第1の界面との間にシームレスな接合があることを保証するのを更に助ける。第2の部品の基底界面および第1の部品の第1の界面のそれぞれのサイズは、正確に同じである必要はなく、例えば、如何なる僅かな差もディスプレイデバイスの視認者に知覚可能でないような許容範囲内で同じであってよい。これに関連する要因は、例えば、ディスプレイデバイス(すなわち、ディスプレイデバイスに送られる画像)のスクリーン解像度を含む。
【0007】
ある例において、表示される第1の部品に形状を変えさせることは、表示される3次元オブジェクトが時間の経過と共に形状を変えるように、表示される第1の部品に時間の経過と共に形状を変えさせる。
【0008】
ある例において、方法は、
表示される第1の部品に更に形状を変えさせることと、
表示される第2の部品に形状を変えさせることと、を含み、
第1の部品および第2の部品の形状を変えることは、第2の部品の基底界面が第1の部品の第1の界面と適合し続けるように行われる。
【0009】
ある例において、方法は、
3次元オブジェクトの第3の部品を表示のために生成することであって、第3の部品は、少なくとも基底界面を有する、生成することと、
ディスプレイデバイスに第3の部品を表示することであって、表示される第3の部品は、第3の部品の前記基底界面が第1の部品の第2の界面または第2の部品の第1の界面と適合するように、必要に応じて並進させられ且つ方向付けられる、表示することと、を含む。
【0010】
更なる部品は、同様に生成および表示されてよく、更なる部品は、任意的に階層的な様式において、以前に表示された部品と適合される。
【0011】
ある例において、オブジェクトの各部品は、同じデータ構造に基づいてグラフィックスプロセッサによってインスタンス化される。
【0012】
これはグラフィックスプロセッサの効率的な使用をもたらす。何故ならば、それはグラフィックスプロセッサによって処理されなければならないデータの量を減少させるからである。それはグラフィックプロセッサに送信されなければならないデータの量も減少させる。
【0013】
ある例において、データ構造は、基準部品(reference part)の形状を定義するデータを含み、データ構造は、基準部品の形状に関する多数の異なる時点におけるオブジェクトの部品の形状の差を定義する差データ(difference data)を含む。
【0014】
これはグラフィックスプロセッサの効率的な使用を更に提供する。何故ならば、それはグラフィックスプロセッサによって処理されなければならないデータの量を更に減少させるからである。それはグラフィックスプロセッサに送信しなければならないデータの量も更に減少させる。3次元オブジェクトの異なる部品は、その部品がディスプレイデバイスに表示されているときに対応する基準部品からの形状の差に基づいて表示のために生成されることができる。
【0015】
基準部品は、例えば、全体的に成熟した部品であってよく、全体的に成熟した部品は、それが最大サイズにあるときの部品である。表示されるときに時間の経過と共に成長することが意図されるオブジェクトの場合、これは部品が最も古い状態にあるときに対応する。他方、表示されるときに時間の経過と共に縮小または減少することが意図されるオブジェクトの場合、これは部品が最も若い状態にあるときに対応する。それにも拘わらず、一般的には、例えば、基準部品と無関係に、最も古いものから最も若いものまでまたは最も若いものから最も古いものまでを混合することが可能である。
【0016】
ある例において、基準部品の形状は、複数の頂点によって定義され、差データは、各頂点についての並進データ(translational data)を含み、各頂点についての並進データは、基準部品の頂点の位置に対する異なる時点でのオブジェクトの各部品の頂点についての位置の差を表す
【0017】
並進データは、基準部品の形状を定義するデータと共にテクスチャ(texture)としてグラフィックスプロセッサに送られてよい。
【0018】
本明細書に開示する第2の態様によれば、時間変化するアセット(asset)をコンピュータディスプレイで生成するコンピュータ実装される方法が提供され、方法は、
電子記憶装置に格納されるルール(規則)のセットにアクセスすることであって、ルールは、少なくとも、基本アセット(ベースアセット)を定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプ(asset type)を定義するアセットコマンド(asset command)と、ユーティリティコマンド(utility command)とを含み、ユーティリティコマンドは、回転コマンド(rotation command)および年数制約(age constraint)のうちの少なくとも1つであり、アセットタイプは、変換データ(transformation data)と関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンド(age constraint utility command)によって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む。
【0019】
ある例において、基本アセットは、手動で設計されるメッシュの形態にある。
【0020】
ある例において、アクセスすること、評価すること、および視覚化することのうちの少なくとも1つは、アセットを時間変化する方法でコンピュータディスプレイにレンダリングするよう実行時に計算される。
【0021】
ある例において、ルールは、アセットを定義するデータ記号の線形構造として表される。
【0022】
ある例において、ルールは、並列書き換えシステム(parallel rewriting system)に従って評価される。
【0023】
ある例において、変換データは、4D位置オフセット、アセット上の各分枝点について、次のアセットを整列させるための四元数を含み、4D位置オフセットの第4の成分は、隣接するアセットに対して各アセットの年数をオフセットさせる。
【0024】
ある例において、ユーティリティコマンドは、重力、カスタム力、無作為力、時計回りヨー回転、反時計回りヨー回転、終端枝、および枝老化防止のうちの1以上の命令である。
【0025】
ある例において、方法は、シェーダ(shader)がテクスチャから相対変形データ(relative deformation data)をサンプリングし、相応して、メッシュの頂点を再配置することができるよう、均一なパラメータを介して変換データを管理する材料に対して年数を設定することを含む。
【0026】
本明細書に開示する第3の態様によれば、コンピュータシステムが提供され、コンピュータシステムは、
少なくとも1つのプロセッサと、
コンピュータプログラム命令を含む少なくとも1つのメモリと、を含み、
少なくとも1つのメモリおよびコンピュータプログラム命令は、少なくとも1つのプロセッサを用いて、コンピュータシステムに3次元オブジェクトの表示を生成する方法を実行させるように構成され、方法は、
3次元オブジェクトの第1の部品を表示のために生成することであって、第1の部品は、少なくとも、基底界面と、第1の界面とを有する、生成することと、
第1の部品をディスプレイデバイスに表示することと、
表示される第1の部品に形状を変えさせることと、
3次元オブジェクトの第2の部品を表示のために生成することであって、第2の部品は、少なくとも、基底界面を有する、生成することと、
第2の部品が前記ディスプレイデバイスに表示されるときに、第2の部品の基底界面が第1の部品の第1の界面と適合するよう、第2の部品を並進させ且つ方向付けることと、
第2の部品の基底界面が第1の部品の第1の界面と適合した状態で第2の部品をディスプレイデバイスに表示することと、を含む。
【0027】
本明細書に開示する第4の態様によれば、コンピュータシステムが提供され、コンピュータシステムは、
少なくとも1つのプロセッサと、
コンピュータプログラム命令を含む少なくとも1つのメモリと、を含み、
少なくとも1つのメモリおよびコンピュータプログラム命令は、少なくとも1つのプロセッサを用いて、時間変化するアセットをコンピュータディスプレイに生成する方法を実行させるように構成され、方法は、
(a)電子記憶装置に格納されるルールのセットにアクセスすることであって、ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
(b)表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも1つであり、アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
(c)表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む。
【0028】
本明細書に開示する第5の態様によれば、コンピュータシステムによって実行されるときに、コンピュータシステムに3次元オブジェクトの表示を生成する方法を実行させる、コンピュータ可読命令のセットを含む、コンピュータプログラムが提供され、方法は、
3次元オブジェクトの第1の部品を表示のために生成することであって、第1の部品は、少なくとも、基底界面と、第1の界面とを有する、生成することと、
第1の部品をディスプレイデバイスに表示することと、
表示される第1の部品に形状を変えさせることと、
3次元オブジェクトの第2の部品を表示のために生成することであって、第2の部品は、少なくとも、基底界面を有する、生成することと、
第2の部品がディスプレイデバイスに表示されるときに、第2の部品の基底界面が第1の部品の第1の界面と適合するよう、第2の部品を並進させ且つ方向付けることと、
第2の部品の基底界面が第1の部品の前記第1の界面と適合した状態で第2の部品を前記ディスプレイデバイスに表示することと、を含む。
【0029】
上述のように、コンピュータプログラムを格納する非一時的なコンピュータ可読記憶媒体が提供されてよい。
【0030】
本明細書に開示する第6の態様によれば、コンピュータシステムによって実行されるときに、コンピュータシステムに、時間変化するアセットをコンピュータディスプレイで生成させる、コンピュータ可読命令のセットを含む、コンピュータプログラムが提供され、方法は、
(a)電子記憶装置に格納されるルールのセットにアクセスすることであって、ルールは、少なくとも、基本アセットを定義する、アクセスすること、および、階層コマンドのセットを生成するためにルールを評価することと、
(b)表示のためにアセットを構築するために階層コマンドを評価することであって、階層コマンドは、少なくとも、アセットタイプを定義するアセットコマンドと、ユーティリティコマンドとを含み、ユーティリティコマンドは、回転コマンドおよび年数制約のうちの少なくとも1つであり、アセットタイプは、変換データと関連付けられ、評価することの結果は、時間において階層的に配置されるアセットの時間を通じた多数のスライスである、評価することと、
(c)表示のために時間におけるアセットの連続的なスライスを生成し且つアセットをコンピュータディスプレイに提示することによって、表示のためにアセットを視覚化することであって、各スライスは、その年数に依存して並びに年数制約ユーティリティコマンドによって適用される任意の年数制約に従ってスライスを変換するための変換データを有する、視覚化することと、を含む
【0031】
上述のようなコンピュータプログラムを格納する非一時的コンピュータ可読記憶媒体が提供されてよい。
【0032】
本開示の理解を助けるために並びに実施形態がどのように実施されることがあるかを示すために、一例として添付の図面をする。
【図面の簡単な説明】
【0033】
図1】異なる時点における3次元オブジェクトの多数の部品の例を図式的に示している。
【0034】
図2図1の部品のうちの2つを図式的に示している。
【0035】
図3図2の部品の頂点を図式的に示している。
【0036】
図4図1の単一の部品の形状の差についてのデルタの表現を図式的に示している。
【0037】
図5図1の全ての部品の形状の差についてのデルタの表現を図式的に示している。
【0038】
図6A】ディスプレイのためのオブジェクトの部品の産出(spawning)および成長(growth)の例を図式的に示している。
図6B】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
図6C】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
図6D】ディスプレイのためのオブジェクトの部品の産出および成長の例を図式的に示している。
【0039】
図7A】部品の一例および部品の界面を図式的に示している。
図7B】部品の一例および部品の界面を図式的に示している。
【発明を実施するための形態】
【0040】
この開示において、「手順的に作成する(procedurally create)」という用語または同等の用語は、ユーザ対話(ユーザ相互作用)なしに自動的に作成することを意味すると理解されることができる。「スタイル付き(styled)」という用語は、一連のルール(規則)を使用して一定のスタイルを定義することを意味すると理解されることができる。例えば、樹木の場合、異なるスタイルが、柳の木または樫の木のような、樹木の異なる種に対応することがある。別の例として、洞穴またはトンネルシステムの場合、異なるスタイルは、例えば、金鉱、氷河洞穴、溶液洞穴などのような、異なる基本的なタイプの洞穴またはトンネルに対応してよい。「階層的(hierarchical)」または「樹形構造(tree-like structure)」または同等の表現は、樹木、洞窟網、または稲妻を含むが、これらに限定されない、反復するまたはフラクタルタイプの幾何学的形状を示すと理解されることができる。手作りのメッシュアセット(メッシュ資材)(mesh assets)または部品(parts)は、さもなければ手順的に作成されない、アーティストや他のコンテンツ作成者によって作成されるカスタム幾何学的形状への言及である。これは、例えば、樹上の家(ツリーハウス)の一部またはより複雑な樹木部品であることがある。
【0041】
この開示は、(Aristid Lindenmayerによって1968年に開発され、以下で更に議論する)従来的なL-システムの制限を受けずに、任意の無作為のメッシュから、他の構造を作成することができるが、特に4D階層構造または樹形構造を含む、ディスプレイデバイスに表示するためのオブジェクトを生成するための方法の例を記載する。本方法によって解決される問題は、カスタムメイドの幾何学的形状区画を使用すること、および意図されるように如何なる穴またはギャップもなくメッシュ区画が互いに適合するのを保証することが、困難なタスクであることである。例えば、樹木を作成するときに、手順的に作成されたチューブが互いに適合するのを保証することは、比較的容易である(以下のAristid Lindenmayerによって開発されたL-systemsの議論を参照のこと)。しかしながら、樹木の主幹から成長する枝、洞穴システム、または時間の経過と共に発達する照明効果などのような、時間の付加的な要素(component)を備えるより複雑なカスタム幾何学的形状を用いて、例えば、樹木、洞穴システム、または他の複雑なオブジェクトのような、より複雑なオブジェクトを作成する必要があるならば、この複雑な形状を手順的に作成し、次に、それを用いて穴または継ぎ目のない階層的または樹形構造または分枝構造を作成することは、簡単でない。1つの実施形態において、本方法は、手作りされたメッシュアセットまたは部品から、スタイル付き樹形構造または他の階層構造を手順的に作成する。目的は、カスタム幾何学的形状が、より単純で、手順的に生成された構造の方法で利用されることを可能にするので、それらが時間の経過と共に変化するときに、明白な不連続性なしに、それらが現実的に描画(レンダリング)されることができることである。
【0042】
例示的な方法は、実行時に計算されることができる3つの別個の演算(operations)に分割されると考えられることができるが、本方法は、実行時に作動することに制約されず、前もって「オフライン」で作動させられてよい。これらの3つの別個の演算は、1)構造の生成、2)構造に適合する実体(エンティティ)の作成、および3)必要とされるときに実体を更新することとして要約されるか或いは特徴付けられてよい。
【0043】
一例における一意的な構造の生成は、2つの別個のステップ、すなわち、一連のコマンドを生成するために一連のルールを評価すること、および最終オブジェクトを構成するアセット(資材)(assets)または部品(parts)を構築するためにそれらのコマンドを評価することの形態を取る。
【0044】
ルールを評価することの第1のステップでは、あらゆる階層オブジェクトをスタイルに一般化することができる。例えば、銀白色の樹木は、背が高く、細長く、細い枝を有すると定義することができ、特定の洞穴システムは、例えば、金鉱、氷河洞窟、溶液洞穴などのような、特定のタイプの洞穴であると定義されることができる。他のスタイルが、他のタイプの樹木、または樹木ではない他のオブジェクトまたは構造について提供されてよい。このスタイルは、例えば、ユーティリティコマンドおよびオブジェクトの部分を表す、データ記号の(多次元であってよい)線形の構造によって表されることができる。ルールは、多くのレベルを与えられた並列書き換えシステムを用いて評価される。これはコマンドの階層を定義する新しいデータ構造を生成する。この並列書き換えシステムは、リンデンマイヤーのL-システムの適応であり、この方法における使用のために適合されるが、類似の原理を使用する。
【0045】
この点に関して、Aristid Lindenmayerによって1968年に開発された従来的なL-システムは、植物の発達における成長過程をモデル化するために開発された並列書き換えシステムである。それらは、樹木の骨格を生成するようコンピュータグラフィックスに適応され、然る後、他の手順的なシステムが、骨格に沿って自動的に管を作成することができる。これらの方法を用いて、無作為に見えるが自然な外観を有する樹木を手順的に作成することができる。しかしながら、このシステムは、管の記述のみを用いることができるという事実によって制限される。コンピュータデバイス内でグラフィカルに描画されるオブジェクトを作成するときに、手順的な管を互いに嵌合させるのを保証することは、比較的容易である。しかしながら、他の幾何学的形状の生成のためにL-システムを拡張することは単純な問題でなく、それは描画されることができるグラフィック形状のタイプを制限する。それは異なる時間にオブジェクトをモデル化する必要性を考えるときに特に困難である。
【0046】
2)それらのコマンドを評価する次のステップは、コマンドの階層を取り、これらを処理して、オブジェクトの最終的な(複数の)アセットまたは(複数の)部品を作成する。この例では、2つのタイプのコマンド、すなわち、アセットタイプおよびユーティリティタイプがある。この例において、アセットタイプは、4次元メッシュへの参照である。この参照は、(典型的には、グラフィックス処理ユニットまたはGPUのようなハードウェアプロセッサ、または処理ソフトウェアまたは同等物において)、シェーダ、特に頂点シェーダによって使用される)オブジェクトおよび変換データ(transformation data)をシェーディング(shading)するための関連材料も伴う。一例において、変換データは、4D位置オフセット、オブジェクトの次の部分を整列させるための四元数、および、アセットまたはオブジェクトの部分上の各分枝点についての他のデータを含む。
【0047】
一例において、ユーティリティタイプは、重力、カスタム力、無作為回転、時計回りヨー回転、反時計回りヨー回転、エンド分枝、および分枝エイジング防止のうちの1つの命令である。他の例は、例えば、植物が光源に向かって成長する光屈性、部分が風と共に曲がるように強制される風向きなどを含む。これらの命令は、以前の分枝方向についての部品回転を修正するか、或いは第4(時間)次元に制約を適用する。各コマンド中に、必要に応じて、オブジェクトのアセットまたは部品が作成され、相応して変換される。システムが全てのコマンドを処理した後に、4次元の階層構造に編成されたオブジェクトの多数のアセットまたは部品が取得される。
【0048】
第2の演算2)構成に準拠した実体の作成は、互いに接合されて表示オブジェクトを形成する部品やアセットを生成することを含む。これは最終オブジェクトの時間を通じたスライスを視覚化することを含む。第3の演算3)3)必要に応じて実体を更新することについて、一例では、オブジェクトの個々のアセットまたは部品を作成する間に、時間を通じてビジュアルを処理するために、材料が作成されて、割り当てられる。これらの材料は、変換データで符号化されたテクスチャ入力をサンプリングする。このデータは、メッシュを変形させることができ、従って、オブジェクトを、その第4の次元(時間)を通じて表す。このシステムを使用して成長する樹木または形状を変える他の構造を作成するとき、このデータは、メッシュの全ての頂点を、その最終的な円筒状の状態から、薄い円筒(シリンダ)に変形させ、次に、円錐状に変形させ、最終的に、全ての頂点が互いに重なり合って折れ曲がる小さなシードに変形させる。
【0049】
均一のパラメータを用いて材料の年齢を設定することによって、グラフィックスプロセッサまたは処理ソフトウェアの頂点シェーダは、テクスチャから相対的な変形データをサンプリングし、相応して頂点を再配置する。各部品の材料は、第4の次元(ここでは時間)におけるオフセットが割り当てられる。これは、各部品の個々の年齢またはローカル時間をオフセット(相殺)し、部品間のシームレスな接合を提供するので、部品から形成される最終的なオブジェクトの外観は、単に1つの滑らかなメッシュである。ここで、最終オブジェクト全体に一定の年齢または時間を設定し、第4(時間)次元においてこれらのローカルオフセットを加えることによって、結果は、単数の一致した最終オブジェクトである。
【0050】
ここで、本開示の特定の例についての記述が与えられる。この例は、形状を変える、特にコンピュータゲームの文脈において時間の経過と共に形状を変える、3次元オブジェクトの表示を生成することに関して与えられる。この例において、3次元オブジェクトの表示の生成は、実行時、すなわち、コンピュータゲームが稼動しているときに実行される。しかしながら、本開示は、時間の経過と共に形状を変える3次元オブジェクトの表示を前もって(すなわち、実行時ではなく)生成するために使用されてよい。本開示は、例えば、コンピュータ作図ソフトウェアパッケージのような、他の用途において使用されてもよい。
【0051】
本明細書に記載する具体的な例は、2つの主要な段階を有する。第1の段階において、コンテンツおよび関連データが生成される。第2段階において、ディスプレイデバイス上の表示のために3次元オブジェクトが生成され、表示される3次元オブジェクトの形状は、時間の経過と共に変えられる。
【0052】
本明細書に記載する具体的な例は、3次元オブジェクトが樹木であることに関して与えられる。樹木は、形状を変えることができ、それは、例えば、時間の経過と共に成長する樹木を表すために使用されることがある。しかしながら、本明細書に記載する原理は、時間の経過と共に形状または外観を変える或いは最初から異なる形状または外観を有する他の3次元オブジェクトに適用されてよい。これは、例えば、潅木および植物、葉、花、果実などのような、他の植生を含む。表わされることがある他の3次元物体は、樹上の家または他の建物または構造、洞穴またはトンネルシステム、稲妻、ロボット状のまたは他のアニメーション化されたキャラクタ、生物の触手、川、電線などを含む。他の例において、3次元オブジェクトは、建物または洞穴ネットワークの内部のような、何らかの空間の内部であってよい。他の例において、3次元オブジェクトは、例えば、拡散する光または暗闇の傾向の様式で表示されるシーンまたは表示されるシーン内の特定のオブジェクトの上を或いはそれらを通じて移動する外観を有する、色またはシェーディング効果の表現であってよい。時間の経過と共に変化する形状または外観に加えてまたはその代わりに、例えば、成長する樹木、時間の経過と共に風化する葉、成熟した緑色の状態から枯れた黄色または赤色の秋の状態に移る葉、または、例えば、時間の経過と共に損傷または侵食されるオブジェクトなどを表すために、本明細書に記載する技術は、3次元物体または3次元物体の部分に、計算的に効率的な方法で、最初から物体に亘っておよび/または部分間で異なる外観を持たせるために使用されることができる。
【0053】
いずれにしても、3次元オブジェクトは、時間の経過と共に或いは何らかの他のパラメータの故に変化するので、これは、4次元モデルと考えられてよい。
【0054】
第1の段階のコンテンツ作成フェーズにおける第1の演算として、オブジェクトの少なくとも2つの部品が作成される。これらは、例えば、それ自体知られている方法において、コンピュータを用いて、人間によって描かれてよい。2つの部品は、異なる時間におけるオブジェクトの一部分のスナップショットを表す。幾つかの例では、オブジェクトの2つよりも多くの部品が作成されてよい。この段階で作成されるより多くの数の部品は、時間の経過と共に変化するオブジェクトのより流動的またはシームレスな表現をもたらす。他方、この段階で作成されるより少ない数の部品は、この段階でより少ない時間を必要とし、表示のために3次元オブジェクトが生成されているときにより低いデータ記憶能力およびより低い処理能力も必要とする。
【0055】
この一例が図1に図式的に図示される。これは、11個の部品10(parts)を示しており、この具体的な例において、部品10は、11の異なる時点における樹木の断面または部分(portion)を表す。他の例では、他のオブジェクトまたは構造をモデル化するときに、そのような部品は、異なる時点での他のオブジェクトまたは構造の一部を表す。更に他の例において、部品は、オブジェクトに亘って異なる外観を有する3次元オブジェクトの部品を表すことがある。これらの部品10のうちの1つは、次に、3次元オブジェクトが表示のために生成されているときに、基準部品として使用される。この例において、基準部品は、全体的に成熟した部品であり、それはそれが最大サイズにあるときの部品である。表示されるときに時間の経過と共に成長することが意図されるオブジェクトの場合、これは部品が最も古い状態にあり、(図1の最も上の部品にも示されている)図1の最も右の部品にある部品10’であるときに対応する。表示されるときに時間の経過と共に縮小または減少することが意図されるオブジェクトの場合、これは部品がその最も若い状態にあるときに対応する。他の例では、異なる中間部品10が基準部品として使用されてよい。
【0056】
コンピュータモデリング自体において知られているように、各部品10は、多数の頂点12によって定義される。図1の例では、時間の経過につれて1つの部品10から別の部品に向かうと、頂点12は、互いから離れて移動し、それは時間の経過と共に成長する部品を表す。互いに対する頂点12の移動は、部品10の形状が時間の経過と共にどのように発達するかを定義し、以下で更に議論するように、3次元オブジェクトの変化する形状を制御するために使用されることができる。図1の最も左(最も若い)部品10において、頂点12の全ては、図中にドットによって示されるように、単一の点に折り畳まれる(collapsed)ことが留意されてよい。加えて、アーティストまたは他のコンテンツ作成者が、最も若い部品および最も古い部品のような2つの部品を「手で(by hand)」作成し、次に、自動化されたコンピュータプロセスを使用して任意の数の所望の中間部品を生成することが可能であってよい。
【0057】
原理的には、異なる部品10は、表示のための3次元オブジェクトの生成のために、このフォーマットで有効に使用されることができる。しかしながら、樹木または他のオブジェクトまたは構造のような、多数のオブジェクトを描くとき、これは表示を生成しているグラフィックスプロセッサまたは同等物に高い要求を課し、多くのグラフィックスプロセッサには実行可能でないことがあり、且つ/或いはぎくしゃくして滑らかでない成長の外観をもたらすことがある。
【0058】
これを処理するより効率的な方法は、基準部品10’に対する各部品10の形状の差を識別して記録し、それらの差に関するデータをグラフィックスプロセッサに送信することである。一例において、作成した部品10の各々について、基準部品10’における対応する頂点12に対する部品の各頂点12の(見かけの)動きが識別される。一例として図2を参照すると、これは左側に基準部品10’を示しており、右側に他の部品10のうちの1つ(この例では、頂点12の全てが単一の点に折り畳まれている図1の最も左(最も若い)部品10に続く第1の部品10)を示している。図2には、基準部品10’の特定の頂点14’および他の部品10の対応する頂点14が示されている。
【0059】
図3は、明瞭性のために、基準部品10’の特定の頂点14’および他の部品10の対応する頂点14を示しており、他の頂点12は省略されている。図3は、基準部品10’の特定の頂点14’が、ベクトルまたは「デルタ」Δに沿って、他の部品10の対応する頂点14に効果的に移動することを示している。デルタΔ1は、x、y、z成分を有する。図示の例では、図3に示すように、z成分が上を指す左手の座標系が使用される。明らかになる理由の故に、デルタΔのx,y,z成分は、色のRGB値として表されてよい。すなわち、デルタΔは、着色画素pとして表わされてよい。画素情報は、しばしば、従来的に、8ビット精度、従って、チャネル当たり256個の一意的な値で格納されることが留意されてよい。本例では、8ビット精度が使用されてよい。しかし、この例では、データの範囲および精度をより良く維持するために、32ビット精度が使用される。
【0060】
基準部品10’と他の部品10との間の頂点12の相対的な移動のこの識別は、頂点12の全てについて繰り返される。これは、各頂点12について1つずつ、対応する数のデルタΔをもたらす。相応して、これは対応する数の着色画素pをもたらす。次に、着色画素pは、(少なくとも概念的には)行(row)に配列されてよい。これは、各部品10が50個の頂点を有し、従って、50個のデルタΔがあり、従って、50個の着色画素pがある場合についての図4に図式的に示されている。図4および図5において、画素pの個々の「色」は、場合によって異なり、典型的には、各画素について一意の異なる値であるが、例示の目的のために、以下の表1に示すシェーディング(shading)が、この特定の例における色を図式的に示すために用いられる。
【表0001】
【0061】
このプロセスは、他の部品10の各々について実行される。これは多数のデルタのセットをもたらし、それは着色画素の行として表されてよい。これは、合計11個の部品10がある場合についての図5に図式的に例示されている。図5は、各部品10についての各頂点についてのデルタが画素pntの2次元行列として表わされてよいことを示しており、ここで、nは、頂点12の数(ここでは50個)であり、tは、部品10の総数(ここでは11個)に対応する時間インスタントの数である。第1の最も上の行はブランクであることが留意されてよい。何故ならば、それは基準部品10’を表すからである。
【0062】
この結果は、その頂点12のx,y,z場所と、各他の部品10について1つずつの、多数の差またはデルタΔのセットとによって定義される、基準部品10’であり、その場合、差の各セットは、(この例では)異なる時点における樹木の区画または部分を一緒に表す、頂点12の相対的な移動を定義するために使用される。この例において、デルタΔのセットは、テクスチャとして表わされている。換言すると、この初期作成フェーズの終わりには、1つの3次元メッシュがあり、3次元メッシュは、基準部品10’と、基準部品10’またはメッシュ内の頂点12の相対的な移動を定義するために使用されるデータ構造と考えられてよいテクスチャとがある。共に、これらは、以下に更に議論するように、表示のための3次元オブジェクトを生成し、生成された3次元オブジェクトの形状を時間の経過と共に変化させるために、引き続き使用される。
【0063】
次の段階として、少なくとも1つの界面(インタフェース)が、部品10の各々について画定される。界面10は、異なる部品10が表示されるオブジェクト中で接合されることを可能にするよう、表示のための3次元オブジェクトの生成中に引き続き使用される。異なる部品10のこの接合は、ユーザには見えない滑らかなまたはシームレスな接合を提示するようなものである必要がある。表示される画像中で接合される異なる部品10のこの使用は、表示される3次元オブジェクトが時間の経過と共に形状を変えることを可能にする効率的な方法を提供する。この例では、これは、より大きく成長すること、および任意的に新しい枝、小枝などを加えることによって、樹木が時間の経過と共に成長するように見えることを可能にする。3次元オブジェクトが洞穴またはトンネルシステムである例において、これは、例えば、時間の経過と共に成長する洞穴または他の構造を示すために使用されることができる。この成長は、例えば、樹木と同様に、洞穴または他の構造が、時間の経過と共により大きく成長する意味において、「有機的」であることがある。これは、例えば、洞穴またはトンネルシステムが、それらが掘削されるか或いは新しいトンネルが形成されるなどに応じて深くなることを例示するために、使用されてよい。
【0064】
三次元物体の表示中に、これが実際にどのように作動するかを例示するために、図6A図6Dを参照する。この例は、例示の目的のための簡単な例であり、各部品は、樹木の幹の部分または細い枝である。
【0065】
先ず、3次元オブジェクトの表示中に、部品が表示させるか或いは「生み出させる(spawned)」。この第1の部品は、ゼロに設定されたそのローカル時間を有し、従って、これはシーケンスの最も早い時間を表すので、第1の部品は、図6Aに示されるように、事実上、点60である。
【0066】
次に、第1の部品は、効果的により大きく成長させられる。これは、部品のローカル時間を1単位時間だけ増分させることによって、すなわち、この時点で部品についてのローカル時間を1に設定することによって達成される。(個々の部品の成長がどのように達成されるかの例が以下に更に議論される)。図6Bに示されるように、これは、第1の部品を、(この例では)細長いスティック状の部品60になるように、より長く、より厚く成長させる。加えて、第2の新しい部品が生み出される。この段階で、第2の部品のローカル時間は、ゼロに設定され、よって、第2の部品は、事実上、図6Bに示されるように、点62である。
【0067】
次に、各部品についてのローカル時間は、1だけ増分される。図6Cに示されるように、第1の部品は、60によって示されるように、より長く、より厚く成長しており、第2の部品も、同様に、62によって示されるように、より長く、より厚く成長している。加えて、第3の新しい部品が、そのローカル時間がゼロに設定された状態で産み出され、よって、第3の部品は、事実上、点64である。これは、図6Dに示されるように、繰り返されることができ、図6Dは、第1~第3の部品のサイズが、それぞれ、参照番号60、62、64によって示されるように成長し、ローカル時間がゼロに設定された新しい部品66が追加されていることを示している。
【0068】
この例では、基本的に、同じ部品60が3回有効に使用されことが留意されてよい。しかしながら、部品60は異なる。何故ならば、少なくとも、それらは、時間の異なるスライスを表すからである、すなわち、それらが異なるローカル時間オフセットを有するように、時間における異なる量によってオフセットされるからである。(一般的に、部品60は、異なる位置に位置するように並進され、また、回転されもするので、異なる)。この時点で、この例では、個々の部品60、62、64から形成されるオブジェクト全体についての「時間」は、3単位時間であるのに対し、個々の部品60、62、64についてのローカル時間は、それぞれ3、2、1であることが留意されてよい。
【0069】
これは、各々の新しい部品が、以前にディスプレイデバイスに表示されていた部品とどのように接合するかを例示している。部品の滑らかな接合を可能にする重要な側面は、部品が互いに接合する界面である。このために、新しい部品が表示されるときに、新しい部品およびそれが接合される部品上のそれぞれの界面は、滑らかで実質的にシームレスな接合を提供するよう、空間内に配置され、互いに対して方向付けられる。このために、各界面には、2つの主要な成分、すなわち、並進オフセットおよび向きオフセットを有する、変換情報(transformation information)またはデータ(data)が提供される。並進オフセットは、新しい部品を、それが接続している以前の部品に対して表示された画像内のローカル空間内で移動させる。向きオフセットは、新しい部品を以前の前の部品に対して回転させる。総合すると、これは、それぞれの部品の実際の形状に関係なく、新しい部品が以前の部品に対して正しい位置および向きにあることを可能にする。何故ならば、それぞれの部品の界面は、互いに対して正しく配置および配向されるからである。その上、「シームレスな」接合を得るために、並びに成長するときのまたはその他の方法で形状を変えるときの部品間のスムーズな移行を容易にするために、接続されている各部品の界面は、幾つかの例において、互いに同じサイズになるように配置する。しかしながら、他の例において、接続されているそれぞれの部品の界面は、例えば、所望の効果または外観に依存して、異なるサイズであってよい。例えば、以前の部品と交差する部品を追加することが望ましいことがある。樹木の場合の具体的な例として、これは、例えば、果実または葉が枝などに加えられることを可能にする。全体的に成熟した状態における界面のサイズは、界面の一部として定義されてよい。一例において、変換データは、重力および/または他の力または効果を加えるために、後に実行時システムで使用されてよい、界面の法線、接線、および従法線も含む。
【0070】
界面を更に議論し、部品70の一例を示す図7Aを参照すると、各部品は、少なくとも基底界面72を有する。基底界面72は、図7Bにより明確に示されている。基底界面72は、n辺の多角形である。多角形は、一般的に、不規則な多角形であってよいが、幾つかの例において、多角形は、部品を接続するために部品の配向を容易にすることができる規則的な多角形であってよい。多角形の中心Oは、基底界面72の原点である。その上、基底界面72は、対称的であってよく、一般的には、多角形の側面nの数と同じまたは異なる対称性の順序(order of symmetry)を有してよい。基底界面72に対する逆法線
(外0001)
は、z軸に沿って上方を指す。基底界面72の接線
(外0002)
(すなわち、基底界面72の表面に対する接線であるベクトル)は、原点Oに由来し、x軸に直接沿って向いている。接線
(外0003)
は、この例において、基底界面72の境界上の頂点74のうちの1つを通過する。
【0071】
この例において、部品70は、終端部分ではなく、従って、基底界面72に加えて、別の界面、第1の界面、または一次界面76を有する。この例において、一次界面76は、多角形であり、多角形は、やはり、一般的には、不規則な多角形であるが、規則的な多角形であってよい。一次界面76は、並進オフセットと、向きオフセットとを含む。この向きは、以下のように計算される。法線
(外0004)
および接線
(外0005)
は、一次界面76について導出される。基底界面72に関して、接線
(外0006)
は、一次界面76の中心に由来し、一次界面76の頂点のうちの1つを指す。次に、四元数回転が、それぞれ、[0,0,1]から
(外0007)
および[1,0,0]から
(外0008)
の2つの組み合わせ回転からコンパイルされる。(それ自体知られているように、四元数は、三次元におけるオブジェクトの向きおよび/または回転を表現するための数学的表記を提供する)。この一次界面76について、四元数は、今や、それ自体の法線を用いて次の部品の基底界面に対する法線を方向付けることができ、接線も一度の計算で整列するように、次の部品をその法線の周りで回転させることもできる。すなわち、これは、隣接する部品の嵌合界面が互いに対して正しく配置および方向付けられることを可能にする。
【0072】
この例において、部品70は、更なる界面78または二次界面78を有する。これは更なる部品が第1の部品に接合されることを可能にする。この場合には、図面から分かるように、二次界面78は、部品70の本体または幹から外れて面し、それは、例えば、樹木の枝を表すために、更なる部品が追加されることを可能にする。しかしながら、追加される更なる部品は、例えば、モデル化されている樹上の家または他のオブジェクトの構成要素のような、他の品目を表すことがある。更なる界面が、部品70上に設けられてよい。各界面は、一次界面76と同じ方法で四元数によって定義される。
【0073】
界面72、76、78のための多角形の使用は、次の部品が実行できる回転を効果的に制限するという利点を有し、それは次の部品の回転がより予測可能であり、次の部品を以前の部品70とより容易に整列させ得ることを意味する。
【0074】
コンテンツおよび関連データを生成する第1の段階の最終フェーズとして、ルールが作成または定義され、次に、それらは、オブジェクトの部品、従って、典型的には、オブジェクト全体の外観または「スタイル(style)」を決定するために、視覚化段階で使用される。本例において、スタイルは、異なる種またはタイプの樹木を表す。他の例において、スタイルは、異なるタイプの雷、照明効果、洞窟ネットワーク、建物構造などのような、表示されるべき異なるタイプの他のオブジェクトまたは構造を表すことができる。ルールは、典型的には、アーティストまたは他のコンテンツ作成者によって「手で」生成される。3次元オブジェクトがディスプレイデバイス上での表示のために生成されるときのルールの使用を以下に更に議論する。しかしながら、簡潔には、本例において適用されるとき、ルールの適用は、記号のセットまたはアレイをもたらし、それらは、次に、コマンドとして解釈され、次に、コマンドは、以下で更に議論するように、表示のためのオブジェクトを生成するために引き続き使用される命令を生成するために評価される。
【0075】
スタイルは、表示されるべきオブジェクトの特性のセットを定義する。各スタイルは、「公理」と、一連のルールとを有する。スタイル、公理、ルール、およびこの段階で作成されたものを理解するのを助けるために、並列書き換えシステムの概要が与えられる。上述のように、本明細書の例で使用され、以下により詳細に議論される、並列書き換えシステムは、LindenmayerのL-システムの適用と考えられてよく、この方法における使用のために特に適合させられた類似の原理を使用する。
【0076】
L-システムは、一連のルールおよび公理を使用する反復的な並列書き換えシステムである。これを例示するために、L-システムについての議論が与えられる。本明細書で議論する記号および他の表現は、この技術の例示的な例を提供するために与えられる。実際には、コンピュータ上で実行されるときに、詳細な実装は幾分異なることがあるが、基本概念は同じである。
【0077】
簡単な例として、公理はBであってよく、以下のようなルールがある。
【数0001】
【0078】
並列書き換えシステムの動作中、先ず、ルールが適用されるときに作成される記号のための容器(コンテナ)が作成される。公理(この例示的な例ではB)が容器に挿入される。並列書き換えシステムは、反復的なプロセスであり、よって、後続のステップは、繰り返し実行される。繰り返しの度に、容器内の(複数の)記号が検査され、そこにあるあらゆる記号は、ルールに従って置き換えられる。
【0079】
よって、並列書き換えシステムのこの例示的な例において、初期的に容器内の記号はBであるので、これは第2のルールに従ってF,Aと置き換えられる。ここで、第1のルールは、AをBと置き換えることを規定し、加えて、Fについてルールはないので、それは変更されないままである。それは、次の繰り返しで、F,Aがf,Bと置き換えられることを意味する。同様に繰り返すと、次の対話(インタラクション)で、Fは変更されず、Bは、F,Aと置き換えられる。従って、容器内の記号は、今や、F,F,Aである。これは特定数の繰り返しに亘って続き、(5回の繰り返しについて)以下の表2によって要約されることができる
【表0002】
【0080】
本例で使用されるような並列書き換えのための既知のL-システムの適応は、以下により詳細に議論されるが、簡潔には、多数の繰り返しの後に、結果として得られる記号は、F、F、F、F、F、F、F、F、F、F、F、Aであると仮定する。表示のためのオブジェクトの生成中に、記号Fは「部品」または「アセット」コマンドとして解釈されるのに対し、記号Aは、コマンドとして認識されず、単に無視される。従って、記号のこの特定のアレイは、オブジェクトが互いの上に積み重ねられた11個の部品からなる表示のためにオブジェクトを構築させる。(4つの部品を有する図6Dに示される例と比較のこと)。更に、上記で議論したように、部品上の界面の使用、並びに部品の界面の並進および向きは、様々な部品間の接続または接合が滑らかでシームレスに見えることを可能にする。
【0081】
知られているように、L-システムは、枝または若枝などを有する樹木または植物の画像を生成することができるように、分枝構造を扱うことができる。相応して、上述の例は、記号の一次元セットまたはアレイを使用する簡単な例であるが、これは、実際には、例えば、樹木のためであれ、モデル化されている他のオブジェクトまたは構造のためであれ、分枝または他のより複雑な若しくはより洗練された構造に順応するよう、記号の二次元アレイに容易に拡張されてよい。
【0082】
上述のように、ルールは、アーティストまたはコンテンツ作成者によって、典型的には「手で」作成または定義されるので、最終オブジェクトは、所望のスタイル、すなわち、それにも拘わらず同じスタイルを有する異なるオブジェクトについて異なることができる所望の外観を有する。樹木の例において、これは、例えば、各々が異なる外観を有する多数の同じタイプの樹木(例えば、樫または柳など)を生成し得ることを意味する。別の例として、例えば、洞穴の場合、例えば、金鉱、氷河洞窟、溶液洞穴などのような、異なるタイプの洞穴を表すために、異なる外観が使用されてよい。
【0083】
ルールの適用は、オブジェクトが表示のために生成されているときに、後続の使用のための命令を生成するためにひいては評価される、コマンドとしてひいては解釈される、記号のセットまたはアレイをもたらす。2つの主要なタイプのコマンド、すなわち、部品またはアセットコマンド、およびユーティリティコマンドがある。
【0084】
上記の例示的な例では、部品コマンドをFで記号化した。これは、上述のように、並びに以下で更に議論するように、部品の階層におけるその現在の位置で部品を構築するために使用される。
【0085】
ユーティリティコマンドは、構造の変更子(modifier)として、すなわち、表示のために生成されているオブジェクトの何らかの部分を変更するように、作用する。オブジェクトが表示のために生成されるときに、ユーティリティコマンドが、階層内の現在の点に何らかの予め定義された機能を適用する命令として解釈される。やはり、これは以下で更に議論される。
【0086】
ユーティリティコマンドの幾つかの例は、以下の表3に要約されており、これは他の用途に拡張されてよいことが理解される。
【表0003】
【0087】
ユーティリティコマンドの一部は、「重み付け(weighting)」が指定されて適用されることを許容する。本明細書中のこれらの例の各々において、重み付けを許容するユーティリティコマンドは、オブジェクトの一部分を以前の部品に対して回転させるコマンドである。具体的な例として、枝が樹木の幹から離れて伸びるときに、樹木の枝を下方に垂れ下がるように、重力が適用されてよく、垂下の量または程度は、適用される重み付けによって決定されてよい。重み付けは、例えば、パラメータ、例えば、カスタム力の50%の重み付けについての#(0.5)において、ルールにおいて指定されてよい。重み付けが指定されないならば、1のデフォルト値(初期設定値)が想定されてよい。
【0088】
ルールによって生成されることができ、オブジェクトが表示のために生成されているときにコマンドとして解釈される、様々なタイプの記号を用いて、複雑なスタイルを作成して、対応する複雑なオブジェクトをもたらすことができる。これは、それにも拘わらず互いに非常に異なる外観を有することができるオブジェクトの後続の手順的な生成を容易にする。作成できるスタイルの可能な複雑さを例示するために、この例のルールおよび公理の意味の詳細に触れることなく、スタイルは、以下のようなルールのセットを有してよく、
【数0002】
そして、以下のような公理を有してよい。
【数0003】
【0089】
この第1の予備的またはセットアップ段階に続いて、3次元オブジェクトは、ディスプレイデバイス上の表示のために生成され、表示される3次元オブジェクトの形状は、第2の段階において時間の経過と共に変えられる。この第2の段階は、コンピュータプログラム中の命令に従って作動するコンピューティングデバイスによって実行される。上述のように、これは、例えば、コンピュータゲームがコンピューティングデバイス上で稼動しているときに、実行時に実行されてよい。他の例において、これは、それぞれの場合においてコンピューティングデバイス上で、ソフトウェア作図パッケージを用いて芸術的作品を生成するため、フィルムまたは映画の動画を生成するため、画像の後処理のためなどのように、別個のプロセスとして実行されてよい。そのようなコンピューティングデバイスは、1つ以上のプロセッサと、RAMまたは他の作業メモリと、および任意的に永続的な記憶装置とを有する。3次元オブジェクトの生成は、例えば、グラフィックスカードによって提供されるグラフィックスプロセッサによって或いは中央処理装置の一部として提供される統合グラフィックスによって実行されてよい。コンピューティングデバイスは、一体型ディスプレイデバイスを有してよく、或いは別個のディスプレイデバイスに表示するために画像データを送信してよく、或いはディスプレイデバイスに後に送信するために画像データを記憶装置に送信してよい。
【0090】
前述のように、一例において、第2の段階は、実行時に計算されることができるが、実行時に計算されるように制約されない、3つの別個の演算を含むものと考えられることができる。この文脈において、実行時は、オブジェクトがディスプレイスクリーン上で可視化されるようにレンダリング(描画)される時を意味する。
【0091】
3つの演算は、以下のように要約されてよい。
1)一意的な構造の生成、
2)構造に適合する実体の作成、および
3)必要とされるときに実体を更新すること。
【0092】
先ず、1)一意的な構造の生成に関して、一例において、これは2つの別個のステップ、すなわち、(i)ルールの評価、および(ii)コマンドの評価の形態を取る。(i)ルールを評価する目的は、並列書き換えシステム技術を用いて、コマンドの2次元階層アレイを生成することである。(ii)コマンドを評価する目的は、命令の最適なバッファを生成することである。これらの命令は、オブジェクトをどこに配置するか、どのオブジェクトを配置するか、回転などを決定するために、更なる計算が必要とされないように、次のステップで使用される必要最小限の情報を含む。例えば、命令は、「世界空間」における特定の場所で、特定の向きにおいて、特定の幾何学的形状(例えば、表示されるオブジェクトの一部分)を配置するようにシステムに通知する。(「世界空間」は、ディスプレイデバイス上でモデル化されている世界中のあらゆるものが絶対座標内に配置される基準系である)。全てのこれらの命令が処理された後に、これは以前に定義された構造に適合するオブジェクトをもたらす。
【0093】
次に、1)ルールの評価をより詳細に議論すると、スタイルのルールが適用されるときに、システムは、先ず、生成される記号の各々を検査して、それらが部品コマンドであるかどうかを確認する。記号が部品コマンドであるならば、システムは、その部品がいずれかの二次界面を含むかどうか確認する。もしそうであるならば、上述の界面の議論に沿って、システムは、これらの二次界面を岐として扱う。新しい記号アレイが作成され、二次界面に予め定義された「追加的コマンド(additional command)」記号でインスタンス化される。次に、元の記号アレイは、「分枝記号(branching symbol)」を追加することによって、この枝の注釈を行う。この分枝記号は、新たに作成される記号アレイへのポインタである。これは以下の例によって理解される。この例では、0,1,...とインデックス付けされる、複数の記号アレイがあることが留意されるべきである。
【0094】
インデックス(索引)0を有する第1の記号アレイは、記号F,Aを含む。(ここでも、これは例を例示する目的のための単純化された例であり、通常、記号のアレイは実際にはより複雑であることが強調される)。これは以下の表4によって表されることができる。
【表0004】
【0095】
上述のように、この例示的な例において、記号Fは、「部品」コマンドとして解釈される。(そして、記号Aは、コマンドとして認識されず、単に無視される)。従って、部品がいずれかの二次界面を含むかどうかが確認される。イエス(はい)であるならば、新しい記号が、作成され、次のインデックス、ここではインデックス1でラベル付けされる。
【0096】
ここで、任意の二次界面について、追加コマンドが定義される。この目的は、並列書き換えシステムにおける新しい枝についての新しい公理として役立つことである。これがないならば、枝は、突然終わり、如何なる幾何学的形状もないであろう。この二次界面についての追加コマンドは、記号Bによって表されると想定する。これは、次に、(ここではインデックス1を有する)新しく作成されたアレイの公理で設定される。更に、分枝記号が(ここではインデックス0を有する)元のアレイに挿入される。分枝記号を{1}とする。
【0097】
この例において、このルール評価の結果は、次の表5によって表されることができる。
【表0005】
【0098】
ルール評価プロセスにおけるオプションとして、可能性の要素(element of chance)を導入することができる。すなわち、ルールに従って記号が置き換えられる可能性または確率は、ルールの一部として指定されることができる。さもなければ、可能性が指定されないならば、記号は、常にルールに従って置き換えられる。これの利点は、オブジェクトが手順的に生成されるとしても、表示のために生成されるオブジェクトが、少なくともルールによって指定された程度は、無作為な外観を有することを可能にすることである。これは外観が全て同一でない複数のオブジェクトを表示のために生成することを更に助ける。
【0099】
これは、次の例によって例示され、ここで、ルールは、以下の通りであり、
【数0004】
ここで、ルール2に従う可能性は、80%である。
【0100】
この例において、これは記号BがF,Aによって置き換えられる80%の可能性があり、記号Bが変更されない20%の可能性があることを意味する。
【0101】
1)i)ルールの評価が完了した後に、今やアレイ記号のセットがある。次に、これらの記号は、1)(ii)コマンドの評価を可能にするように処理され、それによって、表示のためのオブジェクトを生成するために引き続き必要とされる命令を生成する。これは例によって最も簡単に説明される。ここでも、これは単なる例示的な例であり、実際の実装は、本明細書に開示する方法で可能である詳細および複雑さの両方に関して大きく異なることが理解されるであろう。
【0102】
この例において、記号は、先ず、コマンドでない全ての記号を除去するように処理される。この点に関して、幾つかの記号は、ルールを評価するプロセス中にのみ使用されることが思い起こされるであろう。従って、記号は検査され、コマンドでないあらゆる記号は除去される。
【0103】
例えば、ルールの評価の結果として以下の記号アレイが生成されたと想定する。
【表0006】
【0104】
ここでの記号AおよびBはコマンドではないと認識され、従って、除去されて、この例では以下がもたらされる。
【表0007】
【0105】
今やコマンドを評価することができる。これは、先ず、インデックス0を有する第1の記号アレイを考慮することによって実行される。第1の記号アレイのコンテンツ内の記号は、順番に処理される。この例において、第1のコマンドFは、部品コマンドとして認識される。従って、部品を構築するために、すなわち、Fの幾何学的形状をインスタンス化するために引き続き使用される命令が生成される。一般的には、部品コマンドについて、部品Fは、部品の階層中のその現在の位置でインスタンス化される。この場合、これは構築またはインスタンス化されている第1の部品であるので、部品は、この例で生成されている全体的なオブジェクトの根(ルート)または基底(ベース)でインスタンス化される。その上、他の部品は以前に作成されていないので、全体的なオブジェクトは初期的な回転を有さないと仮定すると、その部品は、その幾何学的形状がz方向において上向きであり且つ回転を有さない状態でインスタンス化される。しかしながら、例えば、何らかの回転が必要とされるならば、これは容易に修正されることができることが理解されるであろう。
【0106】
表7を再び参照すると、この例において、(今やコマンドとして扱われる)第1の記号の後に{1}が続き、それは、この例において、分枝コマンドであることが分かる。従って、システムは、部品Fが1つの二次界面を含むことを知っている。従って、この例において、分枝コマンドで参照されるインデックスを有する記号アレイは、次に処理される。この例において、これはインデックス1を有する記号アレイである。何故ならば、この分枝コマンド{}は、ポインタ1を含むからである。
【0107】
この例の記号アレイ1は、(この簡単な例示的な例では、このアレイ中の唯一の記号である)第1の記号Dを有する。これは、この例において、部品コマンドとして認識される。従って、部品Dを構成する、すなわち、部品Dの幾何学的形状をインスタンス化するために使用される命令が生成される。その上、これは分枝であるので、部品Dは、必要に応じて、その基底界面が部品F(の第1のインスタンス)の第1の、唯一の、二次界面と整列するように、位置決めされ、回転される。
【0108】
この例では、記号アレイ1にはそれ以上のコマンドがないので、プロセスは、以前の記号アレイに、ここでは、記号アレイ0に、具体的には、記号アレイ0が以前に({1}で)分岐した記号アレイ0中のポイントに戻る。この例において、記号アレイ0における次のコマンドは、~である。この例において、これは、特定の例では、無作為回転(random rotation)を適用する命令を生成するために使用される、ユーティリティコマンドである。無作為回転は、部品Fの一次界面の対称性の順序に一致するように計算される。無作為回転は、この時点で、後の使用のために格納される。
【0109】
次に、処理は、記号アレイ0中の次のコマンドに移動する。この例において、これはSであり、Sは、この例において、別の部品コマンドである。従って、部品Sが(この例では以前に計算された無作為回転を含む)所要の累積並進および回転と共に生成されるような命令が生成されるので、部品Sの基底界面は部品Fの一次界面と整合し、その上、それは全体的に生成されたオブジェクトについて提供されるスタイルにも一致する。
【0110】
このプロセスは、記号アレイの全てにおける記号の全てが処理されるまで、記号アレイ中の残余の記号を通じて同様に継続する。この例において、これは部品Fの別のインスタンスであるF{2}を含む。
【0111】
この段階でのこの結果は、次に、表示のためのオブジェクトを生成するために使用されることができる、命令のセットである。これらの命令は、互いに依存せず、一般的に、任意の順序で実行可能であることが留意されてよい。これは、全ての変換データがその最も単純な形態で表され、それ以上の計算を必要としないからである。このデータは、オブジェクトが配置される世界空間にも関係する。上述のように、ある例において、変換データは、4D位置オフセット、オブジェクトの次の部品を整列させるための四元数、並びにオブジェクトのアセットまたは部品上の各分枝点についての他のデータを含む。各部品が継承する全ての変換および時間オフセットは、世界空間において部品の最終変換および時間オフセットを作成するために一緒にコンパイルされる。
【0112】
従って、オブジェクトは、作成された命令を使用して表示のために今や生成されることができる。一例において、これは、各命令をシーケンスで実行し、その特定の世界空間変換および時間オフセットで各部品の幾何学的形状またはメッシュのインスタンスを生成し、材料のインスタンスを部品に割り当てることによって進行する。この「シーケンス」は、一般的に順不同であること、すなわち、一般的に任意の順序で命令を実行できることが再び言及される。
【0113】
ある例では、先ず、部品は、命令を使用してインスタンス化される。例として、命令は、以下の情報、すなわち、メッシュ、(複数の)材料、並進、回転、および時間オフセットを含む。
【0114】
この点に関して、簡単に言えば、材料は、部品の外観を決定する。例えば、グラフィックスプロセッサまたは処理ソフトウェアまたは類似物で使用される特定のシェーダに依存して、材料は、部品がどれぐらい光っているか、反射しているか、或いはつや消しされているか、部品の色または透明度、タイリング情報などを定義する。前述のように、命令は、一般的に、任意の順序で実行されることができる。
【0115】
インスタンス化自体は、グラフィックス処理で使用されるよく知られている技術である。従って、標準的なインスタンス化技術に対する本例の主な相違のみが本明細書で議論されている。
【0116】
本例では、ある材料がある部品上にまたはある部品のためにインスタンス化されるとき、その材料への参照が格納される。材料についてのデータは、比較的大きく、その上、データを作成するために材料を処理することは、比較的プロセッサ集約的である。同じ材料の新しいインスタンスがインスタンス化される必要があるとき、その材料への参照が注記され、同じ材料がその格納される参照からインスタンス化されることができる。これは実際には同じである潜在的に極めて多数の材料を作成して格納しなければならないことを回避し、材料当たり1つのインスタンスのみが格納される必要がある。これはシーンが(上記で議論したような樹木または他のオブジェクトであってよい)多数のそのようなオブジェクトを含むことがあり、各オブジェクトが多数の部品から形成される場合があるならば、特に有用である。
【0117】
各部品の時間オフセットは、グラフィックスプロセッサのシェーダまたは処理ソフトウェアまたは同等物によって命令から読み取られる。部品の視覚化または外観は、必要に応じて調整されることができる。
【0118】
特に、この例において、各部品についての予め計算されたデータは、シェーダによって復号される。各部品についての予め計算されたデータは、上記で議論されて、図5に一例として図式的に示されている、デルタ符号化テクスチャデータ構造に含まれる。このテクスチャデータ構造中のデルタは復号されて、特定の部品についてのオブジェクト空間オフセットとして適用される。ここでの重要な考慮事項は、全体的なオブジェクトを構成する他の部品に対して、並びに、他のオブジェクトに対して、そして、コンピュータゲームまたは同等物の場合には、ゲームの総実行時間に対して、その部品が正しい時間と形状で視覚化されるように、その部品について設定されるべき「時間」である。
【0119】
時間に関して、先ず、コンピュータゲームまたは同等物の場合には、(例えばプレイヤまたは他のユーザによって)コンピュータゲームが開始されてからの経過時間を表す「グローバル時間(global time)」が存在することがある。このグローバル時間が全てのオブジェクトのために使用されるならば、オブジェクトの全ては同時に作成されるように見え、同時に「成長する」か或いはさもなければ形状を変える。これは幾つかの場合に或いは幾つかのオブジェクトに適していることがある。しかしながら、他の場合には、オブジェクト(の少なくとも一部)が異なる時に作成され、異なる時に「成長」するか或いはさもなければ形状を変えるように見えることが望ましい。従って、特定のオブジェクトを構成する部品には、グローバル時間オフセットが割り当てられてよく、それは、コンピュータゲームの開始からのそのグローバル時間オフセットの経過後に、その部品、従って、そのオブジェクトに、成長を開始させ、或いは他の方法で形状を変化させる。これを例示する簡単な例として、あるオブジェクトがゲーム開始後の120秒で成長を開始するならば、その特定のオブジェクトについての全てのメッシュインスタンスは、120のグローバル時間オフセット値を持つように指示される。すなわち、この例において、その特定のオブジェクト全体のローカル時間は、シェーダによって以下のように計算されてよい。
【数0005】
【0120】
加えて、上記で議論したように、ある例において、オブジェクトの各々の個別の部品は、それ自体のローカル時間オフセットを有する。これは、部品が異なる時間のスライスを実質的に表している、すなわち、異なる量の時間によってオフセットされているからである。従って、オブジェクトの特定の部品のローカル時間は、シェーダによって次のように計算されてよい。
【数0006】
【0121】
上記に続いて、オブジェクトは、異なるオブジェクトについてのグローバル時間オフセットに従って異なる時間に現れるように作成/視覚化され、更に、オブジェクトの個々の部品の個々のローカル時間オフセットに従って成長するか或いはさもなければ形状を変える。この点に関して、この例では、オブジェクトは、同じ速度で成長するか或いはさもなければ形状を変える。これは幾つかの場合に望ましいことがある。しかしながら、物体が異なる速度で成長するか或いはさもなければ形状を変えることが望ましいならば、更なるスカラー変数「成長速度(grow speed)」が追加されてよい。そのような場合、オブジェクトの特定の部品についてのローカル時間は、シェーダによって以下のように計算されてよい。
【数0007】
【0122】
この方法を使用するならば、必要な情報の全ては、オブジェクトが成長するか或いはさもなければ形状を変えるときに、オブジェクトのライフサイクルに亘って1回だけインスタンスバッファに渡される必要がある。通常通りのコンピューティングデバイスのCPUまたは他のメインプロセッサからのグローバル時間の通過以外には、単にオブジェクトを時間の経過と共に成長するか或いはさもなければ形状を変えるように見えさせるために、コンピューティングデバイスのCPUまたは他のメインプロセッサからグラフィックスプロセッサまたは処理ソフトウェアまたは同等物への更なる通信の必要はない。従来の技術では、オブジェクトが形状を変えるか或いはさもなければ更新されるならば、典型的には、コンピューティングデバイスのCPUまたは他のメインプロセッサは、グラフィックスプロセッサまたは処理ソフトウェアと通信して命令を送信しなければならず、次に、命令は、グラフィックスプロセッサによって処理されなければならない。CPUとGPUとの間のこの通信は、通常、更新プロセスの遅い部分であり、少量のデータであるCPUからGPUへのグローバル時間の通常の通過を除いて、本明細書に記載する例では回避される。その結果、本明細書に記載する例は、オブジェクトの形状の滑らかで中断のない変化を可能にし、オブジェクトの如何なる選択的な更新も必要としない。
【0123】
ここで、データを格納するためのデータ記憶装置を参照する。これは単一のデバイスによって或いは複数のデバイスによって提供されてよい。適切なデバイスは、例えば、ハードディスクおよび不揮発性半導体メモリ(例えば、ソリッドステートドライブまたはSSD)などを含む。
【0124】
図面を参照して本明細書に記載する実施形態の少なくとも幾つかの態様は、処理システムまたはプロセッサで実行されるコンピュータプロセスを含むが、本発明は、本発明を実施するように適合されるコンピュータプログラム、特にキャリア上またはキャリア内のコンピュータプログラムにも及ぶ。プログラムは、非一時的ソースコード、オブジェクトコード、コード中間ソースコード、および部分的にコンパイルされた形態のようなオブジェクトコードの形態、または本発明に従ったプロセスの実装における使用に適した任意の他の非一時的形態であってよい。キャリアは、プログラムを支持することができる任意の実体またはデバイスであってよい。例えば、キャリアは、ソリッドステートドライブ(SSD)または他の半導体ベースのRAMのような記憶媒体、ROM、例えば、CD-ROMまたは半導体ROM、磁気記録媒体、例えば、フロッピーディスクまたはハードディスク、一般的な光メモリデバイスなどを含んでよい。
【0125】
本明細書で言及するプロセッサまたは処理システムまたは回路構成は、実際には、具体的な用途に依存して、任意的に、チップセット、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)などとして提供される、単一のチップまたは集積回路または複数のチップまたは集積回路によって提供されてよいことが理解されるであろう。チップまたは複数のチップは、例示的な実施形態に従って作動するように構成可能な、データプロセッサまたはプロセッサ、デジタル信号プロセッサ、ベースバンド回路構成、および無線周波数回路構成のうちの少なくとも1つ以上を具現するための回路構成(および場合によってはファームウェア)を含んでよい。この点に関して、例示的な実施形態は、少なくとも部分的には、(非一時的な)メモリに格納されてプロセッサによって実行可能なコンピュータソフトウェアによって、或いはハードウェアによって、或いは有形に格納されたソフトウェアとハードウェア(および有形に格納されたファームウェア)の組み合わせによって実装されてよい。
【0126】
本明細書に記載する例は、本発明の実施形態の例示的な例として理解されるべきである。本発明は、モデル、例えば、樹木、建物または他の構造、洞穴またはトンネルシステム、稲妻、ロボットのようなまたは他のアニメーション化されたキャラクタ、生き物の触手、河川、電線などに適用されてよい。他の例において、モデル化されるオブジェクトは、建物の内部または洞穴ネットワークのような、何らかの空間の内部であってよい。他の例において、モデル化されるオブジェクトは、例えば、拡散する光または暗闇の傾向の様式におけるディスプレイシーン内の表示されるシーンまたは特定のオブジェクトの上を或いはそれらを通じて移動する外観を有する、色またはシェーディング効果の表現であってよい。更なる実施形態および例が想定される。任意の1つの例または実施形態に関連して記載される任意の構成は、単独でまたは他の構成との組み合わせにおいて使用されてよい。加えて、任意の1つの例または実施形態に関連して記載されるあらゆる構成は、任意の他の例もしくは組み合わせのうちの1つ以上の構成または任意の他の例もしくは実施形態の任意の組み合わせとの組み合わせにおいて使用されてよい。更に、本明細書に記載されていない均等物および修正物も、特許請求の範囲に定義される本発明の範囲内で利用されることがある。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7A
図7B
【外国語明細書】