6

unity3d では、プラグインからバイト配列としてカメラ (カラー カメラ デバイス) から画像を取得し、画面にリアルタイムで画像を表示したいと考えています。

Texture2D.SetPixels32テクスチャの作成に使用すると、 fps が劇的に減少します (80 から 10 に)。

//First convert byte[] to color[]
  colorr = GetColor(imageBuffer);

  imageColor.SetPixels32(colorr);
  imageColor.Apply();   // fps reduced here

GPU のシェーダーでこれを行う必要があると思います。

では、これをより速く行うための解決策は何ですか? 回答がシェーダーを使用している場合は、サンプルを提供できます。

どうも。

4

2 に答える 2

5

私はopenGLを使用してそれを行いました。Unity 用のプラグインを作成し、Unity から Texture2D NativeID を取得し、それをプラグインに送信してから、openGL を使用してテクスチャにバイトを設定するだけです。それは驚くべきものだった !FPSが10から50に増加!!! また、opengl 関数を使用するには、「-force-opengl」を使用して OpenGL モードでゲームを実行する必要があることも知っておく必要があります。

于 2012-12-25T07:37:24.473 に答える
0

これはあなたにとって完璧に機能するように思えます... http://docs.unity3d.com/Documentation/ScriptReference/WebCamTexture.html

于 2012-11-15T20:42:13.290 に答える