自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(743)
  • 资源 (6)
  • 收藏
  • 关注

原创 Unreal 5 实现UI制作

这一篇讲解一下unreal engine里面的内置ui插件UMG,虚幻示意图形界面设计器(Unreal Motion Graphics UI Designer)(UMG) 是虚幻引擎内置的一套ui制作工具,通过它我们能够实现平面ui,场景hud内容。

2023-06-25 00:48:08 5245

原创 Unreal 5 实现场景环境控制组件

我在场景中发现了一个环境控制器,这个场景实现了雨天天气和晴天风沙天气,接下来我分析一下这个天气控制器是如何实现。

2023-06-21 17:49:55 650

原创 Unreal 5 实现场景

如果你拿到了一个新的场景,想将此场景应用到游戏当中,首先需要给敌人增加ai移动路径,需要添加导航体积。

2023-06-21 01:51:32 731

原创 Unreal 5 实现丧尸伤害和死亡

这一篇主要是实现玩家攻击丧尸可以造成伤害和自身血量为零时,丧尸可以死亡。丧尸也可以对玩家造成伤害,有攻击范围的判定。

2023-06-18 21:41:59 2907 4

原创 Unreal 5 实现丧尸追逐攻击功能

要实现让丧尸能够智能的追逐玩家,我们需要用到ue封装的ai行为树来实现。,来学习一下如何使用ai行为树来实现一个简单的追逐功能。这一篇就是基于这个基础上进行了优化,实现了声音的震慑玩家,以及对玩家的攻击。

2023-06-15 18:31:44 1230

原创 Unreal Engine 5.1 AI行为树基础入门

要实现AI行为树去控制角色,那么需要创建几个文件:AIController AI控制器,作为AI的入口,用来去驱动Pawn或Charactor的行为,修改设置在黑板里的数据。在AI控制器内,可以添加一些AI感知组件,更好的处理一些操作。使用AI控制器需要在角色蓝图上设置。BehaviorTree 行为树里面主要行为控制,根据数据判断进行逻辑运行。ai控制器可以选择去使用哪个行为树去运行,你需要在ai控制器内指定运行的行为树。

2023-06-13 19:00:42 2416

原创 Unreal 5 实现丢弃武器功能

之前实现了物品的拾取功能,但是没有实现丢弃功能,这一篇讲一下我是如何实现丢弃功能的。丢弃功能的逻辑是:拾取物品时,需要使用拾取的物品进行类的实现,所以,我们需要把数据存储到拾取的物品上,然后通过拾取的物品数据进行设置实例,这样使用过的武器再捡起来,还可能恢复到丢弃前的状态。在丢弃时,需要将武器的使用后的数据设置给拾取物品。

2023-06-11 01:57:43 672

原创 Unreal5 实现武器切换功能

首先回忆一下之前在制作武器时,如何实现从后背拿武器的。我们创建了一个切换事件,判断当前是否持有武器,然后根据是否持有武器,去修改动画蓝图的变量,来触发从后面拿枪或者是否把枪放了回去。然后在播放切枪动画时,手伸到背后时,会触发一个动画通知,在动画通知里面,根据动画蓝图里面的变量判断将武器拿到手里或者放回背上。如果按照这个逻辑扩展武器切换功能的话,那么,我们需要从动画通知入手,创建多个切换动画,然后每个切枪动画设置不同的动画通知,对应不同的武器。在动画蓝图里面,根据枚举去播放不同的切枪动画。

2023-06-10 03:51:06 2093

原创 unreal 5 实现角色拾取功能

要实现角色拾取功能,我们需要实现蓝图接口功能,蓝图接口主要提供的是蓝图和蓝图之间可以通信,接下来,跟着教程,实现一下角色的拾取功能。

2023-06-09 16:10:53 1842

原创 Unreal5 第三人称射击游戏 射击功能实现2

这个逻辑主要是为了退出角色的换弹状态,在动画蓝图中的状态机里,无法进行数值执行操作,所以,我们需要在动画结束时创建一个动画通知告知蓝图。在角色蓝图创建换弹结束,修改换弹变量为false,以及修改状态。

2023-06-07 23:36:20 1912

原创 Unreal5 第三人称射击游戏 射击功能实现1

状态机缓存功能相当于我们只需要实现一次,可以在多个地方引用,也可以在别的状态机里面使用,而不是在里面再重新写一遍相应的功能。我们可以在基础状态机的链接拉出一条线,搜索“缓存”第一个就是新保存的缓存姿势,选中改个名称,这就是默认的基础姿势。这样,我们就可以在其它状态机里面使用当前基础动画状态机产生的结果。接着,创建一个新的状态机,用于实现特定的功能在内部创建一个默认状态在状态内部使用缓存姿势。

