イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

shder ノイズ?生成

f:id:arumogina:20190618135220p:plain

Quadに貼り付けて、生成されたテクスチャをキャプチャして使用する

 

 

Shader "Custom/CreateNoise" {
	Properties{
		_Frec("Frec",Range(1,200)) = 1
		_Param("Param",Range(0,200)) = 1
		_From("From",Range(0,1)) = 0
		_To("To",Range(0,1)) = 1
	}
	SubShader{

		Pass{
			Cull Front
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

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

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

			float rand(float2 co){
				return frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453);
			}

			v2f vert(appdata v){
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				o.uv = v.uv;
				return o;
			}

			sampler2D _MainTex;
			float _Frec;
			float _Param;
			float _From;
			float _To;
			float4 frag(v2f i) :SV_Target {
				float y = floor((i.uv.y+_Param)*_Frec);
				float w = rand(y);
				if(w < _From) w = _From;
				if(w > _To) w = _To;
				if(i.uv.x < w) return float4(1,1,1,1);
				return float4(0,0,0,1);
			}
			ENDCG
		}//Pass
	}//SubShader
	FallBack "Diffuse"
}