(57)【要約】たとえば、ウェブ・ブラウザを主要ユーザ・インタフェースとして使用して、クライアント・サーバ・システムのボクセル３Ｄモデリング技法を具体化するためのシステムおよび方法。
2018514885.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄモデリングのためのシステムであって、
３Ｄアニメーションを表示するためのディスプレイと、
ユーザが少なくとも１つの３Ｄモデルと対話することを可能にするインタフェースと、
メモリであって、該少なくとも１つの３Ｄモデルが該メモリ内に記憶され、該少なくとも１つの３Ｄモデルがその中に複数のボクセル情報を含む、前記メモリと、を備え、
該複数のボクセル情報が、離散値のグリッドを含み、各離散値が、それぞれのボクセル特性に対応し、該複数のボクセル情報が、該ディスプレイ上に画像を表示するためにユーザによって用いられる、３Ｄモデリングのためのシステム。
【請求項２】
前記複数のボクセル情報が、離散ボクセル値のグリッドを含み、
各離散ボクセル値が、それぞれのボクセル特性に対応する、請求項１に記載の３Ｄモデリングのためのシステム。
【請求項３】
前記複数のボクセル情報が、サーバから前記インタフェースにアップロードされる、請求項１に記載の３Ｄモデリングのためのシステム。
【請求項４】
前記複数のボクセル情報が、複数のチャンクに分割され、
前記複数のチャンクがアップロードされる、請求項３に記載の３Ｄモデリングのためのシステム。
【請求項５】
各チャンクが、ボクセル・メッシュ・データ、ボクセル・データ、ボクセル・メタデータ、およびそれらの組み合わせを含む、請求項４に記載の３Ｄモデリングのためのシステム。
【請求項６】
前記ボクセル・メッシュ・データが、バイト・データ、整数データ、浮動小数点データ、およびそれらの組み合わせを含む、請求項５に記載の３Ｄモデリングのためのシステム。
【請求項７】
前記ボクセル・メッシュ・データが、バイト・データ、整数データ、浮動小数点データ、およびそれらの組み合わせを含み、前記システムのセカンダリ処理スレッドによって抽出される、請求項６に記載の３Ｄモデリングのためのシステム。
【請求項８】
前記ボクセル・メッシュ・データが、レンダリングのために前記ディスプレイに転送される、請求項５に記載の３Ｄモデリングのためのシステム。
【請求項９】
前記ボクセル・メッシュ・データが、複数のファイルを含む、請求項５に記載の３Ｄモデリングのためのシステム。
【請求項１０】
前記ボクセル・データおよび前記ボクセル・メタデータが、前記システムのための少なくとも１つの対話機能に送られる、請求項５に記載の３Ｄモデリングのためのシステム。
【請求項１１】
複数のチャンクがゾーン・ファイルへと結合され、該ゾーン・ファイルがアップロードされる、請求項４に記載の３Ｄモデリングのためのシステム。
【請求項１２】
前記３Ｄモデリングが、ゲーム、医用画像、建築のイメージング、およびデバイス・モデリングにおいて使用される、請求項１に記載の３Ｄモデリングのためのシステム。
【請求項１３】
３Ｄモデリングのためのデバイスであって、
プロセッサと、
ユーザのためのインタフェースを有するディスプレイと、
メモリであって、少なくとも１つの３Ｄモデルが該メモリ内に記憶され、該少なくとも１つの３Ｄモデルがその中に複数のボクセル情報を含む、前記メモリと、を備え、
該複数のボクセル情報が、離散値のグリッドを含み、各離散値が、それぞれのボクセル特性に対応し、該ボクセル情報が、該ディスプレイの該インタフェース上に画像を表示するために該ユーザによって用いられ、該画像が該複数のボクセル情報から構成される、３Ｄモデリングのためのデバイス。
【請求項１４】
３Ｄモデリングのための方法であって、
複数のボクセル情報をサーバからブラウザにアップロードすることであって、該ボクセル情報が離散値のグリッドを含み、各離散値がそれぞれのボクセル特性に対応する、前記アップロードすること、
該ブラウザにアップロードされた複数のボクセル情報から、ボクセル・メッシュ・データ、ボクセル・データ、ボクセル・メタデータ、およびそれらの組み合わせを抽出すること、
抽出された複数のボクセル情報から少なくとも１つの画像をレンダリングすること、を備える３Ｄモデリングのための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元（３Ｄ）モデリングおよびアニメーションの改善を対象とする。
【背景技術】
【０００２】
計算能力およびグラフィカル・プロセッサの向上により、仮想世界および環境全体を精巧に作ることができるツールが作成されており、それらは、能力の向上ならびにグラフィックス・ソフトウェアおよび他のツールの改善とともにますますリアルになりつつある。ゲーム業界においてなど、各業界が繁盛しており、特に、複数のプレイヤがゲームおよび仲間のプレイヤを相手に／とともに戦う多人数同時参加型ロールプレイングゲーム（ＭＭＯＲＧ）を含むゲームが繁栄している。
【０００３】
処理能力の向上についていくことは、グラフィックス・ツールの洗練の程度およびリアルさへの近さの程度である。ディスプレイの解像度が高いほど、アニメーションは、ますます真に迫っているように見える。ＭＭＯＲＧなどの現在の多人数同時参加型ゲームでは、多数の多様なプレイヤが共通のシナリオまたは冒険に参加し、プロットを共有する。投影とは、これらのタイプの体験の「共有」が、体験をさらに容易にするために、本明細書において示される技法などのより優れた技法の誕生とともに、さらに増加することを示す。
【０００４】
３次元すなわち３Ｄモデリングおよびアニメーション・システムは、今日、まずユーザがクライアント・ファイルをダウンロードすることに一般に依存しており、クライアント・ファイルは、数ギガバイトのデータからなることが多い。また、当技術分野で理解されるように、３Ｄモデリングは一般的には、３Ｄ多角形モデリング技法を利用して実行され、３Ｄモデリング・エンジンがグラフィカルに解釈して視覚化することができるサーフェス／メッシュが定義される。
【０００５】
イメージング機能の改善は現にゲームをはるかに超え、これらの同じ原理は、さまざまな他の適用例にも適合および適用が可能であり、そのようなものは、医用画像、建築または建物のモデリング、構成要素またはデバイスのモデリングなどにおいて使用され、現実世界のシナリオならびに想像上のシナリオまたは潜在的なシナリオをモデル化する際の多種多様の現在の利用および潜在的な使用を包含することを理解されたい。
【０００６】
しかしながら、３Ｄモデリングにおいて用いられるソフトウェア・ツールのいっそうの技術的洗練によって、進出のかなりの障壁が生まれる。現在、ユーザの必須技術スキルのセットは、高くなければならないのである。たとえば、最新の３Ｄモデルの作成は多角形モデリング技法を用いるが、この技法は一般的に、３Ｄモデル制作者が、そのような多角形３Ｄモデリングのために、大学レベルのプログラムにおいて高等数学、データ構造、およびグラフィカル・ユーザ・インタフェースのためのコンピュータ・モデリング・アルゴリズムを含む広範な訓練を受けることを必要とする。
【０００７】
したがって、必要とされるものは、特に現在用いられている複雑なサーフェス・モデリング技法に関して必ずしもそれほど技術的に訓練を受けていないユーザをその気にさせる、代替のより簡単なモデリング手法である。より単純なパラダイムを提供するために本発明において用いられる１つのツールは、前述のサーフェス・モデリングの代わりにボクセル（voxel）を用いる。
【０００８】
ボクセルは、高速で単純であるなどのさまざまな利点を有する体積ピクセルである。さらに、出願人は、本発明の教示による、ボクセルを用いる３Ｄモデリングは一般的に、中程度にコンピュータに習熟した人なら誰でも実行できることを見出した。説明するように、ボクセルは、（単にサーフェスではなく）ボリュームの３Ｄモデリングを含み、この技術を使用および理解することをより簡単にする、すなわち、一般の人々にとって、より利用しやすいものにする。
【０００９】
しかしながら、ボクセルの利用は高くつき、ボクセル技術の主な欠点は、必要とされるプロセッサ負荷である。実際、より多くのボクセルが追加されるほど、ボクセル間の複雑さは劇的に増加し、各ボクセル、各体積（volumetric）構成要素を追跡すると、特にそれによって表されるボクセルおよびオブジェクトの数が増加するので、コンピュータ・プロセッサに関するかなりの要件が急速に高まる。そのうえ、数個または多数のクライアントが１つのサーバに接続するサーバ・クライアント・ソリューションは、かなりの容量要件をサーバおよびサーバとクライアントとの間の通信に課す。
【００１０】
この場合も、必要とされるものは、本明細書において提案されるものなどの、３Ｄモデリングのボクセルの多い環境におけるプロセッサの負荷に関連付けられた技術的問題に対処する改善された技法およびシステムである。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、たとえば、ウェブ上でコンテンツを構築および提示するための有力なハイパーテキスト・マークアップ言語プロトコルの新しい第５版であるＨＴＬＭ５を利用するシステムを実施するなどの、クライアント・アーキテクチャ・システム内のボクセル３Ｄモデリングおよびアニメーション・システムに関連するさまざまな技術的問題を解決する。既存の標準およびプロトコルの利用は、多数のユーザ（最大で８０％ものユーザであることが多い）が、そのような技術を用いてソフトウェア・クライアント・ファイルをダウンロードすることを選ばない、または大容量ソフトウェア・クライアントのダウンロードの完了を待てるほど忍耐強くないここのような状況では、重要である。
【００１２】
したがって、現在、既存のモデリング方法を改善して、より使いやすくし、ダウンロードをより簡単にし、より効率的なものにするシステム、方法、技法、デバイス、装置、およびアーキテクチャを提供することが必要である。
【００１３】
したがって、専門的な訓練を受けていない（または最も限られた量の専門的な訓練を受けた）ユーザを平均化することによって簡単なやり方で編集できる、そのようなモデリング・システムを提供することが本発明の目的である。
【００１４】
あるユーザによって作製された３Ｄモデルおよびアニメーションを簡単で効果的なやり方で他のユーザに配信するための機能を提供することが本発明の別の目的である。
【課題を解決するための手段】
【００１５】
本発明は、たとえばウェブ・ブラウザを主要ユーザ・インタフェースとして使用して、クライアント・サーバ・システムにおいてボクセル３Ｄモデリング技法を実施するためのシステム、装置、および方法を対象とする。
【００１６】
本明細書は、本発明を形成すると見なされる主題を詳細に指摘し、明確に請求する特許請求の範囲で終わるが、本発明は、添付の図面と併せて取り上げる以下の説明からより良好に理解されると考えられる。添付の図面では、同じ参照番号は、同じ構造的要素および他の要素を示す。
【図面の簡単な説明】
【００１７】
【図１】２値ボクセル値が形状を定義する、単純なマニホルド・グラフィカル形状の図。
【図２】複数の形状および特性を定義するために複数の値を有するいくつかのボクセルから構成されるより詳細なグラフィカル形状の１実施形態を示す図。
【図３】本発明による、単一の高次元ボクセル・グリッド値への個別のボクセル・グリッド値の階層化または積み重ねを説明する図。
【図４】本発明の原理によるブラウザ上で使用するためのサーバから標準ウェブ・ブラウザへのボクセル・グリッド・データの転送のための手順の１実施形態を示す図。
【図５】本発明の教示によるボクセル環境ゾーン・ファイルの各セグメントすなわちチャンクに関連付けられたメッシュ、ボクセル・データ、およびメタデータとともに、本発明の教示によるボクセル環境ゾーン・ファイル構造の１実施形態を示す図。
【図６】本発明の別の実施形態による、その中におけるメッシュ、ボクセル・データ、およびメタデータの分離とともに、サーバから標準ウェブ・ブラウザへのボクセル・ゾーン・ファイルの転送のための機構の１実施形態を示す図。
【図７】図６に示される転送機構が別々に行われる本発明の別の実施形態を示す図。
【図８】本発明の教示による、ブラウザが、ボクセル・データを処理するためにプライマリ・スレッドとセカンダリ・スレッドとをその中に有する、サーバから標準ウェブ・ブラウザへのボクセル・グリッドの転送のための別の実施形態を示す図。
【図９】ボクセル表現の簡略化のための技法の１実施形態を示す図。
【図１０】本発明の教示による、人間の表現のためのヒューマノイド動的モデルの骨組みすなわちフレームワークを示す図。
【図１１】本発明の原理によるユーザ・ナビゲーションを容易にするようにポータル座標をその中に記憶するためのボクセル・メタデータの例示的な使用法を示す図。
【図１２】本発明による、いくつかのイベントの発生を扱うための１実施形態を示す図。
【図１３】本発明による、画像を投影するための好ましいモデリング技法を示す図。
【図１４】本発明の原理を実施する際に使用され得る構成要素および機器の例示的な構成を示す図。
【発明を実施するための形態】
【００１８】
以下で本文に記載されているさまざまな図は、例示的な構成において本発明の原理を用いてボクセル３Ｄモデリングを実施するためのシステムおよび方法のさまざまな態様および特徴の代表的なビューを提供する。
【００１９】
次に、本発明が、本発明の好ましい実施形態が示されている、本明細書において記載される添付の図面を参照して、以下でより十分に説明される。もちろん、しかしながら、本発明は、多数の異なる形で実施されてよく、本明細書において記載される実施形態に限定されると解釈すべきではないことが理解される。むしろ、これらの実施形態は、開示が徹底的で完全であり、本発明の範囲を当業者に十分に伝えるように提供される。したがって、本発明の範囲から逸脱することなく、他の実施形態が利用でき、構造上の変更が行われてよいことを理解されたい。
【００２０】
説明されたように、プロセッサの計算能力を増加させることによって、高次のソフトウェア・ツールが引き続き使用可能になる。しかしながら、ボクセルを使用すると、個別のボクセル（discrete voxels）の互いとの、および環境との相互関連性により、計算の複雑性が生じ得る。以下で説明および図示されるように、本発明は、機器の技術的問題を克服し、たいていのモデリング・ソフトウェアのユーザ知識しきい値問題も克服し、高度ソフトウェア・スキル・セットを持たないユーザが、本明細書において示されるものなどの新しいソフトウェア・モデリング・ツールの利点を用いることを可能にする。
【００２１】
以下で説明されるように、本発明の多くの特徴を十分に説明するために、いくつかのトピック・カテゴリが本明細書において用いられる。用いられるカテゴリの記述は例示的なものであり、順序などは、使用される説明は別として、必ずしも重要性のレベルを暗示するものとは限らないことを理解されたい。
【００２２】
１．高次元ボクセル環境
説明されるように、体積ピクセル（「ボクセル」）は、３Ｄ空間またはグリッドの概念を利用する、３次元空間およびその中に含まれるオブジェクトのモデリングの手法であり、グリッド上の各点は値を含む。これらの値は、ボクセル環境のいかなる側面も表すことができる。たとえば、２値ボクセル値は、単純なマニホルド形状（manifold shape）をモデル化するために、「中実（solid）」および「非中実（not solid）」を表すために使用可能である。
【００２３】
ここで図面の図１を参照すると、参照番号１００によって全体的に指定される、マニホルド空間および画像の基本的表現が示されている。必要とされるボクセル単位すなわち空間の粒度が、その中の形状をウサギと視覚的に定義するのに適切であることは、直ちに明らかである。画像１００内のすべてのボクセルの値が２値である、すなわち、ボイド（ｖｏｉｄ）または示されるウサギ形状の一部のどちらかであることが、さらに明らかである。したがって、画像１００のための３次元空間のグリッドすなわち配列は、１およびゼロの行列のみからなる。
【００２４】
もちろん、ボクセルに対する単純な２値使用ではなく、代わりに、１０進または１６進などのより大きい基本的進法が、環境およびオブジェクトの体積モデリングにおけるより多種多様な材料、たとえば、「ガラス」、「木」、「水」などを表すために使用可能であることは理解されたい。言い換えれば、各ボクセルに関連付けられた数値は、境界または差異を提供するのに十分に変化することができ、示されるものなどのより複雑な画像をレンダリングするためのより高レベルの方法論を可能にする。
【００２５】
ここで図面の図２を参照すると、参照番号２００によって全体的に指定される、はるかに複雑な画像を有する空間の別の表現が示されている。画像２００を構築するために用いられるボクセル間にいくつかの階調があり、多数に対して、オブジェクトを有する環境すなわちシーンの個別の部分、たとえば、参照番号２０２によって全体的に指定される水、参照番号２０４によって全体的に指定される島（または単に陸）、参照番号２０６によって全体的に指定される木、島２０４の頂上にある氷河（または雪）２０８、氷河２０８から発し、陸２０４を横切って、水２０２に注ぐ川２１０などの輪郭をその上に描くことが、直ちに明らかである。依然として外観は単純すぎるが、画像１００にまさる画像２００の複雑さは著しく進んでいる。
【００２６】
このシステム・モデルでは、各ボクセルが複数の値を含む単一の高次元グリッドを作り出すために、複数の重ね合わされたボクセル・グリッドを使用するボクセル環境が用いられている。図２に示されるように、次いで、これらの値は、物理的ボクセル属性および非物理的ボクセル属性、たとえば、材料（前述の「水」、「島」、「川」など）、ならびに、温度、湿度レベル、圧縮レベル、密度、重量、および同じく数値的にモデル化可能な他の任意の値などの、示されていない他の属性を表すために使用される。
【００２７】
図１の画像１００に関連して図示および説明されるものなどの単一次元ボクセル・グリッドの、図２の画像２００において用いられるはるかに詳細な多次元グリッドへのこの拡張は、より豊かで、より複雑な環境を提供する。たとえば、単一ボクセルは、以下の値などのいくつかの個別の特性を含んでよい。
【００２８】
材料：水
温度：摂氏１０１度
圧縮：０．１
重量：１８．０１５２８
温度に関する属性または特性は水の沸点を上回っており、圧縮は、材料が空気よりも低い重量を有するのに十分なほど低いので、上記で説明された組み合わせは、実際には、水ではなく水蒸気をモデル化することを理解されたい。
【００２９】
従来の単一次元ではなく高次元の、ボクセル環境をそのようにモデル化することによって、出願人は、これらの環境は、より複雑な材料およびそれらの材料間の相互作用をモデル化する、より表現力豊かな環境を作り出すことができることを見出した。そして、これらのツールを使用しやすく、用いやすくすることによって、日常的なソフトウェア・ユーザは、これらの新しい技法をより容易に習得して用いることができる。
【００３０】
ここで図面の図３を参照すると、好ましい１実施形態では参照番号３００によって全体的に指定される、本発明によって用いられる高次元モデリングの表現がどのように機能するかが示されている。たとえば、特定のボクセル内の属性のスタッキング（stacking）または階層化をより良く視覚化するために、さまざまな個々の特性または属性が、１つの属性のみを有するいくつかのボクセル、たとえば、参照番号３０２によって全体的に指定される材料ボクセル・グリッド、参照番号３０４によって全体的に指定される温度ボクセル・グリッド、参照番号３０６によって全体的に指定される圧縮ボクセル・グリッド、および他の所望のまたは必要な特性または属性のためのその他に分割されて示されている。属性に関する多種多様のこれらの個別の１次元ボクセル・グリッド（discrete, one-dimensional voxel grids）は、そのように視覚化されてよく、それらのグリッドはすべて、参照番号３０８によって全体的に指定される単一の高次元ボクセル・グリッドに結合され、そのボクセルに関する値の行列またはグリッド内のそれぞれの値によって表される前述の特性または属性のすべては、より高次元の表現を形成することを理解されたい。
【００３１】
論じられたように、これらの高次元ボクセル・グリッドの適用例としては、複雑なビデオ・ゲーム環境や、医療環境またはエンジニアリング環境において使用するための複雑な現実世界の材料のモデリング、たとえば、動物組織および植物組織または複合合金の材料、密度、温度、電気抵抗、および圧縮のモデリングがある。それぞれのボクセルまたはボクセルのグループ（グリッド）内に特性を容易に与えることによって、かなり複雑で相互関係のある構造が、当技術分野のより複雑なサーフェス・マッピングおよびモデリング技法を使用するよりもはるかに容易にモデル化可能である。
【００３２】
２．ウェブ・ブラウザ内のボクセル環境
論じられたように、ボクセル環境は、一般的に記憶のために大量のメモリを必要とし、読み取りのための一時メモリ（ＲＡＭ）、たとえば、図１４のコンピュータ・システム１４００の中に示されるＲＡＭメモリ１４２０の中で圧縮解除されなければならず、または低性能の読み取り時間を有するデータ構造内に記憶されなければならない（たとえば、０（１）の読み取り時間を提供する単純配列に対して、０（ｌｏｇ（ｎ））の読み取り時間を提供する八分木）。
【００３３】
したがって、ボクセル環境の生成およびレンダリングは、図１４ではハード・ドライブ１４２５（および他のメモリ）、プロセッサ１４１５を有する前述のコンピュータ・システム１４００などの、大量のワーキング・メモリおよび処理能力が直ちに利用可能であり、カスタム・ソフトウェアのダウンロードおよびインストールが必要とされる、デスクトップ・コンピュータなどのコンピューティング環境に限定されている。論じられたように、たいていのソフトウェア・ツールのダウンロード要件は、さまざまなユーザの期待および懸念と衝突するものであり、ユーザは、潜在的にウイルスを含むソフトウェアのダウンロードを必要とするいかなるプログラムも回避し得る。
【００３４】
しかしながら、本発明は、代わりに、現在の標準ウェブ・ブラウザ内でボクセル環境を生成およびレンダリングすることを可能にし、いかなるカスタム・ソフトウェアのインストールも必要としない。ボクセル環境は、標準ウェブ・サーバからハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を介して配信され、ブラウザにおいてリアルタイムで対話式であり、好ましくは、プラグインまたは非標準ブラウザまたはサーバ特徴を必要としない。
【００３５】
本ボクセル環境は、好ましくは、ブラウザ内でＪａｖａＳｃｒｉｐｔプログラミング言語を使用して容易に読み取られ、すべての最近のブラウザにおける同じく標準的プログラミング言語ウェブ・グラフィックス・ライブラリ（ウェブＧＬ）を使用してレンダリングされるものなどの、高度に最適化されたファイル形式で記憶される。
【００３６】
したがって、そのように作成された環境は、図１４に示されるデスクトップ・コンピュータおよびラップトップ・コンピュータなどの従来のコンピューティング・プラットフォーム、ならびにタブレットおよび携帯電話などのプラットフォーム上のすべての最近のウェブ・ブラウザにおいてウェブ上でアクセス可能および対話式であり、これらを通して、これらの機能は、図１４における例示的なコンピュータ・システム１４００などの、より従来的なデスクトップ・パーソナル・システムまたはゲーム・システム上の代わりに、実行されてよい。
【００３７】
ここで図４の図面を参照すると、本発明のツールがダウンロードを容易にすることができる、参照番号４００によって全体的に指定される前述のウェブ・アクセシビリティの表現が示されている。論じられたように、標準ウェブ・サーバ４０４上の参照番号４０２によって全体的に指定されるボクセル・グリッドは、参照番号４０６によって全体的に指定される、ＨＴＴＰを介して、またはＨＴＴＰＳ（トランスポート層セキュリティを有するＨＴＴＰ）を介して、ウェブ・ブラウザ４０８に配信され、ウェブ・ブラウザ４０８では、参照番号４１０によって全体的に指定される現在視認可能で対話式のボクセル・グリッドは、たとえば、レンダリングする際などに、先におよび以下で前述の図１４に関連して説明および図示されるように、ウェブ・ブラウザ４０８（または図１４におけるコンピュータ・ディスプレイ１４０５上のグラフィカル・ユーザ・インタフェースすなわちブラウザ１４１０）内で、ユーザによって使用される準備が整っている。
【００３８】
３．ウェブ・ブラウザ内の高次元ボクセル環境
したがって、本発明における、複雑な高次元ボクセル環境を作成および記憶できることと、これらの環境を標準ウェブ通信プロトコル上で配信し、それらを最近のウェブ・ブラウザ内で標準プログラミング言語を使用してレンダリングできることを組み合わせて、本発明は、先に図４に関連して図示および説明され、さらに以下で説明されるプロトコルを用いることなどによって、ウェブ・ブラウザ４０８内で複雑な高次元ボクセル環境を提供することができる。
【００３９】
４．ウェブ・ベース・ボクセル・ワールド・ファイル形式
図示および説明されたボクセル使用の非常に多くの利点にもかかわらず、ウェブ・ブラウザ４０８などのウェブ・ブラウザに前述のボクセル環境を効率的に適時に配信しようとする際のいくつかの課題が提示されている。
【００４０】
各ボクセルが変数の層とともに含まれる図４に示されるものなどのボクセル・グリッドは、一般に非常に大きく、したがって、通常、環境のローディングの前の非常に長い待機および環境全体を記憶するためのワーキング・メモリの過度の使用を回避するために、サーバ４０４からブラウザ４０８に少しずつ配信されなければならない。これらのいわゆるボクセル環境の断片は、以下では「チャンク（chunk）」と呼ばれ、チャンク（またはその断片）の組み合わせは、本発明を容易にする。
【００４１】
ボクセル環境のレンダリングのために必要とされるいかなる処理も、ブラウザ４０８などのブラウザ内で実行される場合は（ブラウザ・ベースのプログラミング言語のサンドボックス性（sandboxed nature）により）時間がかかり、したがって、そのような処理は、対話式環境をリアルタイムで配信するために最小限にされなければならないことを理解されたい。
【００４２】
サーバ４０４などのサーバから多数のチャンクを要求することは、多数のＨＴＴＰ要求を必要とする。今度は、これによって、要求の作成およびディスパッチにおいて大量の通信オーバヘッドが生成される。したがって、この通信オーバヘッドは、ウェブ・ベース・ボクセル環境の性能を制限する。
【００４３】
これらのスループット制限を克服するために、本発明は、ボクセル環境ゾーン・ファイル形式（voxel environment zone file format）の開発を示す。
動作時、ボクセル環境ゾーン・ファイル形式は、前述のチャンクの多くを互いに結合して、より少数のゾーン・ファイルを生成する。ゾーン・ファイルの各々は、全体環境の一部を含む。例を挙げると、出願人は、本明細書において、ゾーン・ファイルにつき３２×３２のチャンクの標準２Ｄグリッドを使用する。これは例示的な作業標準であるが、当業者には理解されるように、グリッドのサイズおよび形状は、もちろん、任意のゾーン・ファイル・サイズに変化してよい。
【００４４】
各チャンクは、バイトのシーケンスとして記憶される。多数のチャンクは単一のゾーン・ファイル内に一緒に記憶され、このゾーン・ファイルは、単一のＨＴＴＰ４０６要求を用いてブラウザ４０８に配信され、したがって、通信オーバヘッドの制限要因をなくす（または、少なくとも著しく最小限にする）。
【００４５】
ゾーン・ファイル内のデータ・セグメントは、チャンクごとに、可読ボクセル・メッシュ（readable voxel mesh）と、チャンクのためのボクセル・データのグリッドと、問題のチャンクに関連する任意の追加のデータとを含む。各データ要素は、以下でより詳細に論じられる。
【００４６】
ここで図面の図５を参照すると、参照番号５００によって全体的に指定される、前述のボクセル・ゾーン・ファイルおよびその中の部分の表現が示されている。図５に示されるように、参照番号５０２によって全体的に指定される例示的なボクセル環境ゾーン・ファイルは、各々が参照番号５０４によって全体的に指定されるいくつかの個別のチャンクをその中に含む。論じられたように、チャンク５０４の各々は、メッシュと、ボクセル・データと、メタデータとをその中に含む。
【００４７】
論じられたように、および図５に示されるように、各チャンク５０４は、参照番号５０６によって全体的に指定される、ウェブＧＬを使用したウェブ・ブラウザ４０８上でのレンダリングの準備が整っている可読ボクセル・メッシュを含む。「メッシュ」という用語は、視認可能なオブジェクトが作成される三角形または四角形の集合を表すために使用される数値データのリストのセットを意味することを理解されたい。メッシュを構成するために必要とされる最小データは、頂点（３次元空間内の点）とインデックス（三角形、四角形、または他の形状を構成するために使用される頂点間の接続）のセットである。しかしながら、先に説明された、本明細書におけるファイル形式は、頂点につき複数の属性の包含を提供し、したがって、高次元ボクセル・グリッドのレンダリングを提供する。
【００４８】
また、論じられたように、および図５に示されるように、各チャンク５０４は、参照番号５０８によって全体的に指定されるボクセル・データを含む。このデータ５０８は、環境との対話、たとえば、前述のブラウザ４０８または衝突系（collision systems）および規則に基づくセルラー・オートマタ（cellular automata）（一般的には、たとえば、人工知能またはＡＩ挙動の計画のために、または液体および気体シミュレーション・システム内で使用される）などの、環境の構造についての情報に依存するシステム内のチャンク５０４の編集を容易にするために使用される。
【００４９】
最後に、論じられたように、および図５に示されるように、各チャンク５０４は、参照番号５１０によって全体的に指定される、非ボクセル・エンティティまたはメタデータの記憶のためにチャンクごとに必要とされる任意の追加のまたは余分なデータを含む。たとえば、アニメーションのキャラクタまたは粒子放射体の位置決めが、そのようなメタデータ５１０を構成する。
【００５０】
ここで図面の図６を参照すると、参照番号６００によって全体的に指定される、図４などにおいてウェブ・アクセシビリティを簡単にするための先に示された構造および方法論にまさる改良点である、前述のアクセシビリティの容易さの表現が示されている。
【００５１】
図６に示されるように、参照番号６０２および同じく先の５０２によって全体的に指定されるボクセル・ゾーン・ファイルは、いくつかのチャンクをその中に含み、たとえば、参照番号６０４によって全体的に指定される、例示的なゾーン・ファイル構造化における９つが、標準ウェブ・サーバ上にある。動作時、次いで、ボクセル・ゾーン・ファイル６０２が、参照番号６０６によって全体的に指定される、ＨＴＴＰを介して、またはＨＴＴＰＳを介して、ウェブ・ブラウザ６０８に配信され、ウェブ・ブラウザ６０８では、参照番号６１０によって全体的に指定される現在視認可能な高性能ボクセル環境が表示され、レンダリングなどにおいて使用される準備が整っている。
【００５２】
また、図５に関連して図示および説明されたように、参照番号６１２によって全体的に指定される（チャンク５０４からの）ボクセル・メッシュは、説明されたように、レンダリングのためにウェブＧＬに直接的に送られる。それぞれ参照番号６１４および６１６によって全体的に指定される、先に説明されたようにＪａｖａＳｃｒｉｐｔシステムが対話機能に使用するボクセル・データおよびメタデータも示されている。ゾーン・ファイル５０２／６０２内のチャンク５０４ごとの前述のボクセル・メッシュ６１２、ボクセル・データ６１４、およびメタデータ６１６は、以下でさらに説明されるように、レンダリングのために収集され、個別にまたは組み合わされて送られることを理解されたい。
【００５３】
ボクセル・データは、好ましくは、以下の形式を使用してアドレス指定可能なバイトのシーケンスとして記憶されることを理解されたい。
インデックス＝ｘ＋（チャンク深さ＊ｚ）＋（（チャンク幅＊チャンク幅）＊ｙ）
このようにして、チャンクは、任意の幅および深さとすることができ、ボクセル・データのインデックスを計算するときチャンクの高さは必要でないので、同じボクセル環境内で可変の高さとすることもできる。また、多次元データのインデックスは単に以下のように計算されるので、任意の数の次元が、この形式で記憶可能である。
【００５４】
次元０＝ｘ＋（モデル幅＊ｚ）＋（（モデル幅＊モデル幅）＊ｙ）
次元１＝次元０＋１
次元２＝次元０＋２
次元３＝次元０＋３
．．．
次元Ｎ＝次元０＋Ｎ
５．ウェブ・ベース・ボクセル・モデル・ファイル形式
図１に関連したものなどの、先に図示および説明された２値ボクセル・チャンク・ファイル形式に加えて、本明細書における本発明は、ボクセル・モデルのためのバイナリ・ファイル形式の開発も対象とし、モデルは、家、家具、武器、身体の一部（頭部、腕、手など）、ならびに他のタイプのようなオブジェクトである。
【００５５】
この形式は、ブラウザ内でウェブＧＬを使用してレンダリングされる準備の整った符号化されたメッシュと、モデルが構成されるボクセル・データとを含む。
ウェブＧＬは、先のボクセル・メッシュ５０６などの、レンダリングされるであろうメッシュのサイズに上限を課すので、このサイズを上回るモデルは、好ましくは、ファイル内で複数のメッシュに分解され、これらのメッシュ内の頂点のオフセットは、モデルの中心に対する値から構成される。
【００５６】
このようにして、モデルのためのメッシュのセットがレンダリングされると、モデルは単一のメッシュであるように見えるが、実際には、正確に位置合わせされた複数のメッシュから構成される。
【００５７】
ここで図面の図７を参照すると、参照番号７００によって全体的に指定される、いくつかの前述のボクセル・メッシュおよびボクセル・モデル・ファイルに形成されたデータの表現が示されている。図５および図６に関連して論じられ図示されたように、ボクセル・メッシュ５０６および６１２はそれぞれ、転送のためにモデル７００内で分解され、次いで、再構成されると、参照番号７０２によって全体的に指定される個別のメッシュ要素として見え、モデル７００のための複数のメッシュ７０２は、レンダリングのためにウェブＧＬに直接的に送られる。参照番号７０４によって全体的に指定される、モデル７００のためのデータ（ならびにメタデータ）を表すボクセル・データも、図７に示されており、ボクセル・データは、先に論じられたように、対話機能に用いられる。
【００５８】
動作時、バイナリ・モデル・ファイル７００のヘッダは、メッシュ７０２セグメントの数およびサイズのリスト、ならびにボクセル・データ７０４のオフセットを含む。ボクセル・データ７０４は高次元であり、ファイル・ヘッダは、各ボクセルに割り当てられたバイトの数を示す。モデリングのためのボクセル・データは、モデルの外接長方形に等しい次元のグリッド（モデルの幅、高さ、および深さ）内に記憶される。このデータは、上記で説明された、ボクセル・グリッド・データのための方式を使用してアドレス指定されたバイトのシーケンス内に記憶される。したがって、高次元ボクセル・データのモデルは、記憶およびレンダリングが可能である。
【００５９】
６．ＪａｖａＳｃｒｉｐｔウェブ・ベース・ボクセル・ワールド・ファイル・インタプリタ（JavaScript web-based voxel world file interpreter）
特に、ファイル６０２などのボクセル・チャンクのゾーン・ファイル８０２が、図６内のブラウザ６０８などのブラウザにダウンロードされると、ゾーン・ファイル６０２は、論じられたように、ＪａｖａＳｃｒｉｐｔプログラミング言語を使用して開かれ、読み取られることを必要とする。この工程は、好ましくは、３つのステップから構成される。
【００６０】
（１）ボクセル・メッシュ６１２などのメッシュ・バイト・シーケンスの、使用可能なウェブＧＬバッファへの変換
（２）ボクセル・データ６１４などの高次元ボクセル・データの、使用可能なＪａｖａＳｃｒｉｐｔ単一次元配列への抽出
（３）メタデータ６１６などのチャンク・メタデータの、使用可能なＪａｖａＳｃｒｉｐｔデータ構造への抽出
当業者によって理解されるように、ゾーン・ファイル・データはすでに、ターゲット・プログラミング言語で使用される準備の整った形式およびシーケンスで準備されているので、この工程は、定義によって高度に最適化される。
【００６１】
しかしながら、ウェブＧＬバッファは、複数の数字形式、つまり、低アルファベット・サイズのデータのためのシングル・バイト、より大きな自然数形式におけるデータのための整数、および実数精度を必要とするデータのための浮動小数点値のデータを必要とすることがある。バイト・シーケンスの、可変サイズの数値バッファへの再パッキング（repacking）のこの工程は、バイト・シーケンスが、ＪａｖａＳｃｒｉｐｔ  Ａｒｒａｙバッファによって用いられ得るものなどの、ｂｙｔｅ、ｉｎｔｅｇｅｒ、およびｆｌｏａｔに再フォーマットされることを必要する。
【００６２】
このパッキング活動（packing activity）が実行される間のスムーズな機能を可能にするブラウザ６０８のユーザ・インタフェースのために、出願人は、ウェブ・ワーカ、つまり、以下で図１４に関連して図示および説明される構成要素および機器などのデスクトップ・マシンおよびモバイル・デバイスで見られる最近の中央処理装置の多重処理能力を利用できるセカンダリ処理スレッドを使用してボクセル・データのこのセグメンテーションを実行するシステムを開発した。
【００６３】
ここで図面の図８を参照すると、参照番号８００によって全体的に指定される、上記で説明された、必要な形式へのボクセル・モデル・ファイル内のデータの変換のための簡素化された手順の表現が示されている。図示のように、いくつかのチャンクをその中に含む参照番号８０２によって全体的に指定される高次元ボクセル・グリッド（ボクセル・ゾーン・ファイル）は、参照番号８０４によって全体的に指定される標準ウェブ・サーバ上にある。動作時、次いで、ボクセル・グリッド８０２が、参照番号８０６によって全体的に指定される、ＨＴＴＰを介して、またはＨＴＴＰＳを介して、標準ウェブ・ブラウザ８０８に配信され、標準ウェブ・ブラウザ８０８では、参照番号８１０によって全体的に指定される現在視認可能な高性能ボクセル環境が、説明されたように、レンダリングまたは他の用途に使用可能にされる。また、先に図５〜図７に関連して図示および説明されたように、参照番号８１１によって全体的に指定されるチャンクなどのチャンクごとに、その環境から、それからデータを抽出し、抽出工程は、参照番号８１３によって全体的に指定される。
【００６４】
先におよび本明細書において図８に関して図示されたように、（チャンクからの）ボクセル・メッシュは、それによって生成され、参照番号８１２によって全体的に指定され、参照番号８１４によって全体的に指定されるボクセル・データおよび参照番号８１６によって全体的に指定されるボクセル・メタデータと同様に、抽出される。メッシュ・データ８１２は、次いで、参照番号８１５によって全体的に指定される形式メッシュ・バッファを通して、ウェブＧＬ動作において使用されるために、参照番号８１８によって全体的に指定されるＢｙｔｅ形式、参照番号８２０によって全体的に指定される整数（Ｉｎｔ）形式、および参照番号８２２によって全体的に指定される浮動小数点（Ｆｌｏａｔ）形式を含む前述の複数の数値形式に処理される。
【００６５】
図８をさらに参照すると、前述の環境８１０のそれぞれの個別のチャンク８１１の、それぞれのデータ形式への上記の処理のすべては、参照番号８０９によって全体的に指定される、ブラウザ８０８内の工程またはサブルーチンである、いわゆるセカンダリ・ウェブ・ワーカ処理スレッド内で行われる。参照番号８１３によって全体的に指定される、より高次またはより重要な工程またはルーチンであるプライマリ処理スレッドも示されている。プライマリ処理スレッドでは、説明されたように、現在Ｂｙｔｅ８１８構成要素、Ｉｎｔ８２０構成要素、およびＦｌｏａｔ８２２構成要素へと抽出されたメッシュ・データ８１２が、レンダリングのためにウェブＧＬに送られる。同じく説明されたように、ボクセル・データ８１４およびメタデータ８１６は、プライマリ処理スレッド８１３内で上記の対話機能に用いられることを理解されたい。
【００６６】
７．ウェブ・ベース・ボクセル・ワールド・メッシュ・ジェネレータ
論じられたように、前述のボクセル環境ゾーン・ファイル６０２およびボクセル・モデル・ファイル７０２を生成するために、レンダリング可能なメッシュ８１２にボクセル・データを変換するシステムを作成することが必要である。これらのメッシュ８１２は、高次元ボクセル・データのすべての態様をレンダリングするのに十分なデータを含まなければならず、ウェブＧＬプログラミング言語において頂点バッファとして使用するためにフォーマットされなければならないことを理解されたい。
【００６７】
複数のバイトのデータ（すなわち、整数値および浮動小数点値）によって表される頂点データは、図８に関連して図示および説明されるように、ウェブ・ブラウザ８０８のセカンダリ・ウェブ・ワーカ・スレッド８０９内での急速な解凍のための準備が整ったバイトのシーケンスとして生成されなければならない。
【００６８】
ボクセル・メッシュ８１２は、大量のメッシュ・フラグメント（頂点、インデックス、および高次元ボクセル・データ・バッファから構成される三角形または四角形）を含むことができるので、メッシュが高度に最適化されることが必要である。最適化されていないメッシュは、過度に大きなゾーン・ファイル６０２を生じさせ、ウェブＧＬを介したレンダリングのためにクライアント・グラフィックス・チップ上のバッファにロードされたとき、サーバ６０４からブラウザ６０８への転送速度の遅さと、頂点数の多さを招く。頂点数が多いことが、図１４に示されるグラフィックス・カードまたはチップ１４３０などのグラフィックス・カード上で大量のシステム・メモリが消費されることにつながり、それが、クライアント・マシン１４００上のメイン・メモリ１４２５と比較的制限されたグラフィックス・メモリ１４３５との間のデータの頻繁なページングをもたらす。これは、性能が著しく低下する原因となる。
【００６９】
また、頂点数が多いことは、グラフィックス・チップ１４３０上の大量の処理能力がフラグメント・シェーディング（メッシュ・フラグメントを表すピクセルのための適切な色を決定する工程）専用であることを招く。この結果、フレーム・レート（３Ｄシーン内の各フレームをレンダリングするために必要とされるミリ秒の数）の著しい低下を招き、ユーザの、遅く、反応の鈍い体験をもたらす。
【００７０】
最後に、このデータは、バイナリ・ゾーン・ファイル内での記憶およびそれからの読み取りのためにフォーマットされなければならない。
ユーザのためのスムーズで効率的な体験を提供するために、本発明によるメッシュ・ジェネレータは、３次元で、つまり、上から下、左から右、および前面から背面に各チャンクまたはモデルを最初に走査することによって動作する。各ボクセルの各面が調べられる。ボクセル面が、中実である別のボクセル面に隣接する（すなわち、ブラウザ内でレンダリングされるとき、透けて見えることはできない）場合、見る人に面が見えないので、両方のボクセル面はメッシュから除去される。
【００７１】
ここで図面の図９を参照すると、参照番号９００によって全体的に指定される、上記で説明されたボクセル面の合併手順の表現が示されている。図示のように、参照番号９０２および９０４、によって全体的に指定される、適切に配置されたボクセルのペアは、参照番号９０３によって全体的に指定される共通の面をそれらの間で共有する。この実施形態におけるボクセル９０２と９０４の両方は不透明であるので、次いで、それらの間の面９０３は、見る人によって見られることはできず、したがって、無関係である。前述のボクセル面の走査では、面９０３が除去され、結合されたボクセル９０６をもたらす。ボクセル９０６では、見えないボクセル面が除去されている。
【００７２】
さらに、隣接するボクセル面が、すべての次元で同一のデータを含むボクセルに関連付けられると考えられるとき、これらのボクセル面を表す三角形が、メッシュのより大きなセグメントを生じさせるために合併される。このセグメントは、より少ない頂点を含み、したがって、記憶するために必要とするメモリおよびレンダリングするために必要とされる処理能力は少なくなる。
【００７３】
高次元の最適化されたメッシュの、ブラウザ内のメッシュ・バッファの効率的なマルチコア抽出および配信と結合されたこの生成は、インストールまたは余分なダウンロードをサポートせずにリアルタイム配信を達成し、サーバからクライアントへのボクセル・メッシュの実行をレンダリングするために重要であり、それによって、本発明の前述の問題を克服することを満たす。
【００７４】
８．ＪａｖａＳｃｒｉｐｔウェブ・ベース・ボクセル・ワールド・メッシュ・ジェネレータ
ゾーン・ファイル６０２／８０２などのゾーン・ファイルが、ブラウザ６０８／８０８に配信され、解凍され、メッシュがグラフィックス・カードに配信されると、ユーザがこれらのメッシュをリアルタイムで修正することを可能にすることも可能である。この機能を提供するために、出願人は、ＪａｖａＳｃｒｉｐｔプログラミング言語で実施され、したがって、どの最近のウェブ・ブラウザでも実行可能な、上記で説明されたメッシュ生成システムの高度に最適化されたバージョンを開発した。メッシュがサーバ上で再生成されてブラウザに再ダウンロードされる場合に必要とされるであろうタイプのネットワーク遅延がないので、ブラウザ内でメッシュを再生成するこの工程は、メッシュのリアルタイム編集を可能にする。
【００７５】
このクライアント側メッシュ生成システムは、図１４においてディスプレイ１４０５上に示されるグラフィカル・ユーザ・インタフェースまたはブラウザ１４１０などのブラウザ８０８のユーザ・インタフェースの不均一な実行をもたらすであろうスレッド８１３などのプライマリ処理スレッドのスムーズな実行の中断を防止するために、セカンダリ・スレッド８０９などのブラウザ内の別のセカンダリ処理スレッドにおいて実行される。
【００７６】
さらに、メッシュ生成システムのこのバージョンにおけるすべてのセマンティクス（semantics）および可変表現は、ＪａｖａＳｃｒｉｐｔプログラミング言語のプログラミング・フレームワークに適合するように修正され、本発明を、非常に互換性を有するようにする。
【００７７】
ビルディング・ブロックのいくつかの上記の説明および図示が本発明のデータ構造および処理を構築する際に用いられる状態で、それらのツールからのいくつかの特定の構築物について次に説明する。
【００７８】
９．ウェブ・ベースのアニメーション化されたボクセル・キャラクタ・ビルダー
ボクセル環境および静的モデル（建物、家具など）だけではない、リアルタイムのブラウザ内編集を提供するために、出願人は、先に説明し、以下でも説明するさまざまなツールにさらに基づいて、アニメーションの骨組みに取り付けられることになる人間および生物の身体の一部分を表すボクセル・モデルを可能にするシステムも開発した。
【００７９】
次いで、この骨組み内の関節の回転、変形、およびスケールは、キャラクタおよび生物が歩いている、走っている、泳いでいる、しゃべっている、身振りをしている、または動きの他の任意の形という視覚効果をもたらすように、同期された動きで身体部分の視認可能なアニメーションを生じさせるために、各フレームの実行時に修正される。
【００８０】
ここで図面の図１０を参照すると、参照番号１０００によって全体的に指定される、上記で説明された骨組みまたは身体フレームワークの表現が示されている。示されている特定の骨組み１０００は、実際には、上から下に、頭部部分１０１０、上半身部分１０１２、右上部分１０１４、右手部分１０１６、左腕部分１０１８、左手部分１０２０、下半身部分１０２２、右脚部分１０２４、右足部分１０２６、左脚部分１０２８、および左足部分１０３０を用いるヒューマノイドである。論じられたように、骨組み１０００の部分のさまざまな動きを同期させることを通して、アニメーションは、非常に効果的に達成可能である。
【００８１】
もちろん、骨組み１０００の詳細の程度すなわち粒度は変化してよく、たとえば、いずれも所望の特定の骨組みおよび詳細の程度に応じて、指、つま先、顔立ち、髪、傷跡、毛穴、指輪、および他の身体装飾品、衣服などを含んでよいことを理解されたい。実際、このようにして骨組み１０００に取り付けられた身体パーツ・モデルは、高次元ボクセル・データから構成可能であり、したがって、複合材料および複雑なアクションから作製されたモデルは、多種多様な文脈で組み立てられ、アニメーション化可能である。先に説明されたボクセル・モデル・ファイル形式は、前述のアニメーション骨組み１０００に取り付けるためのボクセル身体パーツを記憶および転送するために使用される。
【００８２】
出願人は、詳細または特性をアニメーション骨組み１０００に取り付け、したがって、身体パーツのカタログからそれら自体のアニメーション化されたキャラクタおよび生物を構築するためにボクセル・モデルをユーザが選ぶことを可能にするグラフィカル・ユーザ・インタフェースも開発した。本発明の原理が好ましくはその上またはその中で実施されるグラフィカル・ユーザ・インタフェースならびに他の構成要素および機器が、図１４により詳細に示されている。もちろん、本明細書において論じられた詳細は例にすぎず、本発明の教示により、多種多様な文脈、感情、アクション、およびイベントが容易にモデル化可能であることを理解されたい。
【００８３】
１０．ウェブ・ベース・ボクセル・ワールド体積照明システム（Web-based voxel world volumetric lighting system）
もちろん、本発明の高次元ボクセル・モデルおよびチャンク内の次元のうちの１つは、光の次元、すなわちソフト・ライトを単純にシェーディングすることによってコンテキストを与えることができる鋭敏な（subtle）変数であることを理解されたい。
【００８４】
体積光生成システムは、好ましくは、別の変数または特性を構成するチャンク内のボクセルまたはモデルごとに垂直（太陽）光およびローカル（人工）光値を計算するために使用される。これらの値は、次いで、生成されたメッシュ内のボクセル面の頂点における照明データを生成するために使用される。この照明データは、他のメッシュおよびボクセル・データのすべてとともに、ウェブ・ブラウザ８０８内のウェブＧＬバッファに渡され、クライアント・グラフィックス・カード上で実行される頂点およびフラグメント・シェーディング・プログラム（fragment shading program）に利用可能にされる。
【００８５】
照明値を記憶するために使用されるメモリの量を最適化するために、本発明の出願人は、太陽およびローカル光値の数をボクセルごとに０から１５の間に制限する。次いで、これらの値は、好ましくは、バイトの半分を太陽の値に、バイトのもう半分をローカル光値に構成する各ボクセルに関連付けられたシングル・バイトの上位４ビットおよび下位４ビット内に記憶される。
【００８６】
日光の変化する度合いをシミュレートするために、本発明の１実施形態では、出願人は、これらの２つの値をウェブＧＬフラグメント・シェーダ（fragment shader）内で抽出し、第１の（日光）値にグローバル日光色を掛ける。この色は、シミュレートされた昼／夜周期に基づいた日光の色（たとえば、全日は白色、夜間は青色、など）を決定する、ＪａｖａＳｃｒｉｐｔプログラミング言語で記述されたカスタム・コードを使用して変化させられる。このグローバル日光色は、１次元テクスチャとして記憶され、好ましくは同じく前述のプライマリ処理スレッド８１３内で実行される別のウェブＧＬプログラムであるウェブＧＬフラグメント・シェーダ内でアクセス可能にされる。次いで、このテクスチャは、グローバル日光色を修正するために周期的に更新される。
【００８７】
第２の（ローカル）光値は、グローバル光レベルに関係なく、変更されないままである。この結果、照明値のランタイム計算を必要とすることのない、ボクセル・チャンクおよびモデルの効率的なシミュレーション上でのグローバル日光およびローカル人工照明がもたらされる。
【００８８】
１１．ウェブ・ベース・ボクセル・ワールド体積光色システム
基本的な太陽値およびローカル証明値だけでなく、出願人は、ローカル光のための色も高次元ボクセル・データ内に含める。これらのローカル光色値は、変化する色のローカル照明を生じさせるために、前述のウェブＧＬフラグメント・シェーダ内のローカル光値が掛けられる。
【００８９】
色値は一般的に、赤色成分、緑色成分、および青色（ＲＧＢ）成分からなるので、これらの色値は、サーバおよびクライアント上で大量のメモリを消費し、データ転送速度の著しい低下を引き起こす可能性を有する。したがって、本発明の好ましい１実施形態における出願人は、減少された未加工ＲＧＢ値を、２１６色の限られたパレットに導入し、これによって、元の色が近似されるが可能な光色値の総数が、シングル・バイトの表し得る範囲に減少される。したがって、光色値は、ボクセルにつき１バイトに記憶することができ、データ・サイズおよび転送速度は、リアルタイム対話式ボクセル環境を生じさせるのに十分に効率的なままであり、さまざまな色属性または特性が表される。
【００９０】
１２．ウェブ・ベース・ボクセル・ワールド・シェーディング・システム
ボクセル・メッシュの各フラグメント内の各ピクセルに適用するために適切な色値を決定する工程は、複雑である。複数の変数は、ボクセル・レンダリング・システムの一貫した機能を保証するために、ウェブＧＬプログラム内で計算され、適切に重みを付与されなければならない。
【００９１】
出願人は、この機能を提供するために、カスタム・ウェブＧＬプログラムを開発した。これらのプログラムは、基本ボクセル・メッシュ、それらのローカル照明およびグローバル照明、ローカル光色、および距離フォグ（distance fog）のレンダリングを提供する。距離フォグの排除とともに、複雑なボクセル・データのレンダリングを生成しようとする任意のボクセル・レンダリング環境は、この機能を提供することを必要とする。このプログラムの核心（距離フォグを除く）は、このように機能する。
【００９２】
ｖｅｃ４  ｆｉｎａｌ＿ｃｏｌｏｒ＝ｔｅｘｔｕｒｅ２Ｄ（ｄｉｆｆｕｓｅＭａｐ，ｔｅｘＣｏｏｒｄ０．ｘｙ＋ｍｏｄ（ｔｅｘＣｏｏｒｄ０，ｚｗ，ＴＩＬＥ＿ＳＩＺＥ））
ｆｌｏａｔのｌｉｇｈｔＣｏｏｒｄ＝ｌｉｇｈｔ．ｙ／２．０
ｆｉｎａｌ＿ｃｏｌｏｒ．ｘｙｚ＊＝ｔｅｘｔｕｒｅ２Ｄ（ｌｉｇｈｔｉｎｇＭａｐ，ｖｅｃ２（ｌｉｇｈｔ．ｘ，０．０））．ｘｙｚ＋（ｌｉｇｈｔＣｏｌｏｒ＊ｌｉｇｈｔＣｏｏｒｄ）
ｇｌ＿ＦｒａｇＣｏｌｏｒ＝ｆｉｎａｌ＿ｃｏｌｏｒ
このプログラムを実施する際に、考えるべきいくつかの要因がある。最初に、ｄｉｆｆｕｓｅＭａｐは、ボクセル面画像のテクスチャ・アトラス（texture atlas）である。第２に、照明マップは、１次元グローバル光色テクスチャである。第３に、ｔｅｘＣｏｏｒｄＯは、ｄｉｆｆｕｓｅＭａｐ内のボクセル面のテクスチャ座標と、ＴＩＬＥ＿ＳＩＺＥのうちの複数として測定されるメッシュ・フラグメントの幅および高さとを順に含む４成分ベクトルである。第４に、ＴＩＬＥ＿ＳＩＺＥは１／Ｎであり、ここで、アトラスは、Ｘ軸とＹ軸の両方上にＮボクセル面画像を含む矩形画像であり、第５に、光は、０から１の間に拡大縮小される太陽値とローカル光値とを含む２成分ベクトルである。最後に、ｌｉｇｈｔＣｏｌｏｒは、ローカル光の色のための解凍されたＲＧＢ値を含む３成分ベクトルである。
【００９３】
１３．ウェブ・ベース対話式ボクセル・ワールド埋め込みシステム
本発明は、最近の標準ウェブ・ブラウザ内でボクセル環境およびモデルをロードおよびレンダリングする能力を有するので、出願人は、これらの環境を、以下の形式でｉｆｒａｍｅを使用して任意のウェブ・ページに埋め込むことを可能にするシステムを開発した。
【００９４】
＜ｉｆｒａｍｅ  ｓｒｃ＝”［ＵＲＬ］”  ｆｒａｍｅＢｏｒｄｅｒ＝”０”＞＜／ｉｆｒａｍｅ＞
ここで、［ＵＲＬ］は、特定のボクセル環境を識別する一意のユニバーサル・リソース・ロケータ（ウェブ・アドレス）である。この結果、ＹｏｕＴｕｂｅまたはＶｉｍｅｏビデオのスタイルで埋め込まれたボクセル環境が生じ、さまざまな手段で、ユーザはこれと対話することができ、その内部で、ユーザは探索することができる。
【００９５】
１４．ウェブ・ベース・ボクセル・ワールド・ポータル・システム
本明細書において詳細に論じられたように、本発明は、環境を出るまたは重ね合わされたもしくは他のユーザ・インタフェース制御機構を使用する必要なしにユーザがあるボクセル環境から別のボクセル環境に移動することができるシステムの開発を対象とする。このシステムは、ユーザに探索体験を提供するボクセル・ワールドのネットワークを作成することを可能にする。
【００９６】
ポータル座標は、ゾーン・ファイル内のチャンク内にメタデータとして記憶される。ウェブ・ブラウザ内にロードされると、ポータルは、ポータル座標と交差する位置にユーザがキャラクタをナビゲートすることによって作動され、ゾーン・ファイルをターゲット環境のためにロードさせ、次いで、視認可能なシーンに挿入され、現在の環境を交換する。
【００９７】
ここで図面の図１１を参照すると、メッシュ１１０６とボクセル・データ１１０８とメタデータ１１１０とを含む参照番号１１００によって全体的に指定される、ブラウザに運ばれたさまざまなボクセル情報の例示的な使用がその中に示されている。メタデータ１１１０を特に参照すると、参照番号１１１２によって全体的に指定されるその一部分は、ナビゲーションユーザのための前述のポータル座標を記憶することを目的とする。
【００９８】
１５．ウェブ・ベース・ボクセル・ワールド分散イベント・システム
先に詳細に説明されたように、ボクセル環境は複雑であり、データのローディング、アンローディング、およびレンダリング、ならびにさまざまな対話および制御システムを制御する大量のデータおよびシステムから構成される。そのうえ、イベントは、ユーザによって作成されたボクセル構造とのユーザの対話によってボクセル環境内でトリガ可能であることを理解されたい。問題のイベントは、ブラウザ８０８などのクライアント・ブラウザの両方におけるシステム内での、およびサーバ８０４などの１つまたは複数のサーバ上での、活動を引き起こし得る。この複雑なフレームワーク内でのカスタム・イベントの作成および扱いを容易にするために、出願人は、ボクセル環境のための分散イベント・システムを開発した。
【００９９】
この改良では、イベントは、中央イベント・ディスパッチング・システム、およびイベントをリッスンするソフトウェア構成要素レジスタ自身によって扱われる。イベントは、「ローカル」または「分散」とマーク可能であり、当業者に理解されるように、分散イベントは、イベント・ストリーム（たとえば、ＨＴＭＬ５ウェブ・ソケットを使用して実施される）に沿ってクライアントとサーバとの間で、またはサーバとクライアントとの間で伝播される。
【０１００】
ここで図面の図１２を参照すると、参照番号１２００によって全体的に指定される例示的な分散イベント・システムがその中に示されており、参照番号１２０２によって全体的に指定されるいくつかのボクセル・グリッド制御システムが標準ウェブ・サーバ１２０４上に常駐する。ボクセル・グリッド制御システム１２０２Ａを含む前述のイベント、たとえば、ＭＭＯＲＧ内の別のキャラクタとの衝突が発生したときには、イベントがトリガされ、参照番号１２０６によって全体的に指定されるイベント・ストリームに沿って、参照番号１２１０Ａによって全体的に指定される特定の対応するイベントを作動させるために、参照番号１２１０によって全体的に指定されるロードされたボクセル・グリッド制御システムに伝播または渡される。当技術分野で理解されるように、変化するトリガを有する複数のそのようなイベントが、そのように伝播され、異なるイベントを反映するために実施されてよいことを理解されたい。
【０１０１】
この分散イベント・システムは、任意の数のカスタム・イベントの作成と、伝播されるイベントの数および性質または特定のイベントをリッスンする構成要素の数に対する全体的なシステムの複雑さを増加させずにそれらのイベントを分散環境およびローカル・ボクセル環境の周囲に伝播させることを可能にする。
【０１０２】
１６．ウェブ・ベース・ボクセル・モデル・カタログ・システム
ユーザがボクセル環境への挿入のためにボクセル・モデルを選択することを可能にするために、出願人は、ウェブ・ベース・ボクセル・モデル・カタログ・システムも開発した。これは、３次元ボクセル・モデル・メッシュを３次元ボクセル環境の上の２次元平面上に投影されることを可能にするＪａｖａｓｃｒｉｐｔおよびウェブＧＬベースのシステムである。
【０１０３】
このシステムは、ボクセル・モデルを表示し、他の場合は透明である、カメラの前に置かれたフラット方形メッシュ（flat rectangular mesh）を利用し、ボクセル環境を後ろで視認可能であることを可能にする。
【０１０４】
ここで図面の図１３を参照すると、カメラ１３１０がユーザ視点を提供する参照番号１３００によって全体的に指定されるモデルを作成するための例示的な技法がその中に示されている。参照番号１３３０によって全体的に指定される３Ｄ投影されたボクセル・モデルの透明な２Ｄ投影平面である参照番号１３２０によって全体的に指定されるフラット方形メッシュまたは平面も示されている。同じく図示されるように、メッシュ１３２０の後ろに、参照番号１３４０によって全体的に指定される３Ｄボクセル環境がある。したがって、カメラ１３１０は、所望のボクセル環境１３４０内で投影されたボクセル・モデル１３２０を見る。
【０１０５】
１７．Ｊａｖａｓｃｒｉｐｔウェブ・ベース・ボクセル・モデル・スケーリング・システム
いくつかのボクセル・モデルは、ボクセル環境に入るために、拡大縮小されることを必要とする。たとえば、標準ボクセルが（ユーザの観点から）１立法メートルであるボクセル環境では、認識可能な形状およびサイズをモデルに付与するのに十分な詳細を作成するために、より小さなボクセルから作成された家具を構築することが必要であることがある。
【０１０６】
本発明では、出願人は、変化するサイズのボクセルから構成されるモデルを提供するために、ボクセル環境への挿入中にボクセル・モデルを自動的に拡大縮小するシステムを作成した。
【０１０７】
チャンク・メタデータは、チャンク内のローカル座標に位置決めされ、固定数のフル・サイズ・ボクセル（モデル外接長方形にボクセル・スケールを掛けることによって計算される）を占有する、ボクセル・モデル固有識別子への参照を含む。モデル・スケールは、常に、１／２＾Ν（１を２で割ったものをＮの累乗に掛ける）として計算され、ここで、Ｎは整数値である。したがって、ボクセル・モデルは、フル・ボクセル・サイズ（１）に対して１／２、１／４、１／８、１／１６などのサイズの小型ボクセルから構成可能である。
【０１０８】
１８．ウェブＧＬベースのボクセル・モデル・レイ・ベースのレンダリング・システム
上記に加えて、出願人は、本発明において、複雑なモデルをモデルの外接長方形を表すメッシュ内でレンダリングすることを可能にするシステムも作成した。この手法は、ウェブＧＬプログラム内でランタイム時により多くの仕事を実行することを犠牲にして、モデルをレンダリングするために必要とされる頂点の数を最小限にすることを可能にする。
【０１０９】
この実施形態では、システムは、ボクセル・モデルを３次元テクスチャ（すなわち２次元テクスチャの配列）にロードし、ボクセル外接長方形のサイズのメッシュを作成し、ウェブＧＬフラグメント・シェーダを使用して、ボックスを通過してテクスチャが不透明なピクセルを含むモデルと交差する光線をシミュレートする。各ピクセルは単一ボクセルを表し、そのため、モデルはボックス内で拡大縮小可能である。
【０１１０】
１９．ウェブ・ベースのＭｉｎｅｃｒａｆｔワールド・インポート・システム
論じられたように、本発明の主な目標の１つは、コンピュータ・ゲーム体験のさまざまな態様、特にＭＭＯＲＧの態様を改善することである。その目的のために、本発明のさまざまなツールが、現在のそのようなゲームにおいて用いられてよい。たとえば、本発明のシステムは、Ｍｉｎｅｃｒａｆｔワールドを（ウェブ・インタフェースを介して）エンジンにインポートし、上述のゾーン・ファイル・システム（含まれたメッシュを有する）に変換し、その後、ユーザがブラウザ内でこれらのワールドを見て対話するウェブ・ブラウザに配信される。すべては、先に詳細に説明および図示されている。
【０１１１】
特に、このシステムは、Ｍｉｎｅｃｒａｆｔ．ＭＣＲファイルおよび．ＭＣＡファイル、ならびにｌｅｖｅｌ．ｄａｔファイルおよび設定ファイルを読み取り、このデータをカスタム・チャンク・データ構造にロードして、次いでゾーン・ファイル形式に出力する能力を有する。このようにして、Ｍｉｎｅｃｒａｆｔワールドは、本発明の進歩を用いて、最近の標準ウェブ・ブラウザにおいて視認可能であり、対話型にされる。
【０１１２】
２０．デュアル・モード・ウェブ・ベース・ボクセル・ワールド・カメラ・システム
ユーザがボクセル環境を編集し、終了時にこれらの環境が他のユーザにどのように見えるかも体験することを可能にするために、出願人は、本明細書において説明されるように、本発明のウェブ・ベース・ボクセル環境内で機能するデュアル・カメラ・システムも開発した。ユーザは、重力および衝突系が使用不能にされる「マーカ・モード（Maker Mode）」で動くことができ、ユーザは、モデルを選んで環境に追加するために複数のボクセルを同時に編集し、モデル・カタログにアクセスすることができ、重力および衝突系が起動され、プレイヤが一人称の非飛行モードで環境を動き回る「プレーヤ・モード」でも動くことができる。ユーザは、キーボード・ボタンを押すだけでマーカ・モード・カメラとプレーヤ・モード・カメラを切り換えることができる。
【０１１３】
２１．ウェブ・ベース・ボクセル・ワールド天空システム
さらに、出願人は、ゲーム世界などのウェブ・ベース・ボクセル環境において昼／夜周期および天候影響を提供するために、複雑な天空システムを開発した。
【０１１４】
１実施形態では、ドーム形メッシュがボクセル環境の上に置かれる。次いで、ウェブＧＬ頂点およびフラグメント・シェーダは、大気変数のセットに基づいて、このメッシュを着色する。天空および太陽の基本色は、大気を通過する光をシミュレートすることによって計算される。フラグメント・シェーダ・プログラムにおいて実行されるパーリン・ノイズ（perlin noise）機能は、クラウドをシミュレートするために使用される。遠くの山は、ドームの下部からの距離を計算し、２Ｄパーリン・ノイズ機能を使用して、起伏する山の形状を作成することによって、ドームに追加される。夜間の星のテクスチャは、立方体地図としてドーム状に投影され、星テクスチャの透明さは、星を夜間に見えるようにし、日中は見えなくするために、ブラウザ内で実行されるＪａｖａｓｃｒｉｐｔプログラムによって決定される。ドームは、（任意の色が使用可能であるが）赤色の日の入りおよび黄色の夜明けを提供するために、日の出および日の入りのときに太陽の周りで色がつけられる。
【０１１５】
ここで図面の図１４を参照すると、本明細書において詳細に説明される本発明のさまざまな態様が実施および図示され得る、参照番号１４００によって全体的に指定される例示的なコンピュータ・システムがその中に示されている。もちろん、図示のシステムがさまざまな例において異なってよい、たとえば、ハードコア・ゲーマは、ゲームプレーを案内する高度な手および足制御システムなどの追加の機器と、視覚化強化のためのヘッド・マウント機器とを有することをよく理解されたい。
【０１１６】
コンピュータ・システム１４００は、さまざまなグラフィカル・ユーザ・インタフェースまたはブラウザが表示および動作される、参照番号１４１０によって全体的に指定されるディスプレイ１０５を含む。システム１４００は、プロセッサ１４１５と、参照番号１４２０によって全体的に指定されるＲＡＭまたは短期メモリと、参照番号１４２５によって全体的に指定されるハード・ディスクまたは長期メモリとを含む。論じられたように、グラフィックス・ハードウェアまたはチップ１４３０は、参照番号１４３５によって全体的に指定されるそれ自体の内部メモリを有してよい。有線によって接続された外部メモリ１４０と、ワイヤレスで接続された外部メモリ１４５も示されている。
【０１１７】
電子メールのためであろうと、ＭＭＯＲＧをするためであろうと、接続性が重要であるので、システム１４００は、参照番号１４５０によって全体的に指定されるインターネットを通して、外部ノード１４５５または交換局１４６０に接続して、世界と接続する。データおよびコマンド入力のためのキーボード１６５およびマウス１７０も示されている。
【０１１８】
先の説明は、本発明を実施するための好ましい実施形態のものであり、本発明の範囲は、必ずしもこれらの記述によって制限されない。本明細書において記載されるすべての論文、参考文献、および引用は、その全体が参照によって明確に組み込まれることを理解されたい。本発明の範囲は、以下の特許請求の範囲によって定義される。
【図１】
2018514885.tif 000003
【図２】
2018514885.tif 000004
【図３】
2018514885.tif 000005
【図４】
2018514885.tif 000006
【図５】
2018514885.tif 000007
【図６】
2018514885.tif 000008
【図７】
2018514885.tif 000009
【図８】
2018514885.tif 000010
【図９】
2018514885.tif 000011
【図１０】
2018514885.tif 000012
【図１１】
2018514885.tif 000013
【図１２】
2018514885.tif 000014
【図１３】
2018514885.tif 000015
【図１４】
2018514885.tif 000016
【国際調査報告】
2018514885.tif 000017
2018514885.tif 000018
2018514885.tif 000019
2018514885.tif 000020
2018514885.tif 000021
2018514885.tif 000022