前向渲染和延迟渲染
前向渲染 先计算光照再裁剪。 前向渲染是现在最基础,也是最多引擎使用的标准。前向渲染的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎就是对其挨个进行渲染,完成一个再继续下一个。 前向渲染的问题 前向渲染有一个问题就是无效渲染太多,比如场景中有四个物体,互相之间存在叠压关系,按照前向渲染的流程,先前渲染了一个物体之后...
前向渲染 先计算光照再裁剪。 前向渲染是现在最基础,也是最多引擎使用的标准。前向渲染的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎就是对其挨个进行渲染,完成一个再继续下一个。 前向渲染的问题 前向渲染有一个问题就是无效渲染太多,比如场景中有四个物体,互相之间存在叠压关系,按照前向渲染的流程,先前渲染了一个物体之后...
如何理解Scriptable Object Scriptable Object是一种数据容器(data container),通常被用来存储大量的数据,并且不依赖于类实例。换句话说,Scriptable Object本身就是一个存放数据的实例。Scriptable Object没有继承自MonoBehavior,而是继承自Scriptable Object,所以Scriptable Obje...
一、Navigation导航系统基本介绍 Navigation导航系统是unity的寻路组件,将静态或动态的复杂场景烘焙简化为简单的(NavMesh)导航网格用于AI寻路计算。值得注意的是,这个组件的NavMesh系统存在一些性能和使用场景上的缺陷,如很难在运行时修改navmesh、场景过大会造成内存上的开销,以及不支持垂直面的导航。以上问题可以被新的脚本组件式的NavMesh系统所解决,...
Unity行为树插件开发心得 概述 在ARPG项目的开发过程当中,要涉及到NPC的AI系统,一般来说,简单的AI行为使用状态机即可比较好的实现,但如果NPC的行为稍微一复杂,那么使用状态机来实现就会比较难维护,并且后期工作量会随着NPC状态的增加而成倍增加。 这时就可以考虑使用行为树来实现NPC的AI,行为树相比于状态机更利于维护,在NPC的AI比较复杂的时候,状态机已经难以我们去...
应该如何理解C#中的特性(Attribute)?先用一句话总结一下,特性就是用来对C#中的类、字段、属性、方法、甚至是特性自身添加额外的信息和行为的一种方式。为什么说是添加“额外”的信息和行为呢?因为一个元素使用Attribute后实际上会在编译后的元素内部产生IL语言,并且在Metadata中会有记录。 一提到Metadata,我们就要立马想起C#的另一大特性,反射Reflection,...
什么是泛型(Generic)? 很多编程语言当中都有泛型这个概念,泛型是一种语言规范,是一种允许延迟编写类或方法中编程元素的数据类型的规范,换句话说,泛型允许我们编写一个可以与任何数据类型一起工作的类或方法,用一个方法或类,满足不同的参数做相同的事情。 在C#中,泛型可以被应用在,方法、类、接口和委托上,能够很好的帮助我们复用代码,减少工作量。接下来我们来看一段泛型方法的实现代码。 s...
什么是反射(Reflection)? 反射是.Net中获取运行时类型信息的方式,.Net应用程序由几个部分组成:程序集(Assembly)、模块(Module)、类型(class)组成,而反射提供一种编程方式,让程序员可以在运行时期获取这几个组成部分的相关信息。 Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并且创建该类型的实例。Ty...
一、Unity Animation动画系统基本介绍 unity提供了一套非常强大灵活且成熟的动画系统,不论是2d还是3d动画都有相应的组件和接口提供给开发者使用,不过这篇文章主要还是讲解3D部分的动画系统。我们在游戏开发时时常需要角色动起来,除了位置上的移动之外,我们还需要匹配角色的行为或玩家的输入播放不同的动画,不同的动画之间又需要平滑的衔接,有时我们还需要将两个动画混合、覆盖,动画复用...