托比树叶引擎
Unity · 特效
一个真正的前向点光源在它接触的每个物体上增加了一个额外的通行证。墙上的八盏灯是墙上的八个通行证。 一个假灯是一个全局数组中的四个数字。着色器在该数组上循环一次,在它已经绘制的过程中。添加第六十四盏灯会增加一次迭代,而不是一次抽奖。 实测,而非宣称 两百个立方体和一个地板,点灯范围6,统一2022.3,内置前进,苹果M4 Max,每一个真正的光每像素光。1920x1080时每帧毫秒数: 1光: 0.44毫秒真,0.20毫秒假 8灯: 0.93毫秒真,0.31毫秒假 16灯: 1.34毫秒真,0.42毫秒假 32灯: 2.15毫秒真,0.66毫秒假 64灯: 3.80毫秒真,1.17毫秒假 在960x540,32灯: 1.93毫秒真实,0.33毫秒假。 假灯不是免费的。对于每个点亮的像素,每一个都是一个循环迭代,因此它们的成本随着灯的数量和屏幕的大小而增长: 在1080p时,其中32个的成本约为真实像素的三分之一,分辨率的一半约为六分之一。一些接触很少的小灯无论如何都很便宜。 假灯窗口有一个测量按钮,呈现你自己的场景与灯,并再次与他们关闭,并等待GPU,所以你得到这个比较你的项目,而不是我的。 它看起来像一盏真正的灯。 在线性空间项目中,Unity在使用它进行照明之前转换真实灯光的颜色和强度,其中一个规则用于内置,另一个规则用于URP。假灯采用相同的规则,因此假灯的颜色与它所取代的真实灯的颜色相同: 在一个平面上测量,每个通道都在其他通道的2% 内。 Unity自己的点光衰减被逐像素渲染和读取,这里的平方反比曲线被拟合到它: 平均误差在整个范围内13%,最糟糕的分歧是超过两个曲线已经太暗而看不到的范围的90%。 相同的强度,相同的范围,相同的颜色: 接近相同的图片,成本的一小部分。 简单易用 GameObject > Light > Fake Light。它看起来已经像一个火炬,而不是八个滑块在零。 八个预设开始: 火炬,蜡烛,吸顶灯,霓虹灯,破管,魔术,枪口闪光,月光。每一个都说明了自己的用途。 假灯是不可见的每一个着色器,但这个包的,每个人一次旅行。所以检查员用红色说,并提供一个按钮,将场景中的每个材质移动到假照明着色器上,保持其颜色和纹理。撤销一次即可恢复。 可定制的 灯光配置文件: 将外观保存为资产,将其放在200灯具上,对其进行一次编辑,200更改。分离任何单一的光,只要你想走自己的路。 自定义衰减: 将衰减设置为自定义并绘制曲线。它被烘焙到着色器点采样的纹理中,编辑器读取相同的烘焙数据,因此检查器中的图形是光而不是它的图片。一次最多可启用十六个曲线。 五种闪烁样式: 噪声,蜡烛,脉冲,频闪,和一个由您绘制的曲线驱动。每盏灯都有自己的种子,所以一排火炬不会一致地脉动。 点,点和方向形状,具有软锥形边缘。 你放弃的东西 阴影投射与灯光柔光片。这就是全部的交易。 假灯是用于大气层的灯: 灯,手电筒,霓虹灯,枪口闪光灯,拾音器,魔术。只保留两三盏能勾勒出房间轮廓的真灯,其余四十盏都用假的来代替。“假光源”窗口会为您进行转换,并提醒您注意那些会投射阴影的光源。 无依赖 无需安装任何包、渲染器功能或着色器。内置和URP。 在URP上,设置窗口在一次单击中写出着色器的URP构建-相同的衰减,相同的像素,以及SRP批处理程序接受的UniversalForward传递。它以模板形式提供,而非着色器,因此即使项目未使用URP也能正常编译。 其他着色器 (标准,URP照明,粒子) 上的对象仍然可以通过假光接收器做出反应,该接收器通过属性块驱动材质的发射。必须在材质中启用发射;如果未启用,接收器的检查员会以红色提示。不支持HDRP。 包装盒内含什么 假光源:点光源、聚光灯和定向光,四种衰减模式,五种闪烁样式。 轻配置文件资产,并从八个预设开始。 用于其他着色器上的对象的假光接收器,发射已打开。 假灯窗口: 预算,场景概述,真正的灯光的一键式转换,以及在你自己的场景中的灯光成本的测量。 LightMath:纯C# 实现的衰减、锥形光和朗伯光照模型,可从您自己的工具和测试中调用。 一个演示场景:一间大厅内有二十四盏灯,按下按键即可在真实与虚假照明之间切换,屏幕上还显示帧时间。 完整的带注释的C# 源代码。 支持: 单次遍历最多可评估64盏灯光,并以着色器全局变量的形式上传,因此对象仍可进行批处理。 颜色转换为Unity转换自己的灯光的方式,并且平方反比衰减适合Unity的测量点光曲线: 相同的颜色,接近相同的亮度。 在相同的200对象场景中以1920x1080测量: 32个假灯0.66毫秒,32个真实的每像素灯2.15毫秒。 点光源、聚光灯和定向光源,带有柔和的锥形边缘。 由您自行绘制的自定义衰减曲线,只需烘焙一次,即可被着色器和编辑器以相同方式读取。 五种闪烁样式,其中一种由曲线驱动。单灯种子。 灯光配置资源:一种外观可供多盏灯光使用,可在一处进行编辑。 八个预设和一个GameObject> Light > Fake Light菜单条目。 一键将场景中的所有材质转换为假光着色器,同时保留颜色和纹理。 具有影响力排名的灯光预算,因此一个关卡可以容纳的灯光多于一个框架可以承受的灯光。 用于其他启用了自发光的着色器对象的假光源接收器,通过MaterialPropertyBlock驱动。 内置URP,并通过设置窗口生成了一个与SRP批处理器兼容的URP构建。 完整的带注释的C# 源代码,以及一个会自我测量的示例场景。 内置:即装即用。URP: 设置窗口写入URP构建的着色器在一次点击 (SRP batcher兼容)。HDRP:不支持;伪光照着色器和伪光照接收器在该管线中均无法正常工作。Unity 2022.3或更高版本,无包依赖。