纳金网
标题:
[unity3D教程]一种镂空效果的实现
[打印本页]
作者:
驰骋的风
时间:
2013-3-16 00:29
标题:
[unity3D教程]一种镂空效果的实现
u3d的遮罩网上很多转载的, 就是下面这篇,我也是用这个来做的
Shader "mask shader"
{
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {}
_Mask ("Culling Mask", 2D) = "white" {}
_Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
}
SubShader
{
Tags {"Queue"="Transparent"}
Lighting Off
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
AlphaTest GEqual [_Cutoff]
Pass
{
SetTexture [_Mask] {combine texture}
SetTexture [_MainTex] {combine texture, previous}
}
}
}但是光有这个很多人恐怕还是做不出来,这先得用ps做一个遮罩的图片,先填充一个全黑的,然后羽化删除出一个圆
效果如下,黑色不透明的部分为可见部分,白色透明部分为“镂空”的部分
这个是遮罩的图片:
下面的这个是设置了Alpha cutoff 拉倒最大的时候的情况
----------------------------------------------------------------------------------
四眼田鸡的效果? 当然 只要你有足够的创意。。。
这里设置成:
-----------------
另外找到一个渐变的效果:大家可以参考下这个,从一个图片渐变到另一个图片
http://www.unity3d8.com/content/unity3d-shader-%EF%BC%88cube%E4%B8%A4%E5%BC%A0%E6%9D%90%E8%B4%A8%E9%80%90%E6%B8%90%E8%BD%AC%E6%8D%A2%EF%BC%89
-----------------------
还有之前有位楼主说鼠标点哪就空哪里的效果看来我是做不到了
这应该是某种动态的修改shader的方式,可惜我不会shader 也不太会opengl 无力 .... 大概代码是这样的,错了别喷我
private Material mat ;
void Updata() {
if(鼠标点到哪里){
mat = new Material (
"Shader NewMaterial" {" +
"SubShader {" +
" Pass {" +
" 动态改变镂空的位置
" }" +
"}" +
"}"
);
物体的Material = mat ;}
}
欢迎光临 纳金网 (http://course.narkii.com/club/)
Powered by Discuz! X2.5