unity 全屏乱影 BlitMultiTap

http://m.blog.csdn.net/blog/stalendp/40859441

官方例子AngryBots的链接地址:http://u3d.as/content/unity-technologies/angry-bots/5CF

《Unity Shaders and Effects Cookbook》的章节:

Chapter 10 Screen Effects with Unity Render Textures

Chapter 11 Gameplay and Screen Effects

[GPU Gems] Real-Time Glow:http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html

using UnityEngine;
[ExecuteInEditMode]
public class _MultiTap_y: MonoBehaviour
{
public GUISkin skin;
public string[] labels;
public Rect[] rLabels;
public float[] vals;
public Rect[] rSliders;
public Material myMat;
void OnGUI()
{
GUI.skin = skin;
for (int i = 0; i < labels.Length; i++)
{
GUI.Label(rLabels[i], labels[i]);
}
vals[0] = GUI.HorizontalSlider(rSliders[0],vals[0],-8f,8f);
}
void OnRenderImage (RenderTexture src, RenderTexture dst)
{
Graphics.BlitMultiTap(src,dst,myMat,
new Vector2(vals[0],vals[0]),
new Vector2(vals[0],vals[0])
);
}
}

//====================

Shader "Tut/Effects/ConeTap_0y" {
Properties {
_MainTex ("", 2D) = "white" {}
}
Subshader {
ZTest Always Cull Off ZWrite Off Fog { Mode Off }
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"

struct v2f {
float4 pos : POSITION;
half4 uv[2] : TEXCOORD0;
};
float4 _MainTex_TexelSize;
float4 _BlurOffsets;
v2f vert (appdata_img v)
{
v2f o;
float offX = _MainTex_TexelSize.x * _BlurOffsets.x;
float offY = _MainTex_TexelSize.y * _BlurOffsets.y;

o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
float2 uv = MultiplyUV (UNITY_MATRIX_TEXTURE0, v.texcoord.xy-float2(offX, offY));

o.uv[0].xy = uv + float2( offX, offY);
o.uv[0].zw = uv + float2(-offX, offY);
o.uv[1].xy = uv + float2( offX,-offY);
o.uv[1].zw = uv + float2(-offX,-offY);
return o;
}
sampler2D _MainTex;
fixed4 frag( v2f i ) : COLOR
{
fixed4 c;
c = tex2D( _MainTex, i.uv[0].xy );
c += tex2D( _MainTex, i.uv[0].zw );
c += tex2D( _MainTex, i.uv[1].xy );
c += tex2D( _MainTex, i.uv[1].zw );
return c/4.0;
}
ENDCG
}
}
Fallback off
}

时间: 2024-09-30 06:21:12

unity 全屏乱影 BlitMultiTap的相关文章

unity发布exe全屏方法

