LoginSignup
0
0

More than 3 years have passed since last update.

シンプルなImageEffect その10。TilePattern

Last updated at Posted at 2020-05-23

Twitterでアップした、TilePatternImageEffectのシェーダコードを貼っておきます。

画面に均一なパターンで1枚画像を重ね合わせて、雰囲気を彩ることが出来ます。
画像を変更することで、色々カスタマイズが可能です。
また、Tile用のテクスチャは必ずRepeart属性にするのをお忘れなく!
今回のコードでは、テクスチャの白みに合わせて、二乗色(明度が下がりつつ、彩度が上がるようなイメージ)を載せています

TilePattern.shader
Shader "ScreenPocket/ImageEffect/TilePattern"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TileTex ("Tile Texture", 2D) = "black" {}
        _TileCountH ("Tile Count Horizontal", Float) = 64
    }

    SubShader
    {
        // No culling or depth
        Cull Off ZWrite Off ZTest Always

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float4 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            float _TileCountH;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv.xy = v.uv;
                o.uv.zw = v.uv * _TileCountH;
                //縦横比で縦のドット数を補正する
                o.uv.w *= _ScreenParams.y / _ScreenParams.x;
                return o;
            }

            sampler2D _MainTex;
            sampler2D _TileTex;

            fixed4 frag (v2f i) : SV_Target
            {
                half4 col = tex2D( _MainTex, i.uv.xy );
                float rate = tex2D( _TileTex, i.uv.zw  ).r;
                col = lerp(col,col*col,rate);
                return col;
            }
            ENDCG
        }
    }
}

RectTile.png
↑の画像を_TileTexに流し込んだ↓の見た目が結構気に入っています。
スクリーンショット 2020-05-23 17.53.23.png
とうとう10個目ですね。
手軽に導入しやすい&組み合わせやすいImageEffectを今後も貼っていきたい所です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0