Shader
会思考的猴子
我知道你很急,但是路要一步步走
展开
-
Untiy 一个有意思的透视Shader
【代码】Untiy 一个有意思的透视Shader。原创 2022-08-25 13:56:52 · 363 阅读 · 0 评论 -
Unity Shader 2D图片 溶解
Shader "TintDissolve"{ Properties { [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} _Color("Tint", Color) = (1,1,1,1) [MaterialToggle] PixelSnap("Pixel snap", Float) = 0 [HideInInspector] _RendererColor("RendererColor", Colo...原创 2022-01-20 14:01:01 · 2591 阅读 · 0 评论 -
第三章 光照技术 03 环境贴图技术
项目预览图:1.读取CubeMapShader "ShaderCode/0303/CubeMape"{ Properties { // CubeMap 读取 _CubeMap("Cube Map",Cube)="white"{} _Tint("Tint",Color)=(1,1,1,1) _Expose("Expose",Float)=1.0 _Rotate("Rotate",Range(0,3.原创 2022-01-19 10:46:36 · 1018 阅读 · 0 评论 -
Unity shader Reflect 取反问题
float3view_dir=normalize(_WorldSpaceCameraPos.xyz-i.pos_world);float3reflect_dir=reflect(-view_dir,normal_dir);有时在想求这个反射方向的时候要视脚方向为啥要求反?首先应该明确的是法线方向是向外的,然后看下面的这张图t1 - t2 的方向 等于 t2朝向t1的方向然后我们再来看_WorldSpaceCameraPos.xyz-...原创 2022-01-17 11:59:56 · 859 阅读 · 1 评论 -
第三章 光照技术 02 色调映射,视差偏移,ShadowMap原理
在shader里使用了Aces,正式使用应该关闭,最后应该由后处理来开启Shader "ShaderCode/0301/BlinPhone"{ Properties { //漫反射贴图 _MainTex ("Diffuse", 2D) = "white" {} //法线贴图 _NormalMap("NormalMap",2D)= "bump"{} _NormalIntensity("N...原创 2022-01-13 13:53:41 · 399 阅读 · 1 评论 -
第三章 光照技术 01 光照模型与法线贴图
Shader "ShaderCode/0301/Phone"{ Properties { //漫反射贴图 _MainTex ("Texture", 2D) = "white" {} //法线贴图 _NormalMap("NormalMap",2D)= "bump"{} _NormalIntensity("NormalIntensity",Range(0,5)) =1 // Ao 贴图...原创 2022-01-12 10:33:57 · 333 阅读 · 0 评论 -
第二章 04 魔镜世界
项目预览图:ase:Code:Shader "ShaderCode/04/Mirror_Stencil_Code"{ Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "Queue"="AlphaTest+10" } Pass { Z...原创 2022-01-10 12:04:30 · 302 阅读 · 0 评论 -
第二章 03 藤蔓生长
模型UV从上到下不要错乱ase:Code:Shader "Unlit/VineGrow_Code"{ Properties { _MainTex ("Diffuse", 2D) = "white" {} _Grow("Grow",Range(-1,0)) = 0 _DampMin("DampMin",Float) = 0 _DampMax("DampMax",Float) =...原创 2022-01-10 09:16:50 · 857 阅读 · 1 评论 -
第二章 02 天牛质感
效果图:ASE:Code:Shader "Unlit/Matcap_Code"{ Properties { _DiffuseTex ("DiffuseTex", 2D) = "white" {} _MatCap ("MapCap", 2D) = "white" {} _MatCapAdd ("MatCapAdd", 2D) = "white" {} _RampTex("RampTex",2D) = .原创 2021-12-30 14:48:13 · 1148 阅读 · 0 评论 -
第二章 01 人物扫光
Shader "Unlit/Scan_Code"{ Properties { _MainTex ("Texture", 2D) = "white" {} _FlowTex("FlowTex",2D) = "white"{} _RimMin("Rim Min",Range(-1,1)) = 0 _RimMax("Rim Max",Range(0,2)) = 1.0 _InnerColor("InnerCol...原创 2021-12-29 10:56:08 · 981 阅读 · 0 评论 -
Unity Shader 案例(一) 鼠标点击UV居中缩放
素材透明图1:透明图2:代码:Shader "Unlit/WaveShader"{ Properties { _MainTex ("MainTex", 2D) = "white" {} _PointTex("Point Tex",2D) = "white"{} _PointColor("Point Color",Color) = (1,1,1,1) //缩放比例 ...原创 2021-12-24 17:25:53 · 1184 阅读 · 1 评论 -
第一章 05 Rim 边缘光
Shader "05_Rim"{ Properties{ // 常用五种类型 _MainTex("MainTex",2D) = "White"{} _MainColor("Main Color",Color) = (1,1,1,1) _Emiss("Emiss",Float) = 1.0 _RimPower("RimPower",Float) = 1.0 [Enum(UnityEngin...原创 2021-12-17 10:51:53 · 267 阅读 · 0 评论 -
第一章 04 Blend
Shader "04_Blend"{ Properties{ // 常用五种类型 _MainTex("MainTex",2D) = "White"{} _MainColor("Main Color",Color) = (1,1,1,1) _Emiss("Emiss",Float) = 1.0 [Enum(UnityEngine.Rendering.CullMode)]_CullMode("CullMod...原创 2021-12-17 10:03:33 · 100 阅读 · 0 评论 -
第一章 01 基本Shader
Shader "01_MiniShader" //Shader的真正名字 可以是路径式的格式{ /*材质球参数及UI面板 https://docs.unity3d.com/cn/current/Manual/SL-Properties.html https://docs.unity3d.com/cn/current/ScriptReference/MaterialPropertyDrawer.html https://zhuanlan.zhihu.com/p/93194054 */ Pro.原创 2021-12-16 18:29:45 · 318 阅读 · 0 评论 -
第一章 02 坐标映射Texturing
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "02_Texruring"{ Properties{ // 常用五种类型 _MainTex("MainTex",2D) = "White...原创 2021-12-16 18:25:48 · 107 阅读 · 0 评论 -
第一章 03 Clip
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "03_Clip"{ Properties{ // 常用五种类型 _MainTex("MainTex",2D) = "Whi...原创 2021-12-16 18:19:53 · 288 阅读 · 0 评论 -
Unity 无锯齿遮罩Shader
转载自某个大神写的,我也找不到是谁了,如果谁知道的话,我联系备注一下转载出处Shader "Custom/ImageMask"{ Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Mask ("Base (RGB)", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1.原创 2021-05-08 12:52:56 · 488 阅读 · 3 评论 -
Unity Shader Paint(未完成以后有时间再研究)
Shader "Unlit/PaintShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _BrushTex ("Brush Texture", 2D) = "white" {} _Pos("Pos",Vector)=(960,540,0,0) _Size("Size",float)=5 } SubShader { ...原创 2021-01-11 10:33:19 · 329 阅读 · 0 评论 -
Unity Shader 渐变遮罩
请根据实际用途修改成自己需要的Shader代码很简单,无非是两个alpha 相乘Shader "Unlit/TransitionTransparentShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _MaskTex ("Mask Texture", 2D) = "white" {} _TransparentAmount("Transparent Amo...原创 2020-09-15 15:45:09 · 3818 阅读 · 3 评论 -
13.2 获取深度和法线纹理 运动模糊
代码来源于冯乐乐shader入门精要Shader "Unlit/MyMotionBlurWithDepthTexture"{ Properties { _MainTex ("Texture", 2D) = "white" {} _BlurSize("Blur Size",Float) = 0.5 } SubShader { CGINCLUDE #include "UnityCG.cginc" sampler2D _MainTex; half4 _M...原创 2020-07-10 11:52:44 · 301 阅读 · 0 评论 -
Unity UGUI Image Blink shader
Shader "Unlit/ImageBlinkShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Mutiply("Mutiply",float) = 1 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { .原创 2020-06-29 10:24:52 · 319 阅读 · 0 评论 -
Unity UGUI Image UV移动shader
注意点:1.基于shader创建的材质球直接赋值到Image组件的material2.该图片使用PSD格式 (不要使用PNG和JPG等格式,不然移动会有拖尾)效果如下:Shader "Unlit/ImageUVShader"{ Properties { _MainTex ("Main Texture (RGB)", 2D) = "white" {} _ScrollXMain("ScrollX Main",Range(0,1)) = 0 _Mu...原创 2020-06-29 09:56:01 · 3611 阅读 · 0 评论 -
12.6 运动模糊
转载自 冯乐乐 代码入门精要using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class MyMotionBlur : PostEffectsBase{ public Shader myMotionBlurShader; private Material material = null; public Ma...转载 2020-05-24 17:42:48 · 230 阅读 · 0 评论 -
12.4 高斯模糊
代码来源于冯乐乐shader入门精要using System.Collections;using System.Collections.Generic;using UnityEngine;public class MyGaussianBlur : PostEffectsBase { public Shader gaussianBlurShader; pri...转载 2020-04-27 18:02:16 · 243 阅读 · 0 评论 -
12.3 边缘检测
代码转载自 冯乐乐 shader 入门精要Shader "Chapter12/MyEdgeDetection"{ Properties{ _MainTex("Main Tex(RGB)",2D) = "white"{} _EdgeOnly("Edge Only",Float) = 1.0 _EdgeColor("Edge C...转载 2020-04-27 09:24:40 · 326 阅读 · 0 评论 -
12.1 建⽴⼀个基本的屏幕后处理脚本系统
代码转载自 冯乐乐 shader 入门精要// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 12/Brightness Saturation And Contrast" { Properties {...转载 2020-04-20 22:55:28 · 221 阅读 · 0 评论 -
11.3.2 广告牌技术
代码来源于冯乐乐 shader 入门精要除了说句我 yi giao wo le ge giao giao ,不知道说啥了,可能是我太笨了,看了我半天才看懂什么意思1. 视角方向是可求的, upDir 先假设向上,可根据normal 和 upDir叉乘求得正确的rightDir;2.然后我们再根据已知的视角方向 跟 正确的 rightDir 求得正确的 upDir3. ...原创 2020-04-19 17:38:23 · 329 阅读 · 0 评论 -
11.3.1 顶点动画 流动的河流
代码来源于 冯乐乐 shader 入门精要重点就是这句代码:offset.x=_Magnitude*sin(_Frequency*_Time.y+v.vertex.z*_InvWaveLength);最开始觉的有点奇怪,为啥 是 根据 z 得到 x,后来发现 它这里是模型空间,而在unity中(在上图请勾选 Local) 你会发现它的左右是 z 上下是 x她原先的代...原创 2020-04-19 16:16:56 · 481 阅读 · 3 评论 -
纹理动画 11.2.2 滚动的背景
摘录来自: 冯乐乐. “Unity Shader入门精要。” Apple Books.唯一需要注意的是 frac 这个函数是取里面的小数部分Shader "Chapter11/UVAnimation"{ Properties { _BGTex ("Far Texture (RGB)", 2D) = "white" {} _MainTex ("Near Tex...转载 2020-04-17 20:19:02 · 199 阅读 · 0 评论 -
纹理动画 11.2.1 序列帧动画
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 11/Image Sequence Animation" { Properties { _Color ("Color Tint", Color) = ...转载 2020-04-15 23:23:07 · 331 阅读 · 0 评论 -
10.2.2 渲染纹理 玻璃效果
Shader "Unlit/MyGlassRefrctionShader"{ Properties { _MainTex ("Main Texture", 2D) = "white" {} _BumpMap("Normal Map",2D) = "white"{} _Cubemap("Cube Map",Cube) = "_skybox"{} _Distortio...转载 2020-04-14 23:48:33 · 330 阅读 · 0 评论 -
10.2 渲染纹理 Shader
代码来源于 冯乐乐 shader 入门精要1.思路就是新建一个camera,这个摄像机的视角就是物体跟主摄像机反方向的视角,将此摄像机渲染到 RenderTexture我们的shader 只需要对 该 RenderTexture 的 uv.x 取反即可,因为镜子 左右是相反的 ,额大概就是这么个意思吧,实在不懂找个镜子看一下就好了Shader "Chapter10/MyM...原创 2020-04-14 19:44:27 · 204 阅读 · 0 评论 -
10.1.5 环境映射的立方体纹理 菲涅尔反射
场景中左边为菲涅尔反射,右边截图为普通反射使用上面的菲涅耳近似等式,我们可以在边界处模拟反射光强和折射光强/漫反射光强之间的变化。在许多车漆、水面等材质的渲染中,我们会经常使用菲涅耳反射来模拟更加真实的反射效果。Shader "Chapter10/MyFresnelShader"{ Properties { _Color("Main Color",Color) = ...转载 2020-04-14 17:50:27 · 304 阅读 · 0 评论 -
10.1.4 环境映射的立方体纹理 折射
代码来自于 冯乐乐 shader入门精要左边是反射,右边是折射Shader "Chapter10/MyRefractionShader"{ Properties { _Color("Main Color",Color) = (1,1,1,1) _RefractColor("Reflect Color",Color) = (1,1,1,1) _RefractAmou...转载 2020-04-14 16:35:48 · 227 阅读 · 0 评论 -
10.1 环境映射的立方体纹理 反射
代码来源于 shader 入门精要其实关键的代码就三句1.根据视角方向和法线求出反射反向o.worldRef1=reflect(-o.worldViewDir,o.worldNormal);2.对 _Cubemap 进行采样fixed3reflection=texCUBE(_Cubemap,i.worldRef1).rgb*_ReflectColor;...转载 2020-04-14 15:53:34 · 239 阅读 · 0 评论 -
8.7 透明度混合的双⾯渲染
(1)复制原Pass的代码,得到另⼀个Pass。 (2)在两个Pass中分别使⽤Cull 指令剔除不同朝向的渲染图元Shader "Chapter8/AlphaBlendShader"{ Properties { _Color("Main Tint",Color) = (1,1,1,1) _MainTex ("Texture", 2D) = "white" ...转载 2020-04-13 22:50:22 · 258 阅读 · 0 评论 -
开启深度写入的半透明效果 Shader
思路“第一个Pass开启深度写入,但不输出颜色,它的目的仅仅是为了把该模型的深度值写入深度缓冲中”摘录来自: 冯乐乐. “Unity Shader入门精要。” Apple Books.“第二个Pass进行正常的透明度混合,由于上一个Pass已经得到了逐像素的正确的深度信息,该Pass就可以按照像素级别的深度排序结果进行透明渲染。”摘录来自: 冯乐乐. “Unity Shad...转载 2020-04-13 20:23:36 · 554 阅读 · 0 评论 -
透明测试Shader
Shader "Chapter8/AlphaTestShader"{ Properties { _Color("Color",Color) = (1,1,1,1) _MainTex ("Texture", 2D) = "white" {} _Cutoff("_Cutoff",Range(0,1)) = 0.5 } SubShader { Tags{"Q...转载 2020-04-09 23:06:28 · 207 阅读 · 0 评论 -
遮罩纹理Shader
来自 shader 入门精要 Chapter7Shader "Chapter7/Mask Texture"{ Properties { _Color("Color Tint",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white"{} _BumpMap("Normal Map",2D) = "bump"{} ...转载 2020-04-08 23:46:02 · 265 阅读 · 0 评论 -
渐变纹理Shader
来自于 shader 入门精要代码:Shader "MyShaders/RampTexture"{ Properties { _Color ("Color Tint", Color) = (1,1,1,1) _RampTex ("Ramp Tex", 2D) = "white" {} _Specular ("Specul...转载 2020-04-08 20:15:13 · 487 阅读 · 0 评论