光线反射设置&反射探针

这篇具有很好参考价值的文章主要介绍了光线反射设置&反射探针。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 反射探针概念

2. 反射探针的工作原理

3. 反射探针组件

属性

4. 3D 场景中的默认光照探针

AmbientProbe —— 环境(光)探针

禁用 SkyManager

5. 反射探针使用步骤

添加反射探针:

添加具有镜面效果表面的反射对象:

反射探针添加位置

6. 改正室内光照场景中的金属苹果反射


在前面的室内场景中,有一个漂浮的金属质地苹果,它反射了画廊中位于其上方的两个彩色聚光灯,但它也反射了室内空间之外的天空盒。看起来非常违和,是因为它上面的反射根本就是错误的!

光线反射设置&反射探针

在本节中,将介绍反射探针的概念及用法,到最后,大家会学会如何设置反射探针,并将上面的苹果反射修正。

1. 反射探针概念

现实中,具有镜面特征的物体表面,可以映出周围的景象,比如,镜子、窗户玻璃、车窗、高光墨镜、金属物体、平静的水面等。

CG 电影和动画通常具有高度逼真的反射,这对于在场景中的对象之间提供“连接”感非常重要。 然而,这些反射的准确性伴随着处理器时间的高成本,虽然这对电影来说不是问题,但它严重限制了反射物体在实时游戏中的使用。

显然,直接建立对象间连接,生成生成静态或动态投影的方式,在游戏中代价太高,特别是动态的。虽然在一些高级硬件中,配合特定算法,已经能够实现反射动态投影,但不适合大多数游戏和硬件。

以前传统的处理方式:游戏使用一种称为_反射贴图_的技术来模拟来自对象的反射,同时将处理开销保持在可接受的水平。此技术假定场景中的所有反射对象都可以“看到”(因此会反射)完全相同的周围环境。

Unity 通过使用__反射探针__改进了基本反射贴图,这种探针可在场景中的关键点对视觉环境进行采样。通常情况下,应将这些探针放置在反射对象外观发生明显变化的每个点上(例如,隧道、建筑物附近区域和地面颜色变化的地方)。当反射对象靠近探针时,探针采样的反射可用于对象的反射贴图。此外,当几个探针位于彼此附近时,Unity 可在它们之间进行插值,从而实现反射的逐渐变化。因此,使用反射探针可以产生非常逼真的反射,同时将处理开销控制在可接受的水平。

反射探针在场景中也有一个不可见的框,用作效果区域。可以配置此框的大小。

在反射探测器区域内通过的反射对象的反射立方体贴图由该反射探测器临时提供。当对象从一个区域移动到另一个区域时,立方体贴图会相应地发生变化。

2. 反射探针的工作原理

场景中某个点的视觉环境可由立方体贴图表示。立方体贴图在概念上很像一个在内部表面绘有六个方向(上、下、左、右、前、后)平面图像的盒子。

光线反射设置&反射探针

为了让对象显示反射,其着色器必须能够访问表示立方体贴图的图像。对象表面的每个点都可在表面朝向的方向(即表面法向矢量的方向)上“看到”立方体贴图的一小块区域。着色器在此处使用立方体贴图的颜色来计算对象表面应该是什么颜色;镜面材质可能会准确反射颜色,而闪亮的汽车可能会略微褪色和着色。

3. 反射探针组件

__反射探针__非常像一个捕捉周围各个方向的球形视图的摄像机。然后,捕捉的图像将存储为立方体贴图,可供具有反射材质的对象使用。可在给定场景中使用多个反射探针,并可将对象设置为使用由最近探针生成的立方体贴图。带来的结果是对象上的反射可根据环境发生令人信服的变化。

光线反射设置&反射探针

属性

不同的渲染管线,反射探针的属性也不同,下面是内置渲染管线的

光线反射设置&反射探针

光线反射设置&反射探针

探针的 Type 属性可确定如何创建和更新反射数据:

  • 烘焙 (Baked) 探针可存储 Editor 中烘焙的静态反射立方体贴图。
  • 自定义 (Custom) 探针可存储通过烘焙生成的或由用户手动设置的静态立方体贴图。
  • 实时 (Realtime) 探针在运行时更新立方体贴图,因此可对场景中的动态对象做出反应。

