シェーダー
一覧
| シェーダー | 役割 |
|---|---|
| PhantomLink/Viewer/Standard | 16枚のテクスチャから立体像を描く。Full版の再生用 |
| PhantomLink/Viewer/Proto | 8枚のテクスチャから描く軽量版。Prototype版の再生用 |
| PhantomLink/Viewer/Packed | まとめ画像1枚から描く。配信の受信用 |
| PhantomLink/Capture/Depth | 撮影時にアバターへ差し替えて、表面までの距離を書き出す |
| PhantomLink/Packer/Screen | 撮影結果12枚を画面いっぱいの1枚にまとめる。配信の送信用 |
| PhantomLink/Packer/CRT | 同じまとめ処理をCustomRenderTextureで行う版 |
| PhantomLink/Utility/Unlit Gamma | 色空間の変換。配信で色がずれたときの補正用 |
Viewerの主な設定
Viewer系のマテリアルで調整できる項目です。
| 項目 | 既定値 | 意味 |
|---|---|---|
| Volume Scale | 1, 1, 1 | 撮影範囲の大きさ。リグ側と同じ値にします |
| Empty Threshold | 0.99 | この値より遠い深度は「何もない」とみなします |
| Step Size | 0.008 | 視線を進める1歩の幅。小さいほど精密で重くなります |
| Max Steps | 192 | 1ピクセルあたりの歩数の上限 |
| Blend Sharpness | 8 | 色の切り替わりの鋭さ。大きいほど一番近いカメラの色が勝ちます |
| Y Camera Blend Angle | 4 | 真上・真下のカメラが働く角度の範囲 |
| Diagonal Blend Angle | 22 | 斜めのカメラが働く角度の範囲 |
| Tint | 白 | 全体にかける色 |
| Brightness | 1 | 明るさの倍率 |
Packed版にはこのほかに Flip Y があり、上下が反転して届いた配信映像を直せます。
まとめ画像の並び
Packerが作る画像は、4列3段の決まった並びです。上の段から順に深度、正面の色、斜めの色が並びます。
| 1列目 | 2列目 | 3列目 | 4列目 |
|---|---|---|---|
| 深度 +Z | 深度 -Z | 深度 +X | 深度 -X |
| 色 +Z | 色 -Z | 色 +X | 色 -X |
| 色 +Z+X | 色 +Z-X | 色 -Z+X | 色 -Z-X |
段の高さは1対2対2です。列の幅は撮影範囲の縦横比に合わせて変わり、Packed Viewerが Volume Scale から同じ計算で並びを割り出して読み取ります。送信側と受信側で Volume Scale をそろえる必要があるのはこのためです。
なお、まとめ画像に入るのは水平方向の12枚だけです。上下カメラの2方向は配信では使われません。
しくみに興味がある人へ
描画の中身はソースコードのコメントに詳しく書いてあります。カメラの配置の約束事や座標変換の式は Shader/PLViewerCommon.cginc に、まとめ画像の並びの計算は Shader/PLAtlas.cginc にまとまっています。