ArSceneView

パブリック クラス ArSceneView

ARCore と統合されてシーンをレンダリングする SurfaceView。

継承される定数

継承されるフィールド

パブリック コンストラクタ

ArSceneViewコンテキスト コンテキスト)
ArSceneView オブジェクトを作成し、Android コンテキストにバインドします。
ArSceneViewContext コンテキスト、AttributeSet attrs)
ArSceneView オブジェクトを作成し、Android コンテキストにバインドします。

パブリック メソッド

フレーム
getArFrame()
最新の ARCore Frame がある場合、そのフレームを返します。
整数
getCameraStreamRenderPriority()
カメラ ストリームをレンダリングする順序を制御するレンダリング優先度を取得します。
PlaneRenderer
getPlaneRenderer()
コントロール プレーンの可視化に使用される PlaneRenderer を返します。
セッション
getSession()
このビューで使用される ARCore Session を返します。
ブール値
isEnvironmentalHdrLightingAvailable()
ARCore カメラが Config.LightEstimationMode.ENVIRONMENTAL_HDR で構成されている場合、true を返します。
ブール値
isLightDirectionUpdateEnabled()
Environmental HDR ライティングの推定値に基づいて、フレームごとに日光が当たっているかどうかを確認します。
ブール値
void
pause()
レンダリング スレッドと ARCore セッションを一時停止します。
CompletableFuture<Void>
pauseAsyncExecutor エグゼキュータ)
レンダリング スレッドと ARCore セッションを一時停止するための非ブロック呼び出し。
void
Resume()
レンダリング スレッドと ARCore セッションを再開します。
CompletableFuture<Void>
ResumeAsyncExecutor エグゼキュータ)
レンダリング スレッドと ARCore セッションをバックグラウンドで再開する非ブロック呼び出し

これは onResume() から呼び出す必要があります。

void
setCameraStreamRenderPriority(int 優先度)
レンダリングの優先度を設定して、カメラ ストリームをレンダリングする順序を制御します。
void
setLightDirectionUpdateEnabled(ブール値 isLightDirectionUpdateEnabled)
環境 HDR ライティングから発生する日光の向きをフレームごとに更新するかどうかを設定します。
void
setLightEstimationEnabled(ブール値の有効化)
カメラフィードに基づいて照明の推定を有効にします。
void
setupSessionSession セッション)
AR セッションでビューを設定します。

継承されるメソッド

パブリック コンストラクタ

public ArSceneView コンテキスト コンテキスト)

ArSceneView オブジェクトを作成し、Android コンテキストにバインドします。

レンダリングを正しく機能させるには、setupSession(Session) を呼び出す必要があります。

パラメータ
context 使用する Android コンテキスト

public ArSceneView (Contextコンテキスト、AttributeSet attrs)

ArSceneView オブジェクトを作成し、Android コンテキストにバインドします。

レンダリングを正しく機能させるには、setupSession(Session) を呼び出す必要があります。

パラメータ
context 使用する Android コンテキスト
attrs 関連付ける Android AttributeSet
関連項目

パブリック メソッド

public Frame getArFrame ()

最新の ARCore Frame がある場合、そのフレームを返します。フレームは各描画フレームの開始時に更新されます。このメソッドの呼び出し元は、次のフレーム以降の ARCore フレームの使用が無効になるため、戻り値への参照を保持しないでください。

public int getCameraStreamRenderPriority ()

カメラ ストリームをレンダリングする順序を制御するレンダリング優先度を取得します。優先度は、0(最初にレンダリングされる)から 7(最後にレンダリングされる)の範囲です。

デフォルト値は 7 で、カメラ ストリームを最後にレンダリングします。オーバードローを防ぐため、これはパフォーマンスに最適です。ただし、マテリアルをオクルーダーとして使用する場合(たとえば、拡張人物のサンプル内)、これは変更する必要があります。それ以外の場合は、オクルーダーがカメラ ストリームを占有し、黒がレンダリングされます。

public PlaneRenderer getPlaneRenderer ()

コントロール プレーンの可視化に使用される PlaneRenderer を返します。

public Session getSession ()

このビューで使用される ARCore Session を返します。

public boolean isEnvironmentalHdrLightingAvailable ()