其他两种渲染管线中的反射探针具体属性文档,可以从下面的链接中找到:

URP 渲染管线文档:https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest/

HDRP 渲染管线文档:https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/

4. 3D 场景中的默认光照探针

Unity 不仅使用天空盒来生成和配置环境光,而且还会在使用了天空盒(SkyBox)的 3D 场景中自动生成 AmbientProbe —— 环境(光)探针 和 反射探针。

管理这些功能和对象的管理器,被 Unity 称为 SkyManager,它的设置大多数都在 Lighting - Enviroment 窗口中。

AmbientProbe —— 环境(光)探针

由 SkyManager 自动生成的环境探测器,用于捕获环境照明。

禁用 SkyManager

了防止场景中自动生成环境光和环境反射,影响场景的照明结果或游戏对象显示效果,可以禁用 SkyManager 中自动生成的 环境光探针和反射探针

要禁用这些探测器,请导航到 Window > Rendering > Lighting Settings > Environment,然后进行以下更改之一:

  • 选项 1:将强度乘数设置为 0。
  • 选项 2:使用黑色天空盒材料。
  • 选项 3:将 Source 设置为 Color 或 Gradient,并将颜色设置为黑色。

5. 反射探针使用步骤

添加反射探针:

  1. [可选]:禁用 SkyManager
  2. 添加反射探针 Reflection Probe
  3. 将新探针放在所需位置并设置其 Offset 点及其效果区域的大小
  4. 调整探针属性到合适的值
  5. 继续添加探针,直到分配完所有必需的位置。

添加具有镜面效果表面的反射对象:

  1. 将一个简单对象(如球体)添加到场景中
  2. 创建新材质(菜单:Assets > Create > Material__)并保留默认的 Standard__ 着色器。
  3. 通过将 Metallic 和 Smoothness 属性均设置为 1.0 使材质具有反射性。
  4. 将新创建的材质拖动到球体对象上以进行分配。
  5. 单击反射探针检视面板中的 Bake 按钮以更新探针。

反射探针添加位置

探针的位置主要由反射对象的位置决定:

  • 静态反射对象:反射探针矩形包括静态反射对象;
  • 动态反射对象:全套探针的区域应共同覆盖场景中反射对象可能通过的所有区域。

6. 改正室内光照场景中的金属苹果反射

  1. 使用上面的步骤 禁用 SkyManager;

  2. 在 Hierarchy 中,选择Add ( + ),然后选择Light > Reflection Probe

  3. 将反射探头放在苹果前面的底座上,苹果现在显示是黑色的,这是因为它位于反射探头的作用区域内。反射探针是一个矩形,灰色圆球代表其轴心,越接近苹果的实际位置,反射就越准确。如果要调整打下,可以拖拽每个面上的黄色点(控制柄)

光线反射设置&反射探针

  1. Reflection Probe 组件 Type 属性设置为Baked

  2. 在Runtime Settings部分,启用Box Projection属性。

  1. 光线反射设置&反射探针

    这意味着苹果上的反射将根据苹果在反射探针的影响区域内的位置进行模拟。

  2. 调整Box Size轴的值,直到代表 Reflection Probe 效果区域的框填满了苹果所在画廊的大部分后半部分。

    光线反射设置&反射探针

  3. 选择烘焙以烘焙反射探针——它位于反射探针组件的底部。 

    光线反射设置&反射探针

  4. 进入播放模式,检查最终效果

    参考资料:

  5. 反射探针官方文档
  6. 室内反射探针使用 - Unity 官方创意核心教程
  7. 光线反射设置&反射探针文章来源地址https://www.toymoban.com/news/detail-473789.html

