位置: 编程技术 - 正文

【猫猫的Unity Shader之旅】之可编程 Shader初步(猫的所有视频)

编辑:rootadmin

推荐整理分享【猫猫的Unity Shader之旅】之可编程 Shader初步(猫的所有视频),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:猫的游戏视频,猫的所有视频,猫的游戏视频,猫的猫的视频,猫猫的娱乐,猫猫的游戏,猫的猫的视频,猫的游戏视频,内容如对您有帮助,希望把文章链接给更多的朋友!

  可编程Shader,通常也被叫做Vertex&Fragment Shader,是比Surface Shader更灵活的一种Unity Shader形态。使用可编程Shader,可以实现对最终效果的更精确的控制,然而,代价就是需要关注更多的细节。

一个最简单的可编程Shader

  作为第一个例子,我们实现了一个简单的自发光效果,它甚至没有Surface Shader的第一个例子华丽,因为没有Lambert这样的内置的光照模型可以使用了。在可编程Shader里,光照模型需要我们自己去实现,不过我们也不必沮丧,可编程Shader的潜力不是Surface Shader可以比的。

  最终的效果是一个纯色的Shader。

  

  这个Shader和之前的Surface Shader还是有很大不同的。第一个大的不同就是Pass块,Pass块实际上表示一个渲染过程,也就是说,经过一个Pass块,我们就用给定的信息计算了一次所有片段的颜色。一个SubShader中可能包含多个Pass块,最常见的情况就是需要对模型的正反两面渲染不同的效果,这时我们就应该使用两个Pass分别对正反两面进行处理。

  第二个不同的地方就是#pragma vertex vert和#pragma fragment frag。这也是可编程Shader被称为Vertex&Fragment Shader的原因。在可编程Shader中,渲染过程被分成了两个主要的部分,也就是顶点阶段和片段阶段,也可以理解为对应管线的转换和光照阶段。忘记的话可以看下这里。顶点阶段通过运算得到经过变换和投影处理过的顶点信息(包括颜色、位置、贴图坐标等等),然后这些信息通过插值变为片段信息,所有的片段再经过片段阶段的处理,处理后的片段信息通过混合规则计算后写入各缓冲区。

  要使用Properties中定义的属性,需要在Cg代码中再定义一下,这时候需要使用uniform关键字。uniform关键字实际上表示需要外部传入信息的变量,我们的属性其实也相当于Unity传入Shader的信息。

【猫猫的Unity Shader之旅】之可编程 Shader初步(猫的所有视频)

  在vert中,我们使用了语义。这有什么用呢?我们来假设一下,如果没有语义,vert方法是这样的:

  OK,这是现在的vert方法。模型的每一个顶点要经过这个方法去处理,但是我们并不知道应该把什么信息传入vert,是颜色?位置?还是其他的?同理,对于vert返回的信息,也无法知道具体是表示什么。这时候就需要用冒号+语义来指明信息的含义,POSITION就表示模型需要把顶点的位置(局部坐标)传给vert,SV_POSITION表示vert返回的信息也表示位置。在vert中,我们返回顶点位置经过模型、视图、投影变换后的结果,MVP就是Model、View、Projection的缩写。

  经过顶点阶段后顶点信息需要经过插值,比如一条直线原本是用两个顶点表示,现在经过插值计算出中间的个点,具体的数目跟直线的位置和屏幕分辨率等都有关系。这个过程也叫光栅化。这个阶段我们是没有办法干预的,只能对光栅化产生的片段(fragment)进行处理。

  frag方法同样需要语义。我们需要把vert计算出的位置信息(准确说是又经过光栅化后产生的片段的位置信息)通过参数传递进来,所以必须保证参数的语义和vert返回的语义是相同的,也是SV_POSITION。对于frag来说,它需要返回片段的颜色,所以语义是COLOR。这里我们简单地返回自发光颜色。

使用结构体在Vertex和Fragment间传递参数

  当Vertex需要传递多条信息给Fragment时(大多数情况如此),我们要使用结构体,这有点类似Surface Shader里面的Input结构体,使用结构体的另一个好处是可以保证语义的对应上不会出错。当Vertex需要多个参数时,我们也可以使用结构体,或者使用内置的结构体。内置结构体类型可以在UnityCG.cginc中找到:

  这次,我们重写一下上次的变色效果,当然,这版还不带光照:

  效果如图:

  

