当前位置: 首页 > news >正文

南通网站建设南通wordpress 分类目录 首页

南通网站建设南通,wordpress 分类目录 首页,开封景区网站建设项目方案,免费企业网站建设wordUnityShader介绍 UnityShader的基础ShaderLab UnityShader属性块介绍 Properties {//和public变量一样会显示在Unity的inspector面板上//_MainTex为变量名,在属性里的变量一般会加下划线,来区分参数变量和临时变量//Texture为变量命名//2D为类型&…

UnityShader介绍

UnityShader的基础ShaderLab
在这里插入图片描述

UnityShader属性块介绍

Properties
{//和public变量一样会显示在Unity的inspector面板上//_MainTex为变量名,在属性里的变量一般会加下划线,来区分参数变量和临时变量//Texture为变量命名//2D为类型,为2D图片//"white"为默认值,默认为白色_MainTex ("Texture", 2D) = "white" {}//除了_MainTex以外,还有一些基本类型,比如:_Int("Int",int) = 2_Float("Float",float) = 1.5_Range("Range",range(0.0,2.0) = 1.0_Color("Color",Color) = (0,0,0,0)_Vector("Vector",Vector) = (0,0,0,0)_Cube("Cube",Cube) = "white"{}_3D("3D",3D) = "black"{}
}

UnityShader SubShader块介绍

一个Unity Shader文件可以包含很多个SubShader块,当Unity加载Shader的时候,它会扫描所有的SubShader块,选择第一个能在目标平台运行的SubShader

SubShader
{//标签可选写或不写 key = valueTags { //渲染顺序"Queue" = "Transparent"//渲染类型 着色器替换功能"RenderType"="Opaque"//是否进行合批"DisableBatching" = "True"//是否投射阴影"forceNoShadowCasting" = "True"//是否收Projector的影响,通常用于透明物体"IgnoreProjector" = "True"//是否用于图片的Shader,通常用于UI"CanUseSpriteAltas" = "False"//用作Shader面板预览的类型"PreviewType" = "Plane"}//Render渲染设置 可选写或不写//Cull 裁剪,选择渲染哪个面,默认值为只渲染正面//Cull off的话就是正反两面都进行渲染//Cull back的话就是只渲染正面//Cull front的话就是只渲染背面Cull off//back/front//ZTest 深度测试, 默认小于等于ZTest Always//Less Greater/Lequal/GEqual/Equal/NotEqual//Zwrite 深度写入,默认为打开Zwrite off//on//Blend 混合 格式如下//Blend SrcFactor DstFactor//不同情况下使用不同的LOD达到性能提升LOD 100//必须要写//SubShader里面可以有多个Pass通道,多个Pass通道是按顺序进行渲染的//不建议写多个通道,每多一个Pass通道,渲染的DrawCall就多一个,会降低性能Pass{//Pass通道名称,在外部可以直接Use这个通道,相当于函数,但是Use的时候Name必须全部大写Name "Default"//可以在通道里面书写标签,当通道内外都存在标签,执行的是外面的标签Tags{//定义该Pass通道在Unity渲染流水中的角色"LightMode" = "ForwardBase"//满足某些条件时才渲染该Pass通道"RequireOptions" = "SoftVegetation"} //Render渲染设置 可以在通道里面书写渲染设置,当通道内外都存在渲染设置,执行的是外面的渲染设置//CG语言所写的代码,主要是顶点,片源,着色器CGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fog#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv);// apply fogUNITY_APPLY_FOG(i.fogCoord, col);return col;}ENDCG}
}

注意

Unity Shader ≠ \neq = 真正的Shader

  • Unity Shader实际上指的就是一个ShaderLab文件。以.shader作为后缀的一种文件。在Unity shader里面,我们可以做的事情远多于一个传统意义上的Shader。
  • 在传统的shader中,我们仅可以编写特定类型的Shader,例如顶点着色器,片元着色器等。在Unity Shader中,我们可以在同一个文件里面同时包含需要的顶点着色器和片元着色器代码。
  • 在传统shader中,我们无法设置一些渲染设置,例如是否开启混合,深度测试等,这些是开发者在另外的代码中自行设置的。而Unity shader中,我们通过一行特定的指令就可以完成这些设置。
  • 在传统shader中,我们需要编写冗长的代码设置着色器的输入和输出,要小心的处理这些输入输出的位置对应关系等。而在Unity shader中,我们只需要在特定语句块中声明一些属性,就可以依靠材质来方便的改变这些属性。而对于模型自带的数据(如顶点,纹理坐标,法线等),Unity Shader也提供了直接访问的方法,不需要开发者自行编码来传给着色器。
http://www.yayakq.cn/news/613756/

相关文章:

  • 腾达建设集团股份有限公司网站如何做网站大图片
  • 网站建设服务杭州西宁网站设计建设
  • 化妆品网站的建设 论文wordpress 添加自定义栏目面板
  • 深圳做网站排名哪家专业织梦网站手机版端设置
  • 重庆人居建设集团网站东莞微联建站
  • 网站开发一般用什么工具弹幕网站开发代码
  • 网站推广途径电商网站的建设背景
  • 苏州企业网站制作设计公司wordpress 如何制作模板下载
  • 小熊代刷推广网站网站开发电话话术
  • 站长之家seo综合企业网上推广方式
  • 两学一做知识竞答网站网络专业毕业设计
  • 网站建设公司现状360建站工具
  • 做网站图片自动切换烟台网站建设烟台
  • 网站更换服务器对seo的影响时间管理系统 网站开发
  • 网站运营问题wordpress 段落间距
  • 自建外贸网站个人网站如何赚钱
  • 网站标题字体设计网站的导航栏设计文本
  • 网站优化与seo的区别重庆企业网站建设报价
  • 餐饮加盟什么网站建设网络公司给别人做网站的cms是买的授权么
  • 网站建设浙江办公室装修设计公司哪家好
  • 新乡辉县网站建设网站分享图片怎么做
  • 做网站的私活网站营销方式
  • 博望网站建设网站建设需求精确表
  • 做网站付费流程网络营销方式有哪些视频
  • dede网站模板安装现在最火的发帖平台
  • 网站如何做关网页培训多少钱
  • 网站五合一建设网站登记表
  • 提供网站建设工具的品牌项目计划书范文模板
  • 免费网站qq抓取备案我网站的大致内容是
  • 深圳响应式网站建设wordpress图片合成