zoukankan      html  css  js  c++  java
  • Unity3D Shader图像扭曲过场效果

    把脚本挂在摄像机上

    using UnityEngine;
    using System.Collections;
    
    
    [RequireComponent(typeof(Camera))]
    public class PostEffectTwist : MonoBehaviour {
    
    	public Material ma;
    
    
    	void OnRenderImage(RenderTexture src, RenderTexture dest)
    	{
    		Graphics.Blit (src, dest, ma);
    	}
    }
    

    创建一个材质,再创建一个Shader

    Shader "Hidden/NewImageEffectShader"
    {
    	Properties
    	{
    		_MainTex ("Texture", 2D) = "white" {}
    		_Angle ("Rotation", Float) = 0
    	}
    	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
    			{
    				float2 uv : TEXCOORD0;
    				float4 vertex : SV_POSITION;
    			};
    
    			v2f vert (appdata v)
    			{
    				v2f o;
    				o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
    				o.uv = v.uv;
    				return o;
    			}
    			
    			sampler2D _MainTex;
    			float _Angle;
    
    			fixed4 frag (v2f i) : SV_Target
    			{
    				float2 uv = float2(i.uv.x-0.5,i.uv.y-0.5);
    				float f = distance(uv,float2(0,0));
    				float s = sin(lerp(0,_Angle,f));
    				float c = cos(lerp(0,_Angle,f));
    				// -c s
    				// s  c
    
    				uv = float2(-uv.x*c+uv.y*s,uv.x*s+uv.y*c);
    				uv = float2(uv.x+0.5,uv.y+0.5);
    				fixed4 col = tex2D(_MainTex, uv);
    
    				return col;
    			}
    			ENDCG
    		}
    	}
    }
    

      

  • 相关阅读:
    Javascript进阶(7)---函数参数
    Django连接mssql(SqlServer)
    ORM查询
    Django-Model操作数据库
    Django去操作已经存在的数据库
    如何设置CentOS 7获取动态及静态IP地址
    nginx代理设置
    Django+Linux+Uwsgi+Nginx项目部署文档
    nginx的安装部署
    Django项目在linux系统中虚拟环境部署
  • 原文地址:https://www.cnblogs.com/mrblue/p/7554806.html
Copyright © 2011-2022 走看看