欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity Shader實(shí)現(xiàn)黑幕過場(chǎng)效果

 更新時(shí)間:2021年07月27日 11:32:30   作者:Hello Bug.  
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)黑幕過場(chǎng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Unity Shader實(shí)現(xiàn)黑幕過場(chǎng)效果的具體代碼,供大家參考,具體內(nèi)容如下

一、效果演示

二、實(shí)現(xiàn)

Shader:黑幕過場(chǎng)著色器

//黑幕過場(chǎng)著色器
 
Shader "Custom/BlackScreenSpread"
{
 Properties
 {
  _Color("Main Color", Color) = (1,1,1,1)
  _MainTex("Base (RGB)", 2D) = "white" {}
  _Radius("Radius",float)=1.5
  _Center_X("Center_X", float) =0.5 
  _Center_Y("Center_Y", float) =0.5
  _Sharp("Sharp", float) = 100
 }
 
 SubShader
 {
  Pass
  {
   ZTest Always Cull Off ZWrite Off
   Fog{ Mode off
  }
   
  CGPROGRAM
  #pragma vertex vert_img        
  #pragma fragment frag             
  #include "UnityCG.cginc"  
 
  fixed4 _Color;
  sampler2D _MainTex;
  float _Radius;
  float _Center_X;
  float _Center_Y;
  float _Sharp;
 
  float _tanh(float x)
  {
   return 2.0f / (1.0f + exp(-2.0f * x)) - 1.0f;
  }
 
  float4 frag(v2f_img i) : COLOR
  {  
   _Center_X=_Center_X*(_ScreenParams.x / _ScreenParams.y);
   float x = i.uv.x*(_ScreenParams.x / _ScreenParams.y);
   float y = i.uv.y;
 
   float dis = sqrt((x - _Center_X)*(x - _Center_X) + (y - _Center_Y)*(y - _Center_Y));
   float t = _Radius - dis;
   float rt = 0.5f + _tanh(t * _Sharp) * 0.5f;
   float col = float4(rt, rt, rt, rt);
   return tex2D(_MainTex, i.uv) * col * _Color;
  }
  ENDCG
 }
 }
 Fallback off
}

CS:后處理的基類

using UnityEngine;
 
/// <summary>
/// 后處理的基類
/// </summary>
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class PostEffectBase : MonoBehaviour
{
    [Header("后處理著色器")]
    public Shader shader = null;
 
    private Material _material = null;
 
    public Material material
    {
        get
        {
            if (_material == null)
            {
                _material = GenerateMaterial(shader);
            }
            return _material;
        }
    }
 
    protected Material GenerateMaterial(Shader shader)
    {
        if (shader == null || shader.isSupported == false)
        {
            return null;
        }
        Material material = new Material(shader);
        material.hideFlags = HideFlags.DontSave;
        if (material)
        {
            return material;
        }
        return null;
    }
}

CS:黑幕過場(chǎng)效果(掛載到渲染的相機(jī)上)

using UnityEngine;
 
/// <summary>
/// 黑幕過場(chǎng)效果
/// </summary>
[RequireComponent(typeof(Camera))]
public class BlackScreenSpread : PostEffectBase
{
    [Header("黑幕半徑")]
    [Space(25)]
    public float radius;
 
    [Header("黑幕中心")]
    public Vector2 center;
 
    [Header("使用邊緣模糊")]
    public bool useEdgeBlur;
    [Header("邊緣模糊值")]
    public float blur = 10;
 
    public void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        if (material)
        {
            material.SetFloat("_Center_X", center.x);
            material.SetFloat("_Center_Y", center.y);
            material.SetFloat("_Radius", radius);
            material.SetFloat("_Sharp", useEdgeBlur ? blur : 200);
            Graphics.Blit(source, destination, material);
        }
        else
        {
            Graphics.Blit(source, destination);
        }
    }
}

——設(shè)置屬性

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 5分鐘用C#實(shí)現(xiàn)串口助手

    5分鐘用C#實(shí)現(xiàn)串口助手

    本文主要介紹了C#實(shí)現(xiàn)串口助手,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 理解C#中的枚舉(簡(jiǎn)明易懂)

    理解C#中的枚舉(簡(jiǎn)明易懂)

    這篇文章主要介紹了理解C#中的枚舉(簡(jiǎn)明易懂),本文講解了枚舉的優(yōu)點(diǎn)、枚舉說明、枚舉的類型、枚舉的使用建議等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • WPF自定義選擇年月控件詳解

    WPF自定義選擇年月控件詳解

    這篇文章主要為大家詳細(xì)介紹了WPF自定義選擇年月控件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C?sharp?(#)?數(shù)據(jù)類型獲取方式

    C?sharp?(#)?數(shù)據(jù)類型獲取方式

    這篇文章主要介紹了C?sharp?(#)?數(shù)據(jù)類型獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Unity的Console的控制類LogEntries深入解析與實(shí)用案例

    Unity的Console的控制類LogEntries深入解析與實(shí)用案例

    這篇文章主要為大家介紹了Unity的Console的控制類LogEntries深入解析與實(shí)用案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • C#生成本地配置文件的實(shí)現(xiàn)示例

    C#生成本地配置文件的實(shí)現(xiàn)示例

    本文將介紹如何使用C#語(yǔ)言生成本地配置文件,以便為應(yīng)用程序提供靈活的配置選項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • .net的命名空間類庫(kù)的簡(jiǎn)單介紹

    .net的命名空間類庫(kù)的簡(jiǎn)單介紹

    .net的命名空間類庫(kù)的簡(jiǎn)單介紹,需要的朋友可以參考一下
    2013-04-04
  • 支持windows與linux的php計(jì)劃任務(wù)的實(shí)現(xiàn)方法

    支持windows與linux的php計(jì)劃任務(wù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了支持windows與linux的php計(jì)劃任務(wù)的實(shí)現(xiàn)方法,較為詳細(xì)的講述了php計(jì)劃任務(wù)中涉及到的php程序?qū)崿F(xiàn)方法、Windows計(jì)劃任務(wù)實(shí)現(xiàn)方法等,需要的朋友可以參考下
    2014-11-11
  • c# 如何實(shí)現(xiàn)獲取二維數(shù)組的列數(shù)

    c# 如何實(shí)現(xiàn)獲取二維數(shù)組的列數(shù)

    這篇文章主要介紹了c# 實(shí)現(xiàn)獲取二維數(shù)組的列數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評(píng)論