【Shader-01】--Tutorial/Basic

本文采用代码和注释分离的形式记录阅读笔记,目的在于阅读的时候可以记思考,在思考之后在继续阅读下文,和注释进行核对,得到前后的立即对比,增加理解能力。所以采用直接先贴出代码,然后给出自己的理解,最后附上效果图。Shader "Tutorial/Basic" { Properties { _Color ("Main Color", Color) = (1,0.5,0.5,1) } SubShader { Pass { Mate
摘要由CSDN通过智能技术生成

本文采用代码和注释分离的形式记录阅读笔记,目的在于阅读的时候可以记思考,在思考之后在继续阅读下文,和注释进行核对,得到前后的立即对比,增加理解能力。所以采用直接先贴出代码,然后给出自己的理解,最后附上效果图。

Shader "Tutorial/Basic" {
    Properties {
        _Color ("Main Color", Color) = (1,0.5,0.5,1)
    }
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
            }
            Lighting On
        }
    }
}

Shader

Shader关键字用于定义着色器的文件路径,可以有多种格式,如:Shader "***"、“Shader "***/***";这样的定义方式表示该着色器的目录结构,可以根据自己的实际情况来定义。代码中定义的路径在Unity材质面板中的显示情况:

可以根据自己的实际情况定义各种目录层级结构即可。

Properties

Properties关键字用于定义着色器属性,该属性内定义了一个(Color)颜色属性,可以通过材质调节该颜色值,Unity中的现实情况如下:

SubShader

Shader由至少一个SubShader组成,可以根据实际情况编写至少一个或者多个SubShader组成。SubShader用于定义渲染通道(Pass)的列表,并且可以选择性的设置所有通道共同的任意状态。

Pass

Pass代码块将游戏对象几何体进行渲染一次。如果在SubShader中定义了多个Pass,那么会根据Pass的先后顺序进行几何体的渲染;Pass不是越多越好,在必要的情况下可以编写多个,因为每增加一个Pass都会增加渲染成本的。在Pass中可以定义一个名称和任意数量的Tags,以及设置渲染状态,这些设置用于将通道的意图传达给渲染引擎,引擎根据各语义进行实际的操作

Material

上文中采用了材质,并且在Material中设置了Diffuse(漫射) 以及Diffuse的颜色,该颜色通过定义的属性_Color的值来作为Diffuse的颜色值;_Color的颜色值通过调节Unity材质面板中的Color来进行动态改变,可以通过调节不同的颜色值来查看效果。

Lighting On

开启顶点光照

 


通过调节光照颜色和材质颜色查看效果:

_Color调节为White, Light调节为Green 如下图一:                                 把_Color调节为Green,Light调节为White,如下图二:

                                                 

          图一                                                                                                                 图二

上面的图一和图二图是没有区别的,最后得到的是同一张图,因为Diffuse和Light最后混合的结果是一样的,所以得到的是同一张图,看上去是没有差异的。

 


_Color调节为Magenta(品红),Light调节为Cygan(青色) 如图三       _Color调节为Orange(橙色),Light调节为Cygan(青色) 如图四

                                                

            图三                                                                                                                    图四

图三和图四采用相同的光照,然后调节_Color的颜色值得到上图中的区别,它们有着明显的差异,可以通过调剂Light和Diffuse的颜色值得到各种不同的颜色结果。

 


总结:

该着色器定义了一个颜色属性_Color,定义了一个SubShader和Pass,在单通道Pass中开启了顶点光照,以及使用使用固定函数Material为每个顶点设置Diffuse的颜色值。最后通过Light光照的颜色值和Diffuse的颜色值的混合,得到最后最后图片。

 

本文属于个人阅读笔记,若有见解不对之处,万望见谅及指!!!!

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值