首页 > 代码库 > [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights
既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的视频,即《beginner Graphics – Lessons系列之灯光介绍Lights》。听译、时间轴、压制者均为本人。请勿将视频用于非法目的。
有需要高清视频的同学麻烦点个赞并留下你的Email~
有视频有真相
视频中的重点
类似现实世界,Unity中用灯光照亮场景
没有灯光,场景中的物体在摄像机中是不可见的
宽泛的说,Unity中有两种灯光
动态(Dynimic)光和烘焙(Bake)光
动态光在游戏运行中是实时计算的
你只需在场景中添加灯光对象就可以了
烘培光是在线下(Off-line)计算并保存成纹理(Texture)的
这些灯光纹理被贴到烘培的物体上以提升性能
为了照亮场景,要使用灯光组件(light component)
和其它组件一样,灯光组件也要附加到游戏对象(Game Object)上
我们可以用这个游戏对象的Transform属性来移动灯光
灯光组件提供了4种灯光类型
点光(Point Light)
平行光(Directional Light)
聚光灯(Spot Light)
和只用于烘培的面光(Area Light)
不同类型的灯光对游戏的照明效果差异很大
点光就像一个小光球
点光根据其所在位置照射场景中的物体
对点光进行旋转是没有意义的
因为点光照射到各个方向的光是相同的
平行光就像太阳
平行光能够照射到场景中所有的物体
根据旋转角度进行照射
位置属性对平行光是没有意义的
聚光灯就像是手电筒
或者汽车的头灯
它根据其位置和旋转角度对一个圆锥体范围内的物体进行照射
所以聚光灯的位置和旋转角度属性都是有意义的
面光只用在烘培时
面光从平面的一侧向一个矩形范围内发射任意方向的光
除了这4种灯光外,还有另外两种光源
环境光(Ambient Light)和发光材质(Emissive Material)
环境光控制场景中的无方向全局光
环境光在动态光和烘培光中都发挥作用
如果想去掉环境光的影响
就把环境光的颜色设置为黑色(在RenderSettings里)
然后在场景中添加上文介绍的4种灯光
想用发光材质的话
只需给物体设置合适的自发光着色器(shader)
自发光材质只在烘培光中发挥作用
灯光有一些属性供你设置
灯光组件的"Range"属性决定了光线照射的距离远近
"Range"只对点光或聚光灯类型的灯光有意义
在聚光灯下还可以设置"Spot Angle"属性
"Spot Angle"属性决定了聚光灯的圆锥体照射范围的角度大小(单位为度)
"Color"控制灯光的颜色
场景会根据灯光颜色的变化而改变颜色
"Intensity"控制灯光的强弱
这个属性和"Range"是相互独立的
在场景中使用灯光时,需要配合使用各项属性才能做出令人动容的效果
无论是增大"Intensity"还是增大"Range"属性
灯光看上去的确会显得更亮
但是他们照亮场景的方式是不同的
除了基本的渲染外
我们还可以使用一些高级设置
阴影(Shadows)、光晕(Halos)、耀斑(Flare)和Cookie
Cookie是一个虚拟遮罩或者标记
它挡在光源前面来产生某种阴影
Cookie使用贴图的Alpha通道来给光源产生阴影
聚光灯和平行光使用Cookie时,Cookie必须使用2D贴图
点光使用Cookie时,Cookie必须使用立方体贴图(Cube map)
这很符合常识
因为聚光灯和平行光只沿着一个方向照射
点光却向所有方向照射
使用平行光时,有一个改变Cookie大小的选项
让你可以缩放Cookie阴影
面光不能使用Cookie
在烘培时,只有聚光灯能使用Cookie
Cookie对点光和平行光则无效
光照有2种阴影类型
硬阴影(Hard)和软阴影(Soft)
硬阴影能满足大部分情况
软阴影看起来更舒服,但渲染更耗时
渲染阴影有一些调节选项
"Strength"控制阴影的黑色程度
调整这个属性直到阴影在场景中看起来很和谐
"Strength"调整到1的时候往往太强
"Resolution"(分辨率)是渲染质量选项
其默认选项是"Use Quality Settings"
你可以在此修改
"Bias"(乖离率)控制某一光照产生的阴影外围强度
"Bias"影响影子起始点到物体的距离
"Bias"太小会使物体的影子太假(artifact)
太大则会使物体看起来漂浮着(hovering)
使用平行光+软阴影时,会有2个额外配置项
柔和度(Softness)和柔化淡出(Softness Fade)
柔和度是指阴影边界清晰程度
柔化淡出是指从多远开始给物体绘制软阴影
"Draw Halo"(绘制光晕)会在灯光周围绘制场景默认的光晕
光晕和"Range"、"Intensity"属性都相关
光晕的详细设置可以在场景的"Render Settings"中找到
想重写(Override)默认光晕的话
必须关闭灯光的"Draw Halo"选项
然后给灯光添加一个"Halo"组件
眩光(Flare)和光晕很像
但是它是模仿透过玻璃照射的亮光源的效果
当"Flare"属性被赋予一个光晕材质后
灯光会被渲染成具有镜头光晕(Lens Flare)的样子
"Flare"只受"Intensity"属性控制
你可以直接给灯光物体添加一个镜头光晕(Lens Flare)组件
不过灯光的"Flare"属性就应当清空了
否则这个灯光会有2个光晕
必须给摄像机添加一个"Flare Layer"组件
摄像机才能渲染光晕
渲染动态灯光的方式有2种
顶点光照(vertex lighting)和像素光照(per-pixel lighting)
顶点光照一般是最快的渲染方式
它通过计算物体的网格顶点的颜色来渲染场景
然后通过插值(interpolate)渲染网格的表面
像素光照是逐个像素渲染的,所以更耗时
虽然像素光照渲染时慢
但是它能实现一些顶点光照无法实现的效果
法线贴图(normal mapping)、灯光cookies和实时阴影(Realtime shadow)
只在像素光照下才能使用
聚光灯形状、某些特殊高光(high light)在像素光照下的效果也更好
光照对渲染速度有很大的影响
像素光照的数量可以在"Render Settings"中设置
只要设置"Pixel Light Count"属性即可
当你使用正向渲染路径(forward rendering path)时
灯光组件提供给你一个选项"Render Mode"来指定其渲染模式
"important"会强制此灯光逐个像素地渲染
"not important"会强制此灯光使用更快的方式渲染
例如逐个顶点的方式或球面调和(Spherical?Harmonics)的方式
计划
我一共收集到75个类似本文给出的英文视频。近期将逐步制出中文字幕并分享之。
1.Unity界面概述-Unity 官方教程 Beginner Editor - Lessons 系列 2.场景视图 -Unity 官方教程 Beginner Editor - Lessons 系列 3.项目面板和导入 4.检视面板-Unity 官方教程 Beginner Editor - Lessons 系列 5.层次和亲子关系-Unity 官方教程 Beginner Editor - Lessons 系列 6.认识游戏视图-Unity 官方教程 Beginner Editor - Lessons 系列 7.标签-Unity 官方教程 Beginner Editor - Lessons 系列 8.预制 - 概念和用法-Unity 官方教程 Beginner Editor - Lessons 系列 9.游戏对象和组件-Unity 官方教程 Beginner Editor - Lessons 系列 10.建立和播放器设置-Unity 官方教程 Beginner Editor - Lessons 系列 |
√1.摄像机介绍Cameras --Beginner Graphics - Lessons 系列 √2.灯光介绍Lights --Beginner Graphics - Lessons 系列 3.材质了解Materials --Beginner Graphics - Lessons 系列 4.网格渲染与过滤器Mesh Renderers and Filters--Beginner Graphics - Lessons 系列 5.网格介绍Meshes --Beginner Graphics - Lessons 系列 6.材质介绍Textures --Beginner Graphics - Lessons 系列 |
1.光线投射概念Raycasting--Unity 官方教程 物理系统 2.认识刚体Rigidbodies --Unity 官方教程 物理系统 3.物理材质Physic Materials --Unity 官方教程 物理系统 4.碰撞输入OnCollisionEnter--Unity 官方教程 物理系统 5.关节介绍Joints--Unity 官方教程 物理系统 6.碰撞器作为触发器Colliders as Triggers--Unity 官方教程 物理系统 7.碰撞器介绍Colliders--Unity 官方教程 物理系统 8.添加扭矩Add Torque --Unity 官方教程 物理系统 9.添加力场Add Force --Unity 官方教程 物理系统 10.砖块射击Brick Shooter --Unity 官方教程 物理系统 11.弹弹球Bouncing Ball --Unity 官方教程 物理系统 |
1.项目概况 -- Stealth Project潜行风格游戏制作 2.游戏设置和照明 -- Stealth Project潜行风格游戏制作 3.警示灯设置 -- Stealth Project潜行风格游戏制作 4.标签管理-- Stealth Project潜行风格游戏制作 5.屏幕渐变效果 -- Stealth Project潜行风格游戏制作 6.游戏控制器 -- Stealth Project潜行风格游戏制作 7.闭路电视摄像机 -- Stealth Project潜行风格游戏制作 8.激光网格效果 -- Stealth Project潜行风格游戏制作 9.播放器设置 -- Stealth Project潜行风格游戏制作 10.播放动画控制器 -- Stealth Project潜行风格游戏制作 11.HashIDs -- Stealth Project潜行风格游戏制作 12.玩家移动 -- Stealth Project潜行风格游戏制作 13.玩家血量-- Stealth Project潜行风格游戏制作 14.摄影机运动-- Stealth Project潜行风格游戏制作 15.The Key-- Stealth Project潜行风格游戏制作 16.单扇门与动画-- Stealth Project潜行风格游戏制作 17.敌人设置-- Stealth Project潜行风格游戏制作 18.敌人视觉与听觉设定-- Stealth Project潜行风格游戏制作 19.敌人动画设置类别-- Stealth Project潜行风格游戏制作 20.敌人动画设置-- Stealth Project潜行风格游戏制作 21.敌人射击-- Stealth Project潜行风格游戏制作 22.Enemy AI-- Stealth Project潜行风格游戏制作 |
1.激活游戏物体Activating GameObjects--初级脚本编写系列 2.阵列Arrays--初级脚本编写系列 3.唤醒与启动Awake and Start--初级脚本编写系列 4.C#vs JS 语法C# vs JS syntax --初级脚本编写系列 5.Classes --初级脚本编写系列 6.约定和语法Conventions and Syntax --初级脚本编写系列 7.增量时间DeltaTime--初级脚本编写系列 8.销毁功能Destroy--初级脚本编写系列 9.启用和禁用组件Enabling and Disabling Components--初级脚本编写系列 10.获取坐标轴GetAxis --初级脚本编写系列 11.如何获得按钮或按键输入GetButton and GetKey --初级脚本编写系列 12.获取组件GetComponent --初级脚本编写系列 13.学习IF语句IF Statements --初级脚本编写系列 14.实例讲解Instantiate--初级脚本编写系列 15.Lerp 函数初识 --初级脚本编写系列 16.注视效果LookAt --初级脚本编写系列 17.循环语句Loops --初级脚本编写系列 18.鼠标按下事件OnMouseDown --初级脚本编写系列 19.适用范围及访问修改器Scope and Access Modifiers--初级脚本编写系列 20.脚本行为组件Scripts as Behaviour Components --初级脚本编写系列 21.平移和旋转控制Translate and Rotate--初级脚本编写系列 22.更新和固定更新Update and FixedUpdate--初级脚本编写系列 23.变量和函数Variables and Functions--初级脚本编写系列 24.矢量数学Vector Maths --初级脚本编写系列 |
感谢美媳妇的听译顾问和大力支持!
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights