Shader学习旅程
文章平均质量分 85
修于心,怀于思
这个作者很懒,什么都没留下…
展开
-
UnityShader学习教程之<顶点膨胀效果 局部变胖实现思路>
shader实现模型的固定部位顶点膨胀效果原创 2022-07-11 21:23:27 · 1230 阅读 · 2 评论 -
UnityShader学习教程之<使用unity3d shder实现精灵涂鸦效果>
精灵涂鸦效果实现原理模块一: Properties模块模块二: Tags模块模块三: Pass模块模块四:CG模块rand()伪随机函数snap()伪随机函数vert()顶点入口函数frag()片段入口函数最终效果:原图素材:实现原理教程完整代码在本文附赠链接:完整shader代码使用伪随机函数和round循环函数扰动unityshader中的vertex(顶点)模块一: Properties模块界面的展示模块: Properties { //定义了主贴原创 2020-09-21 15:07:41 · 1065 阅读 · 0 评论 -
UnityShader学习教程之<流光效果+渐变灰色>
Shader流光+渐变灰色Properties面板Tags标签PassProperties面板 Properties { _MainTex ("Base (RGB)", 2D) = "black" {} _FlashColor ("Flash Color", Color) = (1,1,1,0) _Alpha ("Flash Alpha", Range(0, 1)) = 0.7 _Angle ("Flash Angle", Range(0, 360)) = 45原创 2020-08-20 21:03:03 · 651 阅读 · 0 评论 -
UnityShader学习教程之<StandardShader>
Shader开发之StandardShader[Shader解读与结合][StandardShader][ShaderForge中的基于物理的着色]实例:实现多带透明通道的图层叠加这篇主要讲shader开发之StanderShader与自己项目的结合![Shader解读与结合][StandardShader]这个shader我们可以在untiy官网上下载到:这里我们可以下载unity自带的shader!这里就是基于物理着色的shader!这里可以看到两个入口函数可以在下面的cginc库里原创 2020-05-28 19:30:50 · 1537 阅读 · 2 评论 -
UnityShader学习教程之<毛玻璃效果解析>
毛玻璃是很多项目需要的效果,以下是毛玻璃的效果代码:Shader "Custom/WaterBlur" { Properties { _blurSizeXY("BlurSizeXY", Range(0,15)) = 2 } SubShader { Tags { "IgnoreProjector"="True"原创 2017-10-26 18:05:50 · 4694 阅读 · 0 评论 -
UnityShader学习教程之<根据透明阴影图扭曲图片(褶皱)>
最近由于工作需要,研究了一个效果,起初考虑用shader实现,因此写了下面的代码: fixed4 frag (v2f i) : SV_Target { float2 uvcenter = float2(0.5,0.5); float2 uvdiffuse = mul(float2x2(...原创 2017-06-30 14:15:21 · 1388 阅读 · 0 评论 -
UnityShader学习教程之<关于颜色的详解,与shader后期调色的实现>
今天讲解shader中的颜色color.颜色是由rgb混合而成的,color = float4(r,g,b,a)这是颜色的公式!我们想要自己调色,只需要改变这些颜色的值,就可以实现颜色有自己控制了。首先我们可以输出我们的顶点颜色,看看当前的界面怎么显示!Shader "Unlit/CubeShader"{SubShader{Pass{CGPROGRAM#原创 2017-03-26 17:33:42 · 5709 阅读 · 2 评论 -
UnityShader学习教程之<详解uv坐标与加入数学算法控制uv坐标的原理>
这三个是我们本篇文章需要解决的内容!第一,我们首先了解uv坐标是什么,我的理解是uv图的坐标!那uv图是什么,我们可以用一个坐标轴来表示:上图所示,uv坐标对应的就是坐标轴上的位置和坐标,而map指的就是我们的贴图,正常情况下map和uv是对应的1比1的关系,但是我们希望只采样纹理图的某一部分,这时候我们就应该要修改我们的纹理坐标,做一些数学运算,来达到不同的效果!Shader原创 2017-03-26 13:27:23 · 16945 阅读 · 0 评论 -
UnityShader学习教程之<透明度渲染队列详解>
Queue:渲染队列渲染队列的值越小,渲染级别就越靠前,比如背景层就比如Background和Geometry显示的效果是Geometry在Background之上值:Background背景层级别的渲染值为1000Geometry几何体级别的渲染值为2000AlphaTest 通道测试2450Transparent 任何通道混合的对象使用该队列,带有透明效果的物体,玻璃...原创 2017-03-14 14:00:09 · 2137 阅读 · 0 评论 -
UnityShader学习教程之<矩阵的左乘还是右乘所导致的效果问题>
总结:矩阵的左乘还是右乘首先,在《3d数学基础:图形与游戏开发》一书的第七章矩阵的7.1.7节中讲到了关于矩阵和向量的乘法问题。结论是“行向量左乘矩阵时,结果是行向量,列向量右乘矩阵时,结果是列向量,反过来是不行的”,在DirectX中使用的是行向量,在OpenGL中使用的是列向量。接下来我解析一下在实例中遇到的问题:Shader "Unlit/任务15光照衰减的两种处理方式"{...原创 2017-04-07 11:27:57 · 6954 阅读 · 1 评论 -
UnityShader学习教程之<实现纹理的缩放平移和旋转,以及用c#代码合并两种贴图并且控制位置>
首先,我们先实现用代码在shader里面实现缩放,平移和旋转!上代码,首先是我们的shader:Shader "Unlit/贴图的平移缩放"{Properties{_MainTex("Texture", 2D) = "white" {}_UA("旋转中点x",Float) = 0.5_UB("旋转中点y",Float) = 0.5_CenterX("平移x",f......原创 2017-04-05 17:15:28 · 13462 阅读 · 2 评论 -
UnityShader学习教程之<双面材质>
我的群里面有个同学问我双面材质怎么写,我就详细的解释一下双面材质的一种做法! 第一: 首先,我们肯定需要两个pass,一个用来渲染正面,一个用来渲染背面Shader "Unlit/任务26双面材质"{ Properties { _MainTexOne ("TEXONE", 2D) = "white" {}//正面贴图 _MainTexTwo ("原创 2017-09-04 18:17:55 · 3899 阅读 · 0 评论 -
UnityShader学习教程之<UsePass和#include>
昨天,有位同学在群里面问了shader如何继承,一开始我想是不能和c#中一样的继承,但是我发现还是有方法的,这里我来探讨一下这两个方法。 方法一: 使用UsePass: 我们需要写出两个shader文件,shader中肯定会有子着色器和pass通道,这是众所周知的,这里我先列举两个简单的shader代码: shader1:被引用的shaderShader "Unlit/myshader1"原创 2017-08-27 13:18:56 · 6767 阅读 · 0 评论 -
UnityShader学习教程之<详解uv坐标,c#类似uv坐标的值以及贴图操作>
基础篇(五)一.uv坐标工作的时候一直都听到同事们再说uv坐标,其实我们对这个词很熟悉,但是说到真正是什么,却发现自己了解的并不透彻,写一篇博客,梳理下基础,了解uv到底是干嘛的! 1.uv是什么? 2.uv贴图的作用是什么? uv就是我们屏幕上的像素所显示的位置,我们可以根据uv坐标拿到每个uv点上面的颜色值。二.基于shader的uv坐标控制图形,旋转缩放和平移的操作原创 2017-06-30 15:14:57 · 8969 阅读 · 5 评论 -
UnityShader学习教程之<语法规范以及光照模型>
基础篇(四)shader结构解析:Shader “Custom/Diffuse Texture” { //着色器 “名称” Properties { // 属性定义 _Color ("Color", Color) = (1,1,1,1) // 内部变量名(原创 2017-05-23 19:48:22 · 862 阅读 · 0 评论 -
UnityShader学习教程之<CG语言基础>
基础篇(三)CG语言基础基本数据类型: float:32位浮点数据float _Specular = 1.0half:16位浮点数据half _Specular = 1.0Int:32位整形数据int _Specular = 1Fixed:12位定点数fixed _Specular = 1.0Bool:布尔数据,用于判断if和条件操作符if(logocolor.a == 0){ colo原创 2017-05-18 19:28:02 · 1310 阅读 · 0 评论 -
UnityShader学习教程之<数学基础向量和矩阵>
基础篇(二)向量点,向量和标量的区别: 点是一个没有大小之分的空间中的位置 向量是一个有模有方向但是没有位置的量 标量是一个只有模没有方向的量向量和向量的加法: A+B = (Ax+bx,Ay+By) 向量和向量的减法: A-B = (Ax-bx,Ay-By) 注意:向量不能和标量相加减,不能和维度不一样的向量相加减 向量和标量的除法: A/a = (Ax/a,Ay/a) 向量和...原创 2017-05-17 19:36:45 · 2611 阅读 · 0 评论 -
UnityShader学习教程之<图形流水线>
基础篇(一)图形编程硬件: 历史:图形编程硬件诞生自2003年,简称为GPU编程支持功能: 1.支持顶点和片段的可编程能力 2.支持IEEE32位的浮点运算(IEEE32是国际电工委员会置顶的浮点书表示方式,主要内容是用四个字节来表示浮点数,可以表示的数据的负数范围是(-2*2)^128~-2^127,2^-127~2*2^128) 3.支持四元向量和四阶矩阵 4.提供分支和循环的控制语句...原创 2017-05-17 17:46:23 · 2761 阅读 · 1 评论