2023-06-04 16:27:58 1405 1

原创 UE里面函数 自定义事件 宏的区别

事件里面可以加延时节点,函数和宏里不可以函数和宏里有返回值,事件里没有事件可以作为回调函数,函数和宏不能直接作为回调事件可以作为输入事件和碰撞事件处理实现接口时,有返回值的会变成函数,无返回值的会变成事件事件可以用来发送网络消息,函数不行。事件和函数都无法阻断运行,宏可以。宏可以添加执行节点,也可以增加多个返回执行节点,事件和函数都不行。宏不能够在蓝图外部被使用,函数和事件可以,蓝图宏库可以(需要单独创建,不包含变量什么的)函数和宏可以有内部变量,事件没有。

2023-06-04 00:41:44 600

原创 Unreal5 第三人称射击游戏 角色基础制作2

接上一篇 Unreal5。

2023-06-01 20:33:14 793

原创 unreal 5.1 增强输入实现

在ue5.1版本增加了增强输入,并且废弃了之前的轴映射和操作映射。官方文档地址:https://docs.unrealengine.com/5.1/zh-CN/enhanced-input-in-unreal-engine/

2023-05-29 17:54:21 2794

原创 unity 实现水的波纹效果

之前的实现过这个效果,可惜没有记笔记,所以现在有点遗忘,连多个波纹一起在水面上实现的效果都忘记了,所以,查看了下之前实现的代码,现在再记一下笔记。

2023-05-10 00:39:42 2732 1

原创 unity 性能优化之画质分级

如果你的游戏兼容多平台,或者当前平台的设备也有硬件差距,比如低端设备就是带不动你的画质,无论如何你如何优化就是带不动。这种情况下,我们可以考虑对画质进行分级,减少一些特性,来提高运行质量。接下来我们来学习一下unity内置的Quality来实现一下质量分级:有了这个,我们可以在面板上面,根据需求,去控制每个平台的质量,而不需要非得在代码中去设置,并且可以直观的在编辑器中查看设置的质量的效果。这里就是unity默认给设置的分级。Name 是可以修改当前的分级的名称。

2023-05-02 16:56:12 3300

原创 unity 性能优化之GPU和资源优化

众所周知,我们在unity里编写Shader使用的HLSL/CG都是高级语言,这是为了可以书写一套Shader兼容多个平台,在unity打包的时候,它会编译成对应平台可以运行的指令,而变体则是,根据宏生成的,而打包运行时,GPU会根据你设置的宏切换这些打包出来的代码,而不是我们书写那种只生成的一个Shader,这也是为了提高运行速度。如果你要查看实际运行的代码,可以使用RenderDoc等工具截帧查看实际运行的代码。可以在Shader上面查看当前生成的变体数量。

2023-05-02 15:50:01 3475 1

原创 unity 性能优化之合批和剔除

批次对渲染的性能影响是比较大的,批次过多会导致cpu提交的次数过多,导致每帧渲染时间过长,所以我们需要对其优化,减少Bathches数量和SetPassCall次数。

2023-04-30 21:16:17 2335

原创 unity 渲染性能分析工具

既然要优化,肯定要有个目标:pc上一般要求:一秒渲染60帧移动端:一秒渲染30帧这应该是最低的要求,如果游戏运行时,游戏帧率有变化,人眼能够明显的感觉到帧率下降。优化的首要规则是找到性能问题的所在。一般出现问题不是在cpu就是gpu。

2023-04-30 14:49:18 3182

原创 unity GI Shader 实现

之前分享了一篇对unity全局光照的解析,里面提到了一些东西,需要在Shader内实现,在这一篇补上。要实现对全局GI的shader实现,我们可以通过对unity内置的Lit进行解析查看。烘焙的方式有很多种,选择合适的方式烘焙和使用合适类型的光源尤为重要。首先,我们先实现一下最基础的烘焙光照显示,就是将Light Map贴图显示出来。需要设置的是,将需要烘焙的模型全设置成静态,光照设置为Baked,并且模型开启了第二套LightMap UV。准备工作结束。

2023-04-28 18:20:57 1311

原创 unity Shader实现半透明阴影

第二行是针对于ShaderMod,也就是一些shader新特性,可以调低,内置的lit里面是实现了两套一套高质感的用来配合pc,对gles平台专门书写了一套高性能的渲染。目前unity URP对半透明对象的处理:不能参与Shadow Map,Depth,Depth Normal的渲染,可以在材质Debug模式下查看。它这种实现的原理其实不是真的透明了,是通过Dither这个东西实现的,一直会更新的噪波图,然后模拟出来的半透明效果。在shader中,要对移动端的兼容,还不想实现两套分开兼容的话,

