咨询电话:400-810-1418服务与监督电话:400-006-6572

Unity 3D实用技巧教你如何将Game视图调到全黑

发布时间:2019-11-18 08:59:10

今天给大家分享Unity 3D 实用技巧教你如何将Game视图调到全黑,我是木偶心没,一起来看下吧!

Unity默认场景里面的Lighting设置是由很多个部分的光源设置组成的,所以我们通过将Game视图调到全黑来分解一些unity里面的灯光。

1、将Scene视图背景调到全黑

打开或者新建一个项目,然后选择Windows>Rendering>LightingSettings。

1-1.webp.jpg

Scene的背景之所以是蓝色的,是因为添加了默认的天空盒子,所以我们需要将Skybox material改成None,即不加天空

1-2.webp.jpg

然后就会注意到现在天空已经变成了灰色,但并不是我们想要设置的黑色。所以我们还需要在设置里面调节一下Background的颜色(注意这个设置对整个项目scene起作用)

Edit>Preferences

1-3.webp.jpg

1-4.webp.jpg

现在观察到的Scene整个背景颜色就变成了黑色

1-5.webp.jpg

2、将Game视图背景调至全黑

上面操作将我们的Scene视图背景颜色调成了黑色,但是当切换到Game的时候,发现背景并没有像Scene一样变成黑色,而是蓝色

2-1.webp.jpg

这是因为Game呈现的是camera里面的场景,所以在camera里面还有一个颜色设置。

选中场景的camera,然后在属性面板中将Clear Flags改成Solid Color固定颜色(实际上默认Skybox也行,因为场景中已经没有了Skybox),Background的颜色改成黑色。

2-2.webp.jpg

这样就可以看到Game视图的背景也变成了纯黑色。

3、环境光Environment Lighting

为了方便观察,我们给场景加两个box,并且错开位置。

3-1.webp.jpg

观察上面那块板的底面的颜色以及下面那块板上的阴影颜色

3-2.webp.jpg

如果阴影在摄像机拉到一定距离就看不到,需要修改shadow的distance。

Edit>Project Settings>Quality

3-3.webp.jpg

然后找到Shadows,增加ShadowDistance的值

3-4.webp.jpg

这两块板上面反射的颜色实际上是skybox天空和地面的颜色辐射。虽然我们在此之前是关掉了场景里面的skybox的,但是在我们的lighting的设置中,Environment Lighting的设置还是默认的skybox。

所以如果添加了默认的skybox,然后将Environment Lighting的Intensity Multiple调到0,这个时候不管你添加何种天空球skybox,都不会对box的阴影造成任何影响。

3-5.webp.jpg

这个效果相当于将Source改为Color,然后将Ambient Color调成纯黑色。这个过程叫做关天光

3-6.webp.jpg

4、环境光反射Environment Reflection

但是如果此时切换到Game窗口的话,可以看到上面一块box的底部并不是想scene里面的纯黑。那是因为他还受到环境光反射Environment Reflection的影响

4-1.webp.jpg

我们继续将下面的Environment Reflection选择为Custom,就可以关掉环境光反射。然后就看到所有的阴影都变成了纯黑色。

4-2.webp.jpg

除了关闭Environment Reflection以外,还可以通过将box的smoothness的值调为0,这样得到的阴影颜色值也为0.

4-3.webp.jpg

创建一个新材质给上面的box,然后调节他的smoothness为0,就可以看到阴影同样变成了全黑。

但是这个办法得到并没有直接设置Environment Reflection的效果好。所以这里还是直接设置Environment Reflection为Custom,设置完成以后发现下面的box还有一部分没有变黑,那是场景里Directional Light的作用,所以我们选中它,然后将其强度调为0

4-4.webp.jpg

然后就得到了想要的全黑效果!!!

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

来源:Thepoly 公众号