Unity Lighting -- 改善场景的反射光照效果

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

Unity中反射光照是如何工作的

        先来看个案例问题,下图中,苹果的反射效果看起来是很奇怪的。

unity地面反光怎么调,unity,反射,Reflection

         在它的表面上反射了两种不同颜色的Spot Light光源,还反射了不属于室内环境的来自天空盒的光线,这是有问题的。在解决这个问题之前,我们需要知道在Unity中反射是如何工作的。

Unity中的反射

        在游戏或实时应用中,反射贴图(反射映射,reflection mapping)是用来模拟反射的方法,它会假设所有场景中可反射光的物体都能看到相同的环境。在诸如室外场景的简单开放空间中,这并没有什么问题。但在室内场景或更复杂的环境中则会出点问题(里面会增加许多影响反射的变量)。

        举个例子,想象有一个赛车游戏,其中部分路面通过一个隧道包裹了起来。如果玩家在隧道内的时候,车身仍然反射了天空的光线,那么会非常影响体验。

        在Unity中,我们可以使用Relection Probes来改善场景中的反射效果质量,它通过在关键点上采样环境信息,来确定此处是否会对反射产生影响。

Reflection Probes如何工作

        Reflection Probes在场景中,以一个cubemap的形式记录来自某个点的可见的环境和光照信息,我们可以将它看做是一个立方体,有六个纹理,在立方体的内表面上,这些纹理记录了场景中的特定点的反射信息。这个概念和用于生成天空盒的cubemap是类似的。

unity地面反光怎么调,unity,反射,Reflection

        当一个游戏物体的shader访问Reflection Probes的cubemap时, 这个物体表面的每个点能够看到这个cubemap的一小部分,这一小部分的区域是由这个表面的朝向所决定的。Shader在计算游戏物体表面的颜色时,会使用该点对应的cubemap中相关的颜色信息。

        在Unity中每个场景实际上都有一个秘密的Reflection Probe用来采样天空盒。这个Reflection Probe提供了场景中的基础反射信息,这也是前面例子中金属苹果反射了天空光线的原因所在。

        Reflection Probes周围也有一个不可见的盒子来表示其作用范围(zone of effect)的,我们可以配置这个盒子的大小。处于Reflection  Probe作用范围内的反射性物体,计算反射的cubemap是由这个Reflection Probe所提供的。当物体从一个范围移动到另一个范围时,cubemap也会相应改变。之前所提到的赛车游戏中,我们可以为隧道设置一个Reflection Probe,在隧道范围内使用这个Relection Probe所提供的信息来计算反射光照效果。

放置并配置Reflection Probe

        回到最初的那个金属苹果反光问题,我们在场景中放置一个Reflection Probe来解决这个问题:

        1. 在Hierarchy窗口(空白处右键选择Light -> Refleciton Probe)或通过主菜单栏(GameObject -> Light -> Refleciton Probe)添加一个Refleciton Probe

        2. 将Refleciton Probe放置到苹果前面,它越接近苹果的实际位置,反射信息计算就会越精确

            我们会看到,除了spotlight的反射外,放置了Refleciton Probe后,苹果会变成黑色,这是因为苹果进入了Refleciton Probe的作用范围内了(这个作用范围空间是一个立方体表示的,缩放场景可以看到这个盒子)。

unity地面反光怎么调,unity,反射,Reflection

         3. 在Refleciton Probe的Inspector中,确认一下Type是Baked。在Runtime Settings中,启用Box Projection属性

unity地面反光怎么调,unity,反射,Reflection

         Box Projection属性启用后,苹果表面的反射光计算,会和苹果在Refleciton Probe的作用区域内的位置相关。

        4. 调整一下Box Size的X,Y,Z值以及Reflection Probe的位置,让Refleciton Probe的作用区域覆盖到我们想要的区域(下图黄色框线表示盒子的大小和位置,仅为示例)

unity地面反光怎么调,unity,反射,Reflection

         5. 点击Reflection Probe的Inspector面板中最后的Bake按钮进行烘焙

unity地面反光怎么调,unity,反射,Reflection

         Reflection Prboe需要独立烘焙,除非我们启用了auto-baking(在Lighting窗口中的Auto Generate选项)。

        6. 最后,来看看烘焙后,这颗金属苹果的反光效果怎么样

unity地面反光怎么调,unity,反射,Reflection文章来源地址https://www.toymoban.com/news/detail-625934.html

