unity | 将Game视图调到全黑
Thepoly 14319 0
实名

通过了实名认证的内容创造者

发布于 2022-3-24 18:27:58

您需要 登录 才可以下载或查看,没有账号?注册

x
src=http___xqimg.imedao.com_17b70f518351426d3fd73b36.png!800.jpgrefer=http___xqimg.imedao.webp.jpg 174551k9r66ex7z719e99h.jpg Hello . 大家好
今天是unity套餐
我是木偶心没
Unity默认场景里面的Lighting设置是由很多个部分的光源设置组成的,所以我们通过将Game视图调到全黑来分解一些unity里面的灯光。

1将Scene视图背景调到全黑
打开或者新建一个项目,然后选择Windows>Rendering>LightingSettings。
Scene的背景之所以是蓝色的,是因为添加了默认的天空盒子,所以我们需要将Skybox material改成None,即不加天空
然后就会注意到现在天空已经变成了灰色,但并不是我们想要设置的黑色。所以我们还需要在设置里面调节一下Background的颜色(注意这个设置对整个项目scene起作用)
Edit>Preferences
现在观察到的Scene整个背景颜色就变成了黑色


2将Game视图背景调至全黑


上面操作将我们的Scene视图背景颜色调成了黑色,但是当切换到Game的时候,发现背景并没有像Scene一样变成黑色,而是蓝色
这是因为Game呈现的是camera里面的场景,所以在camera里面还有一个颜色设置。
选中场景的camera,然后在属性面板中将Clear Flags改成Solid Color固定颜色(实际上默认Skybox也行,因为场景中已经没有了Skybox),Background的颜色改成黑色。
这样就可以看到Game视图的背景也变成了纯黑色。

3
环境光Environment Lighting



为了方便观察,我们给场景加两个box,并且错开位置。
观察上面那块板的底面的颜色以及下面那块板上的阴影颜色
如果阴影在摄像机拉到一定距离就看不到,需要修改shadow的distance。
Edit>Project Settings>Quality
然后找到Shadows,增加ShadowDistance的值
这两块板上面反射的颜色实际上是skybox天空和地面的颜色辐射。虽然我们在此之前是关掉了场景里面的skybox的,但是在我们的lighting的设置中,Environment Lighting的设置还是默认的skybox。
所以如果添加了默认的skybox,然后将Environment Lighting的Intensity Multiple调到0,这个时候不管你添加何种天空球skybox,都不会对box的阴影造成任何影响。
这个效果相当于将Source改为Color,然后将Ambient Color调成纯黑色。这个过程叫做关天光


4
环境光反射Environment Reflection



但是如果此时切换到Game窗口的话,可以看到上面一块box的底部并不是想scene里面的纯黑。那是因为他还受到环境光反射Environment Reflection的影响
我们继续将下面的Environment Reflection选择为Custom,就可以关掉环境光反射。然后就看到所有的阴影都变成了纯黑色。
除了关闭Environment Reflection以外,还可以通过将box的smoothness的值调为0,这样得到的阴影颜色值也为0.
创建一个新材质给上面的box,然后调节他的smoothness为0,就可以看到阴影同样变成了全黑。
但是这个办法得到并没有直接设置Environment Reflection的效果好。所以这里还是直接设置Environment Reflection为Custom,设置完成以后发现下面的box还有一部分没有变黑,那是场景里Directional Light的作用,所以我们选中它,然后将其强度调为0
然后就得到了想要的全黑效果!!!

所以划重点总结:我们之所以能够看到场景中的物件,是通过调节camera,Environment lighting以及场景光的设置来完成的
- End -



本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表