Unity3D相机渲染-灰度

相机画面渲染灰度

  • 创建物体
    • 功能实现
    • 1.相机
    • 2.创建一个Shader,命名为 _MainTex
    • 3.材质球
    • 4.对Plane进行操作
    • PS:如果想把灰度取消,显示相机真实画面,非常简单请看

创建物体

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 即可。画面即是相机看到的真实画面。

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部