読者です 読者をやめる 読者になる 読者になる

しゅみぷろ

プログラミングとか

Splatoonの塗りみたいのを再現したい その2

C# Graphics Shader Unity UnityTexturePaint

はじめに

esprog.hatenablog.com

の続編、塗りの表現です。ちょっとだけ進化したので簡単にメモしておきます。

f:id:es_program:20160501102424p:plain:w400

今回実装したのはブラシの法線マップをペイントに適用する処理です。法線マップについては

法線マップと接空間 - しゅみぷろ

で紹介しています。

法線マップの実装

ペイント対象のオブジェクトに付けられた法線マップ用の画像をRenderTextureにコピーし、ブラシで書き込む際に、ブラシ用の法線マップを用意しておいた法線マップ用のRenderTextureに書き込むことで実現しています。

f:id:es_program:20160501034005g:plain:w400

もとからあった法線の情報をブラシの法線情報で強制的に上書きするのでは少し見栄えが悪い場面もあるため、2つの値を指定した割合で補完するようになっています。

f:id:es_program:20160501034105g:plain:w400

これによって、何度も重ね塗りした場合などに次第に凹凸に変化が見られるようなペイントが可能になっています。

f:id:es_program:20160501034230g:plain:w400