美文网首页Shader 稚童
unity中shader组件

unity中shader组件

作者: 爱喝粥的西瓜 | 来源:发表于2021-02-03 17:25 被阅读0次

    ◆  shader前言

    概述

            在unity中编写shander,我们会接触到2种不同的语言,一种是shaderlab(是一种说明性语言,用以帮助untiy创建实例.也就是根据我们为shader定位的属性创建GUI),一种是CG语言(由微软和nvidia共同为图形出来开发的一种类似于C语言的语言),我们编写cg语言的代码会嵌在shaderlab中.
            shaderlab中包含了shader的一些设置(如 Material Properties<材质属性>,Blending option<融合设置>, Pass<通道?>,FallBack<失败回调>,HaderwareFallBack<硬件不支持回调>
            在编写shader的时候,我们可以选择自己编写Vertex/pixel(fragment) shader,或者使用unity提供的一种快速的shader开发,surface shader, 在suraface shader中unity会自动生成一些CG代码,虽然提升了开发的速度,却降低了开发的透明度,会降低开发的自由度.

    unity shader 组件

    • Properties(参数)
              定义了shader中可以供外部输入的参数部分,改部分的内容可以在unity inspector界面中进行设置操作,是开放给用户设置操作的部分.常见的有一下几种.

    • SubShader(子着色器)
              SubShader是shader的一个子集,在一个shader中可以有多个SubShader,SubShader只要是为了支持不同的硬件设备而编写,这里的硬件设备并不是表示某一个具体的物理硬件,而是支持某个图形API的一类硬件,unity会调用第一个被设备支持的SubShader,如果一直没有会调用FallBack

    • Pass(通道?)
              在一个SubShader中可以有多个Pass,没一个Pass都会促使Shader执行一次渲染.在渲染物体的时候,应该尽量减少Pass的使用,尽量在一个Pass中处理更多的内容.在Pass中有顶点着色器和片元着色器.

    • 顶点输入(Vertex Input)
              是一组从模型网格顶点上读取到的一组顶点信息,他将会被输入到顶点着色器中,可能包括位置,颜色,uv,法线等信息,类型为struct

    • 顶点着色器(vertexShader)
              在这里,顶点着色器的表现形式就是一个函数,会根据需求处理输入的顶点包数据,并返回处理完的结果数据到顶点输出包

    • 顶点输出(Vertex Output)
              存储着顶点着色器处理完成的数据,他将会被输入到片元着色器中,可能包括位置,颜色,uv,法线等信息,类型为struct

    • 像素(片元)着色器(framentshader)
              在这里,片元着色器的表现形式就是一个函数,会根据需求对输入的数据进行处理,然后返回像素的颜色和透明度信息

    相关文章

      网友评论

        本文标题:unity中shader组件

        本文链接:https://www.haomeiwen.com/subject/puxmtltx.html