查看: 1894|回复: 52

[特效/Shader/技术美术] Unity3D简单的ShaderLab教程

[复制链接]

10

主题

9

听众

200

积分

小学生

Rank: 2

升级   0%

发表于 2012-12-27 23:00 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
资源信息 Tutorial Information
教程名称: Unity3D简单的ShaderLab教程(发布原创教程可获得更多积分哦!)
适用引擎: (资源适用引擎)
教程语种: 中文
教程等级: 小白(等级越高教程越难,但能学到的东西越多)
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 转载自互联网 (如有问题请短消息联系作者或发表回复)
点击查看原图 --> 美丽分割线
回复可见
哇伊~ (((‵□′))回复太烦了,怒买VIP(充值金额将用于论坛采购更多资源)

--> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 -->

可供学习的资料:

For Unity users I'd recommend reading:

And then experimenting with:



先看一个基础的视频,我从国外网站上载下来放Youku上的。

讲的是如何使用最基本的Unity的ShaderLab


1.新建一个场景,在工程目录中新建一个Shader和一个Material

2.双击Shader打开编辑器

用以下代码替换:

  1. Shader "MyShader/SolidShader" {
  2.      Properties {
  3.          _Color("Main Color", Color) = (0, 0, 0, 1)
  4.      }
  5.      SubShader {
  6.          Pass{
  7.              Color[_Color]
  8.              }
  9.      }

  10. }

Shader关键字后面是Shader的名字,可以通过“/”起到分类做用。


Property里的东西是用于属性的可视化配置的,这样可以方便美术面调出好看的效果。

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

就表示我现在提供了一个_Color这个变量,他在Inspector上显示的名字是Main Color,变量的类型是Color,最后给了一个默认值,

这个值可以在外面修改。

把写好的Shader拖到刚才创建的材质上:


接下来是SubShader

一个Shader可以包含多个SubShader,SubShader的作用是可以在一个Shader中为不同性能的显卡编写不同的Shader,

在运行时会取出第一个可以在当前显卡跑的SubShader。

每个SubShader里会有多个Pass。

Pass就是具体对渲染进行操作的单元了。在这里可以设置颜色,材质,贴图等。


具体的可参考Unity的文档:

Shader Reference


3.在场景中创建一个Cube,将写好的材质拖上去。

未着色前:


拖上材质后:


换一个纹理的Shader:


  1. Shader "MyShader/TexShader" {
  2.      Properties {
  3.          _MainTex ("Base (RGB)", 2D) = "gray" {}
  4.      }
  5.      SubShader {
  6.          Pass
  7.          {
  8.              SetTexture[_MainTex]{}
  9.          }
  10.      }
  11. }



一个简单的Shader就完成了。剩下的就是学习其它的一些变量和关键字的使用了


本帖子中包含更多资源

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

楼主热帖
已有 3 人评分鲜花 道具币 收起 理由
yugo215 + 1 很给力!
graywolfx21 + 1 很给力!
xoxo12345 + 1 赞一个!

总评分: 鲜花 + 1  道具币 + 2   查看全部评分

发布了自己平时总结的一系列教程 希望能给大家提供帮助

0

主题

9

听众

202

积分

小学生

Rank: 2

升级   0.67%

发表于 2013-2-18 10:38 |显示全部楼层
感觉很强大,收下
回复

使用道具 举报

0

主题

9

听众

201

积分

小学生

Rank: 2

升级   0.33%

发表于 2017-4-3 10:02 |显示全部楼层
很不错
回复

使用道具 举报

0

主题

9

听众

200

积分

小学生

Rank: 2

升级   0%

发表于 2017-4-3 10:02 |显示全部楼层
楼主是超人
回复

使用道具 举报

0

主题

9

听众

200

积分

小学生

Rank: 2

升级   0%

发表于 2017-4-3 10:31 |显示全部楼层
顶顶多好
回复

使用道具 举报

0

主题

9

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2017-4-3 10:15 |显示全部楼层
真心顶
回复

使用道具 举报

0

主题

9

听众

206

积分

小学生

Rank: 2

升级   2%

发表于 2017-4-3 10:46 |显示全部楼层
说的非常好
回复

使用道具 举报

0

主题

9

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2017-4-20 09:37 |显示全部楼层
顶顶多好
回复

使用道具 举报

1

主题

9

听众

204

积分

小学生

Rank: 2

升级   1.33%

发表于 2017-4-20 10:00 |显示全部楼层
真心顶
回复

使用道具 举报

1

主题

9

听众

204

积分

小学生

Rank: 2

升级   1.33%

发表于 2017-4-20 09:07 |显示全部楼层
说的非常好
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

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

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 苏ICP备12051100号 )   

GMT+8, 2018-9-21 20:16 , Processed in 0.120490 second(s), 82 queries .