获取相机内容,实现分屏效果小测试
来源:互联网 发布:淘宝衣服取名技巧 编辑:程序博客网 时间:2024/04/29 04:06
获取相机内容,实现分屏效果
场景搭建:
1、场景中包括2个相机:main Camera 作为主相机拍摄游戏画面。再创建一个相机camera1用于拍摄另一个屏幕内容,background的Alpha通道值设为0,保证背景透明。
2、创建一个plane作为画面显示面板。创建一个cube作为camera1显示内容。
3、创建一个C#脚本FogOfWarRenderTex.cs。用于将camera渲染的画面显示到所有shader中包含_MainTex1的物体上。代码如下:
using UnityEngine;
using System.Collections;
[ExecuteInEditMode]
//[RequireComponent (typeof(Camera))]
public class FogOfWarRenderTex : MonoBehaviour {
RenderTexture Planrender;
// Use this for initialization
void Start () {
Planrender = new RenderTexture (Screen.width, Screen.height,16,RenderTextureFormat.Default); //创建一个新的RenderTexture
}
// Update is called once per frame
void Update () {
camera.targetTexture = Planrender; //相机的目标纹理赋值
Shader.SetGlobalTexture ("_MainTex1", camera.targetTexture); //给全局shader中的纹理_MainTex1赋值,所有使用该shader的物体都会显示相机渲染的画面
}
}
创建一个简单的透明的包含_MainTex1属性的shader(该属性可不显示到Properties),将此shader指定到plane。
Shader "LT/Unlit2"
{
Properties
{
_MainColor ("MainColor", COLOR) = (0.5,0.5,0.5,1.0)
// _MainTex1("Main Texture",2D) = "while" {} //该属性可不显示到Properties
}
SubShader
{
Tags{"Queue" = "Transparent" "RnderType" = "Transparent" "IgnorProjection" = "true"}
Pass
{
ZWrite off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _MainColor;
sampler2D _MainTex1;
float4 _MainTex1_ST;
float _Red;
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 = TRANSFORM_TEX(v.uv,_MainTex1);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col =tex2D(_MainTex1,i.uv)* _MainColor;
return col;
}
ENDCG
}
}
}
- 获取相机内容,实现分屏效果小测试
- 相机滤镜效果实现
- 相机视野控制效果实现
- android实现自定义相机效果
- AR 相机扫描效果实现
- 服务器测试常用指令-分测试内容
- 模拟实现分割线效果
- ViewSwitcher实现程序列表分屏和动画效果
- ViewSwitcher实现程序列表分屏和动画效果
- ViewSwitcher实现程序列表分屏和动画效果
- ViewSwitcher实现程序列表分屏和动画效果
- ViewSwitcher实现程序列表分屏和动画效果
- ViewSwitcher实现程序列表分屏和动画效果
- 自定义ViewSwitcher实现分屏及切换动画效果
- javaScript实现HTML页面分屏滚动效果
- JS实现文章中显示内容字体 大 中 小 的显示效果
- 实现打印窗体内容效果
- js实现内容滚动效果
- Chrome插件之Vysor
- android笔记listview item加载动画
- Android性能优化
- 三种方法让你的Service不被“一键加速”和系统杀掉
- OpenStack Nova分析——Nova Scheduler调度算法分析(1)
- 获取相机内容,实现分屏效果小测试
- Spring加载resource,classpath*:与classpath
- SQL2014数据导入到SQL2008R2
- C# 中的委托和事件
- C++获取网关(linux)
- 重定向的输出不见了?
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- Linux学习36_ssh使用公钥授权不通过的问题解决
- 【JZOJ4846】【NOIP2016提高A组集训第5场11.2】行走