Canvas
解像度もアスペクト比もばらばらな入力を、出力解像度のキャンバスに載せ直す整形ノードです。アスペクト政策で基本の収め方を決め、その上に位置・スケール・3軸回転を重ねます。実装はUV変換1パス(逆ホモグラフィ)なので、カメラもレイヤーも使いません。
アスペクト政策(ドロップダウン)
- Stretch — 出力いっぱいに引き伸ばす(アスペクト比は崩れる)
- Fit(初期値) — 全体を収める。長辺を合わせるので短辺側に余白が出ます
- Fill — 全体を覆う。短辺を合わせるので長辺側がはみ出して切り取られます
パラメータ
- Position X / Position Y — 出力の正規化座標でのオフセット。初期値0
- Scale X / Scale Y — アスペクト政策で決まった倍率にさらに掛かります。初期値1。負値で反転します
- Rotation X / Rotation Y / Rotation Z — 度。Zが面内回転、X・Yは奥行き方向の傾きで透視投影がかかります。初期値0
出力解像度はグローバル(マスター)解像度に追従します。 入力の解像度ではありません。Master Outputの解像度を変えると出力RTも作り直されます。
変換後のUVが0〜1の外に出た画素は**透明(黒+α0)**になります。エッジオン付近で退化した場合も同様に透明です。
Scaleがほぼゼロのときはゼロ除算を避けるため±1e-4でガードされます(符号は維持されるので負スケールの反転は活きます)。
入力が未接続でも出力RT自体は生き続けます(黒で初期化された状態)。
出力はHDR対応です。
動画
入力ポート
| Port ID | 型 |
|---|---|
Render Texture | RenderTexture |
Position X | float |
Position Y | float |
Scale X | float |
Scale Y | float |
Rotation X | float |
Rotation Y | float |
Rotation Z | float |
出力ポート
| Port ID | 型 |
|---|---|
Render Texture | RenderTexture |
スクリプトから設定可能なメンバー
| パス | 型 |
|---|---|
posXInput | float |
posYInput | float |
scaleXInput | float |
scaleYInput | float |
rotXInput | float |
rotYInput | float |
rotZInput | float |
Synapse Apps(スクリプティング)
await synapse.modules.create({ type: "Canvas" })