【Bug修复记录】Unity Fog真机不生效相关问题

# 前言

最近在场景中使用了unity自带的global fog时出现了真机上不生效的问题。这篇博客主要是记录这个问题的解决过程。

# 正文

## 问题描述

在Editor模式下模型能够与雾效融合实现雾效效果,但是到了真机出现了模型不能跟雾效融合,导致模型感觉在雾效上面。

## 问题原因

先说下原因,是因为之前使用的模型shader使用的surface shader,在shader中设置了Emission自发光参数导致,但是我看到编译后的shader(如下图)也使用了UNITY_APPLY_FOG来与雾效融合。这里我猜测出现问题的原因还是很多,没有一一验证,可能这条指令在手机上由于机型限制无法生效,或者是没有针对指定类型(我项目中使用的Liner类型)雾效处理。

## 解决方法

### 开启多类型编译宏

//在shader中添加一条编译指令即可

#pragma multi_compile_fog

文档说明:https://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html

添加这条指令,可以应对处理不同雾效类型。

### 暴力删除Emission自发光

如果你这个对象是不需要自发光,那可以再surf函数中删除对于Emission的赋值,这样也可以正确得到雾效效果。

文档说明:https://docs.unity3d.com/540/Documentation/Manual/StandardShaderMaterialParameterEmission.html

关于这个问题的内容就算完了,下面列几个关于雾效的几个设置问题。

# 后记更多问题记录

 

## 雾效设置

window->Rendering->Lighting Setting->Other Setttings

开启fog,设置雾效类型即可

## shader关闭雾效

添加指令即可关闭

#pragma nofog

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值