结束语

  世界上的事总是这样,有优势就会有对应的短板。就像Unity Shader,选择了Surface Shader就得面对效果和效率上的不如意,选择可编程Shader就得面对开发过程不够方便。没有什么一定是对的,就看当时需要的是什么,这也许就是选择的意义。

《Playmaker全面实践教程(Input篇)》 欢迎大家到我们团队的官网上查看此书的详细介绍,下面是链接《Playmaker全面实践教程(Input篇)》我们的宗旨是:我们只做最专业的技术传播者!为了

一起来学u3d之圣典.9 一起来学u3d之圣典.9废话不多说,一针见血,go!一起来看API其中不懂的大家互相帮助哈英文部分版权属©Unity公司所有,中文部分©Unity圣典版权所有。

Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题 文章转自:

标签: 猫的所有视频

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

上一篇:Unity5调用Android第三方sdk报错(unity 调用java)

下一篇:Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题(unity android build support)

  • 未确认融资费用和长期应付款
  • 已在境外缴纳的企业所得税税额 分国不分项
  • 房产税会计分录怎么写
  • 增值税销项税额账务处理
  • 个税应纳税所得额计算公式
  • 捐赠资产管理办法
  • 吊车租赁有限公司
  • 个人独资企业可以核定征收吗
  • 交易性金融资产有哪些
  • 赔偿费计入费用减应收账款怎么做账
  • 会计大写数字金额书写规则
  • 一张发票开不足一台设备的金额怎么办
  • 企业线上销售的好处
  • 车辆保险赔款怎么入账
  • 增值税农产品抵扣政策
  • 主营业务税金及附加包括印花税吗
  • 工资薪金与年终奖筹划
  • 研发费用没做账怎么调账
  • 吊装费和吊车费是一样的不?
  • 企业生产经营模式
  • 一般公司报销一个月报销几次
  • 所得税申报表中利润总额是怎样算出来的
  • 公司帮个人代缴社保会计分录
  • 固定资产采用历史成本计价
  • bios设置技巧
  • 个人所得汇算清缴是什么
  • 前期投资费用怎么做账
  • 怎么在安全模式下卸载更新
  • 需要税务部门解决的问题
  • 党政机关接收企业赞助的规定
  • 有进项没销项怎么处理,可以结转成本吗
  • 个人应纳税所得额是要交钱吗
  • 现金解款单怎么读
  • 封装和调用
  • vuecli3创建项目的过程
  • php页面跳转实现什么功能
  • php aes加密解密
  • 破解版微擎框架如何升级
  • 入库单正确填写方法
  • 帝国cms要授权吗知乎
  • 已缴款未入库是缴费成功了吗
  • 计提提成是什么意思
  • sql server 2005安装失败
  • MySQL数据库远程登录
  • 失控发票要补交所得税吗
  • 一般纳税人开普票和专票有什么区别
  • 只有进项税月末要转入未交增值税么
  • 用友t6反记账步骤
  • 开办费新会计准则
  • 不动产计提折旧时间
  • 冲回去年收入会计分录
  • 自产委托加工的货物用于非增值税应税项目
  • 会计制度和会计准则科目转换
  • 企业发生的存货盘盈计入营业外收入吗
  • windows7打游戏会卡怎么办
  • 通透Windows 2008系统状态变化
  • 激活窗口的菜单的快捷键
  • linux命令合集
  • win98拨号上网
  • swimsuitnetwork.exe - swimsuitnetwork是什么进程 有何作用
  • win8系统如何
  • onionwormimmune.exe是什么
  • 电脑禁用u盘软件
  • 打开word显示
  • Linux中的stat命令使用简介
  • python爬虫入门教程非常详细
  • 关于中国天气的新闻报道
  • javascript定律
  • 深入学习习总书记系列讲话精神
  • 跑马灯 css
  • linux shell脚本攻略(第3版)
  • JavaScript事件类型中焦点、鼠标和滚轮事件详解
  • 'd:skin' 开头的无效内容。此处不应含有子元素。
  • android view view
  • 软件和集成电路企业税收优惠
  • 广西地方税务局2017年公务员拟录用
  • 北京地方税务局李宗定
  • 深圳龙华区税务局大浪税务所电话
  • 成都城镇居民社保怎么缴费
  • 税收筹划六种方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设