识别不同种类的光源

在游戏或实时应用程序中,我们可能会创建多种不同种类的场景,比如室内场景、室外场景、真实的场景或完全想象的场景。即便项目是一个完全的想象的或是科幻的故事,灯光也是非常重要的一环,它能极大提升沉浸感。

在光照设计和实现中,识别出一个场景所需要的光照是关键的初始步骤:

自然光(Natrual lighting):通常是日光或月光

模拟光(Motivated lighting):场景中模拟特定种类的真实光源,比如路灯或车灯

色调光(Key lighting):场景中照明焦点物体的灯光

环境光(Ambient lighting):在Uinty中也叫漫反射环境光(diffuse enviromental light),环境光是存在于场景中但没有特定来源的光。

注意:还有更多种类的灯光,不在此展开

配置平行光

对于室外场景,常见的自然光源是太阳或月亮。在Unity中,当我们创建了一个场景后,默认会有一个Direcitonal Light的游戏物体,这个游戏物体的功能就是太阳或月亮。

平行光源会朝着设定好的方向(在gizmo中可以打开或关闭方向显示)发出平行光:

对于平行光来说,我们可以认为它离场景非常远。因此它发出的平行光可以认为不是发散的,它发出的光不受到光源的大小和位置影响,而只和其方向有关。

在场景中测试一下平行光:

首先,确保天空盒会起效果,在下图红框处记得勾选Skybox选项

然后找到场景中的Directional Light,尝试调整其大小和位置,我们会发现场景没有发生变化

通过调整平行光的方向,可以看到场景发生了明显变化

在Direcitonal Light的Inspector中,尝试调整一下灯光的颜色

天空盒基础知识

了解了平行光之后,我们来看另一个重要的东西:天空盒。

在Unity中,天空背景是通过使用一种称为skybox的特殊材质来创建的。天空盒是立方体,每一面上有不同的纹理。当我们使用天空盒来渲染天空的时候,Unity会将场景放到天空盒立方体内,Unity会先渲染这个立方体。

天空盒也能够包含远距离的环境信息。这些信息会对场景的空间和深度感造成影响,包括:

景观特性 - 例如场景远处有高山背景

建筑物 - 例如只能在地平线上可见的宏伟的城市

用于天空盒的材质需要使用Skybox shader,有两类Skybox shader:

Textured(纹理化的):使用材质纹理来生成天空盒的shader

Procedural(程序化的):使用材质属性来生成天空盒的shader

创建一个程序化的(Procedural)天空盒

接下来我们创建一个自定义的程序化天空盒:

1. 新建材质,取名为MySkyBox

2. 选择MySkyBox,在Inspector面板中,将Shader选择为Skybox -> Procedural

3. 在配置天空盒之前,我们最好能够能让场景使用这个自定义的材质来渲染天空,以便修改参数的时候能够直观地看到效果。我们在Window -> Rendering -> Lighting选项窗口中,选择Enviroment,将Skybox Material选择为我们刚刚创建的材质(也可以直接拖拽)

4. 回到MySkyBox的Inspector面板,我们来看看它都有些属性:

Sun: 表示太阳的样子,选择High Quality的话,太阳会带光晕效果

选择Simple的话,太阳只是简单显示一个圆盘

                Sun Size: 太阳的大小,这个没有太多必要细说,值越大场景中太阳看起来就越大

Atomsphere Thickness:大气层厚度,大气层厚度越厚,它吸收的光线就越多

 Sky Tint:天空的色调,比如我们调整它为蓝色

Ground:地平线下的区域颜色(地面),比如我们调整它为红色

Exposure:曝光度,调整天空的曝光度。我们可以简单地用亮度来理解就行了。

