Unity3D相机渲染-灰度

创建物体

1.创建一个Plane,一个相机,创建一个texture命名 HotCameraRenderTex,创建一个材质球命名HotCameraMat
在这里插入图片描述

功能实现

1.相机

在这里插入图片描述
添加HotCameraRenderTex 到相机组件。这一步用来渲染相机看到的画面。

2.创建一个Shader,命名为 _MainTex

在这里插入图片描述
Shader直接上代码在此:

Shader "Custom/_MainTex"
{
    Properties
    {
		_MainTex("Texture", 2D) = "white" {}
        _LuminosityAmount("GrayScale Amount", Range(0.0,1.0)) = 1.0
    }
    SubShader
    {
	   Pass
		{
			CGPROGRAM
			#pragma vertex vert_img
			#pragma fragment frag
			#pragma fragmentoption ARB_precision_hint_fastest

			#include "UnityCG.cginc"

			sampler2D _MainTex;
			fixed _LuminosityAmount;

			fixed4 frag(v2f_img i) : SV_Target
			{
				fixed4 renderTex = tex2D(_MainTex, i.uv);

				float luminosity = 0.299 * renderTex.r + 0.587 * renderTex.g + 0.114 * renderTex.b;

				fixed4 col = lerp(renderTex, luminosity,_LuminosityAmount);

				return col;
			}
			ENDCG
		}
    }
}

3.材质球

在这里插入图片描述
将创建好的Shader添加进来。
在这里插入图片描述

4.对Plane进行操作

在这里插入图片描述
添加材质球到Plane面板上,将相机画面渲染到Plane上面,当然用Cube或者其他物体也可以。此刻会看到Plane上面有相机中看到的画面是灰色的。
大功告成。希望能帮到小伙伴们。

PS:如果想把灰度取消,显示相机真实画面,非常简单请看

在这里插入图片描述
只需要把材质球上的shader改一下,然后在Albedo处添加 HotCameraRenderTex 即可。画面即是相机看到的真实画面。

欢迎转载和留言。感谢小伙伴们,有什么需要私信我。
勿喷。勿喷。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值