1 / 29
文档名称:

UnityD Shader入门指南.docx

格式:docx   大小:1,799KB   页数:29页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

UnityD Shader入门指南.docx

上传人:jiqingyong345 2018/2/3 文件大小:1.76 MB

下载得到文件列表

UnityD Shader入门指南.docx

文档介绍

文档介绍:Unity3D Shader入门指南(一)
分类: Unity3d2014-04-28 17:40 16人阅读 评论(0) 收藏 举报
unity3dShader3d渲染
目录(?)[+]
本文转载自:/2013/07/shader-tutorial-1/
动机
自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能使自己到达的层次能再深入一些吧,再于是,有了这个系列(希望我能坚持写完它,虽然应该会拖个半年左右)。
Unity3D的所有渲染工作都离不开着色器(Shader),如果你和我一样最近开始对Shader编程比较感兴趣的话,可能你和我有着同样的困惑:如何开始?Unity3D提供了一些Shader的手册和文档(比如这里,这里和这里),但是一来内容比较分散,二来学习阶梯稍微陡峭了些。这对于像我这样之前完全没有接触过有关内容的新人来说是相当不友好的。国内外虽然也有一些Shader的介绍和心得,但是也同样存在内容分散的问题,很多教程前一章就只介绍了基本概念,接下来马上就搬出一个超复杂的例子,对于很多基本的用法并没有解释。也许对于Shader熟练使用的开发者来说是没有问题,但是我相信像我这样的入门者也并不在少数。在多方寻觅无果后,我觉得有必要写一份教程,来以一个入门者的角度介绍一些Shader开发的基本步骤。其实与其说是教程,倒不如说是一份自我总结,希望能够帮到有需要的人。
所以,本“教程”的对象是
总的来说是新接触Shader开发的人:也许你知道什么是Shader,也会使用别人的Shader,但是仅限于知道一些基本的内建Shader名字,从来没有打开它们查看其源码。
想要更多了解Shader和有需求要进行Shader开发的开发者,但是之前并没有Shader开发的经验。
当然,因为我本身在Shader开发方面也是一个不折不扣的大菜鸟,本文很多内容也只是在自己的理解加上一些可能不太靠谱的求证和总结。本文中的示例应该会有更好的方式来实现,因此您是高手并且恰巧路过的话,如果有好的方式来实现某些内容,恳请您不吝留下评论,我会对本文进行不断更新和维护。
一些基本概念
Shader和Material
如果是进行3D游戏开发的话,想必您对着两个词不会陌生。Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)。之后,我们便可以将材质赋予合适的renderer(渲染器)来进行渲染(输出)了。
所以说Shader并没有什么特别神奇的,它只是一段规定好输入(颜色,贴图等)和输出(渲染器能够读懂的点和颜色的对应关系)的程序。而Shader开发者要做的就是根据输入,进行计算变换,产生输出而已。
Shader大体上可以分为两类,简单来说
表面着色器(Surface Shader) - 为你做了大部分的工作,只需要简单的技巧即可实现很多不错的效果。类比卡片机,上手以后不太需要很多努力就能拍出不错的效果。
片段着色器(Fragment Shader) - 可以做的事情更多,但是也比较难写。使用片段着色器的主要目的是可以在比较低的层级上进行更复杂(或者针对目标设备更高效)的开发。
因为是入门文章,所以之后的介绍将主要集中在表面着色器上。
Shader程序的基本结构
因为着色器代码可以说专用性非常强,因此人为地规定了它的基本结构。一个普通的着色器的结构应该是这样的: 
一段Shader程序的结构
首先是一些属性定义,用来指定这段代码将有哪些输入。接下来是一个或者多个的子着色器,在实际运行中,哪一个子着色器被使用是由运行的平台所决定的。子着色器是代码的主体,每一个子着色器中包含一个或者多个的Pass。在计算着色时,平台先选择最优先可以使用的着色器,然后依次运行其中的Pass,然后得到输出的结果。最后指定一个回滚,用来处理所有Subshader都不能运行的情况(比如目标设备实在太老,所有Subshader中都有其不支持的特性)。
需要提前说明的是,在实际进行表面着色器的开发时,我们将直接在Subshader

最近更新

2025年监理工程师之交通工程目标控制考试题库.. 170页

2025年监理工程师之交通工程目标控制考试题库.. 169页

2025年监理工程师之交通工程目标控制考试题库.. 171页

2025年监理工程师之交通工程目标控制考试题库.. 169页

2025年税务师之涉税服务实务考试题库及完整答.. 201页

2025年税务师之涉税服务实务考试题库含答案【.. 200页

2025年税务师之涉税服务实务考试题库(考点提.. 196页

2025年试验检测师之桥梁隧道工程考试题库及完.. 173页

2025年试验检测师之桥梁隧道工程考试题库含答.. 176页

2025年试验检测师之桥梁隧道工程考试题库带答.. 173页

2025年试验检测师之桥梁隧道工程考试题库附参.. 173页

2025年马原考试题库及参考答案(突破训练) 95页

2025年马原考试题库含答案【巩固】 94页

2025年马原考试题库带答案(a卷) 95页

2025年马原考试题库附答案【基础题】 94页

交管12123学法减分复习题库【a卷】 46页

交管12123学法减分复习题库含答案【黄金题型】.. 45页

交管12123学法减分复习题库附参考答案(轻巧夺.. 45页

交管12123学法减分复习题库(全优) 46页

县乡教师选调考试《教师职业道德》题库含答案.. 47页

监理工程师之水利工程目标控制题库及参考答案.. 167页

监理工程师之水利工程目标控制题库(能力提升.. 166页

服务管理案例分析 27页

曲线拟合的最小二乘法 13页

面向智能交通系统的物联网体系结构的研究 3页

非编码序列对细胞因子的转录后调控功能探究 3页

2024消化内镜手术分级 12页

2024版全新正版mastercam基础教程 35页

2022年单招辽宁铁道真题 9页

临床医学生入党申请书 9页