在室内场景烘焙中,一般分为以下两种情况,人工照明和自然光照明,人工照明的主要难点在于灯光的强度与范围的平衡,而自然光照明的难点在于“增强”阳光,所谓增强,在我们的生活中太阳光的表现绝不仅仅是一个平行光,除了单纯的亮度以外,还有阳光泻下百叶窗时造成的丁达尔效应,阳光穿过天空时留下的低波长光线,如呈蓝色的天空,白色的云对屋内光照的影响。
在这个场景中,人工照明较少,只有书房的台灯,客厅里的一个壁灯,以及可以忽略不计的几根蜡烛,这时的环境设定应该是下午,多云,阳光较强但又不是特别强,环境光较强(因为多云):

这里太阳光使用了开源项目Light-Shaft插件,笔者进行了一下魔改,优化了一下性能,(按照惯例这里打下广告)想下载的朋友加QQ群:146025605 下载群文件共享,实时体积光的运算使用Raymarch algorithm,性能消耗相对昂贵,如果仅仅希望实现一个静态的体积光效果,大可不必大费周章使用Raymarch,可以使用一个mesh配一个cull off unlit shader即可,这种静态体积光实现可以在Assets Store找到,这里不再赘述。
这里吸顶灯的光线较暗,而百叶窗也阻挡了大部分的阳光,为了让整个画面看起来温暖一些,需要人为加Area Light(毕竟Unity的渲染还是真实为主,而我们有时并不希望游戏场景过于真实以至于失去美感),这里在窗户上添加了Area Light,让屋内画风明亮一些(审美实在捉急,这里只是实现以下过程)。

第二张图则是在室内,完全使用人工照明,室内照明的处理简单直接,加非平行光就可以,然而需要格外注意的有两点,首先是自发光物体与灯光的辉映,在Unity的烘焙中,自发光物体会通过光照引擎的光线追踪计算,形成一张对周围物体有影响的光照贴图,使周围物体随之被照亮,再加上Reflection Probe与Screen Space Reflection的存在,烘焙结束后的画面要比烘焙前要亮的多。这里有经验的技术美术和图形开发者可以自定义Shader中的Meta Pass以增强或改变烘焙后的自发光效果,实现一些或迷幻或真实的效果,为了体谅缺乏Shader编写经验的开发者,我们这里通过在烘焙前改变shader的自发光(Emission)值,改变自发光对周围物体的影响,同时自发光物体应选择Mesh Renderer中的该项以增加Unity光线追踪时从物体射出的射线的数量并提高射线优先级,使自发光物体的运算更为精准:

左侧厨房使用了灯带,Unity是不支持实时的灯带,除非用户使用G Buffer实现(无法实现阴影),Area Light与自发光物体原理相似,建议开发者使用性能较高的工作站,进行多次烘焙并调整亮度,最后获得一个亮度适中的室内光照。

Unity场景渲染中那些意想不到的细节(2)相关推荐

  1. Unity管线渲染中的三大测试之模板测试

    我感觉将近一个月没有写技术文档了,最近了可能能在研究一些比较抽象计算机图形学,知识点太多,也过于零碎.我个人认为管线渲染流程当中三大测试是控制效果的一个关卡.这篇文章今天本来写了个开头,回到家看了题目 ...

  2. Unity 场景渲染之天空盒的设置

                                               天空盒 SkyBox  skybox可作为反射源将天空色彩反射到场景中物体 下面依次介绍三种天空盒材质: 一 .如 ...

  3. Unity场景渲染之常见的阴影问题(四)

                有光就会有影子 但是我们创建的物体有时候在光的照射下并没有阴影这是为什么呢?下面我们一起来看一下: 首先设置下Lighting面板如下:目的是尽量减少环境中其余光的影响 上面的 ...

  4. Unity场景渲染之自发光材质

    用自发光材质照明场景效果如下,Lighting面板如下设置 创建自发光材质球参数设置如下:

  5. Unity场景渲染之混合光照模式下的 Baked Indrect(十)

    回顾前面(九)讲的Shadowmask Distance 模式渲染结果(随着摄像机的拉远超过设定的距离仍然会有影子): 但是如果是在Baked Indirect 模式下的效果 下面是烘焙好的效果

  6. 三维场景渲染之天空体生成

    天空模型仿真方法 静态天空体 主要是用天空纹理进行贴图,为了渲染能用较好的效果,静态天空体渲染对纹理的要求较高,金泰天空体的优点是在三维产经渲染时不会对程序造成负担,因为它的纹理是一开始载入的,之后无 ...

  7. Unity将当前场景渲染到图片上并导出图片(本地/服务器)

    在Unity中,可以使用以下代码将场景渲染为一张图片: // 创建一个RenderTexture作为渲染目标RenderTexture rt = new RenderTexture(Screen.wi ...

  8. Unity VR开发中UI始终优先渲染不被物体遮挡

    Unity VR开发中UI始终优先渲染不被物体遮挡 在用Vive开发VR的时候,3DUI很容易被场景中的物体遮挡,解决办法是使用一个Shader:Overlay.shader,这个shader很好找, ...

  9. 【仙剑五前传】中的一点场景渲染问题

    两周时间没来CSDN更新博客,业余时间主要花在新上市的<仙剑奇侠传五-前传>上了~   不可否认,仙剑系列作为国产单机游戏的第一品牌,当之无愧.尽管当年的仙剑五让很多人大为失望,不过相信通 ...

最新文章

  1. [HTTP]Etag的工作流程
  2. Flutter Android/iOS包大小分析
  3. python——xpath
  4. 【TensorFlow】笔记5:图像数据处理
  5. Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
  6. jenkins远程构建job_jenkins分布式构建job
  7. 在python中类型属于对象变量是没有类型的_如何理解python对象有类型,变量无类型...
  8. 绕开“陷阱“,阿里专家带你深入理解C++对象模型的特殊之处
  9. 063 模块的四种形式
  10. javascript location.href 参数详解
  11. C语言日常学习中遇到的易错情况(2022.11.14)
  12. 需求分析师如何分析功能性需求
  13. 判断BIOS的启动模式和磁盘分区格式
  14. python3版本升级和系统更新_如何更新mac系统自带的python版本到最新3.3
  15. 【图像算法】pytesseract简单实现图片数字识别
  16. mysql error unpacking_linux 安装 mysql rpm包出现error: unpacking of archive failed on file
  17. 使用windows自带的局域网连接传输文件
  18. 成熟男人的处事说话技巧
  19. Linux 下 启动 Oracle
  20. 使用云主机进行深度学习

热门文章

  1. LiquiBase笔记
  2. 解决tomcat启动闪退问题
  3. 智能可穿戴设备还能怎么玩
  4. 电子电路学习笔记(4)——二极管
  5. U3D游戏开发框架(一)——什么是框架?什么是库?
  6. python学习-开篇辞
  7. pageable设置size_分页工具一Pageable与Page
  8. PL/SQL 注释(Comment)
  9. 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(三)
  10. 在 Win10 中加快微软账户登录速度的解决方案