最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

一、效果演示

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

Shader:黑幕過場著色器

//黑幕過場著色器
 
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:黑幕過場效果(掛載到渲染的相機(jī)上)

using UnityEngine;
 
/// <summary>
/// 黑幕過場效果
/// </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è)置屬性

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

相關(guān)文章

  • C#獲取網(wǎng)頁源代碼的方法

    C#獲取網(wǎng)頁源代碼的方法

    這篇文章主要介紹了C#獲取網(wǎng)頁源代碼的方法,涉及C#基于自定義函數(shù)讀取網(wǎng)頁html代碼的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C#設(shè)置自定義文件圖標(biāo)實(shí)現(xiàn)雙擊啟動(dòng)(修改注冊表)

    C#設(shè)置自定義文件圖標(biāo)實(shí)現(xiàn)雙擊啟動(dòng)(修改注冊表)

    這篇文章介紹的是利用C#設(shè)置自定義文件圖標(biāo),然后實(shí)現(xiàn)雙擊啟動(dòng)的功能,文章給出了示例代碼,介紹的很詳細(xì),有需要的可以參考借鑒。
    2016-08-08
  • C#微信公眾平臺(tái)開發(fā)之高級群發(fā)接口

    C#微信公眾平臺(tái)開發(fā)之高級群發(fā)接口

    這篇文章主要為大家詳細(xì)介紹了C#微信公眾平臺(tái)開發(fā)之高級群發(fā)接口的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • C#的String轉(zhuǎn)換成float防止精度丟失問題的解決

    C#的String轉(zhuǎn)換成float防止精度丟失問題的解決

    這篇文章主要介紹了C#的String轉(zhuǎn)換成float防止精度丟失問題的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#多線程系列之原子操作

    C#多線程系列之原子操作

    本文詳細(xì)講解了C#多線程的原子操作,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Unity3D實(shí)戰(zhàn)之答題系統(tǒng)的實(shí)現(xiàn)

    Unity3D實(shí)戰(zhàn)之答題系統(tǒng)的實(shí)現(xiàn)

    本文將用Unity3D制作一個(gè)答題系統(tǒng),可以從文本文檔中提取題目和分?jǐn)?shù),然后綁定到UI上,在答題的過程中,自動(dòng)判斷分?jǐn)?shù),自動(dòng)判斷正確率。感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • C#實(shí)現(xiàn)NPOI的Excel導(dǎo)出詳解

    C#實(shí)現(xiàn)NPOI的Excel導(dǎo)出詳解

    這篇文章主要介紹了C#實(shí)現(xiàn)NPOI的Excel導(dǎo)出的示例代碼,文中的實(shí)現(xiàn)過程講解詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • C#如何獲取文件全路徑、目錄、擴(kuò)展名、文件名稱

    C#如何獲取文件全路徑、目錄、擴(kuò)展名、文件名稱

    這篇文章主要介紹了C#如何獲取文件全路徑、目錄、擴(kuò)展名、文件名稱問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#使用NPOI導(dǎo)出Excel類封裝

    C#使用NPOI導(dǎo)出Excel類封裝

    這篇文章主要為大家詳細(xì)介紹了C#使用NPOI導(dǎo)出Excel類封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 比Math類庫abs()方法性能更高的取絕對值方法介紹

    比Math類庫abs()方法性能更高的取絕對值方法介紹

    這篇文章主要給大家介紹了一種比Math類庫abs()方法性能更高的取絕對值方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

肃北| 丰台区| 侯马市| 托里县| 莒南县| 留坝县| 大田县| 齐河县| 丰顺县| 剑河县| 庆城县| 吴桥县| 兴业县| 焉耆| 西青区| 普兰店市| 桓台县| 巴马| 千阳县| 会宁县| 寿阳县| 溧水县| 六安市| 神池县| 金川县| 中方县| 浠水县| 北海市| 长沙县| 芦山县| 咸宁市| 中宁县| 宜城市| 枞阳县| 大同县| 宁武县| 简阳市| 睢宁县| 鄱阳县| 肃南| 靖宇县|