草庐IT

vertex_shader

全部标签

Unity中Shader编译目标级别

文章目录前言一、ShaderModel二、Shader编译目标级别法1:#pragmatarget3.0法2:#pragmarequireintegersgeometry三、测试代码前言针对不同平台的特性,所做的一些功能一、ShaderModelShaderModel由微软提出,要求显卡厂商按SM级别提供对应的功能与指令支持不同的SM包含不同的指令集与Shader规范高版本的SM时低版本的超集微软Shader帮助文档二、Shader编译目标级别法1:#pragmatarget3.0Shader编绎目标级别,默认值为2.5可以通过#if(SHADER_TARGET●2.0:●2.5:deriva

Unity中Shader URP 简介

文章目录前言一、URP(UniversalRenderPipeline)由名字可知,这是一个通用的渲染管线1、Universal(通用性)2、URP的由来二、Build-inRenderPipeline(内置渲染管线)1、LWRP(LightWeightRenderPipeline)2、HDRP(HighDefinitionRenderPipeline)3、URP(UniversalRenderPipeline)4、ScriptableRenderPipline(可编程渲染管线)前言在这篇文章中,我们主要介绍一下Unity中的URP(通用渲染管线)是什么一、URP(UniversalRende

【unity shader】水体渲染基础-基于texture distortion的流体流动材质

1.基于uv的texturedistortion当液体静止时,它在视觉上与固体没有太大区别。但大多数时候,我们的性能不一定支持去实现特别复杂的水物理模拟,需要的只是在常规的静态材料的表面上让其运动起来。我们可以对网格的UV坐标实现动态变化,从而让表面的纹理效果实现变形的动态变化。1.1.uv实时变化我们直接生成一个默认unlitshader,然后赋予其对应的纹理图片,并且写入随时间变化的uv更新函数。//infragshaderi.uv+=_Time.y;为了实现随机方向的uv变化,我们这里引入一张指示流动方向的贴图。float2flowDir=tex2D(_FlowMap,i.uv);i.u

【unity插件】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件

文章目录前言地址描述Demo演示Installation安装如何玩演示用法使用示例完结前言一般的shader无法直接使用在UI上,需要在shader中定义特定的面板参数,今天就来推荐github上大佬做的一套开源的一系列UGUI,Shader实现的特效——UIEffect为UnityUI提供视觉效果组件。地址https://github.com/Ankh4396/UIEffect描述让我们用效果来装饰你的UI!您可以根据需要从脚本和检查器中控制参数。AnimationClip是理所当然的!可用效果元件特征截屏UI效果结合一些视觉效果。效果模式:灰度、棕褐色、Nega、像素化。颜色模式:乘法、填

【Unity-Shader脚本】0基础学会通过用Unity-Shader脚本渲染图像数据(NV21,NV12,RGBA数据)详细教程--附demo,NV21测试图像,YUV图像查看器。

【Unity-Shader脚本】0基础学会通过用Unity-Shader脚本渲染图像数据(NV21,NV12,RGBA数据)详细教程--附源代码及测试工程。前言Unity-Shader代码部分讲解什么是Unity-ShaderUnity-Shader中编写格式Unity-C#代码部分讲解Unity-界面部分讲解及Demo使用说明功能演示控件的绑定关系调试技巧程序扩展NV12图像数据的渲染BRG图像数据的渲染图像的镜像Demo工程说明前言  最近有一个需求是需要我在Unity中将获取到的图像数据来展示在Unity的界面之中。功能其实很简单,熟悉Unity-Shader的小伙伴可能很快就可以做出来

Unity Shader 学习(一):初识ShaderLab -- 以“Unlit Shader”模板为例 01

UnityShader学习(一):初识ShaderLab--以“UnlitShader”模板为例01前言一、创建Shader二、数据类型1.属性数据类型2.着色器数据类型(Cg/HLSL)三、语义1.语义的作用以及需要语义的时机1.顶点着色器输入2.片元着色器输入3.片元着色器输出四、CGInclude文件、预处理指令与宏前言阅读本文前需要对渲染流程有简单了解,并且要知道UnityShaderLab、Cg/HLSL大概是什么,它们并不是一回事。然后,看什么教程都不如直接看官方文档:ShaderLab-Unity手册HLSL参考一、创建Shader首先创建一个UnlitShader模板(Proj

unity URP 利用particle system制作简单的shader交互

首先这里制作了一个简单交互,使用shadergrapgh,根据计算距离和变化数值的差实现交互后的扩散,同时计算消散遮罩让它逐渐谈去。将他赋予材质物体,根据脚本传入位置和逐渐变化的大小后,呈现这样的效果。但是,shadergraph这样的工具,在做这种效果非常快的同时,也存在不少缺点,比如这里我希望我传入的位置和大小变化都是数组,使用shadergraph就不太好办了。这时候就需要把它翻译成代码,根据连线图的逻辑翻译即可,此外把传入的位置和size值替换为数组。Shader"yourname"{Properties{_MainTex("Texture",2D)="white"{}_HitPos(

Unity中Shader的深度缓冲区

文章目录前言一、什么是深度缓冲区深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区在这里插入图片描述二、什么是深度信息三、深度缓冲区的作用前言Unity中的深度缓冲区一、什么是深度缓冲区深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区深度缓冲区:顾名思义存放的是代表模型深度的值的一个缓冲区而这个值是由模型顶点的z值转化得到一个介于0和1之间的一个值二、什么是深度信息三、深度缓冲区的作用用上图做例子:图中的圆在三角形前面在渲染时,先渲染圆,后渲染三角形如果不用深度缓冲区控制是否渲染的话三角形被遮盖的部分还是会被绘制一遍,比较消耗性能这时,我们就可以使用深度缓冲区取消被遮盖区域的绘制但是,对

Unity Shader 学习(二):初识ShaderLab -- 以“Unlit Shader”模板为例 02

UnityShader学习(二):初识ShaderLab--以“UnlitShader”模板为例02前言一、UnlitShader模板中的函数1.UnityObjectToClipPos2.TRANSFORM_TEX3.tex2D二、CGInclude中的数据结构1.顶点着色器输入结构2.片元着色器输入结构三、Cg/HLSL中用到的函数方法1.构造函数(向量类型)前言上一篇:UnityShader学习(一):初识ShaderLab–以“UnlitShader”模板为例01在UnlitShader模板中引用了UnityCG.cginc中的很多宏和函数方法,这篇继续学习模板中的几个函数以及Unit

unity shader 实现通用描边shader -文字描边-字体描边

前言在制作游戏时,可以遇到要对字体添加描边的需求,unity的UGUI自带的OutLine组件,描边效果不好,宽度过大会出现穿帮,顶点数量也会增加,性能不好,如果对于有几百字,顶点数量会很多,而且无法扩展功能可以看出Outline创建了4个方向的文字Unity5.2以前的版本要求,每一个Canvas下至多只能有2^16-1=65535个顶点(使用2个字节(16位)存储顶点索引),超过就会报错以上的种种原因,让我们不得不自己编写文字图片的描边shader在网上找了一圈资料后,发现一篇不错的文章,这个应该是自己实现文本shader最经典的文章但是好像都没有对uv偏移进行说明(最难的地方)效果展示S