位置: 编程技术 - 正文

Unity shader教程-第二课:Shader的框架和Properties详细介绍(unity shader lod)

编辑:rootadmin

推荐整理分享Unity shader教程-第二课:Shader的框架和Properties详细介绍(unity shader lod),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity的shader用法,unityshader教程,unity shader cull off,《unity shader入门精要》,unity shader cull off,unity shader cull off,unityshader教程,unity shader视频教程,内容如对您有帮助,希望把文章链接给更多的朋友!

本文首发地址: 加上后面的用双引号括起来的字串开始,字串里面可以用上/表示在Inspector中显示出来的分类。整个shader代码都包在这个部分后面的{}中。举例来说,一个典型的shader会是这样

二、Shader中的属性(properties)

在unity中,一个shader的属性非常重要,因为属性可以让美术人员或者用户不用会代码就能添加材质、改动数&#;从而改变shader的显示。属性通过在Inspector面板上提供出相关的控件出来,可以可视化的、所见即所得的实现对相关的shader行为的修改。

为了方便,我们把上一节课的shader代码贴在下面:

从第3行的Properties开始到第6行位置,我们把这个块叫做“属性代码块”。当前,它只有一个属性:_MainTex。如果你在Unity中选中应用了我们这个shader的material,你可以在inspector面板上看到一个可供选择图片的控件,如下图:

你可以通过右下角的select这个按钮来选取工程里的图片,也可以把图片从project面板中直接拖到select所在的框里面。这里的这个控件框(包含它左手边的Base(RGB)等),都是shader中的代码Properties { _MainText ... } 让Unity为我们自动生成出来的。

因此,我们可以使用Unity的这个方法,尽量把shader需要的外部“变量”作为属性传给shader,这样就减少了代码的改动量。

动手实验

用MonoDevelo打开我们的第一个shader,从Properties中去除原来的这一行:

_MainText ("Base (RGB)", 2D) = "White" {}

然后加入下面的代码,保存

_EmissiveColor ("Emissive Color", Color) = (1, 1, 1, 1)

回到Unity中等待Unity编译完我们的shader。请保证你是选中的应用了我们的shader的material,Inspector面板会变成下图,点击图中的白色部分会弹出对话框供我们选择不同的颜色。

再回到shader代码中,我们再加入这么一行代码:

_SomeValue("Some Value", Range(0, )) = 2

Unity shader教程-第二课:Shader的框架和Properties详细介绍(unity shader lod)

相关面板会多出来一个滑动条出来,可以让我们左右滑动在一定范围内确定一个数&#;

Properties中代码的&#;式

每个Unity的shader都被Unity规定了一定的&#;式。Properties块就是其中的一个。这个块主要是给shader的程序员一个很方便的方式去让Unity帮助创建出符合你的代码的控件出来,而不用程序员去关心怎么显示(如果想,unity也提供了相应的方式让程序员自由发挥)。在Properties块中的代码,需要符合下面的&#;式:

“变量”这个名字,是在shader其他代码中会被引用,用来得到这个变量所对应的&#;。

“Inspector显示名”,是我们这个属性在Inspector面板上显示出来的名字。

“类型”是变量属于的种类,同时也决定了变量在Inspector面板上对应的控件。

“默认&#;”是变量的初始化&#;,相应的,它的写法也跟变量的类型有关。

下面的表&#;描述了在shader中我们可以用到的“类型”:

Range(min, max)

创建一个滑动条,可以让用户选择在min和max之间的浮点数&#;

Color创建一个调色板选择器,可以让用户选择颜色2D创建一个图片选择框,可以让用户选择贴图Rect创建一个non-power-of-2贴图选择框,功能基本跟2D想同Cube

创建一个选择Cubmap的框

Float创建一个让用户填入浮点数的栏位Vector

创建4个栏位,让用户可以填入相应的浮点数,代表一个Vecto4

然后看“默认&#;"的写法:

Range 和 Float,一个浮点数Color 和 Vector,4个用逗号隔开的数字,用()包住。对应于Color,这四个是分别是R、G、B、A的归一化的&#;(数&#;范围从0到1,代表0到这个常见的色彩&#;范围)。对应于Vector,是x、y、z、w&#;。2D, Rect 和 Cube,可以选择空的字符串或者Unity内部的默认贴图名字:"white", "black", "gray" 或"bump"

注意:

2D、Rect、Cube的默认&#;后面可以跟上{},类&#;这样的写法

name ("display name", 2D) = "name" { options }

这个部分是可选的。如果需要,这里的选择是两种模式:

