初步开始尝试学习Shader

这篇博客记录了一位作者开始学习Shader的过程,旨在用简单易懂的方式解释Shader的基础概念,包括基本结构、属性定义、Tags和Lod。作者以一个具体的Shader实例为引导,分析了Shader代码,讲解了Shader的编写和使用,如Properties、SubShader和Pass等关键元素,并提供了UnityCG.cginc的引入作用。尽管作者表示在深入学习过程中意识到自己的不足,但鼓励同样初学者跟随官方示例逐步学习。
摘要由CSDN通过智能技术生成

在工作之余,也会尝试学一些自己感兴趣的东西,最近看到博客,猫也能学会的shader,感觉很有意思,希望能在空闲也学习一下shader语言的编写和使用,这个博客一方面也是算作学习笔记,一方面是希望和我一样菜的,也就是说猫都看得懂但是咱们看不懂的博客,能够学习一下如何去使用和实现

00-  shader的基本结构

01-shader的各个属性

很显然,当我们点开一个shader脚本,类似于unity内置的一些shader,我们能很清楚地看到脚本里面有很多属性,那么这些属性有啥子用,我们定义的语法格式是什么,这些都是很值得我们好奇和深究的

-------1.Properties 属性,这里定义的将被作为输出提供给所有的子着色器

  比如这里,我们随手新建了一个Properties,这里面我们可以看到它的语法格式都是这样

_Name(“DisplayName”,type)=defaultValue[{options}]

那么这些都代表了什么呢

1._Name,很显然,这个就是变量名了

2.DisplayName,这个就是我们在编辑器模式下给shader使用者看到的名字,

比如你看下图,这里的话就是这些了

3.type,你定义的这个变量的类型

通过这些类型,我们能定义一些shader着色器的属性

4.defaultValue

   这个属性嘛,顾名思义,就是默认值,就像我们初始化变量也会给一个默认值是一样的道理

5.options

   这个咱也不太懂,以后再说吧,目前查询的是只和2d,Rect,Cube贴图有关

------------------------Tags

  有时候想大佬讲的太清楚了,这些基础概念在座的各位也能搜的到,但是能看到我的博客不一定能看到大佬博客,能看到大佬博客不一定能看到我的博客,抱着这种态度,我还是把tags的属性标注出,因为它本身的概念非常重要

虽然我们一直强调解说要说人话,但是大佬已经用白话写出来了,我也没啥好补充的,讲一下我的理解(好吧,现在还没用过,所以我光是贴着而不写)

----------------Lod(现在是不懂光贴属性,用了后会在后面补充感悟)

 

2.从一个实例开始看Shader

  我这人学代码也是从具体工程来学,那么很显然,学习shader,那么也要根据一个具体工程来喽,之前在知乎看到罗培羽大佬写的一个关于制作

https://www.zhihu.com/people/pyluo/posts

这样的一个效果,很显然,这种shader我们可以用在类似合金弹头一样的游戏里,当然这种功能有很多实现方法,最简单的你直接放个长图移动摄像机都是可以的,但是用shader会不会给我们一种很酷很炫很厉害的感觉(大雾),因此,我也想结合这个案例分析一下shader,下面的话就是大佬的代码了,接下来,我会在代码注释了分析一下每一行代码

1.      Shader “Lpy/ImageRoll”

这个很显然就是指定了Shader的路径,你可以在材质面板选择shader的时候找到这个路径

Shader "Lpy/ImageRoll"

{

 

//2.Properties

这里的话我们在上文提到过了,就是面板上该shader的特性,第一个是

2D的主要Texture,这个的话呢我们指定为白色,也就是生成的2阶的图片的每个像素点为白色

WidthDistance不是内置的属性,这个我们之后在面板上会对它们进行修改,这里的话,我们会先给一个默认值,后续根据需求再改,这个的话也就是调整我们shader的大小,也就是我们希望滚动画面时当前画面的宽高

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值