Unity Lighting -- 配置平行光源和天空盒相关推荐

  1. Unity Lighting -- 室内场景光照和发光材质

    室内场景光照需要考虑的重点问题 在为室内场景做光照设计的时候,间接光照非常重要.大部分室内场景的光线会经过多次反射后才进入到了我们的眼睛(或者说是Unity的摄像机).环境光和反射光在室内场景中为场景 ...

  2. Unity Lighting(一)光照练习

    Unity 2018.1.2f1 原文链接:https://www.youtube.com/watch?v=VnG2gOKV9dw Unity Lighting练习最终效果 眼睛.光源与物体 光学基础 ...

  3. Unity可配置关节详解

    [组件界面] [前置基础] 关节的作用是使得两个刚体连接到一起,使两个刚体的运动受到对方的限制,例如绳子连接的两个石块的运动会受到对方的限制.在关节中,这种运动限制通过锚点来实现,其原理是: 关节有六 ...

  4. Unity Lighting参数和烘焙

    终于还是到了烘焙这里.(我用的unity版本是2017.2.0f3.新手一枚,如果有错误的地方,各位大哥及时指正.以免误人子弟.) 先来说下灯光的各个参数: unity 的灯光有以下几种: Direc ...

  5. final-期末大作业-制作AR射箭小游戏(Unity AR配置详细教程)

    要求 大作业要求: 制作一款特定技术应用小游戏,并提交技术报告. 内容(请参考以下技术主题,但不限于这些主题): 运用手机拍若干全景图,贴到天空盒或球型天空,做一个简单校园漫游功能. 粒子系统效果制作 ...

  6. Unity Lighting -- 室内场景光照杂项

    游戏物体所有面都计算阴影 在游戏物体的Inspector中,展开Lighting选项卡,在Cast Shadows中选择 Two Sided. 选择Two Sided后,游戏物体在计算阴影的时候会对M ...

  7. Unity游戏配置存储方案

    文本存储+类配置(C#) 配置文件格式如下图 第一行是列类型说明,第二行是描述,第三行是对应属性名称,用于反射,之后行是实际数据 \r\n换行,\t分列,单元格内依次由+.|分割 long strin ...

  8. unity用全景视频制作天空盒——欺骗眼睛让手游有3A等级画面

    1 需要的工具 unity2017以上,我用的是2019.1 Cinemachine插件 unity recorder插件 timeline插件 2 准备一个很好看面数很大的场景,我找了一个小镇的场景 ...

  9. Unity安装配置Android环境 SDK,JDK,JIR

    安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java文件夹的根目录下 ...

最新文章

  1. Scrum敏捷开发工具分享
  2. 中国计算机与信息服务贸易,中国计算机与信息服务贸易国际竞争力研究
  3. Jsp—02—项目:登录案例
  4. mysql两个表left join_mysql中两张表使用left join on 求差集
  5. matlab如何绘制三维隐函数?
  6. Minimum Diameter Tree
  7. 【LeetCode - 141142】环形链表(i和ii)(快慢指针,链表)
  8. 用Python的Tultle模块创建一个五角星
  9. 1092 回文字符串(51nod)
  10. 生产环境频繁内存溢出,原来就是因为这个“String类”
  11. 在 ASP.NET Web 部件应用程序中使用服务器控件
  12. php.ini 忽略警告,配置php.ini去掉警告信息
  13. Hive入门学习随笔(一)
  14. Linux系统下的文件和文件夹相关操作(创建/删除/修改权限)
  15. 计算机考试后进先出,事业单位考试计算机基础知识:建立单链表——后进先出表...
  16. DBProxy快速入门教程
  17. 小米扫地机器人粉尘盒_小米扫地机器人尘盒怎么打开
  18. 淘宝详情页排版布局怎么做?大神导航,一个神奇的网站,从此开启大神之路!
  19. 60款酷毙了的国外名片设计作品欣赏(下篇)
  20. linux下的遥控器软件,Linux系统下遥控器的配置与使用方法

热门文章

  1. 全球科技巨头加码云游戏,谁能分得千亿市场的一杯羹?
  2. 什么是项目文档?什么是开发文档?
  3. chatgpt赋能Python-python中的quit
  4. 查看静态库、动态库使用的gcc版本
  5. 2021牛客暑期多校训练营2 Girlfriend(阿波罗尼斯圆 + 计算几何)
  6. GRNN和PNN神经网络简介与MATLAB实践
  7. C#Partical算法
  8. 时间序列数据的移动平均
  9. MacOS使用clang
  10. ArcMap桌面端如何正确加载天地图WMTS服务