首先 将该代码挂在NGUI的UIroot上或者场景的物体上 using UnityEngine; using System.Collections; public class example : MonoBehaviour { public void Awake() { Screen.SetResolution(1024, 768, true);//自己想要的分辨率,比如1024*768,true表示全屏 Screen.fullScreen = true; } } 然后发布,设置如下 unity

Unity发布的WebGL页面应用实现全屏/非全屏切换

很简单,在场景中添加一个UGUI按钮,实现点击就切换全屏/非全屏状态 其实发布出webgl之后,页面上场景窗口右下会有一个按钮,就是切换全屏的,但是想用代码在程序里实现 首先看页面上那个按钮的js脚本是怎么写的 <div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div> 注意里面的代码就一行: gameInstance.SetFullscreen(1); 也就是

Unity3d 屏幕特效实现类似死亡之后的全屏黑白效果

全屏特效 黑白(对于<着色器和屏幕特效开发秘籍>的学习) 可实现死亡效果或需要黑白特效的效果 原理是通过OnRenderImage()函数在摄像机渲染的时候,改变颜色(饱和度) 新建一个c#脚本,将要放在摄像机中 [ExecuteInEditMode] 就是让这个脚本不开始也直接运行,方便观察效果 using UnityEngine; using System.Collections; [ExecuteInEditMode] public class ShaderTest : MonoBeha

一个丝滑的全屏滑动返回手势

一个丝滑的全屏滑动返回手势 全屏返回手势 自 iOS7 之后,Apple 增加了屏幕边缘右划返回交互的支持,再配合上 UINavigationController 的交互式动画,pop 到上一级页面的操作变的非常顺畅和丝滑,从此,我很少再使用点击左上角导航栏上的返回按钮的方式返回了,因为这对单手操作十分不友好:如果一个 App 居然胆敢不支持滑动返回,那离被卸载就不远了. 说到全屏返回手势,首先我感觉这件事本身可能就有问题,毕竟有点反苹果官方的交互,让用户从任意的地方都能够滑 动返回这个交互在国

VMware装Linux系统全屏问题

在VMware上出装Linux,有强迫症的患者总是无法接受它不能全屏的问题,当然网上也有该问题的解决方案,但是搜索出来的答案总是零零散散,让很多初学者望而却步!今天笔者根据自己的机遇总结一遍最完备的解决方案(大牛绕道,喷子留情). 这个问题说白了也简单就是在linux虚拟机上安装一个 VMwareTools--.tar.gz 的工具,但是在安装这个工具时会遇到一些问题: 首先在VM虚拟机上选择 VM-->Reinstall VMware tool.. 此时按道理讲 VMwareTools--.t

Android Ireader的全屏与非全屏的切换效果实现

ireader在全屏与非全屏切换,整体的阅读view并没有进行明显示的重绘与抖动现像,如果只是单纯的设置activity的全屏与非全屏切换,因为view的大小变动,会有抖动现象出现 而Android只在4.4版本才提供了沉浸式状态拦,而在4.4之前怎么办呢 1.首先直接在AndroidManifest.xml中需要全屏显示的Activity属性中添加 1 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.设置act

Unity3D去掉全屏时的屏幕黑边

给全屏后不在乎拉伸变形仍想让画面占满屏幕的朋友,网上搜了一上午,实在是没有相关的资料,只能自己琢磨了. 使用Canvas Scaler在全屏后Unity虽然会为我们自动拉伸UI,但拉伸后仍然保持我们在Unity中设置的高宽比.屏幕中的黑边需要通过代码来对UI的内容进行拉伸填充. 下面是我的测试环境: Unity3D 5.3.4 Win 10 64bit 测试中我Unity设置成了自动根据屏幕宽度进行拉伸,这样需要调整UI的高度来填充画面上下出现的黑边了. 开发中使用的分辨率是16:9的,但实际发

iOS 一个丝滑的全屏滑动返回手势

原文链接:http://blog.sunnyxx.com/2015/06/07/fullscreen-pop-gesture/ 全屏返回手势 自 iOS7 之后,Apple 增加了屏幕边缘右划返回交互的支持,再配合上 UINavigationController 的交互式动画,pop 到上一级页面的操作变的非常顺畅和丝滑,从此,我很少再使用点击左上角导航栏上的返回按钮的方式返回了,因为这对单手操作十分不友好:如果一个 App 居然胆敢不支持滑动返回,那离被卸载就不远了. 说到全屏返回手势,首先我

Unity3D在Windows的全屏和跨屏(双屏)方案

方案1 unity中2个摄像机场景显示在两个显示器屏幕上(一个窗口跨屏) 1.设置场景中的两个摄像机 摄像机1 摄像机2 2.设置发布的平台及分辨率 3.全屏运行游戏,没有标题栏还可以通过-popupwindow 例如: G:\untiy3d_workspace\Demos>lol_demo_0515 -popupwindow 方案2 http://blog.csdn.net/a117653909/article/details/47101743 环境:Win7 64bit, Unity3D 4