2023-04-27 17:39:33 1818

原创 unity GI 系统

间接光没有办法实现实时计算,所以需要一套GI系统去处理间接光。unity的GI系统,本质上就是在后台开启一个离线渲染程序执行GI计算。最早的unity的离线渲染器也是调用的第三方的,所以,如果实力允许,我们也可以独立实现相应的功能。unity的离线渲染器更新:Beast->Enlighten->Enlighten + Progressive Lightmapper。

2023-04-26 18:26:46 1288

原创 Unreal5 实现角色动画重定向

解决问题:有时候有的角色动画想用到另外的角色身上,不能直接用怎么办?解决方案:使用重定向实现方式:在资产里面创建IK绑定在列表中选中需要绑定的骨骼网格体需要创建两个,我这里是女人需要使用男人的动画,所以创建了女人和男人的。打开文件,设置pelvis位置为重定向的根,男人女人都要设置在这。在左侧选中相应的骨骼,右侧会显示绿色。鼠标右击选择 “新建来自选定骨骼的重定向链”重定向链是什么呢?

2023-04-25 23:43:23 1729

原创 Unreal5 第三人称射击游戏 角色基础制作1

快捷键 ctrl+E 可以快速打开相关蓝图类,直接在场景选中添加到场景中的对象即可。

2023-04-25 23:06:31 2397

原创 unity 全局光照

直接光照由直接光照射到物体上以后直接弹射到人眼接收到的光照。间接光照为直接光照照射到物体上又弹射到其它物体上面以后多次弹射才被人眼接收的光照(两次及以上的光照统称为间接光照)

2023-03-29 22:07:39 2864 3

原创 houdini 程序化 序

程序化不是所有的东西都需要程序化,需要考虑成本和时间,简单来言,你需要批量的东西,使用人工需要一个个的调,但是程序化设置好规则,可以大批量的生成,可以节约大量的成本。就是程序化刚开始做比较慢,后面效率会指数上升,非程序化则不会,但产出稳定,所以是否程序化还是需要看实情。流程:ta开发hda,开发一些参数,让美术去调整参数,然后再游戏引擎中(ue,unity等)使用houdini引擎去运行。Python (和Hscript相同,但更强大,可以做一些函数逻辑,批量处理)sop (几何,地形相关内容)

2023-02-06 22:23:29 574

原创 unity 骨骼物理 头发 布料模拟

在给模型添加碰撞体时,可以在需要添加的骨骼节点下面创建一个空节点,可以在空节点上面调节它的大小和位置,然后挂载碰撞体脚本,可以挂载的脚本有 MagicaCapsuleCollider 胶囊体碰撞体 MagicaPlaneCollider 平面碰撞体 MagicaSphereCollider 球型碰撞体。设置数据,后,上面不会再显示No Data,而是显示生成的虚拟网格的数据,我们发现三角面数从之前的1.5w变成了当前的2000等等。在模型当中,布料被当做网格上的质点来进行模拟,这些质点会被弹簧进行连接。

2022-11-15 02:19:57 2965

原创 unity urp 实现车漆效果

还有一层就是清漆的效果,也就是ClearCoat,也叫透明图层,这个原理就是为了模拟车上面喷的那层漆的效果。上面是在直接光中使用。上面就是内置的实现镭射的函数,大家可以在unity的内置文件BSDF中找到,我们使用这个求出镭射效果的F项,将默认的F进行一个插值即可。车漆的效果除了基础的pbr效果,上面还可以添加两层额外的效果。一层是清漆的效果,另一层就是薄膜干涉的效果。具体实现,涂层清漆的效果的之前在皮肤的那一章使用过,我这里不在介绍。接下来,我们要使用unity内置的方式取实现镭射的效果。

2022-11-03 22:17:17 3338

原创 unity urp 实现衣服绒毛效果

接下来,到了重点了,就是为什么要用dcc生成的模型,那是我们是为了要用模型生成深度信息,如果你是在renderFeature里面去做,是没有多pass的深度和法向的,效果肯定不如这个。接下来处理最下面的那层基础的衣服不显示的问题,我们使用step以0.01进行区分,最下面一层是0,比0.01的值小的alpha直接使用1,比0.01大的我们还是使用之前的结果。在模型编辑器里面的制作是为了实现模型的多次复制,然后将其顶点颜色修改进行分层,比如,最低层的使用颜色为0,最外层的颜色为1,中间就线性过渡就好。

2022-11-02 20:43:02 3261

