Unity混合天空盒
对于不同天气下天空盒的实现。
天空盒时通过天空盒材质更改实现的,新建材质,选择shader/skybox/6sided,然后添加六个天空盒贴图就可以实现天空盒,如果想实现天气变化则需要至少两套贴图,并需要实现渐变。此时需要新建着色器shader。Create/shader/unityshader然后双击新建的shader,添加如下代码,然后将此shader添加到相应材质上,就会看到相应材质有12个贴图槽,即两套天空盒贴图,拖入相应的贴图,通过材质的setfloat方法控制参数_Blend的值即可实现渐变,如第二段代码所示,也可加入灯光强度的设置,以达到相关效果。
Shader "Skybox/Blended" {
Properties{
_Tint("Tint Color", Color) = (., ., ., .)
_Blend("Blend", Range(0.0,1.0)) = 0.5
_FrontTex("Front (+Z)", 2D) = "white" {}
_BackTex("Back (-Z)", 2D) = "white" {}
_LeftTex("Left (+X)", 2D) = "white" {}
_RightTex("Right (-X)", 2D) = "white" {}
_UpTex("Up (+Y)", 2D) = "white" {}
_DownTex("Down (-Y)", 2D) = "white" {}
_FrontTex2("2 Front (+Z)", 2D) = "white" {}
_BackTex2("2 Back (-Z)", 2D) = "white" {}
_LeftTex2("2 Left (+X)", 2D) = "white" {}
_RightTex2("2 Right (-X)", 2D) = "white" {}
_UpTex2("2 Up (+Y)", 2D) = "white" {}
_DownTex2("2 Down (-Y)", 2D) = "white" {}
} SubShader{
Tags{ "Queue" = "Background" }
Cull Off
Fog{ Mode Off }
Lighting Off
Color[_Tint]
Pass{
SetTexture[_FrontTex]{ combine texture }
SetTexture[_FrontTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
Pass{
SetTexture[_BackTex]{ combine texture }
SetTexture[_BackTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
Pass{
SetTexture[_LeftTex]{ combine texture }
SetTexture[_LeftTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
Pass{
SetTexture[_RightTex]{ combine texture }
SetTexture[_RightTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
Pass{
SetTexture[_UpTex]{ combine texture }
SetTexture[_UpTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
Pass{
SetTexture[_DownTex]{ combine texture }
SetTexture[_DownTex2]{ constantColor(,,,[_Blend]) combine texture lerp(constant) previous }
}
} Fallback "Skybox/6 Sided",
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class SetWeather : MonoBehaviour { public Material sky;
public Light sun; private float cloudValue = 0f;
private float sunIntensity; private void SetOvercast(float value)
{
sky.SetFloat("_Blend", value);
// sun.intensity = sunIntensity - (sunIntensity * value);
}
// Use this for initialization
void Start () {
sunIntensity = sun.intensity;
} // Update is called once per frame
void Update () {
SetOvercast(cloudValue);
cloudValue += 0.005f;
}
}
Unity混合天空盒的更多相关文章
- Android和Unity混合开发——解决方案
按这篇文章来做 http://blog.csdn.net/a369414641/article/details/53436477 要注意的地方 1.app是Android Libray,否则无法打包出 ...
- unity skybox天空盒分享无需下载
大概有几十种还是100种,具体忘了 反正很多就是了(哈哈哈哈哈!!!!!!!!!!!!) 老铁们, 多谢支持,谢谢大家. 根据需要使用,下面会分享出下载链接: 链接:https://pan.baidu ...
- 【Unity】打包安卓APK常见问题
问题:unity error invalid command android 原因:Android版本较新,Unity版本太旧(如4.X),Unity打包APK时调用Android工具使用的命令已被安 ...
- Unity3D脚本中文系列教程(十)
http://dong2008hong.blog.163.com/blog/static/4696882720140312627682/?suggestedreading&wumii Unit ...
- Unity3D脚本学习——运行时类
AssetBundle 类,继承自Object.AssetBundles让你通过WWW类流式加载额外的资源并在运行时实例化它们.AssetBundles通过BuildPipeline.BuildAss ...
- 美轮美奂宇宙星空制作神器Spacescape
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/46444569 作者:car ...
- unity4.3.4firedrillonline项目首次整合问题总结
零.资源导入后把所有资源模型拖到场景中去,并reset Transform,使场景展现原有样子. 一.资源导入之后发现项目场景是黑的,添加灯光之后场景中大部分仍然是黑的(并没有光照的效果) 可能原因: ...
- Unity iOS混合开发界面切换思路
Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...
- 解读Unity中的CG编写Shader系列七(不透明度与混合)
转自http://www.itnose.net/detail/6098539.html 1.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段 ...
随机推荐
- 小记redis持久化的机制
刚学redis,就经常看到两种持久化机制在眼头晃,RDB和AOF,然而当时学的还知道这两东西是啥玩意,过段时间又忘了,中文记忆这两种概念总感觉有些别扭.今心血来潮翻看redis的配置文件,豁然开朗,仿 ...
- 基于Coravel定时任务之物联网设备数量统计
目录 基于Coravel定时任务之物联网设备数量统计 1 应用背景 2 对比各家定时库 2.1 TaskScheduler 2.2 Fluent Scheduler 2.3 Quartz.net 2. ...
- phpexcel来做表格导出(多个工作sheet)及设置单元格格式
<?php /** * 简单实用Execl */ set_include_path('.'.get_include_path().PATH_SEPARATOR.dirname(__FILE__) ...
- MySQL 视图(合并多表数据)引发的严重性能问题
问题背景: 一.客户环境连续多次出现性能问题,系统登入异常,数据库CPU告警. 处理过程: 1>协助排查数据库性能问题时发现如下两个较频繁的SQL导致严重的性能问题(均使用了视图合并多表数据): ...
- XCTF-Misc
最近无聊在做一下杂项,随便总结一下关于杂项的知识. 一. xcaliflag 这个直接拖进stegsolve里面,大约是在Blue的第3位左右就很清楚了 二.
- mobaxterm和CRT的文件上传
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/submarineas/article/de ...
- 02-14 scikit-learn库之逻辑回归
目录 scikit-learn库之逻辑回归 一.LogisticRegression 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 二.LogisticRegressi ...
- display——table-cell属性
display的table和table-cell一般情况下用的不多,所以很少有人去关注它,但他们两个联手起来会给你惊喜! 当两个或者两个以上标签一起使用显示在同一行时,以前常用的是float.posi ...
- 重构网页过程中的小tips
1.display为inline-block的元素可以使用virtical-align:middle来使得元素垂直居中对齐 2.在一些按钮标签或者mark标签中,如果文本内容确定不会改变长度的话,可以 ...
- JAVAWEB第一节课的课后思考
第一开发一个网站需要的一些技术 至少熟悉一种建站程序.(html,javascript等等)对空间和域名的知识有一定的了解.有一些美工基础(例如ps设计等等).对编程有一些了解.HTML的代码知识基本 ...