This is the documentation for Enlighten.

10.2. モバイルでの GeoViewer

シーンの準備

モバイル プラットフォームで GeoViewer を使用する場合、メッシュ変換ステージで適切なテクスチャ圧縮形式、および (ARM/NEON 用に) 別のプリコンピュート データ形式を生成しておく必要があります。

GeoRadiosity を使用して追加のモバイル プラットフォーム テクスチャとプリコンピュート データを生成するには、シーンをロードする際に Include mobile targets がチェックされていることを確認してください。

また、プリコンピュートを実施する際に以下が必要です。

これは、High Level Build System (HLBS) のメッシュ変換とプリコンピュート生成ステージで「/p:IncludeMobileTargets=true」を渡すことと同じです。

Windows PC で GeoRadiosity または HLBS を使用してメッシュ変換を実行する場合、Android で GeoViewer を使用するためにシーン テクスチャが ETC 形式に圧縮されます。OS X で HLBS を使用してメッシュ変換を実施する場合、iOS デバイスで使用するためにテクスチャが Imagination Technologies PVRTC 形式に圧縮されます。

シーンのロード

プリコンピュートされたシーンをロードする前に、モバイル デバイスに GeoViewer アプリをインストールする必要があります。インストールのプロセスでアプリ固有のディレクトリ構造が作成され、そこにシーン データを手動でコピーする必要があります。iOS では、これはアプリの Documents ディレクトリであり、Android での宛先のパスは /mnt/sdcard/Android/data/com.geomerics.enlighten.GeoViewer/files です。以下の画像は、GeoViewer をインストールし、Arches シーン データが正しい場所にコピーされた場合の、Android でのフォルダー構造のスクリーンショットです。

GeoViewer のスキームを編集することにより、アプリを Xcode から起動する際に、iOS で GeoViewer にコマンド ライン オプションを渡すことができます。または、アプリの Documents ディレクトリで、シーン データとともに cmd_args.txt というテキスト ファイルにコマンド ラインを追加して提供することができます。これを行うと、Xcode が提供する引数はすべて無視されることに注意してください。Android で GeoViewer に対してコマンド ライン引数を指定するには、デバイスの /mnt/sdcard/Android/data/com.geomerics.enlighten.GeoViewer/files/cmd_args.txt を編集します。

シーン内の移動

GeoViewer には GeoMobileDemo のような目に見える仮想コントロール スティックはありませんが、タッチ スクリーンを使ってシーン内を移動することができます。横向きの場合、画面の左下をドラッグして、カメラを前、後ろ、左、右に動かせます。また、画面の右下をドラッグするとカメラを回転できます。

現在の制限

  • 現在、Android と iOS での GeoViewer は、Enlighten ランタイムの出力のみを使用して既定のシーンをレンダリングします。ライト構成ファイルで定義されたソースのライトはレンダリングしません。
  • 半精度浮動小数テクスチャは、どの Android デバイスでもサポートされていないため、GeoViewer は Android では Enlighten LRB イラディアンス出力形式を使用します。ただし、これにより一部の Android デバイスで、間接ライティングにバンディング アーティファクトが発生する可能性があります。
  • GeoViewer は、OpenGL ES デバイスで GL_OES_depth24 OpenGL ES 2.0 拡張機能を必要とします。