Unity3D Shader:夜视

news/2025/1/12 7:53:46/
shader代码:Shader "Unlit/Test"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="AlphaTest" "IgnoreProjector"="True" }
LOD 100Cull Off
ZWrite OffPass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
#pragma multi_compile _ Use_Vigent#include "UnityCG.cginc"struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};sampler2D _MainTex;
sampler2D _CameraTex;
float4 _MainTex_ST;
float4 _NVColor;
float4 _TargetColor;
float _BaseLight;
float _Light;v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.uv);
fixed4 dif=tex2D(_CameraTex,i.uv);
//得到灰度值
float lum=Luminance(col.rgb);col=dot(col,_NVColor);col.rgb=lerp(col.rgb,_TargetColor,lum*_Light);col.rgb=lerp(col.rgb,dif.rgb,lum+_BaseLight);#if Use_Vigent
float dist=distance(i.uv,float2(0.5f,0.5f));
col*=smoothstep(0.5,0.45,dist);
#endifcol.rb=max(col.r-0.75,0)*4;
return col;
}
ENDCG
}
}}C#代码:using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class Shader_TouShi : MonoBehaviour {public Shader test_20;Material mat;[SerializeField]public Color m_NVColor = new Color(0f, 1f, 0.1724138f, 0f);[SerializeField]public Color m_TargetColor = new Color(1f, 1f, 1f, 0f);[Range(0f, 0.1f)]public float m_BaseLight = 0;[Range(0f, 128f)]public float m_Light = 0;public bool UsingVigent;private void Awake(){if (mat == null){mat = CreatMat(test_20);}}Material CreatMat(Shader shader){if (shader == null){return null;}if (shader.isSupported == false){return null;}mat = new Material(shader);mat.hideFlags = HideFlags.DontSave;return mat;}private void OnRenderImage(RenderTexture source, RenderTexture destination){mat.SetColor("_NVColor", m_NVColor);mat.SetColor("_TargetColor", m_TargetColor);mat.SetFloat("_BaseLight", m_BaseLight);mat.SetFloat("_Light", m_Light);if (UsingVigent == true){mat.EnableKeyword("Use_Vigent");}else{mat.DisableKeyword("Use_Vigent");}Graphics.Blit(source, destination, mat);}}


http://www.ppmy.cn/news/122804.html

相关文章

星光级夜视

在微弱的有光环境下仍然能够彩色成像,夜视清晰可见。

我的世界中国版服务器无限夜视,我的世界服务器游戏技巧 无限夜视的方法

来源:游戏园日期:2019-06-12 04:03:49 我的世界服务器游戏技巧 无限夜视的方法。那下面给大家分享的是一些大家可能不知道的游戏技巧,那下面就一起来看看都是些什么技巧吧!对了,里面还有关于服务器无限夜视的方法哦&am…

夜视仪

国民兵所用F-16的驾驶舱,机员配有夜视镜以备观察领空的客机或飞行物体 使用夜视镜时看到的影像 夜视仪〈night vision device,简称NVD〉,也称夜视镜,是透过光学科技强化黑暗中光源的科技装置,通常用于军事用途。目前在…

红外夜视摄像头 小方智能摄像头使用手记

在前一篇文章《红外夜视摄像头 蒂卡尔K-TF使用手记 2》记录了30万像素的红外摄像头的试用情况。 对其夜视效果不太满意。 今天对现在比较流行的wifi智能摄像头中的一款,“小方”智能摄像头做了一下试用。 该摄像头自带wifi,连上无线路由器后就可以和手机配合使用…

红外夜视监控系统的八项问题

原文出处:http://www.qianjia.com/html/2016-12/19_265941.html

夜视技术

夜视技术 夜视技术是借助于光电成像器件实现夜间观察的一种光电技术。夜视技术包括微光夜视和红外夜视两方面。微光夜视技术又称像增强技术,是通过带像增强管的夜视镜,对夜天光照亮的微弱目标像进行增强,以供观察的光电成像技术。微光夜视仪,是目前国外生产量和装备量最大和…

红外夜视模块

环境照度检测 实现环境可见光照度的检测,可通过光敏传感器实现。光敏传感器输出电流由环境照度决定,其电流大小在一定的环境照度范围内成比例关系。光敏传感器输出电流流过电阻后,产生的电压可以被ADC采集,传送数字信号给CPU进行…

mc服务器 无限夜视,我的世界夜视指令是什么?这里告诉你无限夜视的方法

我的世界夜视效果指令是什么? 小伙伴们在游戏中可以通过作弊模式来输入各种指令,这些指令就可以让小伙伴们拥有各种效果了。比如说夜视效果,这个就可以直接通过指令来获得哟,方法是非常的简单的。首先小伙伴们只需要知道自己想要的是什么效果,这个效果的英文名字是什么。然…