unity学习28:灯光light相关 类型type,模式mode等

目录

1 场景里的默认灯光

1.1 默认灯光

1.2 可以添加多个灯光

2 灯光类型

2.0 灯光的类型

2.1 定向灯光 directional  light(想象成太阳)

2.1.1 全局和局部

2.2 聚光 spot  ---- 类手电筒的光线

2.2.1 控制效果

2.2.2 还可以控制  spot light的旋转来控制灯光的角度

2.3 点光源point light  ---- 类 一根蜡烛/火把的效果

2.3.1 修改 range可以修改 光照范围大小

2.4 区域灯光 Area(baked only)  ----摄影棚里的大平板的平行光源

2.4.1 场景 scene内要烘焙的 物体 gameObject需要先选择右上角属性 contribute GI

2.4.2  window里选择 rendering / lighting 进行烘焙

2.4.3 烘焙后

3 灯光的各种属性

3.1 灯光的类型 和 模式 mode

3.2 颜色

3.3 强度

3.4 阴影

3.5 渲染模式和 遮罩 culling Mask

3.5.1 测试某个不在 light的  culling Mask 的layer选择里的gameObject将不再显示。


1 场景里的默认灯光

1.1 默认灯光

  • 新建场景时,都会默认创建一个 camera 和一个light
  • 也就是 camera 和 light 都是scene必须的内容

1.2 可以添加多个灯光

  • 在1个scene里可以添加多个 camera 和light 

2 灯光类型

2.0 灯光的类型

  • 灯光可以切换类型
  • 默认的时 directional
  • 其他类型
  1. spot
  2. directional
  3. point
  4. Area(baked only)

2.1 定向灯光 directional  light(想象成太阳)

  • 定向灯光
  • directional
  • 从无穷远的地方照射而来, 可以想象成太阳
  • 用太阳去理解 directional  light
  1. 现在地图上的影子就是这个 directional  light 造成的
  2. 看起来,太阳在地图上方这些物体的上方不远,实际上可以说离得无穷远,所以,拖动这个light,对影子没有影响
  3. 也就是拖动 directional  light 的任意一个坐标轴,X,Y,Z对影子都没有影响
  4. 按太阳对地球的影响,理解因为太阳和地球离得无限远,相当于就是纯平行光了
  5. 但是修改其旋转的角度,会产生光照和影子的变化

  • 修改太阳 的角度,旋转directional  light, 会产生影子的变化
  • 这个就相当于 早晚的日照变化
  • 如果修改太阳的旋转其他轴,相当于不同纬度的光照变化

2.1.1 全局和局部

2.2 聚光 spot  ---- 类手电筒的光线

  • 把当前 scene里 direction light 修改为 spot light以后的效果

2.2.1 控制效果

spot 的是一个锥形筒的光源效果

下面的有好几个控制点

  • range                 //控制远近,手电筒可以照射多远
  • inner angle        //内圈
  • outer angle       //外圈

2.2.2 还可以控制  spot light的旋转来控制灯光的角度

2.3 点光源point light  ---- 类 一根蜡烛/火把的效果

  • 修改为点光源的效果

2.3.1 修改 range可以修改 光照范围大小

2.4 区域灯光 Area(baked only)  ----摄影棚里的大平板的平行光源

  • 和点光源的区别
  • 区域灯光,就是从一个面发射出来的灯光
  • 由于不支持 实时,所以在 scene 窗口里看就是黑黑的

2.4.1 场景 scene内要烘焙的 物体 gameObject需要先选择右上角属性 contribute GI

  • 场景 scene内要烘焙的 物体 gameObject需要先选择右上角属性 contribute GI

2.4.2  window里选择 rendering / lighting 进行烘焙

window里选择 rendering / lighting 进行烘焙

2.4.3 烘焙后

  • 烘焙后,可以删除light都不影响了
  • Assets / Scene /Scene1 里保存了烘焙信息

3 灯光的各种属性

3.1 灯光的类型 和 模式 mode

灯光的类型前面已经学了

这里看灯光的mode

  • realtime    //实时的灯光
  • baked       //烘焙的灯光
  • mixed       //混合的灯光,前面的混合

3.2 颜色

3.3 强度

  • 按住5.31 这个数字前的 黑色区域,可以左右滑动调整
  • 数字越大越强

3.4 阴影

  • shadows 很消耗性能
  • hard  shadows 锯齿状更明显,节省性能
  • soft  shadows 相反

阴影还有各种强度属性

  • 剪影
  • 光晕
  • 炫光

3.5 渲染模式和 遮罩 culling Mask

  • culling Mask
  • 如果 gameObject 所在的layer 层不被勾选,则不会被 光照影响

3.5.1 测试某个不在 light的  culling Mask 的layer选择里的gameObject将不再显示。

  • 这个CubeSpecial 
  • 不光没有影子
  • 而且,因为无法接收到光照,整个立体体都是黑色的

### Unity光照效果实现 在Unity中创建逼真的光照效果涉及多个方面,包括但不限于光源设置、材质属性调整以及后期处理效果的应用。为了构建高质量的光照环境,理解不同类型的光源及其特性至关重要[^1]。 #### 设置基本光源 通过`GameObject -> Light`菜单可以添加各种类型灯光到场景之中,比如方向光(Directional Light)、聚光灯(Spotlight)或是点光源(Point Light)等。每种光源都有独特的参数用于控制其行为与外观: - **强度(Intensity)**决定了光线亮度; - **颜色(Color)**影响着照射区域的整体色调; - 对于某些特定类型如聚光灯还有额外的角度范围设定来限定照亮的空间大小。 对于更复杂的照明需求,则可能需要用到混合模式(Mix Mode),它允许同一物体表面接受来自多盏灯具的同时作用,从而模拟更加真实的反射情况。 ```csharp // 创建并配置一个简单的平行光作为太阳光源 Light sunLight; sunLight = GameObject.Find("Sun").GetComponent<Light>(); if (!sunLight){ sunLight = new GameObject("Sun").AddComponent<Light>(); } sunLight.type = LightType.Directional; // 设定为方向光 sunLight.intensity = 0.8f; // 调整光照强度 sunLight.color = Color.white; // 白色日光 ``` #### 材质响应 为了让对象能够正确反映所处环境中光线的变化,需精心设计它们对应的Shader程序和Material资源文件。这通常涉及到定义如何计算高光(Highlights)、阴影(Shadows)以及其他视觉特征。借助标准表面着色器(Standard Surface Shader),开发者可以直接指定漫反射(Diffuse)、镜面(Specular)系数等一系列物理性质,简化了开发流程同时也提高了渲染效率。 当追求极致的真实感时,还可以考虑引入次表面散射(Subsurface Scattering, SSS)技术,使得半透明材料像皮肤那样表现出自然透亮的效果;或者利用屏幕空间全局光照(Screen Space Global Illumination, SSRGI)算法增强间接光照的表现力。 #### 后期处理特效 除了上述基础操作外,适当运用Post-processing Stack V2插件中的各项功能将进一步提升最终画面质量。例如Bloom可以使明亮部分溢出形成光晕现象;Chromatic Aberration模仿镜头色差带来复古风格;而Depth of Field则有助于营造景深虚化的感觉,让观众聚焦于重要元素之上。 综上所述,在Unity里打造出色的光照体验不仅依赖于合理布置各类光源,还需要深入研究材质表现形式,并善加利用一系列先进的图像优化手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值