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 着色器
物体 cube
- 渲染器 Mesh Renderer
- 贴图 Materials
-Diffuse 漫反射(5.0以下默认着色器, 5.0以上将此类归到Legacy Shaders中)
- Transparent->Bumped Diffuse 透明材质
- Standard 标准
- 贴图 Materials
- 渲染器 Mesh Renderer
作用
- cpu负责script处理
- gpu负责shader处理
- 渲染管线
- 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 屏幕投射
- Shader Lab Syntax unity语法库
- 开发
- 步骤
- 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种类
- Standard 5.0默认
- FX
- GUI gui渲染
- Mobile 移动低消耗渲染
- Nature 自然物体渲染
- Terrain 地形
- Tree 树木
- SpeedTree unity5.0和speedtree合作出的树木渲染效果
- Paricles 粒子渲染
- Skybox 天空盒
- 6 Sided 六面贴图
- Cubemap 立方盒子贴图
- Procedural 模拟大气
- Sprites unity2d精灵贴图渲染
- Default
- Diffuse
- Unit
- Legacy Shaders 4.x渲染器
- Specular 反光
- normal 法线贴图
- Decal 双重贴图
- Diffuse 漫反射
- Transparent 透明体
- Self-Illuminated 自发光
- Reflective 可反光
- Ambient Light 全局光照
- Setting->Render Settings->Ambient Light
- Light 全局反射(unity5+)
- Scene->Ambient Source
- Scene->Reflection Source
直接看效果展示(中文)
http://acegikmo.com/shaderforge/nodes/?lang=zh_cn
Physical-Based Shader (PBS / PBR)
- Fresnel Everywhere
- Energy Conservation 能量守恒
- 介绍
- Albedo / Diffuse 漫反射, 金属<砖<石头<陶瓷
- Specular 反射光, 光滑物体都有反射光, 金属>塑料>泥土>橡皮
- Roughness / Smoothness 漫反射 镜子<石膏
- Fresnel 相当于这些效果从中心到边缘的衰减度, 水面投射/反射角度
渲染管线
- 渲染方式
- Vertex Lit顶点渲染
- 不支持: 阴影, 高光, 光影遮罩, 法线贴图, 抗锯齿
- Forward 正向渲染
- 针对每一个像素每一个物体进行渲染
- 每个物体都要进行灯光计算
- Deferred 延迟渲染
- 对灯光, 景深, 法线贴图, 颜色等进行延迟渲染
- Deferred Lighting 只将lighing放到deferred中渲染
- Deferred Shading 所有的shading都放到deferred中渲染
- Vertex Lit顶点渲染
- Project->Setting->Player->Rendding
- Forward 正向渲染
- Deferred 就是Deferred Shading
- Legacy Vertex Lit 顶点渲染
- Legacy Deferred (light prepass) 就是Deferred Lighting
- Deffered优点
- 灯光数不直接影响性能
- 支持多光源阴影
- 支持PBS渲染
- 效果更好
- Deffered缺点
- 占用更多显存 (用显存换时间)
- 不支持物理抗锯齿
- 不能显示透明物体
- 需要支持Multiple Render Target的(MRT)显卡
- Layer层级, 最多只支持4个 (正向渲染支持无限多个层级)
Realtime Global Illumination 全局动态光照(unity5+)
- 物体本身不动, 光源可移动
- 通过Pre-compute Baking 计算出场景中可能出现的其他光源效果
- 结合PBS物理着色器
- 动态物体, 使用Light Probes 光线探针, 虚拟模拟物体上复杂光变化
- Scene->Precomputed Realtime GI