草庐IT

vertex_shader

全部标签

UE4 Shader 常用函数 学习笔记

Add:快捷键a将两数相加,也可以将两纹理相加,如下图:append(追加):Subtract(减):和加相反,特例,如下:Abs(绝对值):数学常用算法,多维也适用Multiply(乘):快捷键m数学常用算法覆盖了一层粉红色对位相乘 2乘以每一位,扩展到更多维也一样二维不能与三维相乘 Divide(除):快捷键d和乘相反Clamp(数据限制):传出来的值最小为Min,最大为Max,如果比Min小就为Min,比Max大就为Max,如下图,三维中每个数都不小于0.3,也不大于0.6Time(周期循环):变化的周期也是一秒,值是在0-1Lerp(插值):快捷键L在0.5-1范围内变动对图1和图2的

Unity极坐标Shader特效,以及使用Instanced Property实现相同材质不同参数

Unity极坐标特效先看看效果Unity极坐标Shader特效有时候我们需要在场景中摆放一些热点,用户点击之后出现互动,当然实现这个功能的方法有很多,作为一名程序员,当然是要用最简单的实现。用shader程序化实现它。啥是极坐标极坐标,又称极座标系。它是一种表示平面直角坐标系中点的方法,其中每个点都由距离原点的距离和从原点到该点的线段与某条固定轴正半轴(通常为θ=0)的夹角(逆时针为正)两个值确定。这两个值通常用(r,θ)表示,其中r表示距离,θ表示方向角度,范围在0度到360度之间。极坐标系常用于描述圆形和对称图形,以及某些物理问题中更自然地描述旋转对称性。像这种波从中间生成向往扩散的效果,

【Unity】Shader自定义GUI笔记

UnityShaderGUI笔记ShaderGUI笔记0、效果1、首先做好一个Shader,手写、SG、ASE都行,节点名称命名要规范!2、创建一个C#脚本3、画布绘制4、常用API布局类(在OnGUI类里面使用)组件类5、折叠功能6、实战7、补充功能ShaderGUI笔记0、效果可折叠展开,自定义排版1、首先做好一个Shader,手写、SG、ASE都行,节点名称命名要规范!打开Shader代码,在结尾添加上CustomEditor"这里是你创建的C#脚本的名字(类名)"//这样就可以关联在一起了位置随意不用填写路径注意:要放在大括号里面2、创建一个C#脚本继承自ShaderGUI类//自定义

【Unity Shader】Unity阴影

背景记录下在unity中如果想实现阴影,有哪些路子可以选择,目前看有两种1.经典的shadowmap2.planarprojectionShadowMap方式如果开启renderer组件的castshadows为on,开启平行光的light组件的shadowtype,那么就会在物体shader中寻找LightMode=ShadowCaster的Pass进行渲染场景有两个物体,平面和球体,使用unity内置的函数平面的shader为Shader"Unlit/plane_shader3"{Properties{_MainTex("Texture",2D)="white"{}}SubShader{T

【Unity Shader】Plane实现风格化水

写在前面长文警告!!!!!很久没更新博客了,,这次是要做一个风格化水效果,是基于Plane着色实现水面效果。项目:Unity2017.4.40f1Build-in,因此实现过程会跟URP有些出入(例如获取相机深度图等等),但思路都是一样的。前期准备效果拆解以《RIME》和《原神》为例:想实现的是二者融合的感觉,总结一下包含的基本效果:随着深浅变化的水颜色:浅水域湖蓝色,深水域天蓝色水面反射:反射天空盒水面折射:即折射带来的扭曲效果,类似上面RIME第一张图里那种水底的扭曲水表面波纹水底扰动:浅水域水底会有扰动效果?岸边的浮沫:《原神》没有岸边浮沫,那就参考RIME的来实现一个基本的水效果之外,

Unity shader 实现图片带圆角和边线border

1前言基本诉求:想要一张图,显示时有圆角,且还能有boarder。图可以是纯色,也可以是图片。在android,绘制这样的图非常简单,在xml声明一下就行。shapexmlns:android="http://schemas.android.com/apk/res/android">solidandroid:color="#FFFFFFFF"/>cornersandroid:radius="25dp"/>strokeandroid:width="3dp"android:color="#FFff0000"/>shape>圆角一般设置一个半径radius,边线border一般设置线宽&颜色即可。在

Unity Shader学习案例一: 流光效果

UnityShaderLab新手宝典简单Shader案例一:流光效果+相关基础知识说明Shader"Samples/LightFlow"//shader名称{ Properties//开放到材质面板的属性 { _Tex("Texture",2D)="white"{} _Color("Color",Color)=(0,1,1,1) //关键词枚举,0为X方向,1为Y方向 [KeywordEnum(X,Y)]_DIRECTION("FlowDirection",float)=0 _Speed("FlowSpeed",float)=1 } SubShader//下面是shader的主要内容

unity Shader实现半透明阴影

在shader中,要对移动端的兼容,还不想实现两套分开兼容的话,#pragmaexclude_renderersglesgles3glcore#pragmatarget4.5这两句话一定要改掉,第一行代码直接剔除了gles的渲染,而恰恰大部分移动端都是用的gles(安卓平台)所以,第一行要去掉。第二行是针对于ShaderMod,也就是一些shader新特性,可以调低,内置的lit里面是实现了两套一套高质感的用来配合pc,对gles平台专门书写了一套高性能的渲染。如果我们需要多端兼容的话,推荐target的值3或者3.5,放弃一些不兼容的特性。目前unityURP对半透明对象的处理:不能参与Sh

深入URP之Shader篇6: SimpleLit Shader分析(2) Vertex Shader

SimpeLitForwardPassVertexShader函数看看在顶点shader中都计算了什么计算顶点坐标这个和之前一样:VertexPositionInputsvertexInput=GetVertexPositionInputs(input.positionOS.xyz);再复习一下,这个函数位于ShaderVariablesFunctions.hlsl中。计算法线和切线VertexNormalInputsnormalInput=GetVertexNormalInputs(input.normalOS,input.tangentOS);输入的是ObjectSpace(OS)的法线和

Unity Shader从内置渲染管线迁移到URP

Unity在URP中将shader更新为了HLSL语言,使用build-inshader无法直接在URP中使用这里讲一下关于shader的更新方法参考FromBuilt-intoURP更新步骤Tags添加"RenderPipeline"="UniversalPipeline"CGPROGRAMENDCG改变为HLSLPROGRAMENDHLSL#include"UnityCG.cginc"更改为#include"Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"fixed4类型更改为half4函数替换对照