ShaderLabSyntax基本语法-创新互联

本文为个人从Unity文档翻译所得,如要转载请注明源博客地址:http://ymdzz.blog.51cto.com

成都创新互联公司成立于2013年,先为红安等服务建站,红安等地企业,进行企业商务咨询服务。为红安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

ShaderLab Syntax 基本语法

Unity里的所有的Shader文件都是用一种说明性语言(declarative language)来编写。

在Shader文件里,用括号包含的语法来声明用于描述Shader的变量。

例如显示哪一些Shader属性(shader properties)到Material的监视面板中;做哪种硬件回滚操作;使用哪一种混合模式(blending modes)等等。而真正的Shader代码写在一个CGPROGRAM片段中。

Shader文件的第一个定义就是Shader的名字,每一个文件都必须定义一个(而且只能定义一个)Shader。Material所使用的Shader定义了有多少个物体要被渲染。

语法(Syntax)

Shader "name" { [Properties] Subshaders [Fallback] [CustomEditor] }

它将会出现在Material的监视面板中,Shader可以定义成一系列的属性,并显示在Material的监视面板中。接着是一系列的SubShader,再往下是任意的回滚(fallback)或者是自定义编辑器声明。

细节(Details)

属性(Properties)

Shader可以有一系列的属性,任何定义在Shader里的属性都会显示在material的监视面板中,

典型的属性包括物体的颜色、贴图或者是Shader要用到的任意变量。

SubShaders & Fallback

每一个Shader包含了一系列的SubShader,至少要有一个,当加载一个Shader的时候,Unity会按顺序调用这一系列的SubShader,并且采用第一个支持当前用户机器的SubShader,如果没有一个SubShader可以被支持,那么Unity将会尝试使用回滚操作。

不同的显卡有不同的性能,这是一个所有游戏开发者都会遇到的不变的困扰,你想你的游戏运行在高端配置机器上效果更华丽,但是又不想让游戏只能在3%的机器上跑。于是SubShader出现了,你可以创建一个拥有所有华丽效果的SubShader,同时准备更多的SubShader用于低端的显卡,这些SubShader会实现你想在低端机器上跑的效果,或者更多的效果细节。

Shader的LOD(level of detail),即细节等级,和Shader replacement是两个在SubShader上的技术点。

例子:

以下是一个简单的Shader:

// colored vertex lighting

Shader "Simple colored lighting"

{

  // a single color property

  Properties {

    _Color ("Main Color", Color) = (1,.5,.5,1)

  }

  // define one subshader

  SubShader

  {

    // a single pass in our subshader

    Pass

    {

      // use fixed function per-vertex lighting

      Material

      {

        Diffuse [_Color]

      }

      Lighting On

    }

  }

}

这一个Shader定义了一个颜色属性_Color,将会以MainColor这个名字显示在Material的监视面板上,默认值是(1, 0.5, 0.5, 1),然后定义了一个SubShader,这个SubShader由一个Pass组成,这个Pass开启了fixed-function vertex lighting和为它创建了一个基本的Material。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前标题:ShaderLabSyntax基本语法-创新互联
文章分享:https://www.cdcxhl.com/article16/hihgg.html

成都网站建设公司_创新互联,为您提供企业建站网站设计公司微信小程序定制网站商城网站手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司