0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Unity中Sharder的3个类别及区分

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-04-28 16:21 次阅读

按照渲染管线的分类,可以把Sharder分成3个类别:

1、固定功能着色器(Fixed Function Shader)

固定功能着色器为固定功能渲染管线的具体表现。

2、表面着色器

存在于Unity3D中由U3D发扬光大的一门技术。Untiy3D为我们把Shader的复杂性包装起来,降低shader的书写门槛。

3、顶点着色器和片段着色器

GPU上含有两个组件:可编程顶点处理器和可编程片段处理器,顶点和片段处理器被分离成可编程单元,可编程顶点处理器是一个硬件单元,可以运行顶点程序,而可编程片段处理器则是一个可以运行片段程序的单元。

顶点着色器

顶点着色程序从GPU前端(寄存器)中提取图元信息(顶点位置、法向量、纹理坐标),并完成顶点坐标空间变换、法向量空间转换、光照计算等操作,最后将计算数据传送到指定寄存器中。

片段着色器

片段程序从上述寄存器中获取需要的数据:纹理坐标与光照信息等,并根据这些信息以及从应用程序传递的纹理信息进行每个片段的颜色计算(纹理查询),最后将处理后的数据传送光栅操作模块。

三种着色器的共同点:

都必须从唯一一个根Shader开始

Prooerties参数部分,作用以及语法完全相同。

具体功能都在SubShader里。

都可以打标签

都可以Fallback

都可以处理基本的功能,例如光照漫反射以及镜面反射。但如uv计算效果等高级功能,固定功能着色器无法完成。

三种着色器的不同点

表面着色器没有通道pass{},加了会报错,该着色器已经把具体内容打包在光照模型中了。

固定渲染管线每句代码之后都没有“;”

核心结构不同:

- 固定渲染管线的核心是:

- 顶点与片段着色器的核心是:

- 表面着色器的核心是:

在Unity中如何区分以上三种着色器

没有嵌套CG语言,即代码中没有CGPROGARAM和ENDCG关键字的,就是固定功能着色器。

嵌套CG语言,代码中有surf函数的为表面着色器

嵌套了CG语言,代码中有#pragma vertex name和 #pragma fragment frag声明的,就是顶点着色器&片段着色器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4743

    浏览量

    128986
  • Unity
    +关注

    关注

    1

    文章

    127

    浏览量

    21836

原文标题:Unity中Shader的三种基本类型

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何用Unity搞出一3D版的神经网络可视化

    先给Unity3D网络提供一搭建思路,提前准备好实现展示卷积计算的方法、特征图的形状、边绑定的效果等问题。
    发表于 08-29 15:57 1674次阅读

    Cisco Unity Express语音邮件

    Express的另一主要优势在于:它能够简化网络管理,尤其是在通常缺乏现场技术专家的中小型机构。随时轻松添加全新话音业务的灵活性使该解决方案 更具优势。 Cisco Unity Express还提供配置
    发表于 11-13 21:50

    Unity3D AR技术vuforia SDK

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【334163814】 本文链接地址: Unity3D AR技术 vuforia SDK公司新项目要使用ar技术(增强现实
    发表于 09-20 11:56

    Unity3D浅谈&Unity5游戏及交互设计

    Unity3D是由丹麦Unity公司开发的游戏开发工具,作为一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品。支持包括IOS,ANDROID,PC,WEB,PS3.XBOX等多个平台的发布
    发表于 07-02 06:25

    Unity的高级图形技术解读

    本指南向您介绍Unity的一些高级图形概念。您将需要使用自定义着色器,本指南将带您了解这些着色器,并向您介绍一些其他移动概念和工具。 在本指南的最后,您将了解到: •如何实现顶点和片段着色器
    发表于 08-02 07:44

    unity3D制作的贪吃蛇软件下载

    unity3D制作的贪吃蛇
    发表于 02-24 16:10 1次下载

    Unity3D插件——LitJson下载

    Unity3D插件——LitJson下载
    发表于 04-26 15:08 0次下载
    <b class='flag-5'>Unity3</b>D插件——LitJson下载

    UnityShader的三种类别 如何区分

    存在于Unity3D由U3D发扬光大的一门技术。Untiy3D为我们把Shader的复杂性包装起来,降低shader的书写门槛。
    发表于 05-04 10:34 3381次阅读

    Unity的Enlighten与混合光照

    Unity的5.6版本之前的5.x,主要使用了Geomerics公司的Enlighten【1】来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapper
    发表于 05-31 05:28 2176次阅读

    “IG”火了,离不开Unity3D

    打不同的游戏,王老板给他们发工资,这次在S8夺得总冠军的就是IG的LOL项目的队员。那么知道爆款游戏的开发用的什么技术吗?下面就来说说开发游戏Unity3D究竟能干什么吧!一、Unity3
    发表于 11-09 15:15 465次阅读

    怎样安装Unity

    Unity是最广泛使用的游戏引擎之一,它是用于开发适用于所有平台的游戏,也适用于AR&amp; VR开发。市场上还有其他游戏引擎,例如Unreal,CryEngine和Torque3D,但这些都
    的头像 发表于 08-01 14:12 3054次阅读

    Unity 3D优化三的注意方面

    Unity优化是一很大的概念,我们优化时需要注意三方面:CPU优化,GPU优化,内存优化。
    的头像 发表于 03-13 16:47 3404次阅读

    不同电阻的类别符号是如何区分

    为了区别不同种类的电阻,常用几个拉丁字母表示电阻类别,如图1所示。第一字母R表示电阻,第二字母表示导体材料,第三字母表示形状性能。上图是碳膜电阻,下图是精密金属膜电阻。表1列出电
    发表于 07-03 18:12 17次下载
    不同电阻的<b class='flag-5'>类别</b>符号是如何<b class='flag-5'>区分</b>的

    Unity 3D引擎制作的愤怒的小鸟游戏

    Unity 3D引擎制作的愤怒的小鸟游戏
    发表于 05-12 09:37 2次下载

    Unity与ROS链接介绍

    对于ROS而言,其最常用的就是Topic话题以及Service两了。之前我们在了解Unity Robotics Hub时候就了解到基本的Unity和ROS的通讯,下面我们来详细介绍一下Uni
    的头像 发表于 11-17 17:22 1017次阅读
    <b class='flag-5'>Unity</b>与ROS链接介绍