您的位置:首页 > 移动开发 > Unity3D

Unity3D ShaderLab 混合两张贴图(Blend)

2012-01-12 15:47 1486 查看
使用Unity3D 中的 ShaderLab 实现两张不同贴图之前的混合 类似于3dsMAX 中的Blend材质.

1.在Properties 中定义三个变量.我们需要使用的..1. _Color 主要是用它的 Alpha 来进行两张图的混合 ,2.两张需要进行操作的贴图

2.在混合时主要是使用 SetTexture 中的 Combine scr1 lerp(constant) src2. 这里要注意.在一个SetTextrue 中我们只能对一个texture来操作. 所以在混合前我们需要先用一个SetTexture 将第一张图贴上去.

 然后再用 Combine previous lerp(constant) texture .将第二张与之前的(previous)来混合,lerp(constant) 就是以_Color的Alpha来做为混合的界定.

View Code

Shader "ztc_Blend"
{
Properties
{
_Color ("Main Color",Color) = (1,1,1,0.5)
_MainTex ("FrontTex (RGB)", 2D) = "white" {}
_BackTex ("BackTex (RGB)", 2D) = "white" {}
}
SubShader
{
Pass
{
Material
{
Diffuse[_Color]
}
Lighting On

SetTexture [_MainTex] //the default Texture
{
Combine texture
}
SetTexture [_BackTex] //use the combine lerp to mix two texture by the Main color's Alpha
{
constantColor [_Color]
Combine previous lerp(constant) texture
}

}
}
FallBack "Diffuse"
}


结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: