unity3D打造skybox淡入淡出 - 移动开发

原地址:http://www.it2down.com/it-mobile/426479.htm

 

当前位置:  IT异常查询网 »

unity3D打造skybox淡入淡出 - 移动开发

www.it2down.com   发布于:2013-6-18 21:54:54   
unity3D制作skybox淡入淡出
首先建立个shader
Shader "Custom/Skybox" {

Properties {
    _Tint ("Tint Color", Color) = (.5, .5, .5, .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" {}
    _Color ("Fade (use alpha)", Color) = (1,1,1,1)
}

SubShader {
    Tags { "Queue" = "Background" }
    Cull Off
    ZWrite On
    ZTest Always
    Fog { Mode Off }
    Lighting Off       
    Color [_Tint]
    Pass {
        SetTexture [_FrontTex] { combine texture }
        SetTexture[_FrontTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_BackTex] { combine texture }
        SetTexture[_BackTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_LeftTex] { combine texture }
        SetTexture[_LeftTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_RightTex] { combine texture }
        SetTexture[_RightTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_UpTex] { combine texture }
        SetTexture[_UpTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
    Pass {
        SetTexture [_DownTex] { combine texture }
        SetTexture[_DownTex2] { 
            constantColor [_Color]
            combine texture lerp (constant) previous
        }
    }
}

Fallback "RenderFX/Skybox", 1
}

材质间的动画转换
private var thisMaterial : Material;
private var fadeSpeed : float = 0.4;

function Start (){
    thisMaterial = RenderSettings.skybox;
    thisMaterial.color.a = 0.0;
}

function Update () {
    thisMaterial.color.a += (fadeSpeed * Time.deltaTime); 
    thisMaterial.color.a = Mathf.Clamp(thisMaterial.color.a, 0.0, 1.0);
}

skybox的纹理褪色,渐渐的转变。
public var blackTexture : Texture2D;

function Start (){
    thisMaterial = RenderSettings.skybox;
    thisMaterial.color.a = 0.0;

    thisMaterial.SetTexture("_FrontTex", blackTexture);
    thisMaterial.SetTexture("_BackTex", blackTexture);
    thisMaterial.SetTexture("_LeftTex", blackTexture);
    thisMaterial.SetTexture("_RightTex", blackTexture);
    thisMaterial.SetTexture("_UpTex", blackTexture);
    thisMaterial.SetTexture("_DownTex", blackTexture);
}
function Update () {
    thisMaterial.color.a += (fadeSpeed * Time.deltaTime); 
    thisMaterial.color.a = Mathf.Clamp(thisMaterial.color.a, 0.0, 1.0);
}

设置纹理等
thisMaterial.SetTexture("_FrontTex2", textureVariable);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity3D是一款强大的游戏开发引擎,它不仅提供了丰富的功能和工具,还支持使用动态天空素材来增强游戏场景的真实感。 在Unity3D中,动态天空素材可以实现在游戏中动态变化的天空效果。例如,可以使用不同的贴图来表示不同的天气条件,如晴朗、多云、阴天或雨天。通过实时渲染,可以在游戏中模拟出真实的天空效果,增加游戏的视觉吸引力和沉浸感。 为了使用动态天空素材,首先需要创建一个称为"Skybox"的材质。然后,通过将不同的贴图应用于材质的六个面,分别表示天空的上、下、前、后、左和右,从而实现动态变化的天空效果。 在游戏中,可以使用脚本来控制天空的更新。例如,在实现动态天气变化时,可以根据时间来调整天空的贴图,以获得不同的天气效果。另外,还可以根据游戏中的特定事件或条件,如日出、日落或进入特定区域,来改变天空的贴图,从而实现更加细致的场景表现。 需要注意的是,动态天空素材的效果也受到环境光照的影响。在Unity3D中,可以通过调整灯光的颜色和强度来进一步增强天空效果,使其与场景中的其他物体更好地融合。 总结来说,Unity3D提供了使用动态天空素材的功能,通过实时渲染,可以在游戏中模拟出真实的天空效果。通过控制贴图的变化,可以实现不同天气条件下的视觉呈现,增强游戏场景的真实感和沉浸感。同时,还可以通过调整环境光照来进一步提升天空效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值