转:http://www.cnblogs.com/dosomething/archive/2012/08/04/2622488.html

【Unity3d】Glow + Outline 轮廓描边

轮廓描边是游戏中的细节  但是一个有特色的效果还是会让人眼前一亮

Glow + Outline 的效果就像求生之路2和暗黑3的轮廓描边界一样  对轮廓描边后再进行模糊处理

如图: 求生之路2

暗黑3

  

一种思路为:

1、在RTT中绘制单一像素

2、对1绘制后的RTT进行blur处理

3、对2处理后的RTT与原始场景进行叠加

4、绘制原始模型

另一种思路:

1、绘制原始模型到RTT

2、对1绘制的RTT中原始模型进行Sobel描边

3、对2描边后的RenderTexture进行blur处理

4、叠加1和3的RenderTexture

5、4与场景进行叠加

在unity3d中的实现

1、场景图像渲染之前

void OnPreRender

{

  ......

   另外添加一个摄像机A

  这里必须将GlowOutlineCamera摄像机关闭

  并且清除标识为纯色

  制定其渲染目标为RTT

  清空其背景

  摄像机A在主摄像机渲染之前通过Shader去绘制指定渲染类型的GameObject   也就是需要描边的GameObject

  (即摄像机A.RenderWithShader(RTT, "XXXX");)

  ...... 

}

2、场景图像渲染之后

void OnRenderImage(RenderTexture source, RenderTexture destination)

{

  ......

  将摄像机A所渲染的目标纹理进行blur处理

  将blur后的RTT与场景图像渲染后的RTT进行合成叠加

  拷贝到目的渲染纹理上

  ......

}

效果1  未被遮挡

效果2 被遮挡

效果3 描边相交  未被遮挡

效果4 描边相交  被遮挡

最后附上一张火炬之光2的轮廓描边效果

unity实现起来要简单的多 不属于postprocess

只需要对需要描边的物体写一个Rimlight边缘高光的shader即可

国内好像有个unity制作的网页游戏也是用的这种方式描边

(转)【Unity3d】Glow + Outline 轮廓描边的更多相关文章

  1. css -- outline轮廓

    outline:#00ff00 solid thick; 边框参数: 样式: none:默认,无轮廓 dotted:点状轮廓 dashed:虚线轮廓 solid:实现轮廓 double:双线轮廓,宽度 ...

  2. 如何去除表单元素获得焦点时的外边框:outline (轮廓)

    我们在做制作表单页面时,经常会需要消除表单元素带来的边框,这时候我们需要用到两个属性: 1.表单元素未激活状态下的边框,不实现边框: border:none; 2.表单元素获得焦点时的轮廓,隐藏轮廓: ...

  3. css实现div多边框_box-shadow模拟多边框、outline描边实现

    在css3中我们知道可以使用box-shadow属性轻松的为元素添加阴影效果,并且可以设置多组效果,每组参数值用逗号隔开.如果把box-shadow特性的两个偏移量 h-shadow .v-shado ...

  4. outline属性

    outline(轮廓)用于设置元素周围的一条线,用于元素边框的外围,可起到突出元素的作用. outline属性所有浏览器都支持,如果规定了 !DOCTYPE,则 IE8 支持 outline 属性. ...

  5. CSS如何实现圆角的outline效果?

    一.首先,outline是个很牛逼的东西 温故而知鑫,10年的时候写过一篇可用性方面的文章:“页面可用性之outline轮廓外框的一些研究”,还算挺有用的:3年之后,也就是13年,介绍了个没什么使用价 ...

  6. CSS魔法堂:那个被我们忽略的outline

    前言  在CSS魔法堂:改变单选框颜色就这么吹毛求疵!中我们要模拟原生单选框通过Tab键获得焦点的效果,这里涉及到一个常常被忽略的属性--outline,由于之前对其印象确实有些模糊,于是本文打算对其 ...

  7. 关于Unity中的模型描边与Shader切换(专题二)

    模型描边 1: LOL里面的模型描边效果,点击防御塔会有描边的效果,被攻击的时候模型也要描边凸显一下2: 网上可以找到模型描边的Shader,可以直接下载使用,一组第三方的Shader, 帮我们解决了 ...

  8. PCB Genesis增加轮廓字 实现原理

    在Genesis增加汉字自带是不支持增加汉字的,如果需增加汉字需用到CAD 汉字库才可增加汉字,这里介绍一种脱离汉字库实现 Genesis增加轮廓字(如要变为实体,填空Surface可变为实体字) 一 ...

  9. 一次 outline 去除经验(非继承属性,看着像继承)

    情况描述: 目前维护的老项目是通过 easyui 生成的 html,嵌套结构非常多,当点击元素后,会有个边框???非常影响页面美观,这是啥迷惑点击交互??? 经验告诉我,这是 css 的 outlin ...

随机推荐

  1. RecycleView在eclipse的初体验

    在sdk中找到v7包 \sdk\extras\android\support\v7\recyclerview 导入工程 Import\Android\Existing Android Code Int ...

  2. var关键字详解

    1,var只能定义局部变量,而不能定义成员变量 2,定义的时候必须同时完成初始化,而不能使用var定义变量为null 3,var本身不是一个新类型,只是用来修饰一个可以推断出具体类型的局部变量 var ...

  3. Windows2003 II6.0 FTP 开了防火墙 FTP不能正常工作的解决办法

    .在防火墙设置的“高级-本地连接-设置”中把FTP的勾选

  4. freeCodeCamp:Return Largest Numbers in Arrays

    右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组. 提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素. /*思路 for循 ...

  5. 扩展欧几里德解的数量(51nod 1352)

    题意:给出N,A,B:求A*x+ B*y = N+1   的大于0 的解的数量: 思路:先用exgcd求出大于0的初始解x,rest = N - x*A; sum = rest/LCM(A, B); ...

  6. Android 6.0 新功能及主要 API 变更

    运行时权限 这个版本中引入了新的权限模型,现在用户可以在运行时直接管理应用程序的权限.这个模型基于用户对权限控制的更多可见性,同时为应用程序的开发者提供更流畅的应用安装和自动升级.用户可以为已安装的每 ...

  7. mysql数据库查询pdo的用法

    最早的php对mysql数据库查询是mysql和mysqli方法,后来php的新版本进一步封住了该方法,于是又pdo,抛开php框架,使用pdo查询数据,使用也是相当简便 <?php ini_s ...

  8. linux下如何查找需要的文件后并删除

    1.首先查找指定目录下的文件,默认为当前目录 使用命令:find . -name 'a.txt' 会得到当前目录下所有包括子孙目录下的所有后缀为txt的文件 2.查找后删除 使用命令:find . - ...

  9. 使用代码在windows-store中打开、搜索应用程序

    //Launcher.LaunchUriAsync(newUri("ms-windows-store:PDP?PFN=" + Package.Current.Id.FamilyNa ...

  10. [Leetcode][JAVA] Word Ladder II

    Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from ...