Unity3D技术之Graphics Features线性照明(仅限专业版)浅析_第1页
Unity3D技术之Graphics Features线性照明(仅限专业版)浅析_第2页
Unity3D技术之Graphics Features线性照明(仅限专业版)浅析_第3页
Unity3D技术之Graphics Features线性照明(仅限专业版)浅析_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 线性照明(仅限专业版)概述线性照明指在所有输入呈线性的情况下照亮场景的过程。通常,存在将伽玛预先应用到其中的纹理,这表示,纹理在材质中进行采样时,呈非线性。如果这些纹理用于标准照明方程式,将导致方程式结果不正确,因为预计所有输入在使用前都呈线性。线性照明指确保着色器的输入和输出都使用正确的色彩空间的过程,它可提高照明的准确性。       现有(伽玛)管道在现有渲染管道中,所有颜色和纹理都在伽玛空间中采样,也就是说,在着色器使用图像或颜色之前,伽玛校正不会从其中移除。由于这一原因,着色器中的输入位于伽玛空间,但在照明方程式使用这些输入时,均

2、视其位于线性空间中,最终未将伽玛校正应用到最终像素。大部分时候,上述现象看似合理,因为两种错误从某种程度相互抵消。但这是不正确的。       线性照明管道如果启用线性照明,则会提供着色器工程的输入,其中的伽玛校正已移除。如果您位于线性空间中,则会以隐性方式将此转换应用到颜色。使用硬件 sRGB 读取进行纹理采样,依次向伽玛空间和图形硬件的样本上提供源纹理,然后自动转换结果。然后向着色器提供这些输入,照明会照常运行。然后,程序会将所得的值写入到帧缓冲区。此值将进行伽玛校正并写入到帧缓冲区,或留在线性空间中以备将来进行伽玛校正;这取决于当前的渲染配置。&#

3、160;      线性照明与伽玛照明之间的区别使用线性照明时,照明方程式的输入值不同于伽玛空间中的值。这表示,光线到达表面时形成的感应曲线不同于现有 Unity 渲染管道形成的感应曲线。       灯光衰减远距离和普通基于照明的衰减有两种变化方式。首先,在线性模式中渲染时,执行的额外伽玛校正将扩大灯光半径。其次,这也将导致照明边缘更加锐化。这可更准确地模仿表面的照明亮度衰减。 线性亮度感应使用伽玛空间照明时,向着色器提供的颜色和纹理含有其中应用的伽玛校正。将其用于着色器时,高亮度的颜色实际上比线性照明的亮度更大

4、。这表示,随着光线亮度增加,表面会以非线性方式变亮。这将导致许多位置的光线过亮,还会使得模型和场景呈褪色状。使用线性照明时,随着照明亮度的增加,但表面的感应仍呈线性。这可令表面的着色更具真实感,并极大地美化表面的色感应效果。3.0Lee Perry-Smith 的 Infinite 三维头部扫描 (Head Scan) 获得了 Creative Commons Attribution 3.0 Unported License 许可。       线性空间与伽玛空间混合在帧缓冲区执行混合时,色彩空间或帧缓冲区中也会进行混合。使用伽玛渲染则表示,非线性颜色混

5、合在一起。这种说法不正确。使用线性空间渲染时,线性空间中会进行混合,这种说法是正确的,并且会生成预期的结果。文章出处:(狗刨学习网)使用线性照明线性照明可改变已渲染场景的外观。如果您制作一个线性照明工程,更改伽玛照明后,其外观很可能会改变。因此,如果从伽玛照明切换至线性照明,可能需要花一段时间更新工程,使其外观和切换之前一样美观。一般说来,在 Unity 中启用线性照明非常简单。您需要在每个工程中启用此功能,并在播放器设置 (Player Settings) 中依次选择编辑 (Edit) -> 工程设置 (Project Settings) -> 播放器 (Player) ->

6、; 其他设置 (Other Settings) 进行设置。光照贴图使用线性照明时,所有照明和纹理都呈线性,这表示传递至光照贴图的值也需要修改。在线性照明和伽玛照明之间切换或返回时,需要重新烘焙光照贴图。Unity 光照贴图界面将在光照贴图位于错误的色彩空间时发出警告。支持的平台并非所有平台都支持线性渲染。目前支持此功能的目标发布平台有:· Windows & Mac(编辑器、standalone、网页播放器)· Xbox 360· PlayStation 3       尽管这些目标平台支持线性照明,但不能保证设备上

7、的图形硬件可以正确渲染场景。您可通过查看 QualitySettings.desiredColorSpace 和 QualitySettings.activeColorSpace 检查所需的色彩空间和目前支持的色彩空间,如果所需的色彩空间为线性,但可用的色彩空间为伽玛,则播放器会退回至伽玛空间。这可用于显示警告框,告知用户应用程序无法正确显示,或强制退出播放器。       线性和非 HDR不使用 HDR 时,则使用支持 sRGB 读取和 sRGB 写入(灰度 (Degamma) 用于读取,伽玛 (Gamma) 用于写入)的特殊类型的帧缓冲区。这表示,帧

8、缓冲区的值如纹理一样进行了伽玛校正。将此帧缓冲区用于混合纹理或绑定为纹理时,程序会先使用伽玛,再用值移除伽玛。将这些缓冲区写入至正在写入的值时,其将从线性空间切换至伽玛空间。如果在线性模式中进行渲染,则所有后期处理效果会启用 sRGB 读取和写入功能来创建其源缓冲区和目标缓冲区,并在线性空间中进行后期处理和后期处理混合。       线性和 HDR使用 HDR 时,渲染会在浮点缓冲区进行。这些缓冲区的分辨率足够高,无论何时访问缓冲区,都无需在伽玛空间之间来回转换,这表示在线性模式中渲染时,使用的目标渲染将把颜色存储于线性空间中。这意味着,将在线性空间中以隐性方式执行所有混合和后期处理效果。后台缓冲区写入时,将应用伽玛校正。       GUI 和线性制作的纹理渲染 Unity GUI 时,我们不会在线性空间中执行渲染。这表示,GUI 纹理不应在读取时移除其伽玛。这可通过两种方法实现。· 在纹理导入程序中将纹理类型设为 GUI· 在高级纹理导入程序中勾选“带通 sRGB 采样 (Bypass sRGB Samp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论