Unity场景渲染中那些意想不到的细节(2)
在室内场景烘焙中,一般分为以下两种情况,人工照明和自然光照明,人工照明的主要难点在于灯光的强度与范围的平衡,而自然光照明的难点在于“增强”阳光,所谓增强,在我们的生活中太阳光的表现绝不仅仅是一个平行光,除了单纯的亮度以外,还有阳光泻下百叶窗时造成的丁达尔效应,阳光穿过天空时留下的低波长光线,如呈蓝色的天空,白色的云对屋内光照的影响。
在这个场景中,人工照明较少,只有书房的台灯,客厅里的一个壁灯,以及可以忽略不计的几根蜡烛,这时的环境设定应该是下午,多云,阳光较强但又不是特别强,环境光较强(因为多云):
这里太阳光使用了开源项目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)相关推荐
- Unity管线渲染中的三大测试之模板测试
我感觉将近一个月没有写技术文档了,最近了可能能在研究一些比较抽象计算机图形学,知识点太多,也过于零碎.我个人认为管线渲染流程当中三大测试是控制效果的一个关卡.这篇文章今天本来写了个开头,回到家看了题目 ...
- Unity 场景渲染之天空盒的设置
天空盒 SkyBox skybox可作为反射源将天空色彩反射到场景中物体 下面依次介绍三种天空盒材质: 一 .如 ...
- Unity场景渲染之常见的阴影问题(四)
有光就会有影子 但是我们创建的物体有时候在光的照射下并没有阴影这是为什么呢?下面我们一起来看一下: 首先设置下Lighting面板如下:目的是尽量减少环境中其余光的影响 上面的 ...
- Unity场景渲染之自发光材质
用自发光材质照明场景效果如下,Lighting面板如下设置 创建自发光材质球参数设置如下:
- Unity场景渲染之混合光照模式下的 Baked Indrect(十)
回顾前面(九)讲的Shadowmask Distance 模式渲染结果(随着摄像机的拉远超过设定的距离仍然会有影子): 但是如果是在Baked Indirect 模式下的效果 下面是烘焙好的效果
- 三维场景渲染之天空体生成
天空模型仿真方法 静态天空体 主要是用天空纹理进行贴图,为了渲染能用较好的效果,静态天空体渲染对纹理的要求较高,金泰天空体的优点是在三维产经渲染时不会对程序造成负担,因为它的纹理是一开始载入的,之后无 ...
- Unity将当前场景渲染到图片上并导出图片(本地/服务器)
在Unity中,可以使用以下代码将场景渲染为一张图片: // 创建一个RenderTexture作为渲染目标RenderTexture rt = new RenderTexture(Screen.wi ...
- Unity VR开发中UI始终优先渲染不被物体遮挡
Unity VR开发中UI始终优先渲染不被物体遮挡 在用Vive开发VR的时候,3DUI很容易被场景中的物体遮挡,解决办法是使用一个Shader:Overlay.shader,这个shader很好找, ...
- 【仙剑五前传】中的一点场景渲染问题
两周时间没来CSDN更新博客,业余时间主要花在新上市的<仙剑奇侠传五-前传>上了~ 不可否认,仙剑系列作为国产单机游戏的第一品牌,当之无愧.尽管当年的仙剑五让很多人大为失望,不过相信通 ...
最新文章
- [HTTP]Etag的工作流程
- Flutter Android/iOS包大小分析
- python——xpath
- 【TensorFlow】笔记5:图像数据处理
- Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
- jenkins远程构建job_jenkins分布式构建job
- 在python中类型属于对象变量是没有类型的_如何理解python对象有类型,变量无类型...
- 绕开“陷阱“,阿里专家带你深入理解C++对象模型的特殊之处
- 063 模块的四种形式
- javascript location.href 参数详解
- C语言日常学习中遇到的易错情况(2022.11.14)
- 需求分析师如何分析功能性需求
- 判断BIOS的启动模式和磁盘分区格式
- python3版本升级和系统更新_如何更新mac系统自带的python版本到最新3.3
- 【图像算法】pytesseract简单实现图片数字识别
- mysql error unpacking_linux 安装 mysql rpm包出现error: unpacking of archive failed on file
- 使用windows自带的局域网连接传输文件
- 成熟男人的处事说话技巧
- Linux 下 启动 Oracle
- 使用云主机进行深度学习