查看: 2551|回复: 0
打印 上一主题 下一主题

Unity创建着色器

[复制链接]

435

主题

2

听众

6371

积分

高级设计师

Rank: 6Rank: 6

纳金币
6372
精华
0

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

跳转到指定楼层
楼主
发表于 2012-8-28 16:25:59 |只看该作者 |倒序浏览
这篇说的是Unity Shader[着色器]:
这篇文章因该在导入贴图文件之后,就讲解。因为贴图文件导入后,基本下一步就是通过配合着色器,为模型对象准备漂亮的“外衣”了。
Unity为我们提供了很多强大的预先创建的着色器库,按种类分如Toon[卡通],Particles[粒子],Transparent[透明],Nature[自然],Self-Liiuminated[自发光],Reflective[反射]等等。






如上图所示,在Project面板中新建一个New Material.这样子就准备好了一个空白的着色器。它能支持的类型也就在Shader中全部显示出来。不得不说,很好很强大。

所有这些Pixel[像素]着色器,默认的Diffuse算是资源开销较小的渲染选择。随后那些带有凹凸贴图的着色器,其次就是Bumped Specular[凹凸高光],Parallax Specular[视差高光]类等开销大。所有基于顶点光照的着色器开销都比Pixel着色器的开销小。但是相对来说效果可能不是那么强大,毕竟打造好的视觉效果增大开销是在所难免。

说说着色器共有的主要属性。
Diffuse[散射]:定义对象的基本颜色,可以使用贴图或者简单的颜色选择器来控制散射,所有的着色器都带有某种类型的散射属性。
Bump and Parallax Bump[凹凸和视差凹凸]:名称中带有Bump或者Parallax的着色器都带有的一个属性,使得他们可以模拟对象的高度和深度。比如我们需要对对象的每一个伤痕或者细节进行建模,这样很耗费资源,此时聚划算的方法就是使用凹凸贴图来模拟。
Specular[高光]:带有Specular属性的着色器都可以使对象在光源照射下具有漂亮的光泽,注意这和反射是不同的。
下面,我们就来创建一个吧:
1:先把ToonShading

导入我们的Project。在Hierarchy面板中创建一个Cube,此时看到的只是个纯色的方体。






2:在Project面板中创建一个Materials,将着色器的Shader选为:Toon—〉BasicOutLine。
Hoho,我们选了一个卡通模式的着色器啊。






3:点击上图中的Base(RGB)右侧的方框的Select按钮,选一个你喜欢的图片吧。
下边的那一个ToonShader Cubemap的Select选toony lighing。这样子我们的着色器就可以使用了。预览一下:

点击Preview那一栏的右边的原型按钮,可以变换模型哦。你可以对模型进行各个方向的拖拉查看。





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




这样子,至少变得美观一点了,再来改改,我们把outlineColor和outlinewidth都改一下。



又变了一些呢。那些喜欢宇宙魔方的童鞋,可以自己做一个。
关于天空盒[SkyBox]的着色器,就是Shader下的RenderFx/SkyBox。选择他以后你会看到下边列出了
Front—Back—Left—Right—Up—Down的每个填充项。你用对应的天空贴图填充,就可以得到一个天空盒着色器了。
其他的那些着色器,大家在不同的场景下则有选择吧,这些东西,使用技巧都是仁者见仁,智者见智。
在工作中,慢慢积累那些其他着色器吧。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-4 04:17 , Processed in 0.298477 second(s), 33 queries .

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

© 2008-2019 Narkii Inc.

回顶部