21.10.27 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter1-3

1.Post Processing Stack

  1. 安装

    在Package Manager里找到 Post Processing

  2. 使用

    1. 在相机所在的物体上,添加组件Post-process Layer,将其Layer属性改为PostProcessing
    2. 右键创建物体3D Object - Post-process Volume,将该物体的Layer改为PostProcessing
    3. 在Assets中创建Post-process Profile,为Volume的Profile属性赋值
  3. 设置is Global属性,true代表这些效果总是被绘制在物体上;flase代表效果只在距离volume一定距离内可见

  4. 效果

    1. Grain颗粒感,画面叠加颗粒效果
    2. Vignette渐晕,画面边缘的渐变颜色
    3. Depth Of Field景深,焦点处清晰,近处和远处模糊
    4. bloom泛光,有光的区域沿着边缘发光
    5. Color Grading颜色分级,改变环境颜色
    6. Ambient Occlusion环境光遮蔽,计算应该具有额外阴影的区域

2.First Shader

  1. shader结构

    1. 名称 Shader "…/name”

    2. Properties块,用于在Unity材质的Inspector面板中公开GUI元素,便于修改

      格式 : 变量名 ( “描述”, 变量类型 ) = 默认值

    3. SubShader块,要想使用上面的值,需要创建与Properties中属性的变量名相同的变量,二者将自动建立连接,之后这些变量可以在函数中使用

  2. 当Shader代码有错误时,不会影响游戏运行,但是材质会被渲染成无阴影的洋红色

3.Surface Shaders and Texture Mapping

  1. Unity主要输出结构

    1. SurfaceOutput -Albedo -Normal -Emission -Alpha -Specular -Gloss
    2. SurfaceOutputStandard -Albedo -Normal -Emission -Alpha -Occlusion -Smoothness -Metallic
    3. SurfaceOutputStandardSpecular -Albedo -Normal -Emission -Alpha -Occlusion -Smoothness -Specular
  2. packed arrays

    1. 类型加数字:fixed4 float4x4

    2. swizzling:允许在一行内重新寻址数组

      _Color.rgb; _Color.bgr; _Color.rg

    3. smearing:值被赋给packed array,被复制到所有字段

      o.Albedo=1 ==> o.Albedo=(1,1,1)

    4. masking:swizzling允许在表达式左边,只给部分字段赋值

      o.Albedo.rg=o.Albedo.gr

    5. 使用_mrc运算符可以访问矩阵元素,还可以是链式的(常规做法方括号matrix[index])

      float2 f2 = matrix._m00_m11

    6. rgba和xyzw不能混用

  3. adding a texture to a shader

    1. 名称uv_MainTex 将识别成关联_MainTex并自动初始化
    2. texture导入属性设置,Filter mode:Bilinear双线性插值 Pointer移除任何插值;Aniso level:对于地板天花板等从一个陡角观察的纹理,需要增大aniso level
    3. 使用tex2D(tex,IN.uv_tex)返回该位置的颜色
  4. 内置变量_Time:提供一个递增的浮点值

  5. 内置函数UnpackNormal(tex2D(tex,IN.uv_tex))返回法向量,与tex2D区别:法向量范围是(-1,1),颜色值范围在(0,1)

  6. 透明着色器

    1. 在Tags块中设置:

      “Queue” = “Transparent"//渲染队列 Background=>Geometry=>AlphaTest=>Transparent=>Overlay

      “IgnoreProjector” = “True”//不使用Unity的投影

      “RenderType” = “Transparent”

    2. 在LOD下面添加:

      Cull Back //不显示模型背面

    3. CGPROGRAM下添加:

      #pragma surface surf Strandard alpha:fade

      告诉shader,此材质的像素需要与先前绘制在屏幕上的其它东西混合

  7. 模型的轮廓:法线方向与视角方向正交的三角形

    dot(normal,viewDir) = 0

  8. 打包和混合原理

    1. 使用lerp(_ColorA, _ColorB, blendData)对两个颜色进行混合
    2. 可以用一张图片的rgba通道作为blendData,来混合五个颜色
  9. float3 worldPos;//世界位置

    float3 viewDir;//观察方向

  10. distance(float3,float3)取两点距离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Supports only Standard (Legacy) Pipeline! Looking for Universal (URP) Pipeline? It is another package: HERE New sample videos are shot with iPad (2017 model) with highest quality settings. Scene has more than 150K triangles (while shadows enabled). Transparent reflection support. Add extra reality to your AR games like floor reflections and refractions. Mirror scripts use hidden second camera to create effects! MODELS which are used in videos or screenshots ARE NOT INCLUDED in package! You can use all post effects for monitor based visuals: Make security cams, crt monitors, led panels, night vision cameras etc. Image Effects: 1-LOD Blur + Iterations 2-GameBoy + Color + Size 3-Mosaic + Size 4-Refraction + Size 5-CRT + Customization 6-Simple Displacement + Speed + Size 7-Vertical Wave + Size +Speed 8-Negative 9-Sobel + Color + Detail 10-Scan + Size + Color + Speed 11-Hoizontal Wave + Size +Speed 12-Stitching Invert + Size + Color 13-Edge Substraction + Color + Threshold 14-Distorted Lens + Power 15-Two Color Mix + Luminance 16-Dot Effect + Block Size + Dot Size 17-Focused Blur + Focus Place + Step Size + Radius + Smoothness 18-Emboss Effect + Strength + Angle 19-Under Waters + Vertical - Horizontal Strengths 20-Night Vision + Noise + Light Power + Flicker Power + Vignette 21-Lego + Block Size + Shadow 22-Glitch + Noise + Speed + Size AR-VR Ready mirror (planar) shader is here. Based on PBR shader, so supports everything that it supports (for both forward and deferred rendering with post processing support).

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值