原创 unity urp 实现雨水在物体上流动的效果

在这里,我还加上了对贴图的旋转,ase里面节点叫rotator,直接把节点的代码拷贝出来的。然后为了保证密度,还加上的tillingoffset。然后我们可以把法线加上,增加渐变过渡,这个我在这里就不加了。它们就动了起来,然后我们把它们一合并,这就完成了,动起来了。如何实现原理还是很简单的,还是使用简单的uv偏移实现即可。首先,我们需要一张雨滴流向的贴图,和法向贴图。它的路线有了,那么我们怎么让雨水流动起来呢。配套的法向贴图,让雨水的效果更加明显。然后增强一下对比度,效果是这样的。获取雨的代码就是这样的。

2022-10-20 22:45:55 1637

原创 unity urp 实现衣服上面片的效果

我们可以使用其进行noise扰动,实现面片分离的效果,然后再使用其的id的值转换成为法向,相同片的法向相同,但由于id不同,每个片生成的法向的朝向也不相同,然后用这个法向去做高光效果,你就会得到一个亮片一个亮片的效果。我们还需要一个亮片的颜色,在这里,我们刚好可以使用voronoi生成的uv去随便拾取一张多颜色亮片,然后和一个颜色相乘,还可以控制强度,相乘的颜色如果为0,那么亮片将不显示。这里用了两个粗糙度,然后进行混合出来的,给亮片增加了过渡的效果。就比如这种效果,心动了吗,那么,接下来进入实战。

2022-10-18 21:53:41 7606 4

原创 unity urp 实现泰森多边形Voronoi扰动

可以看到,它支持5个参数,第一个是uv,直接和你设置的scale的值相乘了,第二个值传入了扰动值,第3个是id,这个是inout的,代表着函数运行以后,你声明的id也将会被修改掉,uv也是同理,它们的声明也是为了获取运算后的结果。比如你不想使用noise贴图,想自己生成,这种是没有mipmap的,我们可以用这个实现一种mipmap的效果。它还可以修改计算方法,以及生成的结果的过渡的效果修改,如果你需要的密度点的话,这些就无所谓了。我们可以实时的看到生成 的效果,方便又好用,果然可视化才是未来。

2022-10-18 14:16:07 1477 2

原创 unity urp 实现丝绸渲染

这是Anisotropy的值为0.9的效果,当前的双向反射率分布函数,如果把Anisotropy设置为1或者-1,效果上表现会很差。其它代码,我们可以直接魔改unity的urp内置的lit函数,用于获取相关的参数,这里就不再聊了。我们用法向的x轴的量去影响切线空间下的切线的向量值,然后再将其转换到世界空间即可。丝绸渲染使用了各向异性的GGX去实现,有点仿头发的感觉,接下来看一下怎么实现的。首先,准备实现双向反射率分布函数(BRDF)的DVF项。这是-0.9的Anisotropy的效果。

2022-10-17 23:23:33 2306 2

原创 使用InstantOC实现动态遮挡剔除 + LOD效果

设置需要使用InstantOC 管理的游戏对象/预制体所在的层,如果你给物体添加了IOClod,但不在管理的层,那么,它将不会显示,所以,最简单的方法就是设置everting,或者把需要设置的物体都放到一个Layer里面。每次更新遮挡物的显示隐藏时,检测射线的数量,数量越多,检测的结果就越精确,但同时会需要更多的性能消耗。它比内置的基于距离的LOD更有效,因为它是基于光线的,不但可以渲染远处物体的低细节版本,还可以实现近处的但被遮挡的物体的隐藏功能(从当前相机看不到),从而避免浪费渲染时间。

2022-09-30 17:19:35 1261

原创 unity urp 实现头发渲染

计算反射的角度不再使用法向N而是改为沿着头发朝向的Bitangent(不是图片中的tangent,tangent在unity中生成,是基于模型uv的u方向,而一般头发图片的制作是垂直排布,也就是v方向)头发在视觉上很重要,大部分人头上拥有10w-15w的发丝,许多不同的发型,最终幻想 - 灵魂深处》总渲染时间的约 25% 花费在主角的头发上。这个可以在制作模型的时候,内部的顶点坐标往前放,外部的顶点坐标向后放,主要是索引的顺序要正确。基础纹理贴图,头发的基础色,纵向拉伸的noise贴图。

2022-09-27 16:35:21 4356

原创 unity urp 获取屏幕深度法向颜色纹理以及从深度纹理重构世界空间坐标