到了这里,关于Unity Lighting -- 改善场景的反射光照效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity地面交互效果——2、动态法线贴图实现轨迹效果

    回到目录 Unity引擎动态法线贴图制作球滚动轨迹   大家好,我是阿赵。   之前说了一个使用局部UV采样来实现轨迹的方法。这一篇在之前的基础上,使用法线贴图进行凹凸轨迹的绘制。   先来回顾一下,上一篇最终我们已经绘制了一个轨迹的贴图   可以思考一下,

    2024年02月06日
    浏览(68)
  • Unity制作下雨中的地面效果

    Unity引擎制作下雨效果   大家好,我是阿赵。   之前介绍了Unity引擎里面通过UV偏移做序列帧动画的做法,这里再介绍一个进阶的用法,模拟地面下雨的雨点效果。   最基本的原理,还是基于这个序列帧动画的做法。不过这里做一点改变。我不再用网格的UV作为计算的

    2024年02月10日
    浏览(37)
  • Unity地面交互效果——3、曲面细分基础知识

    回到目录   大家好,我是阿赵。   之前介绍了使用动态法线贴图混合的方式模拟轨迹的凹凸感,这次来讲一下更真实的凹凸感制作。不过在说这个内容之前,这一篇先要介绍一下曲面细分着色器(Tessellation Shader)的用法。   之前通过法线贴图模拟了凹凸的感觉:   法

    2024年02月05日
    浏览(51)
  • Unity地面交互效果——1、局部UV采样和混合轨迹

    回到目录   大家好,我是阿赵。   这期开始,打算介绍一下地面交互的一些做法。 比如: Unity引擎制作沙地实时凹陷网格的脚印效果 或者: Unity引擎制作雪地效果   这些效果的实现,需要基于一些基础的知识。所以这一篇先介绍一下简单的局部UV采样,然后映射纹理

    2024年02月06日
    浏览(44)
  • unity加载场景后光照变暗

    关于unity加载场景后光照变暗的问题 最近在做场景的加载功能时,发现加载新的场景后整个场景的光照都变暗,但是如果是直接运行当前场景的话就不会,后来才发现原来是选择的光照是realtime实时光照,在一开始的场景时,它的灯光是已经渲染好了,但重新加载的时候灯光

    2024年02月15日
    浏览(48)
  • Unity光照贴图的切换,实现黑夜和白天效果

    有这么一个需求,不能使用实时光来进行动态控制光照开关,但是又要实现白天和黑夜的效果,我的场景中有大概十几个点光源和平行光 实现步骤: 一、 模型原模原样复制到另一个场景中(因为贴图只能存在于当前的场景文件夹) 二、 在不同的场景中调试白天和黑夜的效

    2024年02月10日
    浏览(46)
  • 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)(1)

    [Toggle(_SupportOrthographicCamera)] _SupportOrthographicCamera(“_SupportOrthographicCamera (default = off)”, Float) = 0 } SubShader { // 关于tags的内容可以查阅官网手册:https://docs.unity3d.com/Manual/SL-SubShaderTags.html // 为了避免渲染顺序问题, Queue必须 = 2501, 它位于透明队列中 // 在透明队列中,Unity总是从后

    2024年04月16日
    浏览(52)
  • Unity Lighting -- Unity的光源简介

            在主菜单栏中,点击Window - Rendering - Light Explorer打开光源管理器,这个标签页可以看到场景中所有的光源,包括每个光源的类型,形状,模式,颜色,强度,阴影等信息。       在主菜单栏中,点击Window - Rendering - Lighting打开窗口,这个窗口是设置场景级的灯光设置

    2024年02月04日
    浏览(32)
  • Unity Lighting Mode

    在Light中Mode设置为Mixed时,Lighting Mode(在Window-Rendering-Light-Scene)有三种选项如下图:   Baked Indirect          烘焙间接光,效果最好性能最耗 混合光源照亮的动态游戏对象将接收: 实时直接光照。 烘焙间接光照(使用光照探针) 动态游戏对象的阴影,不超过阴影距离 (S

    2024年02月13日
    浏览(32)
  • Unity Lighting -- 配置阴影

            本笔记使用URP管线进行说明         在项目窗口中,主菜单中选择Edit - ProjectSettings,然后选择Quality,查看当前项目所使用的URP资源,目前例子所使用的资源为UniversalRP_HighQuality资源          在工程窗口中,会有对应的渲染管线配置资源文件,选择这个文件,查看其

    2024年02月14日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包