提示コードのコメント部内部のコードですがpos.x,pos.y,.pos.zのコードですがこの場合どっちがどっちの軸なのでしょうか?画像から見て赤軸の向きがXプラスなのでしょうか?その辺がわからないです。
参考サイト: https://baba-s.hatenablog.com/entry/2018/09/11/170000
cs
1// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' 2 3Shader "Custom/Flag" 4{ 5 Properties 6 { 7 _MainTex("Texture", 2D) = "white" {} 8 _Ambient("Ambient", Range(0, 1)) = 0.2 9 [Header(Waves)] 10 _WaveSpeed("Speed", float) = 0.0 11 _WaveStrength("Strength", Range(0.0, 1.0)) = 0.0 12 } 13 SubShader 14 { 15 Tags { "RenderType" = "Opaque" "LightMode" = "ForwardBase" } 16 Cull Off 17 18 Pass 19 { 20 CGPROGRAM 21 #pragma vertex vert 22 #pragma fragment frag 23 #include "UnityCG.cginc" 24 25 struct v2f { 26 float4 pos : SV_POSITION; 27 float4 vertex : TEXCOORD1; 28 float2 uv : TEXCOORD0; 29 }; 30 31 fixed4 _LightColor0; 32 float _Ambient; 33 34 // Compute the diffuse light 35 fixed3 diffuseLambert(float3 normal) 36 { 37 float diffuse = max(_Ambient, dot(normalize(normal), _WorldSpaceLightPos0.xyz)); 38 return _LightColor0.rgb * diffuse; 39 } 40 41 float _WaveStrength; 42 float _WaveSpeed; 43//////////////////////////////////////////////////////////////////////////////////////////// 44 // Deformation 45 float4 movement(float4 pos, float2 uv) 46 { 47 float sinOff = (pos.x + pos.y + pos.z) * _WaveStrength; 48 float t = _Time.y * _WaveSpeed; 49 float fx = uv.x; 50 float fy = uv.x * uv.y; 51 pos.x += sin(t * 1.45 + sinOff) * fx * 0.5; 52 pos.y = sin(t * 3.12 + sinOff) * fx * 0.5 - fy * 0.9; 53 pos.z -= sin(t * 2.2 + sinOff) * fx * 0.2; 54 return pos; 55 } 56//////////////////////////////////////////////////////////////////////////////////////////// 57 v2f vert(appdata_base v) 58 { 59 v2f o; 60 o.vertex = v.vertex; 61 o.pos = UnityObjectToClipPos(movement(v.vertex, v.texcoord)); 62 o.uv = v.texcoord; 63 return o; 64 } 65 66 sampler2D _MainTex; 67 68 fixed4 frag(v2f i) : SV_Target 69 { 70 fixed4 col = tex2D(_MainTex, i.uv); 71 return col; 72 } 73 74 ENDCG 75 } 76 } 77}
あなたの回答
tips
プレビュー