自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

座右铭

每日三省吾身:修身,强心,铭志

  • 博客(75)
  • 资源 (2)
  • 收藏
  • 关注

原创 Unity技巧合集

TextMeshPro的中文字设计

2020-08-02 06:41:17 351

原创 【入口】Shader效果目录

Shader效果展示【一】:https://blog.csdn.net/yzy1987523/article/details/106028398 Shader效果展示【二】:https://blog.csdn.net/yzy1987523/article/details/106164554 Shader效果展示【三】:https://blog.csdn.net/yzy1987523/article/details/106294827 Shader效果展示【四】:https:..

2020-06-10 22:22:02 870

原创 每天一个小技巧【8】·贝塞尔曲线

贝塞尔曲线是一种平滑曲线,常见于PS中的钢笔工具,在Unity中一般用来绘制弹道轨迹和轨道镜头 。其原理可以看成是将棱角沿中位线打磨,一直重复。这就要用到公式:备忘:应用贝塞尔曲线公式实现运动轨迹:using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// 贝塞尔曲线应用/// </summary>public cla..

2020-08-17 09:02:11 453

原创 每天一个小技巧【7】·简单加密

加密原理:将文本文件每行读取,取其中的字母,偏移若干位数,区分大小写。因为只混淆了字母,所以保持了标点、数字和格式。操作步骤:将脚本挂在空物体上 将文本保存在txt文件中,并拖入textAsset 执行加密文件 加密后的文本显示在text中using System.Text;using UnityEngine;public class EncryptionTool : MonoBehaviour{ public string text;//加密或解密后直接从Inspect

2020-08-16 04:58:38 208

原创 每天一个小技巧【6】·EasyAR的快速应用

目前常用的几种制作AR应用的插件分别是ARCore、ARKit、EasyAR。其中ARKit是苹果开发,ARCore是Google开发,EasyAR是国产。而在国内做开发的话用EasyAR更有优势,毕竟很多AR应用更依赖云服务。EasyAR在B站就有很详细的视频教程,覆盖了几乎全部功能。这儿就简单整理了一下如何快速实现一款AR应用的过程。1.进入easyar开发者中心:https://www.easyar.cn/2.下载插件:https://www.easyar.cn/view/downlo

2020-08-07 13:30:50 555

原创 每天一个小技巧【5】·数位板笔刷压感设置

虽然是个程序员,但是感觉还是需要个数位板,比如可以做笔记、绘制光学路径、分析运动和受力过程、公式计算,或者放松时涂个鸦。(虽然感觉ipad+苹果笔或许更合适)我的数位板是有压感功能的,但想要在PS中让笔刷有压感效果,就需要有特别的设置。1.创建一个PSUserConfig.txt,粘贴:# Use WinTabUseSystemStylus 02. 将该文件放到:AppData\Roaming\Adobe\Adobe Photoshop 2020\Adobe Photoshop 202

2020-08-06 12:23:03 5177

原创 每天一个小技巧【4】·序列化工具

封装了一个序列化和反序列化的工具,包含Json、XML和Binary类型。using System.IO;using System.Runtime.Serialization.Formatters.Binary;using System.Xml.Serialization;using Newtonsoft.Json;//链接:https://pan.baidu.com/s/1Yxbesci1zRpTdZV1VJSEDQ 提取码:yoyw/// <summary>/// 序列化工具

2020-08-05 14:45:14 174

原创 每天一个小技巧【3】·帧率显示

核心脚本:using UnityEngine;/// <summary>/// 使用方式:Get时调用:实例化一个obj,添加FPSShow组件,Init/// </summary>public class FPSShow : MonoBehaviour{ Rect rect = new Rect(new Vector2(50, 20), new Vector2(800,150)); GUIStyle uIStyle=new GUIStyle(

2020-08-04 13:56:26 355

原创 每天一个小技巧【2】·秘籍指令监听

打包测试的阶段,需要有一些辅助功能,类似开无敌、无限能量、资源满格等作弊器功能。而不同功能会涉及更多输入指令,为避免与现有按键冲突,其中一个做法是用特定的组合按键来实现。此处用空格键作为秘籍开启按键,其实最好是用没有赋予功能的按键作为启动键。其他可以执行作弊的地方调用canCheat作为判断。测试阶段将该脚本放入场景中,正式发布时需要移除。using System.Collections;using System.Collections.Generic;using UnityEngin

2020-08-03 15:22:47 506

原创 每天一个小技巧【1】·TextMeshPro的中文设置

从PackageManager导入TextMeshPro 到C:\Windows\Fonts中找一套中文字体,放入Unity工程中 创建一个txt文件,粘贴下面的文字,并保存为UTF-8格式ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#¥%……&*()—+|}{【】;‘’:“”,。、《》?·`!@#$%^&*()_-+\][{}|;':",./< >?哇的一是了我不人在他有这个上们来到时

2020-08-02 06:46:58 3414

原创 一日一Shader·Blend【SS_31】

各种Blend组合所实现的效果:Blend DstColor Zero //源颜色 x 目标颜色 + 目标颜色 x 0,即multiplicative Blend DstColor SrcColor//源颜色 x 目标颜色 + 目标颜色 x 源颜色 ,即2x multiplicative【正片叠底的效果】 Blend SrcAlpha OneMinusSrcAlpha //源颜色 x 源通道+目标颜色 x(1 - 源通道)【可以受源通道影响变完全透明,但Queue要为3000】...

2020-08-01 17:15:50 419

原创 一日一Shader·切除扩展效果【SS_30_1】

根据昨天的切除原理,修改了一下,实现了一个类似进入异空间的效果。感觉这个效果还是很有用的,可以用来做角色或物体的隐藏和出现。而且考虑到有双面的效果,还可以用来显示物体的内部结构。PS:如果要做人体的剖面,需要做4套模型——表层、肌肉、骨骼、内脏。简单修改了一下脚本:Shader "MyShader/SS_30_1"{ Properties{ _MainTex("MainTexture",2D) = ""{} _BlendTex("BlendTexture",2D) = ""{..

2020-07-31 10:57:17 170

原创 一日一Shader·切除【SS_30】

今天主要利用discard进行一些效果实现。根据对象的世界坐标,进行一定的判断,让满足条件的图元显示,其他图元用discard隐藏掉。可以时实现类似扫描、探照灯、透视、切割等效果。Shader "MyShader/SS_30"{ Properties{ _MainTex("MainTexture",2D) = ""{} _BlendTex("BlendTexture",2D) = ""{} _CutAxis("Cut Axis", Vector) = (0,1,0,0) ..

2020-07-30 15:12:10 171

原创 一日一Shader·动态云【SS_29】

天空盒有3种做法:六面图、cubemap和normal texture。前面两种可以制作指定纹理的天空盒,最后一种其实是用一整张连续的图贴到天空上,一般用来做动态云,因为做动态云时不用考虑图形畸变问题。做动态云的方法有很多,只要能满足云层变化就行。当然还要考虑效率问题,所以需要用比较好的算法。返回目录:https://blog.csdn.net/yzy1987523/article/details/107561997...

2020-07-29 17:32:55 534

原创 一日一Shader·世界坐标【SS_28】

让纹理与世界坐标相关联。获取片元的世界坐标:o.worldPos = mul(unity_ObjectToWorld, v.vertex);然后根据世界坐标来取UV,注意除以Tiling的倍数。Shader "MyShader/SS_28"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Mask ("Mask", 2D) = "white" {} ...

2020-07-28 23:01:34 593

原创 一日一Shader·雾效【SS_27】

由于外出取材,断更了两天,强迫症患者的我表示太难受了。但是可不能半途而废了,还是得续上。作为研究SSS材质的前置知识点,要先研究深度图,从雾效的例子开始实现比较容易入手。Shader "MyShader/SS_27" { CGINCLUDE #include "UnityCG.cginc" sampler2D _CameraDepthTexture; fixed4 frag_depth(v2f_img i) : SV_Target { float depthTextur..

2020-07-27 21:22:44 176

原创 Shader效果展示【十二】

镜面水【20200724】https://blog.csdn.net/yzy1987523/article/details/107561585 返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451

2020-07-24 15:21:34 597

原创 一日一Shader·天空镜面反射【SS_26】

反射的原理很简单,只要知道对象的位置、镜面的法线,就能获得反射后的图像:不过,如何知道对象的位置呢?一般做法是在镜子的位置放个摄像机,或者用反射探针,不过今天就先不考虑这些问题,先实现最简单的反射效果。如果只是反射天空盒,其实比较简单,因为天空盒的位置是固定的,只要通过反射计算就能获得镜像效果。Shader "MyShader/SS_26"{ Properties { _CubeTex ("CubeTex", Cube) = ""{} } SubShader { ..

2020-07-24 15:18:03 583

原创 一日一Shader·水面折射【SG_17】

今天回看昨天做的折射的效果,发现我想的太狭隘了,我完全是按球体的光学原理来实现,所以用其他形状的透镜时,效果就是错误的。想了想,不规则透镜的折射效果更多的是一种模拟。不过,我还是想尝试实现波纹水面的折射效果,因为只用考虑一个面,所以光学模型还是比较容易构建的。将上图中的光线原理转换为几何问题:已知向量AB(-V)、向量AD(-N1)、角BAD(θ,根据V和N1计算出来)、角DAC(λ,根据θ和折射率n计算出来),求向量AC。当然,可以先简化一点,只求单位长度的向量AC,再用另外的参数..

2020-07-23 17:17:40 577

原创 一日一Shader·折射【SG_16】

按照光学原理实现折射,先构建整个过程:其中入射光其实是摄像机抓取的图像,经过球形透镜的处理,形成新的图像。按照折射公式:n1*sinA=n2*sinB,可以设定一个n=n1/n2,这样方便计算。然后依靠初中几何基础计算出最后的结果:sinA=V*N1sinB=n*sinAsin2B=2cosBsinB=2sinB(sqrt(1-sinBsinB))N2=-sin2B/N1(B=C,N1、N2外角和为2B)接受光=sinA/N2(A=D)这儿用一个自定义节点封装这个过..

2020-07-22 12:33:38 198

原创 一日一Shader·滤镜【SG_15】

今天研究折射效果,网上找的实现方式主要是抓取摄像机看到的图像,然后对该图像进行处理。涉及光学计算的部分先放一边,先实现对图像抓取的功能。有一个方法是GrabPass,但是在SRP管线下不支持。不过倒是能用ShaderGraph的方式实现图像抓取。这里有一点要注意,_CameraOpaqueTexture是比较特殊的变量,它不需要赋值,而是自动会获取当前摄像机的图像。另外ScreenPosition也比较重要,它让图像始终由当前摄像机抓取。最后,目前只对截取的图像进行了单通道渲染,..

2020-07-21 19:53:51 285

原创 一日一Shader·包裹【SS_25】

高光与法线贴图的直接结合不太好看,所以就用层叠的方式结合看看,结果实现了这种类似荔枝的效果。Shader "MyShader/SS_25"{ Properties { _MainTex("Texture", 2D) = ""{} _Normal("Normal", 2D) = ""{} _Emission("Emission",Range(0,1))=0.5 _Wrap("Wrap",Range(0,1))=0.5 ..

2020-07-20 08:45:51 145

原创 一日一Shader·卡通高光【SS_24】

高光是一种美术用语,指光源照射到物体然后反射到人的眼睛里时,物体上最亮的那个点就是高光,高光不是光,而是物体上最亮的部分——百度百科在光学模型中,高光是属于反射的一种,故又称为高光反射,受观察方向和光源方向影响。根据Blinn模型,引入h矢量,并根据下面的公式实现高光效果。Shader "MyShader/SS_24"{ Properties { _MainTex("Texture", 2D) = ""{} _Normal("N..

2020-07-19 16:09:47 352

原创 一日一Shader·基础卡通【SS_23】

卡通效果的特点是颜色呈块状,即便有过渡,也是一块块色块。要实现主要用到floor方法,将本来是过渡的颜色铺平。Shader "MyShader/SS_23" { //属性 Properties{ _MainTex("Texture", 2D) = ""{} _Normal("Normal", 2D) = ""{} _Emission("Emission",Range(0,1))=0.5 _Wrap("W..

2020-07-18 17:01:46 297

原创 Shader效果展示【十一】

法线【20200717】https://blog.csdn.net/yzy1987523/article/details/107409986 返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451

2020-07-17 15:57:46 370

原创 一日一Shader·法线【SS_22】

开始进击光学领域了,这将扩展出更多效果。先从最基础的法线开始。利用lambert原理:Shader "MyShader/SS_22" { //属性 Properties{ _MainTex("Texture", 2D) = ""{} _Normal("Normal", 2D) = ""{} _Emission("Emission",Range(0,1))=0.5 _Wrap("Wrap",Ran..

2020-07-17 15:56:37 276

原创 一日一Shader·手机版笔刷【SS_21】

之前用GL方式制作的笔刷在手机端用不了,于是只能根据最早的笔刷进行改进。其中最关键的地方是如何更换刷头。我用的是遮罩的方式,只让当前刷头显示出来,挡住其他刷头。Shader "MyShader/SS_21"{ Properties { _MainTex ("Texture", 2D) = "white" {}//不可略,否则 Graphics.Blit无法赋值 _Detail ("Detail", 2D) = "white" {} _Mask ("M..

2020-07-16 17:50:07 212

原创 一日一Shader·水瓶【SS_20】

今天这个不是原创,是照着这篇文章重新实现了一遍:https://www.patreon.com/posts/quick-game-art-18245226其核心代码:using System.Collections;using System.Collections.Generic;using UnityEngine; public class Wobble : MonoBehaviour{ Renderer rend; Vector3 lastPos; Vec..

2020-07-15 20:58:03 513

原创 一日一Shader·线性过渡【SG_14】

今天主要尝试将Time转换为锯齿形波形,类似这种:之前有用多个Node实现过,但是很显然,实现方式相当笨重。于是用数学方式实现:#ifndef CUSTOM_LIGHTING_INCLUDED#define CUSTOM_LIGHTING_INCLUDED//锯齿形波,振幅为1,input为_Time.y,T为周期void JagWave_float(float Time,float T,out float output){ float t2=fmod(Time,T);..

2020-07-14 18:56:48 184

原创 一日一Shader·圆形过渡【SG_13】

实现类似饥荒的夜晚效果:点击区域变亮,松开时又变暗。using UnityEngine;public class SG_13 : MonoBehaviour{ Material mat; string size = "_Size"; float sizeValue; string pos = "_Pos"; Vector3 posValue=new Vector3(0.5f,0.5f,0); public float speed = 1;..

2020-07-13 20:43:51 240

原创 一日一Shader·帧动画【SG_12】

做一个简单的帧动画功能。其中有2点需要注意:1.动画的播放顺序是根据图集中每个Tile的位置,这儿需要利用的公式:index=ax+y(index是每张图的序号,动画播放时该值递增;a是当前行的行数,用除法获得;y是当前列号,用取模获得;最后可以求出x,并根据x、y确定Tile的位置)。2.要使用有透明通道的图时,需要clip透明区域。返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451...

2020-07-12 09:29:06 236

原创 一日一Shader·矩阵变换【SS_19】

今天整理一下矩阵变换的通用公式,其实主要是控制旋转的方式。用了一个shader作为工具,展示不同矩阵变换的效果。Shader "MyShader/SS_19"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Height("Height",float)=0.5 _Matrix1("Matrix1",vector)=(1,0,0) _Matrix2("Matrix2",vector)=(0,1..

2020-07-11 09:47:28 179

原创 Shader效果展示【十】

笔刷·改进【20200710】https://blog.csdn.net/yzy1987523/article/details/107262762 返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451

2020-07-10 20:13:32 384

原创 一日一Shader·进阶版笔刷【SS_18】

进阶版笔刷的原理还是RT叠加,不过用的是GL的方法,用起来更灵活,可以生成一张小号的图叠加到大图上。Shader "MyShader/SS_18"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Color ("Color", Color) =(0,0,0,0) _Row ("Row", float) = 0 _Column ("Column",float) = 0 _Size("Size"..

2020-07-10 20:11:54 429

原创 一日一Shader·进阶版线框【SS_17】

之前有做过UV版线框,觉得有些效果无法实现,所以继续研究线框制作。直到看到了unity内置的GL方法,就像打开了新世界,能做的东西又变多了。今天先试试画线的功能。using UnityEngine;public class SS_17 : MonoBehaviour{ private Material lineMat; public Color lineColor; Mesh mesh; Vector3[] lines; public Mesh M..

2020-07-09 19:12:56 303

原创 一日一Shader·顶点阶段之凸起【SG_11】

今天主要是针对指定点周围的顶点进行偏移,看实现的刻印效果。之后还要研究根据遮罩图来实现刻印效果。using System.Collections;using System.Collections.Generic;using UnityEngine;[ExecuteInEditMode]public class SG_11: MonoBehaviour{ Material mat; private Transform target; public float p..

2020-07-08 19:39:38 288

原创 一日一Shader·顶点阶段之弹球【SS_16_0】

突然想做个弹球的运动过程,球触底时会形变,然后反弹。这是对我物理基础的考验,可惜运动过程终究还是没弄出来,就只做了弹性形变的过程。实现原理是在顶点着色器中对顶点进行偏移。代码:Shader "MyShader/SS_16_0"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Weight("Weight",float)=1 } SubShader ..

2020-07-07 19:10:46 231

原创 一日一Shader·笔刷【SS_15_0】

前几天有人问我,看能不能实现笔刷效果。于是花了点时间研究了一下,找到了一个最简单的方案。原理很简单,核心方法就是使用Graphics.Blit,将图传入shader中,叠加上detial,再保存该结果为RT,下次加入detial时将该结果迭代。我实现了大部分功能,还有一些细节可以根据需要进行修改。比如笔刷的力度、边缘过渡、颜色渐变等。如果还有其它的shader制作需求也可以留言,我会酌情实现。代码:using UnityEngine;public class SS_15 : M..

2020-07-06 20:02:04 360

原创 一日一Shader·钻石光泽【SG_10】

今天换换思维模式,切换到ShaderGraph的制作。(PS:SG_9制作失败了,就先不放上来了。)这个是根据之前的一个效果改编的,还是先放构造图:其中主要用到Posterize节点,它可以将平衡的过渡转为阶梯状,然后用不同方向结果的叠加后则变为一个个色值渐变的格子。返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451...

2020-07-05 09:36:05 457

原创 Shader效果展示【九】

增厚【20200704】https://blog.csdn.net/yzy1987523/article/details/107126313 返回目录:https://blog.csdn.net/yzy1987523/article/details/106676451

2020-07-04 16:44:55 419

ShaderGraph20200522.7z

能在https://blog.csdn.net/yzy1987523/article/details/106164554看到shader效果。注意:使用需要SRP(URP或HDRP都行)

2020-05-22

ShaderGraph20200515.7z

能在https://blog.csdn.net/yzy1987523/article/details/106028398看到shader效果。注意:使用需要SRP(URP或HDRP都行)

2020-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除