12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 2767|回复: 10
打印 上一主题 下一主题

可以做镜头景深效果的shard-1

[复制链接]

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2011-9-8 08:14:34 |只看该作者 |倒序浏览
Shader "Hidden/Render DOF Factor" {
Properties {

_MainTex ("Base", 2D) = "white" {}

_Cutoff ("Cutoff", float) = 0.5

}
// Helper code used in all of the below subshaders

CGINCLUDE

struct v2f {

float4 pos : POSITION;

float depth : TEXCOORD0;

};

struct v2f_uv {

float4 pos : POSITION;

float2 uv : TEXCOORD0;

float depth : TEXCOORD1;

};

uniform float4 _FocalParams;

half DOFFactor( float z ) {

float focalDist = _FocalParams.x;

float invRange = _FocalParams.w;

float fromFocal = z - focalDist;

if( fromFocal < 0.0 )

  fromFocal *= 4.0;

return saturate( abs( fromFocal ) * invRange );

}

uniform sampler2D _MainTex;

uniform float _Cutoff;

half4 frag(v2f i) : COLOR {

return DOFFactor(i.depth);

}

half4 frag_uv(v2f_uv i) : COLOR {

half4 texcol = tex2D( _MainTex, i.uv );

clip( texcol.a - _Cutoff );

return DOFFactor(i.depth);

}

ENDCG
Category {

Fog { Mode Off }



// regular opaque objects

SubShader {

  Tags { "RenderType"="Opaque" }

  Pass {

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag

#include "UnityCG.cginc"

v2f vert( appdata_base v ) {

v2f o;

o.pos = mul(glstate.matrix.mvp, v.vertex);

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG

  }

}



// transparent cutout objects

SubShader {

  Tags { "RenderType"="TransparentCutout" }

  Pass {

   Cull Off

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag_uv

#include "UnityCG.cginc"

v2f_uv vert( appdata_base v ) {

v2f_uv o;

o.pos = mul(glstate.matrix.mvp, v.vertex);

o.uv = v.texcoord;

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG
  }

}



// terrain tree bark

SubShader {

  Tags { "RenderType"="TreeOpaque" }

  Pass {

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag

#include "UnityCG.cginc"

#include "TerrainEngine.cginc"

struct appdata {

    float4 vertex : POSITION;

    float4 color : COLOR;

};

v2f vert( appdata v ) {

v2f o;

TerrainAnimateTree(v.vertex, v.color.w);

o.pos = mul( glstate.matrix.mvp, v.vertex );

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG

  }

}



// terrain tree leaves

SubShader {

  Tags { "RenderType"="TreeTransparentCutout" }

  Pass {

   Cull Off

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag_uv

#include "UnityCG.cginc"

#include "TerrainEngine.cginc"

struct appdata {

    float4 vertex : POSITION;

    float4 color : COLOR;

    float4 texcoord : TEXCOORD0;

};

v2f_uv vert( appdata v ) {

v2f_uv o;

TerrainAnimateTree(v.vertex, v.color.w);

o.pos = mul( glstate.matrix.mvp, v.vertex );

o.uv = v.texcoord;

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG

  }

}



// terrain tree billboards

SubShader {

  Tags { "RenderType"="TreeBillboard" }

  Pass {

   Cull Off

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag_tree

#include "UnityCG.cginc"

#include "TerrainEngine.cginc"

struct appdata {

    float4 vertex : POSITION;

    float4 color : COLOR;

    float4 texcoord : TEXCOORD0;

};

v2f_uv vert( appdata_tree_billboard v ) {

v2f_uv o;

TerrainBillboardTree(v.vertex, v.texcoord1.xy);

o.pos = mul( glstate.matrix.mvp, v.vertex );

o.uv = v.texcoord;

COMPUTE_EYEDEPTH(o.depth);

return o;

}

half4 frag_tree(v2f_uv i) : COLOR {

half4 texcol = tex2D( _MainTex, i.uv );

clip( texcol.a - 0.5 );

return DOFFactor(i.depth);

}

ENDCG

  }

}



// terrain grass billboards

SubShader {

  Tags { "RenderType"="GrassBillboard" }

  Pass {

   Cull Off

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag_uv

#pragma multi_compile NO_INTEL_GMA_X3100_WORKAROUND INTEL_GMA_X3100_WORKAROUND

#include "UnityCG.cginc"

#include "TerrainEngine.cginc"
v2f_uv vert (appdata_grass v) {

v2f_uv o;

TerrainBillboardGrass(v.vertex, v.texcoord1.xy);

float waveAmount = v.texcoord1.y;

float4 dummyColor = 0;

TerrainWaveGrass (v.vertex, waveAmount, dummyColor, dummyColor);

o.pos = mul (glstate.matrix.mvp, v.vertex);

o.uv = v.texcoord;

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG

  }

}



// terrain grass non-billboards

SubShader {

  Tags { "RenderType"="Grass" }

  Pass {

   Cull Off

  

CGPROGRAM

#pragma vertex vert

#pragma fragment frag_uv

#pragma multi_compile NO_INTEL_GMA_X3100_WORKAROUND INTEL_GMA_X3100_WORKAROUND

#include "UnityCG.cginc"

#include "TerrainEngine.cginc"
v2f_uv vert (appdata_grass v) {

v2f_uv o;

float waveAmount = v.color.a * _WaveAndDistance.z;

float4 dummyColor = 0;

TerrainWaveGrass (v.vertex, waveAmount, dummyColor, dummyColor);

o.pos = mul (glstate.matrix.mvp, v.vertex);

o.uv = v.texcoord;

COMPUTE_EYEDEPTH(o.depth);

return o;

}

ENDCG

  }

}



}

}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

Asen    

867

主题

0

听众

1万

积分

外协人员

Rank: 7Rank: 7Rank: 7

纳金币
17488
精华
1
沙发
发表于 2011-9-8 09:27:34 |只看该作者
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-2-9 23:20:19 |只看该作者
不错哦,顶一下......
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-2-12 23:18:22 |只看该作者
灌水。。。
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-2-16 23:29:54 |只看该作者
顶!学习了!阅!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-3-19 23:23:03 |只看该作者
先垫一块,再说鸟
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-6-3 23:21:03 |只看该作者
楼主收集的可真全哦
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

8#
发表于 2012-8-22 00:21:07 |只看该作者
我是老实人,我来也!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-10-19 23:26:10 |只看该作者
有意思!学习了!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2013-2-14 23:20:06 |只看该作者
我看看就走,你们聊!
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-28 13:46 , Processed in 0.104499 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部