Unity和Shader进阶(五)
这里我们进一步学习入门精要的高级纹理,之所以跳过高级光照是因为该部分说明的内容不会影响我们直接学习高级纹理,由于学习了PBR,不如直接将立方体贴图讲清楚,之后再慢慢研究光照。除此外,高级纹理还包括渲染纹理和程序纹理。
这里我们进一步学习入门精要的高级纹理,之所以跳过高级光照是因为该部分说明的内容不会影响我们直接学习高级纹理,由于学习了PBR,不如直接将立方体贴图讲清楚,之后再慢慢研究光照。除此外,高级纹理还包括渲染纹理和程序纹理。
前面我们学习了基础纹理和法线纹理,现在我们认识到纹理就是顶点的某种数据,我们下面将学习渐变纹理和遮罩纹理。之后我们再补充一些透明的基本做法,那么入门精要的基础篇就完成了。
本文将使用Unity Shader实现直接光照(无纹理)的Cook-Torrance模型,该模型是一种常见的PBR渲染,但要注意这里实现的模型是只有直接光照的,这意味着纹理贴图、环境光等内容完全不关心,只了解PBR的光照部分是怎么实现的。
用冯乐乐大神的《Unity Shader入门精要》入门,记录个人整理的知识点和代码。现在我们进入光照部分,原理见Games101,这里注重实现不再赘述原理;纹理基础也在这一篇博客中。
用冯乐乐大神的《Unity Shader入门精要》入门,记录个人整理的知识点和代码。本篇博客本来应该讲到数学基础,不过由于在Games101系列第一篇博客笔记中已经有一致的内容,这里就不复习了,如有看客可以移步标签查找。本篇博客会先举例说明变换的作用,就直接进入Shader的编写了。
在前面的博客中我们介绍过一次Cinemachine的基本功能,包括,CinemachineBrain和Virtual的使用,结合动画系统,我们这里练习两种控制方式的制作。俯视角的相机常用在2.5D的游戏中;第三人称相机就不用说了,很主流的视角。注意,我们介绍中的解决方案可能不是十分完美,可以简单了解如何实现相机和动画、移动的统一。
这次我们来学习动画片段的三个基本操作,分割,事件,修改Curves。虽然我们不是动画师,但是有必要对Unity的动画系统有全面的了解。
做好了角色控制器以后,是时候进一步填充游戏内容了,我们接下来还是学习动画,Animation Layer可以帮助我们在角色上播放不同的动画,让角色持有武器并移动的动作通过移动和握持两个动画来实现;更进一步的IK则会帮助角色适应不同地形。除了前面实现角色基本移动功能的状态机,root motion等,这两个功能都很有必要学习。
上期主要说了New Input System和Root Motion核心机制,这次我们将在Blend Tree中使用Root Motion,配合Character Controller组件和Cinemachine,可以制作一个角色的移动系统了。注意,这里并没有详细讲解如何制作,只包括这三个组件的介绍。可能后面会有专门的博客提供解决方案。
除了上次介绍的内容外,这篇博客中我们还会进一步使用New Input System和Root Motion,后者是很常见的动画概念,动画是可以包含角色移动控制的,这里会着重讲解。