新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。動的にメッシュを生成して頂点カラーとテクスチャを描画するUnity前回動的生成した三角形メッシュを頂点カラーで描画しました。今回は頂点カラーとテクスチャ両方描画してみます。前回と前々回の合わせ技なので、さくっとやってみます。テクスチャのUV座標(複数テクスチャにより連番。テクスチャのUV座標(複数テクスチャにより連番。}}C#のソースはメッシュのUV座標を以前の状態に戻しただけ、以下大きく変わったのはシェーダのソースです。"white"{}}この部分で外部からテクスチャを設定できるようにします。(上図のようにインスペクタから設定できるようになります)シェーダ上でこのテクスチャを使用するためには、Propertiesで定義した_MainTexという名前と同じ変数名で定義する必要があります。_MainTex);UnityCG.cgincに定義されているマクロTRANSFORM_TEXを使うことでテクスチャのスケール・オフセットが適用されます。マニュアルここで、サンプルを見ていると、次のコードがどこからも参照されていないように見えました。_MainTex_ST;しかし、削除すると次のようなコンパイルエラーになります。UNITY_TEXTURE_ALPHASPLIT_ALLOWED読み込んでいるライブラリ内で使用しているから定義してね。テクスチャを使用するシェーダを書く際は気をつけたいところです。http://forum.unity3d.com/threads/what-is-_maintex_st.24962/Fragmentシェーダで各ピクセルの色を頂点カラーとテクスチャのカラーを乗算関係にする最後に頂点カラーとテクスチャのカラーを合成します。texCol;ソースの通り、各ピクセル単位で頂点カラーとテクスチャのカラーを乗算します。すると、こんな風に描画されます。まとめシェーダは面白いですね。WebGLでならったことが役に立ちそうです。本記事含めて過去3回3Dの知識としては超基本的なことをやってきました。タイトルの「動的にメッシュを生成して」の内容に戻ってみようかなと思います(それでも超基本編かもしれません)。動的にメッシュを生成して頂点カラーとテクスチャを描画するTweet読者になるボタンを押して貰えるととてもがんばれます。大庭俊介(bao_bao)渋谷のUnityエンジニア。スマホゲーム作って生活しています。設計、組み込み、演出一通りを自分1人で完結して作るのが得意です。よろしければTwitterフォローお願いします。(@ohbashunsuke)株式会社サムザップでUnityエンジニアとしてスマホゲーム作っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。