TexGen texgenmode: 自动生成贴图的uv坐标。texgenmode参数可以是:ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal; 都直接对应到OpenGL的texgen模式。如果用户用了自定义的顶点方法,那么TexGen会被unity忽略。LightmapMode 指示unity,我们这里的图会从每个Rerderer组件中来,而不是直接在material中指定。

Unity 通过脚本修改源资源 自动实例化如果要修改任何游戏资源,通常希望在运行时修改,且修改是暂时的。例如,如果角色获得了无敌状态,可能想更改材质(material)的着色器(sha

学习shader之前必须知道的东西之计算机图形学(一)渲染... shader到底是干什么用的?shader的工作原理是什么?其实当我们对这个问题还很懵懂的时候,就已经开始急不可耐的要四处搜寻有关shader的资料,恨不得

unity 角色控制器 我们要控制角色的移动,能够所有细节都由自己来实现。控制角色模型的移动,同一时候移动摄影机,改变视角。当然Unity也提供了一些组件,能够让我

标签: unity shader lod

本文链接地址:https://www.jiuchutong.com/biancheng/375795.html 转载请保留说明!

上一篇:Unity3D【火星大战二】(unity火球特效)

下一篇:Unity 通过脚本修改源资源(unity通过脚本控制骨骼节点让模型动起来)

  • 城建税会计分录怎么写
  • 借贷利息怎么算
  • 期末数减期初数等于
  • 固定资产丢失
  • 会计信息采集审核需要多久
  • 小企业货币资金1710元正常吗
  • 转让无形资产所有权税率
  • 售后回购涉税处理
  • 包装物押金会计分录怎么做
  • 股东以私人名义帮公司付款合法吗
  • 大额存款提前取一部分怎么计息
  • 财务申报工资和实际发工资
  • 外购产品赠送他人合法吗
  • 银行存款日记账最后一行怎么填
  • 停车场需要对车辆负责吗
  • 农产品流通环节税收优惠政策
  • 餐厅开增值税普通发票
  • 营改增之后还有营业税金及附加吗
  • 建筑企业管理部门
  • 个人所得税需要计提吗?怎么做会计分录
  • 个人独资企业股权能出让吗
  • 贸易公司所得税率多少
  • 水资源税计入会计科目
  • 零申报还需要交税吗
  • 现金为负数时怎么做账
  • 腾讯电脑管家中的软件市场怎么拖到桌面
  • win10网页打不开但是有网
  • 固定资产和低值易耗品的登记和管理咋弄?
  • 收到银行退回余款
  • kzip_main.exe是什么
  • windows搭建dvwa
  • 视同销售行为的涉税处理?
  • 预收账款的账务处理摘要
  • 会计科目备抵科目都有哪些
  • 深入解析windows第7版卷2
  • php 进程通信
  • 被收购方和被收购企业
  • 红字发票信息表盖什么章
  • 承兑汇票贴现会计分录怎么做
  • 融资租赁的固定资产
  • 百旺税控盘汇总上传如何检查
  • 长期应付款项目,根据专项应付款和长期应付款
  • 小规模纳税人做工资没交社保
  • 购进新车旧车置换流程
  • 固定资产清理的审计目标不包括
  • 房产税土地税会减免吗
  • 公司购买土地建厂房账务处理小企业会计准则
  • 保险费用缴纳
  • 销售货物增值税税率变化
  • 职工薪酬包括哪些应如何计算
  • 销售商品的运费的税费计入进项税额
  • 小规模纳税人购进商品会计分录
  • 当月作废的专票还是要交增值税吗
  • 银行承兑汇票去哪个银行承兑
  • 公司向个人借款利息可以税前扣除吗
  • 合同资产减值准备对应科目
  • 账簿设置方法
  • 安装完成后如何检验安装的部分是否符合安装工艺
  • 选择mysql数据库为当前数据库
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍
  • win7旗舰版系统还原无法启动
  • windows server 2008的技巧:防止ping的方法
  • igs文件是什么文件
  • win8应用商店下载
  • jquery手机号码正则表达式
  • nodejs web3
  • cmd命令是干嘛的
  • 批处理中如何判断当前文件中是否存在一个子目录
  • 自动生成批量执行命令
  • android性能指标
  • vue用户权限解决方案
  • json 日期类型
  • javascript的for循环
  • unity3d开发之对象池
  • android客户端与服务器通信
  • 人员进出管理系统
  • 税务徽标含义
  • 四川省地方税务局公告2018年第3号
  • 湖南职工医保哪里交
  • 天津市东丽区军粮城派出所电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设