资源大湿 发表于 2018-8-6 18:34

用无光照着色器实现plane的波浪效果

先建个plane
再建立一个material,unlit shader
拉到plane上,shader写如下代码:
Shader "Unlit/NewUnlitShader"
{
Properties
{
    _MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
    Tags { "RenderType"="Opaque" }
    LOD 100

    Pass
    {
      CGPROGRAM
      #pragma vertex vert
      #pragma fragment frag
      // make fog work
      #pragma multi_compile_fog
      
      #include "UnityCG.cginc"

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

      struct v2f
      {
      float2 uv : TEXCOORD0;
      UNITY_FOG_COORDS(1)
      float4 vertex : SV_POSITION;
      };

      sampler2D _MainTex;
      float4 _MainTex_ST;
      
      v2f vert (appdata v)
      {
      v2f o;
      o.vertex = UnityObjectToClipPos(v.vertex);
      float3 worldPos=mul(unity_ObjectToWorld,v.vertex).xyz;
      o.vertex.y+=sin(worldPos.x+_Time.w);
      
      
      //o.vertex.y-=_SinTime.w;
      
      
      o.uv = TRANSFORM_TEX(v.uv, _MainTex);
      UNITY_TRANSFER_FOG(o,o.vertex);
      return o;
      }
      
      fixed4 frag (v2f i) : SV_Target
      {
      // sample the texture
      fixed4 col = tex2D(_MainTex, i.uv);
      // apply fog
      UNITY_APPLY_FOG(i.fogCoord, col);
      return col;
      }
      ENDCG
    }
}
}

sly19930606 发表于 2018-9-17 09:39

楼主是超人

baozhenliang 发表于 2018-9-17 08:43

好帖就是要顶

梦醒随风笑 发表于 2018-9-17 09:04

顶顶多好

baozhenliang 发表于 2018-9-17 09:05

真心顶

baozhenliang 发表于 2018-9-17 09:16

不错不错

notbook250 发表于 2019-6-26 07:05

楼主是超人

liner 发表于 2019-6-26 07:34

好帖就是要顶

q8920363 发表于 2019-6-26 07:02

真心顶

moonqj 发表于 2019-6-26 07:56

难得一见的好帖
页: [1] 2
查看完整版本: 用无光照着色器实现plane的波浪效果