【unity造轮子】Unity ShaderGraph使用教程与各种特效案例

简介: 点关注不迷路,持续输出干货文章。嗨,大家好,我是向宇。最近在玩ShaderGraph,决定把我自己实验的所有效果记录到这篇博客中,附带完整高清的连线动态图,希望对想要学习ShaderGraph的同学有所启发。后续有发现一些新的ShaderGraph我还会继续进行更新。

@[TOC]

> ShaderGraph官方案例:[https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary](https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary)


# 一、前言

点关注不迷路,持续输出干货文章。


嗨,大家好,我是向宇。最近在玩ShaderGraph,决定把我自己实验的所有效果记录到这篇博客中,附带完整高清的连线动态图,希望对想要学习ShaderGraph的同学有所启发。后续有发现一些新的ShaderGraph我还会继续进行更新。


这里我就不对ShaderGraph基础使用进行说明了,想了解的同学可以去看这篇文章:

[Shader Graph入门](https://blog.csdn.net/zaizai1007/article/details/126694899)


工程源码见文章末尾。

# 二、ShaderGraph

## 1.什么是ShaderGraph

ShaderGraph是Unity中的一个可视化工具,用于创建和编辑图形着色器。其意义在于简化编写复杂着色器的过程,减少对具体编程语言的依赖,使艺术家和设计师可以更方便地创建各种美术效果。使用ShaderGraph可以通过图形界面设置着色器属性,包括颜色、纹理、光照等,并在视窗预览中即时显示结果,从而快速迭代和调整着色器。


使用ShaderGraph需要先安装Unity 2018.1或以上版本,并添加ShaderGraph插件。打开ShaderGraph面板后,可以通过拖放节点并连接它们来创建着色器。ShaderGraph的节点包括输入输出、数学运算、纹理、光照、特殊效果等,用户可以根据需求选择相应的节点组合成自己的着色器。


## 2.在使用ShaderGraph时需要注意以下几点:


1. ShaderGraph的使用需要一定程度的图形学知识,比如了解顶点、片段着色器的渲染流程、如何结合Unity的材质编辑器等。


2. 当图形效果非常复杂时,ShaderGraph可能无法满足需求,需要手写代码实现。


3. ShaderGraph创建的着色器可能会对性能产生影响,需要在实际项目中评估并做出优化。


4. ShaderGraph虽然简化了编写着色器的过程,但对于一些高级的特殊效果,还是需要一定的编程技能。


## 3.优势

相比于传统的手写着色器,ShaderGraph具有以下几个优势:


1. 可视化编辑。ShaderGraph采用可视化编辑方式,通过拖放节点连接来组合着色器,避免了繁琐的手写代码,并使着色器的结构更加清晰易懂。


2. 更少的错误。ShaderGraph采用了强类型的节点更新机制,可以避免传统的手写着色器中常发生的错误,如拼写错误、语法错误和类型错误。


3. 更好的可维护性。由于ShaderGraph采用了可视化编辑方式,因此着色器更容易被理解和维护。此外,ShaderGraph还支持版本控制,可以方便地将着色器与其他团队成员共享和同步。


4. 更快的迭代。 ShaderGraph允许用户在视窗预览中实时查看更改后的着色器效果,这样可以更快地迭代和调试着色器,并提高开发效率。


5. 更易扩展。ShaderGraph提供了大量的预制节点,包括数学、贴图、颜色、光照等节点,且支持自定义节点,因此开发者可以自行扩展和添加节点。


综上所述,ShaderGraph具有可视化、易于理解和维护、快速迭代以及易于扩展等优势,特别适合那些不想深入学习编写复杂着色器代码的设计师和艺术家。同时,虽然对于更高级的着色效果仍然会需要编程技能,但ShaderGraph能够帮助开发者更快速的实现初步效果,实现复杂着色效果需要的编程技能可以由技术人员来负责。

## 4.项目

其实之前我就对ShaderGrap有进行一些使用分享,不过没有进行系统的整理,有需要的可以去看看之前的,这里我贴出链接地址:


[人物移动到树后面,不被遮挡的效果](https://blog.csdn.net/qq_36303853/article/details/130373377?csdn_share_tail=%7B%22type%22:%22blog%22,%22rType%22:%22article%22,%22rId%22:%22130373377%22,%22source%22:%22qq_36303853%22%7D)


[Shader Graph实现传送门效果](https://blog.csdn.net/qq_36303853/article/details/130448456?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168767352616800211539075%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168767352616800211539075&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-130448456-null-null.268%5Ev1%5Ekoosearch&utm_term=Shader&spm=1018.2226.3001.4450)


[unity实现一个刮刮乐效果](https://blog.csdn.net/qq_36303853/article/details/131366361?spm=1001.2014.3001.5501)

# 三、实例效果

## 边缘发光

主要节点:FresnelEffect,

原理:Fresnel Effect,菲涅耳效应,根据观察角度产生不同反射率从而对表面效果产生影响,当你靠近时,会反射更多的光。菲涅耳效应节点通过计算表面法线与视线方向的夹角来近似。这个角度越大,返回值越大。这种效果经常被用来实现边缘照明,这在很多艺术风格中都很常见

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200820091337413.gif#pic_center)


## 进阶:带方向的菲涅尔边缘光效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200820193614200.gif#pic_center)


## 裁剪

主要节点:Position 、AlphaClip

原理:AlphaClip的值如果比Alpha的值大,则会不显示

注意:一定要调PBR Master面板的Alpha参数,否者不会显示出来效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200819194005762.gif#pic_center)


## 进阶 带边缘色的裁剪

进阶:在裁剪的基础上添加裁剪边缘光

首先利用Smoothstep做出一个边缘渐变

Smoothstep:如果输入In的值分别在输入Edge1和Edge2的值之间,则返回0和1之间的平滑Hermite插值的结果。如果输入In的值小于输入Step1的值,则返回0;如果大于输入Step2的值,则返回1

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200819210118141.gif#pic_center)


## 溶解

主要节点 SimpleNoise

注意:一定要调PBR Master面板的Alpha参数,否者不会显示出来效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200819194506124.gif#pic_center)

## 进阶 带边缘色溶解

溶解边缘添加发光,原理就是对Noise噪声做两个Step,然后相减,再乘个颜色,连到Emission发光节点上

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200820093211450.gif#pic_center)


## 卡通阴影

主要节点NormalVector、DotProduct、SampleGradient

原理:使用Sample Gradient设置几个阴影色块颜色

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200827092808619.gif#pic_center)


## 水波纹

主要节点 TillingAndOffset 、Lerp

原理:通过Tilling And Offset节点的Offset来控制水纹的UV偏移,然后再使用Lerp将水纹和主贴图做一个线性差值

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200820110824163.gif#pic_center)



## 积雪效果

主要节点 NomalVector 、DotProduct

原理:使用一个向上的 Vector3和 模型的 Normal Vertor(法线向量) 点乘,得到的是 一个标量,表示模型法线向量和垂直向量的夹角(方向的相似度),然后通过 Step过滤得到要显示白色的部分,将要显示的 白色部分再和一个噪声相乘后输入到Master的Emission发光槽中。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200821140246947.gif#pic_center)


## 不锈钢效果、冰晶效果

主要节点 ViewDirection.、TillingAndOffset、SimpleNoise

原理:由View Direction视角移动, 引发Tilling And Offset 节点 移动 贴图,产生的效果。注意View Direction使用Tangent切线空间。该效果也可用于冰晶效果。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200821153840154.gif#pic_center)


## UV抖动

主要节点:UV、Simple Noise、Split

原理,使用Split将UV分开成x和y两个分类,对x分类做一个噪音抖动,最后和y再合并作用到主贴图的UV上。

实现类似老电视屏幕闪烁的效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200821172940944.gif#pic_center)


## 水面上下波动效果

主要节点:Gradient Noise、Position

原理:使用Gradient Noise随机噪声,再通过一个 Normal Vector结点,代表垂直于物体的法向量,接着,对Position进行一个叠加。

注意Normal Vector和Position的Space都选择Object空间

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200821090243176.gif#pic_center)


## 红旗飘飘

主要节点:Simple Noise、UV、Position

原理:通过噪声的UV移动,形成一个动态移动的噪声,作用到Position上,为了让旗的根部所以在通过一个UV的x分量来限制根部的噪音

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200825180725675.gif#pic_center)


## 马赛克

主要节点:UV、Posterize

原理:Posterize的作用是色调分离

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200828085532324.gif#pic_center)


## 无贴图水球

主要节点:UV、Ellipse、Step

原理:通过UV的y方向构造一个垂直渐变的UV,作为噪声的Step边缘,形成一条波浪,最后差值两个颜色,再用形状做裁切。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200824180456436.gif#pic_center)


## 无贴图火焰

主要节点:Voronoi、Tiling And Offset、Blend

原理:通过两个Voronoi的融合,得到类似火焰向上燃烧的形状,再通过UV和一个Vector 2的Distance制造两个圆形区域,分别作为火焰内心和外围的区域,再合火焰形状相乘,最后再乘上颜色。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200826091139494.gif#pic_center)



## 无贴图旋涡

主要节点:Twirl、Voronoi

原理:使用Twirl对Voronoi产生一个旋涡形状。

可以用于实现传送门的效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2020082615244632.gif#pic_center)


## 无贴图闪电

主要节点:Simple Noise、Rectangle

原理:噪声通过Rectangle后,可以形成类似闪电的形状

一个UV向下移动的噪声和一个UV向上移动的噪声相加,再通过Rectangle,则可以形成动态闪电效果。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200826141606140.gif#pic_center)


## 全息效果

主要节点:Position、Fraction、Time、Fresnel Effect

原理:通过Fraction获取Position的y分量得到一个条纹效果,再通过UV移动得到一个扫描的效果,最后和菲涅尔效果叠加。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200827145054559.gif#pic_center)


## 水波纹效

主要节点:UV、Sine

原理:通过UV和Sine构造一个圆心向外扩散的效果,再作用到贴图的UV上。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200902144320464.gif#pic_center)

## 高斯模糊

具体实现参见这篇文章:[Unity ShaderGraph实现图片的高斯模糊效果](https://linxinfa.blog.csdn.net/article/details/112252490)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210105214732888.gif#pic_center)

## 自发光

### 1.我们先看下PBR ShaderGraph(Lit ShaderGraph)下的自发光效果。

使用自发光贴图,输入到Emmision,有了自发光效果:

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210105195318379.gif#pic_center)

### 2.Unlit ShaderGraph中的自发光

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2021010609163096.gif#pic_center)


## 粒子系统溶解效果

具体实现参见这篇文章:[Unity ShaderGraph溶解效果运用到粒子系统中](https://linxinfa.blog.csdn.net/article/details/112549856)

## 物体靠近局部溶解

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/b713adc433aa421eb13a840378989de0.png)



```csharp


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

/// <summary>

/// 脚本挂在到 需要溶解的物体上

/// </summary>

public class Main : MonoBehaviour

{


   /// <summary>

   /// 材质球

   /// </summary>

   public Material mat;

/// <summary>

/// 要靠近的物体

/// </summary>

   public Transform m_targetObj;

   void Start()

   {

     

   }


 

   void Update()

   {

       mat.SetVector("Vector3_B7D1FB9C",m_targetObj.position);

   }

}

```

运行效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210113110924665.gif#pic_center)

## 物体靠近局部显示

及与上面相反的效果,只需调整下如下几个地方

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2021040616253016.png?x-oss-process=/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbnhpbmZh,size_16,color_FFFFFF,t_70#pic_center)

运行效果如下

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210406162912998.gif#pic_center)

## 2D描边效果

具体实现参见这篇文章:[Unity ShaderGraph 2D描边效果、不规则描边效果](https://linxinfa.blog.csdn.net/article/details/114289274)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210313165325870.gif#pic_center)

## 子弹拖尾效果

具体实现参见这篇文章:[Unity使用ShaderGraph配合粒子系统,制作子弹拖尾特效](https://linxinfa.blog.csdn.net/article/details/114822797)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210315155833930.gif#pic_center)

## 冰块效果,一只被冻住的鸡

工程地址:https://gitcode.net/linxinfa/unityurpiceeffect

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/1c3aee0dddae4c35a780ed18ad8e7fec.png)

效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2ea1ddb8f1d04fee9c6e6ebe91cdeade.gif#pic_center)

## 弯曲世界

这里的弯曲只是一种视觉效果,不影响碰撞盒子等物理物体。

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/202103191033186.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2Mzc4MDQ5,size_16,color_FFFFFF,t_70#pic_center)


![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210319103322886.gif#pic_center)

## 黑洞吸收效果

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210319103344684.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2Mzc4MDQ5,size_16,color_FFFFFF,t_70#pic_center)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210319103347249.gif#pic_center)



## 能量罩

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/85080a29692b460d91a215da6a4f0e56.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/48553cc1f721454297814b5617610794.png)

## 激光光束

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/6928b99c22c9447f87799ab6f2283ab5.png)


![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/f392f1ffc1c049bda9c41d24090fc506.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/28ce4c99ec13407ab0c89b2203731f23.png)

## 管道液体流动

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/126e0f31275043de963668a6651e73ee.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/60025a06baa742608e30ba088429fb6a.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/f398d6fc301f445bb474e7751f1139c4.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/5adfe7f051b243a7b88b20a0f66f6f4c.png)

## 水瓶液体

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/0df927e0cb5645469935a671ca2724ac.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/95ef179a4e1a4e198078825b5f2c65d8.png)

脚本挂载到使用材质的物体上


```csharp

using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class Wobble : MonoBehaviour

{

   Renderer rend;

   Vector3 lastPos;

   Vector3 velocity;

   Vector3 lastRot;

   Vector3 angularVelocity;

   public float MaxWobble = 0.03f;

   public float WobbleSpeed = 1f;

   public float Recovery = 1f;

   public float wobbleAmountX;

   public float wobbleAmountZ;

   float wobbleAmountToAddX;

   float wobbleAmountToAddZ;

   float pulse;

   float time = 0.5f;


   // Use this for initialization

   void Start()

   {

       rend = GetComponent<Renderer>();

   }

   private void Update()

   {

       time += Time.deltaTime;

       // 随着时间的推移减少抖动

       wobbleAmountToAddX = Mathf.Lerp(wobbleAmountToAddX, 0, Time.deltaTime * (Recovery));

       wobbleAmountToAddZ = Mathf.Lerp(wobbleAmountToAddZ, 0, Time.deltaTime * (Recovery));


       // 做一个减小摆动的正弦波

       pulse = 2 * Mathf.PI * WobbleSpeed;

       wobbleAmountX = wobbleAmountToAddX * Mathf.Sin(pulse * time);

       wobbleAmountZ = wobbleAmountToAddZ * Mathf.Sin(pulse * time);


       // 修改着色器参数

       rend.material.SetFloat("_WobbleX", wobbleAmountX);

       rend.material.SetFloat("_WobbleZ", wobbleAmountZ);


       // 速率

       velocity = (lastPos - transform.position) / Time.deltaTime;

       angularVelocity = transform.rotation.eulerAngles - lastRot;



       // 摆动

       wobbleAmountToAddX += Mathf.Clamp((velocity.x + (angularVelocity.z * 0.2f)) * MaxWobble, -MaxWobble, MaxWobble);

       wobbleAmountToAddZ += Mathf.Clamp((velocity.z + (angularVelocity.x * 0.2f)) * MaxWobble, -MaxWobble, MaxWobble);


       // 保持最后的位置

       lastPos = transform.position;

       lastRot = transform.rotation.eulerAngles;

   }

}

```

## 星体

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/44db317413ef4c09892088d152b2d449.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/5b47eaf079954cd6b530f3b389776e4e.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/b3b013688e864a56b974accb4ef4e18c.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/f059a1e3df1e48828e10063bf4f00c71.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/15e6363f7c0543d681d90e2a4db74eff.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/c5abea78760b427db545e078c768e559.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/11a031ed493d41ccacae3d478d36e219.png)

使用涅菲尔效果实现边缘发光,然后使用时间控制噪声节点偏移,就出现类似星星闪烁的感觉,


然后最重要的是需要做后处理设置,

首先需要安装PostProcessing包

然后需要设置相机

然后再Hierarchy面板右键Volume–Global Voume

这是会有一个Global Volume物体,首先设置Volume组件上Profule,点击New即可

然后点AddOverride,添加Tonemapping和Bloom,

设置Bloom上的Intensity和Tint即可,调整数字和颜色,

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/1bf2e14332154a41b9e8bac00a306757.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2f7a168046004f63bfdb98b6585d99f9.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/825da8bdf98b481b8640ccf0590c63f7.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/8d5d14ad6f0648a798015e57f248df29.png)

## 涟漪效果

这是一种图像效果,它扭曲渲染的图像,水面上的涟漪,源码位置

[https://github.com/keijiro/RippleEffect](https://github.com/keijiro/RippleEffect)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/13c3b25e92ab450aa8ebbf58ce6069b3.png)

## 灰烬飘散(2023/7/5更新)

[教你在Unity中实现模型消融化为灰烬飘散的效果](https://linxinfa.blog.csdn.net/article/details/121932326?spm=1001.2014.3001.5502)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/5265eeab2daa462b805eaa52c8bf6c8b.gif)

## 实现在模型上涂鸦的效果(2023/7/5更新)

[使用Unity ShaderGraph实现在模型上涂鸦的效果,那么,纹个手吧](https://linxinfa.blog.csdn.net/article/details/114951109?spm=1001.2014.3001.5502)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210317224425911.gif#pic_center)

## 子弹拖尾特效(2023/7/5更新)

[Unity使用ShaderGraph配合粒子系统,制作子弹拖尾特效](https://linxinfa.blog.csdn.net/article/details/114822797?spm=1001.2014.3001.5502)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210315162137129.gif#pic_center)


![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20210315155833930.gif#pic_center)

## 溶解、火灾、全息图、像素化、卡通化、简单旗帜(2023/7/5更新)

[https://github.com/andydbc/unity-shadergraph-sandbox](https://github.com/andydbc/unity-shadergraph-sandbox)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/8e491ba6e2c5498f82d295fc96d6b2b3.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/b36aeac03e1d46d296ced04ae73bd3c5.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/882d0eee756d4961bdf443405262cf48.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/d2db06aec7ee4d01859fd4d621f40a6c.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/200f81847e3847ebaf4d1b22cd42101d.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/0c01c5585ecc4f6c9368f14061ef5763.png)

## 弯路和世界弯曲效果(2023/7/8更新)

[https://blog.csdn.net/qq_36303853/article/details/131604523?spm=1001.2014.3001.5501](https://blog.csdn.net/qq_36303853/article/details/131604523?spm=1001.2014.3001.5501)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/778fc528c36044e4880b8c379b579e2e.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/e52d11d647c446c08af6da34911c4466.gif#pic_center)

## 实现2d图片多种描边效果(2023/7/9更新)

[https://blog.csdn.net/qq_36303853/article/details/131624412](https://blog.csdn.net/qq_36303853/article/details/131624412)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/81d3fc6d04a84db9a4d831424519b011.png)


## 待续


# 源码

后面有空我会整理好放上来

[https://gitee.com/qimingzhihaonan/shader-graph](https://gitee.com/qimingzhihaonan/shader-graph)

# 参考

【文章】:https://blog.csdn.net/m0_46378049/article/details/115000628

【文章】:https://blog.csdn.net/linxinfa/article/details/108049048


# 完结


赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的`点赞评论和关注`,以便我第一时间收到反馈,你的每一次`支持`都是我不断创作的最大动力。当然如果你发现了文章中`存在错误`或者有`更好的解决方法`,也欢迎评论私信告诉我哦!


好了,我是`向宇`,[https://xiangyu.blog.csdn.net](https://xiangyu.blog.csdn.net)


一位在小公司默默奋斗的开发者,出于兴趣爱好,于是最近才开始自习unity。如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/img_convert/2383f06bf1923135bf4844e7195db969.jpeg#pic_center =300x200)

目录
相关文章
|
4月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
188 3
|
4月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
309 0
|
4月前
|
API 图形学
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
|
4月前
|
图形学
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
|
3月前
|
图形学 开发者
【独家揭秘】Unity游戏开发秘籍:从基础到进阶,掌握材质与纹理的艺术,打造超现实游戏视效的全过程剖析——案例教你如何让每一面墙都会“说话”
【8月更文挑战第31天】Unity 是全球领先的跨平台游戏开发引擎,以其高效性能和丰富的工具集著称,尤其在提升游戏视觉效果方面表现突出。本文通过具体案例分析,介绍如何利用 Unity 中的材质与纹理技术打造逼真且具艺术感的游戏世界。材质定义物体表面属性,如颜色、光滑度等;纹理则用于模拟真实细节。结合使用两者可显著增强场景真实感。以 FPS 游戏为例,通过调整材质参数和编写脚本动态改变属性,可实现自然视觉效果。此外,Unity 还提供了多种高级技术和优化方法供开发者探索。
59 0
|
4月前
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
4月前
|
Apache 图形学
WebGL☀️Unity WebGL适配到各平台的教程
WebGL☀️Unity WebGL适配到各平台的教程
|
4月前
|
开发工具 图形学 Android开发
Pico Neo 3教程☀️ 二、从 PicoVR Unity SDK 迁移至 Unity XR SDK
Pico Neo 3教程☀️ 二、从 PicoVR Unity SDK 迁移至 Unity XR SDK
|
6月前
|
图形学
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(下)
【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例
149 0
|
4月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
222 6
下一篇
DataWorks