メインコンテンツへスキップ
SDK 2.0.0。列挙: パラメータ列挙。

resource_path は resource.fbd を指す

デスクトップエンジンはリソースパックを fopen で開きます。ファイルパスを渡し、ディレクトリは渡さないでください。
resource.fbd をアプリと一緒に配布し、起動時に絶対パスへ解決します。

1 つのエンジン、シリアルな ProcessImage

Create はセッションにつきエンジンを 1 つ返します。プロセス全体のシングルトンではありません。ImageFrame とエンジンはスレッドセーフではありません。ProcessImage と状態を変える呼び出しは同一スレッドへ直列化してください。
  • GL コンテキストがカレントなスレッドでエンジンを作成して処理します。入出力テクスチャはそのコンテキストに属している必要があります。CPU フレームに呼び出し側の GL コンテキストは不要です。設定にコンテキスト用のフラグはありません。
カメラセッション終了後に shared_ptr を解放します。毎フレームのエンジン再作成はコストが高いです(認証 + 初期化)。

フレームに FrameType を設定

ProcessImage の前に frame->type を設定します。

大きな静止画(プレビューと書き出し)

高解像度の静止画では、スライダーのたびに原寸を ProcessImage に渡さないでください。縮小したあとに原画を捨てないでください。 写真を開いたら完全なバッファを残し、プレビュー用フレームを 1 枚作ります(長辺は約 1280–1440)。パラメータ調整はプレビュー(FrameType::Image)、書き出しは同じ setter で全サイズをもう一度処理します。出力サイズは入力と同じです。カメラプレビューはキャプチャ解像度 + FrameType::Video のままです。

強度

リアルタイムでは低めから始めます。リシェイプは [-1.0, 1.0]、その他の強度は [0.0, 1.0] です。
SetBeautySkinOnly(true) をオンにすると、スムージング / 美白は肌にのみ適用されます。

フィルターとステッカー

.fbd のパスまたはバイトを渡します。次の ProcessImage のあとで有効になります。毎フレームのフィルター / ステッカー切り替えは避けてください。

GetStats で監視

avg_process_time_ms はフレーム予算より低くする必要があります(30 fps で約 33 ms)。プレビューは 720p を推奨します。静止画書き出しは FrameType::Image を使います。

OpenGL コンテキスト

  • GL コンテキストがカレントなスレッドでエンジンを作成して処理します。入出力テクスチャはそのコンテキストに属している必要があります。CPU フレームに呼び出し側の GL コンテキストは不要です。設定にコンテキスト用のフラグはありません。
facebetter.dll を .exe の隣に置きます(または PATH に追加)。リンク時は facebetter.lib を使います。

アイドル時は一時停止

ウィンドウ最小化またはカメラ停止時は ProcessImage をスキップします。セッション終了時は engine.reset() できます。操作を止める UI スレッドでは処理しないでください。

認証

オフラインまたは制限されたネットワークでは license_token を優先します。それ以外は app_id + app_key のオンライン v2 です。本番キーを公開リポジトリに書かないでください。認証とライセンス を参照してください。