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

圆形小地图的制作

[复制链接]

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2011-9-29 08:27:36 |只看该作者 |倒序浏览
后面有一个场景包,关于小地图的布局,里面看一下就知道了,前提是你有一定的shader基础并指导Unity中图形的渲染管道线,不然我这一片文章没法教你所有的shader知识。这个小地图的大概思想是:用一个相机正交观察一个小地图图片,小地图的上面有一个圆形中空的Mesh,通过这个Mesh将小地图圆形以外的部分“覆盖掉”。怎么贴图片啊 ?悲剧。 里面的shader完成了主要的工作,下面我就将这个简单的shader做一下讲解:
先看Mesh使用的Shader:
Shader "Transparent/Alpha_Cancel" {

Properties {

_Color ("Main Color", Color) = (1,1,1,1)

_SpecColor ("Spec Color", Color) = (1,1,1,0)

_Emission ("Emissive Color", Color) = (0,0,0,0)

_Shininess ("Shininess", Range (0.1, 1)) = 0.7

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

}
SubShader {

Tags {"Queue"="Geometry+999" "IgnoreProjector"="***e" "RenderType"="Transparent"}

LOD 100



Alphatest Less 0.9

ZWrite on

Blend SrcAlpha OneMinusSrcAlpha

ColorMask RGB

  

// Non-lightmapped

Pass {

  Tags { "LightMode" = "Vertex" }

  Fog { Mode off }  

  /*Material {

   Diffuse [_Color]

   Ambient [_Color]

   Shininess [_Shininess]

   Specular [_SpecColor]

   Emission [_Emission]

  }*/

  Lighting On

  SeparateSpecular On

  SetTexture [_MainTex] {

  constantColor(0,0,0,0)

   Combine constant * primary DOUBLE, constant * primary

  }

}

}

}
1 "Queue"="Geometry+999" .Queue这个参数用来设置Unity中物体的渲染顺序,有4个分界点值,从小到大分别为 Background Geometry Transparent Overlay  值越小越先被渲染。
2ZWrite on开启深度缓存,默认深度测试的规则是Less
3Blend SrcAlpha OneMinusSrcAlpha

利用当前计算的像素Alpha值和屏幕存在的像素的Alpha值混合呈现透明效果
他和下面的SetTexture相联系,看SetTexture中,Alpha的值被设置成constant * primary,即0


所以当Blend的时候,Mesh呈现出全透明。
4现在知道了Mesh有全透明的功能,现在来看看Mesh和小地图图片的渲染先后顺序。
Mesh的shader中 "Queue"="Geometry+999" .
小地图的shader中"Queue"="Transparent+1" 可见Mesh要比小地图先渲染
下面我们来模拟下过程:
1当场景被天空盒渲染后,接下来要渲染Mesh网格,因为Mesh有全透明的功能,所以这个中间带圆形孔的Mesh会出现背景天空盒的样子。
2然后绘制小地图图片,因为开启了深度测试,当当前将要绘制的像素值的z深度比当前屏幕像素的z深度要浅的时候,就绘制当前将要绘制的像素,反之则不绘制。可见因为小地图图片所在的位置位于Mesh的较深处,而Mesh又有圆形中空,圆形中空部分的像素是天空盒像素 ,深度当然比小地图的要深,所以该部分小地图会覆盖天空盒像素。而圆形四周的部分因为是属于Mesh的,该处的深度较小地图的浅,所以小地图上面该处的像素将不被绘制。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

Asen    

867

主题

0

听众

1万

积分

外协人员

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

797

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
5568
精华
0

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

板凳
发表于 2011-10-7 11:30:12 |只看该作者
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

地板
发表于 2012-2-23 23:27:58 |只看该作者
俺是新人,这厢有礼了!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

5#
发表于 2012-4-22 23:26:18 |只看该作者
凡系斑竹滴话要听;凡系朋友滴帖要顶!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

6#
发表于 2012-9-5 23:23:59 |只看该作者
楼主收集的可真全哦
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

7#
发表于 2012-9-10 08:36:19 |只看该作者
加精、加亮滴铁子,尤其要多丁页丁页
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

8#
发表于 2012-10-1 23:19:29 |只看该作者
呵呵,很好,方便罗。
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

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

9#
发表于 2012-10-12 23:29:29 |只看该作者
不错不错,收藏了
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

10#
发表于 2012-10-31 23:27:45 |只看该作者
都闪开,介个帖子,偶来顶
回复

使用道具 举报

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

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

GMT+8, 2025-7-13 12:32 , Processed in 0.067152 second(s), 29 queries .

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

© 2008-2019 Narkii Inc.

回顶部