Onoty3D

Unityに関するメモとか

クロマキーシェーダーを作ってみる

rocketnews24.com

朝からガチャピンがクロマキーで透明化した、というニュースが話題になっていたので、便乗してクロマキーシェーダー作りました。
記事の最後にコードを掲載します。

通常のクロマキーではブルーバック、グリーンバックが主ですが、任意の色が指定できるようにしました。
また透過対象色の近似度の閾値も任意に指定出来ます。

任意色指定
f:id:onoty3d:20160206140350g:plain

閾値指定
f:id:onoty3d:20160206140453g:plain

ガチャピンのようなもの。
f:id:onoty3d:20160206140531g:plain

WebCamTextureやRenderTexture用のShaderとして使うことで、実際のテレビのクロマキーの様に使うことが出来ると思います。
↓ちょっと前にFaceRigで試したやつ。

※2016/05/13 追記
色の近似度をRGB色空間の距離でとっていましたが、同色で明暗がある場合はHSV色空間のH(Hue)の近似で見たほうがいいことに気づいたので、そちらのバージョンも作ってみました。
下の図の場合、左が上記のRGBでの判定、右がHueでの判定となります。
f:id:onoty3d:20160513182839g:plain

シェーダのコード