ARCore カメラが Config.LightEstimationMode.ENVIRONMENTAL_HDR で構成されている場合、true を返します。環境 HDR ライティング モードを有効にすると、結果の光推定がシーンシーンに適用されます。

戻り値
  • ARCore HDR ライティング推定が有効になっているため、シーンで HDR ライティングが有効になっている場合は true。

public boolean isLightDirectionUpdateEnabled ()

Environmental HDR ライティングの推定値に基づいて、フレームごとに日光が当たっているかどうかを確認します。

戻り値
  • 太陽光の方向がフレームごとに更新される場合は true、それ以外の場合は false。

public boolean isLightEstimationEnabled ()

戻り値
  • 光の推定が有効な場合、true を返します。

public void pause ()

レンダリング スレッドと ARCore セッションを一時停止します。

これは onPause() から呼び出す必要があります。

public CompletableFuture<Void> pauseAsync エグゼキュータ エグゼキュータ)

レンダリング スレッドと ARCore セッションを一時停止するための非ブロック呼び出し。

これは onPause() から呼び出す必要があります。

別の一時停止または再開の進行中に pauseAsync が呼び出されると、一時停止はキューに入れられ、現在のオペレーションの完了後に発生します。

パラメータ
エグゼキュータ
戻り値
  • 一時停止時にメインスレッドで CompletableFuture が完了しました。再開ができない場合、例外は今後完了する予定です。

public void 再開 ()

レンダリング スレッドと ARCore セッションを再開します。

これは onResume() から呼び出す必要があります。

スロー値
CameraNotAvailableException(カメラ未使用例外) カメラを起動できない場合

public CompletableFuture<Void> ResumeAsync エグゼキュータ エグゼキュータ)

レンダリング スレッドと ARCore セッションをバックグラウンドで再開する非ブロック呼び出し

これは onResume() から呼び出す必要があります。

別の一時停止または再開の進行中に呼び出された場合、再開はキューに入れられ、現在のオペレーションの完了後に実行されます。

パラメータ
エグゼキュータ
戻り値
  • 再開が完了したら、メインスレッドで CompletableFuture が完了する。履歴書を作成できない場合、Future は例外的に完了します。

public void setCameraStreamRenderPriority (int 優先度)

レンダリングの優先度を設定して、カメラ ストリームをレンダリングする順序を制御します。優先度は、0(最初にレンダリングされる)から 7(最後にレンダリングされる)の範囲です。

デフォルト値は 7 で、カメラ ストリームを最後にレンダリングします。オーバードローを防ぐため、これはパフォーマンスに最適です。ただし、マテリアルをオクルーダーとして使用する場合(たとえば、拡張人物のサンプル内)、これは変更する必要があります。それ以外の場合は、オクルーダーがカメラ ストリームを占有し、黒がレンダリングされます。

パラメータ
priority

public void setLightDirectionUpdateEnabled (ブール値 isLightDirectionUpdateEnabled)

環境 HDR ライティングから発生する日光の向きをフレームごとに更新するかどうかを設定します。false の場合、光の方向は 1 回更新され、変化しなくなります。

ユーザーの注意をそらしたり、必要とされない場合、シャドウ ディレクションの更新をオフにするために使用されることがあります。

デフォルトの状態は true で、日光の方向はフレームごとに更新されます。

パラメータ
isLightDirectionUpdateEnabled

public void setLightEstimationEnabled (ブール値の有効化)

カメラフィードに基づいて照明の推定を有効にします。太陽の間接光の色と強度は、ARCore の光推定によって提供される値によって変調されます。シーン内の Lit オブジェクトが影響を受けます。

パラメータ
有効 Light Estimator を有効にするには true に設定し、デフォルトの推定を使用する場合は false に設定します。ピクセル推定強度は 1.0 で、色補正値は白(1.0、1.0、1.0)です。

public void setupSession セッション セッション)

AR セッションでビューを設定します。このメソッドを 1 回呼び出す必要があります。これにより、ARCore セッションが提供されます。セッションは、レンダリングが行われるために必要です。

セッションは、LATEST_CAMERA_IMAGE の更新モードで構成する必要があります。この構成がないと ARCore セッションの更新によって UI スレッドがブロックされ、UI エクスペリエンスが低下する可能性があります。

パラメータ
session このビューに使用する ARCore セッション