之前写过如何从屏幕空间获取uv,但是讲的不完善,https://blog.csdn.net/qq_30100043/article/details/125883016而且还没有说如何使用深度重新构建世界坐标。所以,这一篇,讲解一下,获取深度 纹理 以及屏幕空间法向。接下来,说一下,引擎内置的文件,让我们简单的去获取,再也不用想着去哪抄代码了。这两个对应的是深度贴图和颜色贴图。在urp里面必须开启才行。引擎内置的纹理获取文件在里面的代码也很简单。

2022-09-22 15:09:03 2272

原创 unity 遮挡剔除的实现

unity在渲染时,默认只是对模型进行视椎体剔除,也就是在相机显示范围内的物体进行剔除,而遮挡剔除则是,渲染物体被整个遮挡住后,将不参与此帧的渲染,unity虽然内置,但是不默认启用,需要我们进行一些操作,才能够实现当前的操作。

2022-09-21 17:38:06 2384 1

原创 在unity 2020 urp版本中实现 LensFlare功能

所以之前是有一个光晕空间,我继续保留了这个空间,在此空间处理完成以后,再转换回主相机视角空间,然后将顶点从视角空间重新转换回世界空间。麻烦的地方就是在这,所以,我实现是直接将两个脚本都挂载到了一个对象上面,然后把正交相机去掉,多余的对象也删除掉,将这个做成一个预制体,使用的时候,只需要将其放到场景中即可。FlareSource中的修改,里面的实现是使用了挂载对象位置实现的,比较难操作,我直接将其修改成了,根据光的照射方向,然后加上相机的位置偏移,来计算光晕的出现方向。所以,我对此进行了一些修改。

2022-09-20 22:01:27 1541 4

原创 unity urp 棉麻织物渲染

棉麻类的布料是由线组成的,也就是一根根的线织出来的,所以它是相对来说比较平整的结构。但是呢,它还有一层在表面绒毛的存在,这是一层的绒纤维,属于一层树立在表面的短绒毛,但是这层绒毛的方向和长短都是不确定的,在渲染时,我们需要考虑一下这层绒毛的效果。那么,在直接光渲染时,漫反射我们还是使用默认的漫反射,但是在实现直接光的镜面高光时,我们需要使用两层高光去实现。之前也说过,正常的表面使用反向的GGX高光,然后再使用一层高光来表现表层上面的绒毛的镜面高光效果。最终,就有了带有绒毛效果的棉麻织物的效果了。

2022-08-22 01:38:25 1809 1

原创 unity urp 衣服渲染

普通的绒类的衣服,比较松,会呈现出绒毛的Fuzz(绒毛,毛状物)效果,这类衣服会有强烈的边缘照明的效果。皮革类的一般由动物的皮制作而成,不需要做次表面散射效果,但是皮革类的物品一般会表面刷油,所以我们渲染皮革类的物品时,需要靠刷油后的油光的效果。对于棉类的物品,我们需要从物理特性镜面反射部分考虑,D项可以使用D_GGX_Inv,为GGX高光的倒置函数,或者D_Charlie。丝绸尼龙类的衣服,表面比较光滑,由光滑的细丝缝制,和头发的质地有相同之处,是一种会产生各向异性镜面高光的布料。...

2022-08-15 19:53:25 1984

Substance Painter 和 Unity 同步Standard

同步了一个渲染shader,Substance Painter使用的版本是 9.0.0,Unity版本2019.4.40 。同步的shader为默认的Standard,工作流为金属工作流

2023-09-22

InstantOC Dynamic Occlusion Culling LOD 3.0.0

对unity的免费资源的修改版。 修改了脚本内过时的接口。 修改为了2020版本的urp渲染管线。 使用时,可以直接将内容解压到项目中的Asset文件夹中。 具体使用方式,参考链接:

2022-09-29

three.js开发指南-资源部分

之前下载过three.js开发指南的代码,发现很有代码都是无法运行的。所以找了一份没有问题的代码上传,让朋友少走点弯路。由于资源太大,所以分开上传,这一部分只是资源部分。

2017-12-25

three.js开发指南-代码部分

之前下载过three.js开发指南的代码,发现很有代码都是无法运行的。所以找了一份没有问题的代码上传,让朋友少走点弯路。由于资源太大,所以分开上传,这一部分只是代码部分。

2017-12-25

webpack配置es6+less开发环境

此为本人制作的webpack开发环境,使用babel进行代码转换,postcss进行兼容性,可以使用less进行css预编译,欢迎测试

2017-11-17

41节的可交互的立方体

预留的WebGL交互立方体的代码

2017-06-14

WebGL预先定义库

一些专为WebGL准备、事先定义好的函数库

2017-04-25

jquery源码_详细中文注释.pdf

1.2.6版本的jquery注释,大家共同学习,注释十分详细

2016-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除