到了这里,关于光线反射设置&反射探针的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于C#反射概念,附带案例!

    C#中的反射是一种使程序在运行时能够动态地获取类型信息并调用其成员的技术。通过反射,程序可以在运行时进行类型的动态加载、创建对象、调用方法和属性,以及访问和修改字段等。反射可以使程序更加灵活,但也增加了一定的性能开销。 在C#中,反射主要是通过Syst

    2024年02月05日
    浏览(38)
  • Java 中反射的概念、作用和特点,在什么情况下使用反射及使用实例

    反射(Reflection)是 Java 的一种特性,它可以让程序在运行时获取自身的信息,并且动态地操作类或对象的属性、方法和构造器等。通过反射功能,可以让我们在不知道具体类名的情况下,依然能够实例化对象,调用方法以及设置属性。 反射的作用有以下几点: 运行时探查类

    2024年02月06日
    浏览(49)
  • K8S基本概念+pod生命周期+容器重启策略+Init容器和边车容器+pod探针+postStart和preStop

    Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目,Kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。 kube-APIServer:集群的控制中枢,各个模块之间信息交互都需要经过Kube-APIServer,同时它也是集群管理、资

    2024年04月15日
    浏览(53)
  • 【Java反射】Java利用反射获取和设置对象某属性的值

    通用工具类: 测试:

    2024年02月02日
    浏览(57)
  • Java 反射设置/获取对象属性值

    ✨大家好,我是【zhuzicc】~ ,一位主攻【Java】的 攻城狮!✨ 欢迎对【Java】感兴趣的大佬,关注我 😜 ———————————————— ❤️ ❤️ ❤️ 如果觉得本文还不错,点赞 + 评论 + 关注 + 收藏。有补充欢迎评论交流,我将努力创作更多更好的文章。 大佬们的支持

    2024年02月07日
    浏览(53)
  • 反射UnityEditor.GameView设置GamePlayMode分辨率

    现在很有游戏考虑横屏适配、竖屏适配、阿拉伯语适配(横竖屏)导致拼界面变得越来越繁琐。 有很多时候需要记录各个控件的状态。 为了减少操作,特意制作了这个工具,点击用x配置可以自动切换到 宽高分辨率,如果当前没有则会自动添加到编辑器中。这里特别感谢开源

    2024年02月02日
    浏览(42)
  • 【Java 进阶篇】MySQL启动与关闭、目录结构以及 SQL 相关概念

    MySQL是一个常用的关系型数据库管理系统,通过启动和关闭MySQL服务,可以控制数据库的运行状态。本节将介绍如何在Windows和Linux系统上启动和关闭MySQL服务。 在Windows上启动和关闭MySQL服务 启动MySQL服务 在Windows上,MySQL服务可以通过以下步骤启动: 打开Windows服务管理器。您可

    2024年02月07日
    浏览(49)
  • Linux修改目录文件的属主(属组)命令、设置宿主目录并删除原来宿主目录

    1.属主(属组)的目的: 2.属主(属组)的用处: 3.修改属主和属组的用途: 1. 权限控制: 2. 用户管理: 3. 文件管理: 4.修改目录或文件的属主和属组的命令: 1. chown命令: 2. chgrp命令: 5.设置宿主目录并删除原来宿主目录: 1.设置宿主目录的原因: 1. 数据持久性: 2. 共享数

    2024年02月09日
    浏览(46)
  • c#多线程—基础概念到“双色球”项目实现(附知识点目录、代码、视频)

    总结:视频中对于多线程讲的非常透彻,从线程基础概念—.net不同版本出现的线程方法—多线程常出现问题—双色球项目实践,每个知识点都有代码实操,受益匪浅。附上学习笔记和实操代码。 视频 线程:程序执行的最小单位,任何操作都是由线程完成的,使用同步时,资

    2024年02月11日
    浏览(59)
  • Ubuntu设置共享文件夹(解决/mnt 目录下没有 hgfs 目录)

             目录 1、Windows创建一个共享文件夹 2、在虚拟机的设置中选择Windows下的共享文件夹 3、在Ubuntu中查看共享文件夹 4、解决/mnt 目录下没有 hgfs 目录 5、设置共享文件夹以后,/mnt/hgfs下没有出现共享文件夹  这种方式使用的前提是 Ubuntu虚拟机和Windows系统在同一主机上

    2024年02月06日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包