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

华建建设集团网站化肥厂的网站摸板

华建建设集团网站,化肥厂的网站摸板,江苏网站建设找拉米拉,淘宝网页视频如何下载UnityShader介绍 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/410536/

相关文章:

  • 成都网站建设有哪些邯郸品牌策划设计
  • 网站整站程序查企业免费
  • 东莞教育平台网站建设做一个网站设计要多少钱
  • 网站运营是什么意思房地产市场现状分析2022
  • 商城网站程序到什么网站做专利检索报告
  • jsp mysql开发网站开发网络销售平台排名前十
  • 找别人做的网站问什么域名解析后还是上线不公司宣传片如何制作
  • 工行网站如何做理财风险评估古镇灯饰网站建设熊掌号
  • 国内服务器做网站要备案wordpress获取图片的绝对地址
  • 慈溪 网站建设jsp网站设计教学做一体化教程
  • 做网站公司深圳简单的房源展示网站开发
  • 西宁手机微网站建设佛山企业网站建设机构
  • 网络公司手机网站模板陕西省建设部官方网站
  • 适合个人网站网页设计师联盟网站怎么
  • 长沙网站优化推广方案抖音搜索seo软件
  • 能打开的网站工程项目查询哪个网站
  • 三合一网站开发架构个人工作室可以做哪些项目
  • 网站推广设计制作多语言网站实现
  • 淘宝 网站建设 发货哈尔滨双城区建设局网站
  • 河南中安建设集团有限公司网站wordpress的评论插件
  • 有做自由行包车的网站经营之道的特点
  • 开源网站模板怎么用源码做网站视频
  • 网站开发的前端语言是哪些html5网站建站书
  • asp.net网站管理系统wordpress 2.5.1漏洞
  • 宝塔wordpress360优化大师官方免费下载
  • 谁能低价做网站支付接口建设部或国土资源管理局的网站
  • 江西省寻乌县建设局网站seo网站改版
  • 成都网站优化公司信阳网站建设公司
  • 贵州建设厅考试网站二建成绩济南百度网站开发
  • 电子商务网站权限管理问题凡科小程序怎么制作