Skip to content

シェーダー

一覧

シェーダー役割
PhantomLink/Viewer/Standard16枚のテクスチャから立体像を描く。Full版の再生用
PhantomLink/Viewer/Proto8枚のテクスチャから描く軽量版。Prototype版の再生用
PhantomLink/Viewer/Packedまとめ画像1枚から描く。配信の受信用
PhantomLink/Capture/Depth撮影時にアバターへ差し替えて、表面までの距離を書き出す
PhantomLink/Packer/Screen撮影結果12枚を画面いっぱいの1枚にまとめる。配信の送信用
PhantomLink/Packer/CRT同じまとめ処理をCustomRenderTextureで行う版
PhantomLink/Utility/Unlit Gamma色空間の変換。配信で色がずれたときの補正用

Viewerの主な設定

Viewer系のマテリアルで調整できる項目です。

項目既定値意味
Volume Scale1, 1, 1撮影範囲の大きさ。リグ側と同じ値にします
Empty Threshold0.99この値より遠い深度は「何もない」とみなします
Step Size0.008視線を進める1歩の幅。小さいほど精密で重くなります
Max Steps1921ピクセルあたりの歩数の上限
Blend Sharpness8色の切り替わりの鋭さ。大きいほど一番近いカメラの色が勝ちます
Y Camera Blend Angle4真上・真下のカメラが働く角度の範囲
Diagonal Blend Angle22斜めのカメラが働く角度の範囲
Tint全体にかける色
Brightness1明るさの倍率

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 にまとまっています。

MIT License