Unity 着色器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zszeng/article/details/46697661

Skybox 天空盒

  • 5.0以下在Camera下设置和添加Skybox组件
  • 5.0以上在Lighting下设置
  • 盒子贴图可以是6张图片(6 Sided), CubeMap格式文件,Procedural(5.0+默认)
  • Procedural可以设置:
    • sun size 太阳大小
    • 大气效果 Atmoshphere Thickness
    • Sky Tint 天空颜色
    • Groud 地面颜色
    • Exposure 整体光亮

Light 光源

  • Directional Light 方向光源,太阳
    • Color 颜色
    • Intensity 亮度
    • Cookie 光贴图
    • Cookie Size 贴图缩放
    • Shadow Type 阴影类型
      • No Shadows 无阴影
      • Hard Shadow 硬边缘
      • Soft Shadow 柔滑边缘
        • Strength 阴影强度, 不透明度
        • Resolution 细节度
        • Bias 阴影与物体最短距离, 太低会打在物体上, 太高会令底部丢失阴影
        • Softness 柔滑边缘调整
        • Softness Fade 柔滑边缘调整
      • Draw Halo 是否使用光晕效果
      • Flare 滤镜灯
      • Render Mode 渲染优先级
        • Auto 自动
        • Important 高优先级
        • No Important 低优先级
        • Culling Mask 阴影覆盖范围
        • Lightmapping 烘培类型
          • Auto 默认,自动
          • RealtimeOnly
          • BakedOnly
  • Point Light 电光源,灯光
    • Range 范围,点光源最大有效范围
    • Cookie 和方向光源不同, 这里使用的是cubemap立方图贴图
    • shadow Type 默认的forwardLight正向渲染下, 不支持平行光以外的阴影
  • Spot Light 聚光灯, 对应电光源增加了限制范围
    • Spot Angle 发散角度0~180度
    • 不支持漫反射
  • Area Light 区域光源, 场景烘培用
    • Width 宽度
    • Height 长度
    • 展示效果
      • 物体都改为static静态物体
      • 场景Lightmapping下的Bake点击Bake Scene

Shader 着色器

  1. 物体 cube

    • 渲染器 Mesh Renderer
      • 贴图 Materials
        -Diffuse 漫反射(5.0以下默认着色器, 5.0以上将此类归到Legacy Shaders中)
        • Transparent->Bumped Diffuse 透明材质
        • Standard 标准
  2. 作用

    • cpu负责script处理
    • gpu负责shader处理
  3. 渲染管线
    • Shader Lab Syntax unity语法库
      • Float Textbox
      • Float Range Sides
      • Vector4 Textboxes
      • Color Picker
      • 2d Texture(POT)
      • 2d Texture(NPOT)
      • Cube Texture
    • 渲染步骤
      • Vertex Assembly 顶点
      • PrimitiveAssembly 三角
      • Rasterization 光栅化
      • Fragment Shader 着色
      • Raster Operations 光栅运算
      • Pixels 像素
      • Screen 屏幕投射
  4. 开发
    • 步骤
      • Fixed function shaders
      • Vertex And fragment shaders
      • Surface shaders
    • 下面的例子就可以在shaders里面找到Custom->Simple这个着色器
Shader "Custom/Simple"{
    Properties{
        _MainTex("Base(RGB)",2D)="white"{}
    }
    SubShader{
        Tags("Queue"="Geometry+1")
        Pass{
            SetTexture[_MainTex](combine texture)
        }
    }
    FallBack "Diffuse"
}

shader种类

  1. Standard 5.0默认
  2. FX
  3. GUI gui渲染
  4. Mobile 移动低消耗渲染
  5. Nature 自然物体渲染
    1. Terrain 地形
    2. Tree 树木
    3. SpeedTree unity5.0和speedtree合作出的树木渲染效果
  6. Paricles 粒子渲染
  7. Skybox 天空盒
    1. 6 Sided 六面贴图
    2. Cubemap 立方盒子贴图
    3. Procedural 模拟大气
  8. Sprites unity2d精灵贴图渲染
    1. Default
    2. Diffuse
  9. Unit
  10. Legacy Shaders 4.x渲染器
    1. Specular 反光
    2. normal 法线贴图
    3. Decal 双重贴图
    4. Diffuse 漫反射
    5. Transparent 透明体
    6. Self-Illuminated 自发光
    7. Reflective 可反光
  11. Ambient Light 全局光照
    1. Setting->Render Settings->Ambient Light
  12. Light 全局反射(unity5+)
    1. Scene->Ambient Source
    2. Scene->Reflection Source

直接看效果展示(中文)
http://acegikmo.com/shaderforge/nodes/?lang=zh_cn

Physical-Based Shader (PBS / PBR)

  1. Fresnel Everywhere
  2. Energy Conservation 能量守恒
  3. 介绍
    1. Albedo / Diffuse 漫反射, 金属<砖<石头<陶瓷
    2. Specular 反射光, 光滑物体都有反射光, 金属>塑料>泥土>橡皮
    3. Roughness / Smoothness 漫反射 镜子<石膏
    4. Fresnel 相当于这些效果从中心到边缘的衰减度, 水面投射/反射角度

渲染管线

  1. 渲染方式
    1. Vertex Lit顶点渲染
      1. 不支持: 阴影, 高光, 光影遮罩, 法线贴图, 抗锯齿
    2. Forward 正向渲染
      1. 针对每一个像素每一个物体进行渲染
      2. 每个物体都要进行灯光计算
    3. Deferred 延迟渲染
      1. 对灯光, 景深, 法线贴图, 颜色等进行延迟渲染
      2. Deferred Lighting 只将lighing放到deferred中渲染
      3. Deferred Shading 所有的shading都放到deferred中渲染
  2. Project->Setting->Player->Rendding
    1. Forward 正向渲染
    2. Deferred 就是Deferred Shading
    3. Legacy Vertex Lit 顶点渲染
    4. Legacy Deferred (light prepass) 就是Deferred Lighting
  3. Deffered优点
    1. 灯光数不直接影响性能
    2. 支持多光源阴影
    3. 支持PBS渲染
    4. 效果更好
  4. Deffered缺点
    1. 占用更多显存 (用显存换时间)
    2. 不支持物理抗锯齿
    3. 不能显示透明物体
    4. 需要支持Multiple Render Target的(MRT)显卡
    5. Layer层级, 最多只支持4个 (正向渲染支持无限多个层级)

Realtime Global Illumination 全局动态光照(unity5+)

  1. 物体本身不动, 光源可移动
  2. 通过Pre-compute Baking 计算出场景中可能出现的其他光源效果
  3. 结合PBS物理着色器
  4. 动态物体, 使用Light Probes 光线探针, 虚拟模拟物体上复杂光变化
  5. Scene->Precomputed Realtime GI
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页