找回密码
 立即注册
查看: 5116|回复: 76

[特效Shader] Unity3D 着色器

  [复制链接]
发表于 2013-1-11 13:31 | 显示全部楼层 |阅读模式
资源信息 Tutorial Information
教程名称: Unity3D 着色器(发帖教程)
适用引擎:   (适用引擎,为空默认为Unity)
教程语种: 中文
教程等级: 1
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: http://www.unitymanual.com/584.html (如有问题请短消息联系作者或发表回复)
下载地址: (兑换积分)
点击查看原图
美丽分割线
如下图所示,在Project面板中新建一个New Material.这样子就准备好了一个空白的着色器。它能支持的类型也就在Shader中全部显示出来。不得不说,很好很强大。
Unity3D教程:着色器

所有这些Pixel[像素]着色器,默认的Diffuse算是资源开销较小的渲染选择。随后那些带有凹凸贴图的着色器,其次就是Bumped Specular[凹凸高光],Parallax Specular[视差高光]类等开销大。所有基于顶点光照的着色器开销都比Pixel着色器的开销小。但是相对来说效果可能不是那么强大,毕竟打造好的视觉效果增大开销是在所难免。
着色器共有的主要属性:
Diffuse[散射]:定义对象的基本颜色,可以使用贴图或者简单的颜色选择器来控制散射,所有的着色器都带有某种类型的散射属性。
Bump and Parallax Bump[凹凸和视差凹凸]:名称中带有Bump或者Parallax的着色器都带有的一个属性,使得他们可以模拟对象的高度和深度。比如我们需要对对象的每一个伤痕或者细节进行建模,这样很耗费资源,此时聚划算的方法就是使用凹凸贴图来模拟。
Specular[高光]:带有Specular属性的着色器都可以使对象在光源照射下具有漂亮的光泽,注意这和反射是不同的。
下面,创建一个吧:
1:先把ToonShading
Unity3D教程:着色器

导入Project,在Hierarchy面板中创建一个Cube,此时看到的只是个纯色的方体。
Unity3D教程:着色器

2:在Project面板中创建一个Materials,将着色器的Shader选为:Toon—〉BasicOutLine。
Unity3D教程:着色器

3:点击上图中的Base(RGB)右侧的方框的Select按钮,选一个你喜欢的图片吧。下边的那一个ToonShader Cubemap的Select选toony lighing。这样子我们的着色器就可以使用了。预览一下:点击Preview那一栏的右边的原型按钮,可以变换模型哦。你可以对模型进行各个方向的拖拉查看。
Unity3D教程:着色器

Unity3D教程:着色器

4:把我们Project面板的着色器直接拖给场景的Cube物体。
Unity3D教程:着色器

我把outlineColor和outlinewidth都改一下。
Unity3D教程:着色器

Unity3D教程:着色器

关于天空盒[SkyBox]的着色器,就是Shader下的RenderFx/SkyBox。选择他以后你会看到下边列出了Front—Back—Left—Right—Up—Down的每个填充项。你用对应的天空贴图填充,就可以得到一个天空盒着色器了。
动态表面效果着色器脚本:
  1. <div style="width: 370px" class="wp-caption aligncenter" id="attachment_596"><p class="wp-caption-text">
  2. </p></div>
  3. <blockquote><p>Shader "Effects/Plasma" {

  4. Properties {

  5. _MainTex ("Base (RGB)", RECT) = "white" {}

  6. _ColorBand ("Base (RGB)", 2D) = "white" {}

  7. }

  8. SubShader {

  9. ZTest Always Cull Off ZWrite Off

  10. Fog { Mode off }

  11. Pass {

  12. CGPROGRAM

  13. #pragma vertex vert_img

  14. #pragma fragment fragSh

  15. #pragma fragmentoption ARB_precision_hint_fastest

  16. #include "UnityCG.cginc"

  17. uniform samplerRECT _MainTex;

  18. uniform sampler2D _ColorBand;

  19. float4 fragSh (v2f_img i) : COLOR

  20. {

  21. float2 ca = float2(0.2, 0.2);

  22. float2 cb = float2(0.7, 0.9);

  23. float da = distance(i.uv, ca);

  24. float db = distance(i.uv, cb);

  25. float c1 = sin(da * _CosTime.y * 16 + _Time.x);

  26. float c2 = cos(i.uv.x * 8 + _Time.z);

  27. float c3 = cos(db * 14) + _CosTime.x;

  28. float p = (c1 + c2 + c3) / 3;

  29. return tex2D(_ColorBand, float2(p, 0.5));

  30. }

  31. ENDCG

  32. }

  33. }

  34. Fallback off

  35. }</p>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 3鲜花 +3 收起 理由
1287537617aa + 1
aa1287537617 + 1
L1247 + 1 很给力!

查看全部评分

 楼主| 发表于 2013-3-28 13:20 | 显示全部楼层
{:5_387:}{:5_424:}{:5_399:}
发表于 2013-3-28 16:07 | 显示全部楼层
好定西丫好东西
发表于 2014-4-7 16:23 | 显示全部楼层
好东西啊,支持支持!!
发表于 2014-6-11 08:41 | 显示全部楼层
很有用 感谢分享!
发表于 2014-9-9 13:07 | 显示全部楼层
不错,对初学者好有用
发表于 2014-9-9 13:49 | 显示全部楼层

膜拜中。。。。{:soso__7524161091986203637_5:}
发表于 2016-8-19 16:32 | 显示全部楼层

感谢楼主的无私分享!
发表于 2016-10-9 10:38 | 显示全部楼层

不错 不错 不错
发表于 2016-10-25 14:05 | 显示全部楼层
好东西   收藏了
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-23 20:08 , Processed in 0.127092 second(s), 37 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表