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.不透明度 当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段 ...
随机推荐
- Hive安装与简单使用并集成SparkSQL
## Hive环境搭建1. hive下载:http://archive-primary.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gzwget h ...
- 我用阿里云的虚拟云主机,也能配置https加密吗?
我用阿里云的虚拟云主机,也能配置https加密吗?答案是YES. 整个过程比想象中还要简单,都是一些基本的配置,虚拟主机 Web托管都可以很容易的搞定https. 首先我们要了解一下,阿里云是怎么支持 ...
- Spring Data JPA 梳理 - JPA与“Spring、Spring Data JPA”的关系
JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范. Spring 框架对 JPA 提供的支持主要体现在如下几个方面: 首先,它使得 JPA 配 ...
- .Net Core自动化部署系列(一):Jenkins + GitLab
项目进行微服化改造后系统发布就变得愈为重要,因为持续集成导致部署变得越来越频繁,人工部署带来的一些问题日渐凸显,大家可能都有被系统部署线问题困扰过的经历. 本篇我们将会使用Jenkins+Gitlab ...
- 洛谷:P3384 [HNOI2004]宠物收养场
原题地址:https://www.luogu.org/problemnew/show/P3384 题目简述 给定一些序列(没有重复数字),每个序列支持: 给定一些数k(对于每个序列不重复),每次在序列 ...
- Gin框架介绍及使用
Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 如果你是性能和高效的追求者, 你会爱上Gin. ...
- mysql基础操作 增删改查
如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...
- Java 多线程爬虫及分布式爬虫架构探索
这是 Java 爬虫系列博文的第五篇,在上一篇 Java 爬虫服务器被屏蔽,不要慌,咱们换一台服务器 中,我们简单的聊反爬虫策略和反反爬虫方法,主要针对的是 IP 被封及其对应办法.前面几篇文章我们把 ...
- 初识Django,了解一下大概流程
学习Django一个礼拜了,对其有了一个大概的了解,自己画了一个简单的图,虽然有点丑,但是基本上已经把自己所想已经表达 写完这篇随笔之后发现自己逻辑表述的有点不太清晰,有点乱,哪里不对,希望各位指正 ...
- IP的分类以及子网划分、网络设置
前言 整个因特网就是一个单一的.抽象的的网络.IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符.IP地址的结构使我们可以在因特网上很方便的进行寻址. ...