質問: unity初学者です。 unityのshaderをいろいろ学んでいるのですが、相談できる方もいなく、そして悪戦苦闘しており、ここに投稿させて頂きましたm(_ _)m 公式のこちらの記事にあるサンプルをインストールして色々いじったのですが、3Dモデルに対し、シェーダーだけで完全に色分けできていて、衝撃を受けました (例えば、宝箱、枠は銀、鍵は金、他は面は木の色) さらに、このシェーダーを使いまわし、木でできているモノや鍵などにもアタッチし、更には色分けもできています シェーダーをみてみても、トリガーがない、おそらく頂点カラーをとっているわけでもなさそうで、どのような原理で色分けされているか全くわからず、悶々としています こちら詳しい方がいらっしゃれば是非ともご教授いただきたいです。 お手数おかけしますが、何卒宜しくお願いいたしますm(_ _)m
回答: Unityが利用する3Dグラフィックエンジン(OpenGLやDirectX)のフラグメントシェーダは、本来論でいえばテクスチャの「表示色」を計算する機構です。ですので、シェーダから物体色を任意に変えられることは特段珍しい話ではありません。 フラグメントシェーダはシェーディング言語という特殊なプログラミング言語で記述する必要がありますが、Unityのシェーダーグラフはこれを視覚的・インタラクティブに記述できる機能のようです。図(グラフ)を見る限りでは「Splitノード」で色情報をチャネル分解し、各チャネル独立に加工したのちに「Combineノード」で色情報に再合成してるようです。