メインコンテンツまでスキップ
バージョン: 2.0.0-preview

レンダリングプロセス

要素

タイムラインに配置されるもので、 上の要素から順番に評価されます。

要素は評価されると、描画オブジェクトを作成したり、 その描画オブジェクトを変換したりします。

作成された描画オブジェクトは、アニメーションを適用したあと、描画レイヤーに渡されます。

描画オブジェクト

楕円形、矩形、角丸四角形、動画などがあります。

プロパティには

  • トランスフォーム (移動、回転、スケールなど)
  • ペン
  • 塗りつぶし
  • エフェクト があります。

描画シーン / 描画レイヤー

時間軸を意識しないシーン、レイヤーです。 描画レイヤーには複数の描画オブジェクトを持つことができ、 描画シーンも同様に複数の描画レイヤーを持つことができます。

要素から描画オブジェクトを受け取ると描画レイヤーは 以下のような描画ノードを作成します。

描画レイヤーは描画オブジェクトの変更を追跡し、 変更された場合は再度、描画ノードを作成します。

1. 描画ノード
2. └ トランスフォームノード
3.   └ エフェクトノード
4.     └ 図形ノード

この描画ノードは1番から順番に実行されます。

この構造は描画内容をキャッシュする上で非常に便利です。 例えば、重いエフェクトを適用したオブジェクトに 画面外から登場するようなアニメーションをつけると、 毎フレームで重いエフェクトがかけられることになりますが、

エフェクトが適用されたあとのオブジェクトをキャッシュすると、 エフェクトの適用は数回で済みます。

1. 描画ノード
2. └ トランスフォームノード
3.   └ キャッシュした画像を描画する

解像度非依存のレンダリング

Beutl はシーンを論理座標で評価し、パイプラインの最後でのみデバイスピクセルへスケーリングします。そのためエディタは、プレビューを低い 作業密度(1/2・1/4・プレビューに合わせる)でレンダリングして再生やスクラブを高速化できます。その際、ベクター図形・テキスト・多くのエフェクトは単純に拡大されるのではなく、その密度で再ラスタライズされるため、縮小しても鮮明さが保たれます。エンコード時は常にプロジェクト解像度(スケール 1.0)でレンダリングされます。

プレビュー密度は プレビュー設定 タブから選びます。カスタムシェーダーには作業密度が uniform を通じて渡されます。解像度非依存に保つ方法は GLSLスクリプトSKSLスクリプト を参照してください。