うにてぃブログ

主にUnityとC#に関する記事を書いていきます

Shader

【Unity】グレースケール シェーダー

グレースケール画像のうんちく - Qiita 上記の記事より 「NTSC係数」を利用してグレースケール変換をすることで 下図のようにグレースケールに変換できます ※ポストエフェクト 変換式は以下の通りです col.r * 0.298912 + col.g * 0.586611 + col.b * 0.1144…

【Unity】ShaderLab 条件式置き換え メモ

条件式を if 文を使わないで書く処理をメモしておきます ※define 形式です x >= y #define GREATER_EQUAL(x, y) step(y, x) x <= y #define LESS_EQUAL(x, y) step(x, y) x > y #define GREATER(x, y) 1.0 - step(y, x) x < y #define LESS(x, y) 1.0 - step…

【Unity】RenderType が Opaque の シェーダに アルファ 0を適応する

Opaque のシェーダ に対して アルファを入れても無視されてしまう fixed4 frag (v2f i) : SV_Target { if (i.uv.x < 0.2 || i.uv.x > 0.8 || i.uv.y < 0.2 || i.uv.y > 0.8) { return fixed4(0, 0, 0, 1); } return fixed4(1, 1, 1, 0); } clip を利用するこ…

【Unity】パーリンノイズを使った Dissolve Shader

こちらの記事 nn-hokuson.hatenablog.com を参考にパーリンノイズを利用し Dissovle シェーダーを作成してみました ノイズの値と _Threshold の値を見て そこの ahpha を変えているだけの簡単なシェーダーです Shader "Unlit/Dissolve" { Properties { [NoSc…

【Unity】BaseMeshEffect で UIVertex の color, position, uv0 以外を利用する方法

BaseMeshEffect を利用して Shader側にパラメータを渡すために 下記コードのように uv1 を利用しようとしたがパラメータが渡されない public override void ModifyMesh(VertexHelper vh) { var vertexList = new List<UIVertex>(); vh.GetUIVertexStream(vertexList); </uivertex>…

【Unity】テクスチャを UV スクロールする

テクスチャを UV スクロールする方法として * Shader を使う * スクリプトを使う の2種類がある Shader で UV スクロールしてる記事はあったが、スクリプトで UVスクロールしてる記事は見かけなかった Shader でUVスクロール GPU を利用して UVスクロールを…

【Unity】Shader を用いて 画像を白黒だけで表現する

キャラの輪郭を表示させたり、画像を見せたいけど詳しく見せたく無いから 二色で塗りつぶしたりしたいときがあると思うので、それの対応 正しい名称が分からなかったのでざっくりとした表現 処理 各色味を計算してrgb値によって色を振り分けている fixed tot…

【Unity】Grid Shader

Shader でグリッドを表示させる方法について考える 画像を n分割する グリッドを作成する前に 画像を n分割する方法を考える 画像を分割するためには frac 関数を利用する frac 関数は「小数値の小数部分を返す」関数なので uv に 5を掛けた場合、下図のよう…

【Unity】Splatoon で利用されているような波ゲージ を Shader を用いて作る

静止画ですがゲージの部分が波のように揺れている表現を作ってみます 波 波のような結果を出すものとして sin波とcos波 があるのでこちらを利用する Shader で利用する場合はこれに _Time を食わせることで -1 ~ 1 の間を行き来させることができる 左右に動…

【Unity】Unlit Shader でも 影出したい!

Directional Light を複数置いて Culling Mask で制御するのが面倒な時などに Unlit Shader でも 光の向きを指定したい場合があります。 法線との内積の処理で指定したXYZを利用しているだけで特に特殊な処理はしていません Shader Shader "Custom/Unlit/Dir…

【Unity】画像の HSV 変換シェーダー

シェーダーを用いて色の加算・乗算は容易にできるがHSV変換をする場合変換用のメソッドを容易してやる必要があるため こちらにシェーダをメモ HSVのカラーシフトの式はこちらを参考にしました HSV Shader with Alpha - Unity Answers シェーダー Shader "Cus…

【Unity】オブジェクトの陰色を変更する

オブジェクトの影色を変更する記事はあったが オブジェクトの陰色を変更している記事を見かけなかったため、 調べて色を変更できるようになったのでまとめる 陰とはオブジェクトの光の当たってない部分のことである Vertexだとライトの計算を時前でやる必要…