UAC2015W0905SourceUAC2015W0905章节.pptxVIP

  • 3
  • 0
  • 约4.46千字
  • 约 22页
  • 2017-11-27 发布于广东
  • 举报
第05课 Shader基础 课程名称 Lesson Title Shader基础 学习者等级 Learner Level 专业能力认证课程 模块 Module 图形控制高级应用 本课时长 Duration 45分钟 学习者背景 Learner Background 本课程要求学习者对unity引擎内置的Shader的用法有所了解及能够对知道每种Shader在游戏中的基本用法。 教学目标 Objectives 本课的目标是能够让学生了解内建的Shader基本功能,以及能够让学生区分内建Shader的使用方法。以及如何创建一个基本的Shader。 ✜ 能够通过内建的Shader对Shader有一个简单的认识。 ✜能够掌握内置Shader使用方法 ✜能够了解unity中三种自定义的Shader。 主题 Topics Shader概述 自定义Shader Shader的创建以及框架 Shader概述 Shader概述 Shader概述 Shader是一段能够针对3D对象进行操作、并被GPU所执行的程序。通过这些程序,开发者就能够获得绝大部分想要的3D图形效果。 Shader概述 简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码。Shader是伴随着可编程渲染管线出现的,它的出现使得游戏开发者可以对渲染过程加以控制,拥有更大的创作空间,因此Shader的出现可以看作是实时渲染技术的一个革命。 在现代主流的3D游戏引擎中,Shader已经无处不在,例如常见的镜头景深、动态模糊、卡通渲染,以及各种特殊的材效果和光照效果等等,各种让人决定很酷的效果背后都离不开Shader的功劳。 Shader概述 Shader中规定了渲染物体的方式,它属于Material材质球中的一部分,而Material材质被Mesh Renderer(网格渲染器)包含。所以,Mesh Renderer是控制模型渲染的主要组件。它会接受Mesh Filter(网格适配器)中对模型网格的解析数据,再加上Unity场景中的数据,比如光照,雾等,通过Shader程序计算出模型应该如何被渲染到屏幕。渲染结束后我们就可以在屏幕上看到模型被栩栩如生的表现出来。 Shader概述 为了方便游戏开发者使用,Unity提供了数量超过80个的内建Shader,包括从简单的顶点光照效果到高光、法线、反射等游戏中最常用的材质效果。这些内建的Shader的代码可以在Unity官方网站下载,开发者可以基于这些代码开发出更多个性的Shader。内建的Shader代码的下载地址为/unity/download/archive。 Shader概述 Unity中所有的渲染都需要通过Shader来完成,开发者除了使用Unity自带的shader,还可以自己编写Shader。 主题 Topics Shader概述 自定义Shader Shader的创建以及框架 自定义Shader 自定义Shader Unity提供了丰富的内建Shader,基本能够满足普通的开发需求。但是和所有内建、标准的东西一样,它们看起来有些普通,每个游戏开发者都希望自己的游戏画面看起来很酷并且与众不同,当觉得内建的Shader已经无法满足要求时,就需要开发者编写自己的Shader了。 Unity引擎对Shader编程语言的支持是很全面的,Unity支持GLSL(OpenGL Shading Language)、Cg(C for graphics)语言,不过为了实现最大化的跨平台支持,Unity对Shader编程语言的支持重点是Cg。 自定义Shader 在Unity中,开发者可以编写3中类型的Shader: ✜表面着色器(Surface Shaders) ✜顶点和片段着色器(Vertex and fragment Shaders) ✜固定功能管线着色器(Fixed Function Shaders) 自定义Shader 通常情况下用户都会使用这种Shader,它可以与灯光、阴影、投影器进行交互。表面着色器的抽象层次比较高,它可以容易地以简洁方式实现复杂的着色器。表面着色器可同时正常工作在前向渲染及延迟渲染模式下。表面着色器以Cg/HLSL语言进行编写。 Shader Example/Diffuse Texture { Properties { _MainTex (Texture, 2D) = white {} } SubShader { Tags { RenderType = Op

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档