代码改变世界

[置顶]UE4入门与精通

2016-07-16 19:40 by 风恋残雪, 39775 阅读, 8 推荐, 收藏, 编辑
摘要:由于目前在使用UE4引擎,多少也有一些心得,比如在日常使用中会遇到一些问题、坑(潜规则)或者一些使用技巧等。本人决定开一个大坑,主要有两个目的:一是可以自己做个记录,二是可以给大家提供一些参考吧。主要包括两部分,第一部分主要是UE4的使用,这里面应该主要是我平常开发中遇到的问题,或者一些技巧等。第二部分主要是对UE4引擎部分源码或者架构的解读,当然这部分比较难写,因为它的代码量实在是太多,很难在较... 阅读全文

OpenGL RHI优化

2024-10-14 11:03 by 风恋残雪, 140 阅读, 1 推荐, 收藏, 编辑
摘要:前言 随着Vulkan的普及,OpenGL已经在被慢慢淘汰,更轻的API调用可以节省不少性能,尤其是在移动平台上,可以减少CPU开销,进而减少功耗。看起来很完美,但是问题是目前移动平台Vulkan驱动存在很多兼容性问题,大家主流的做法都是通过白名单的方式去开Vulkan,所以目前我们还是要继续以Op 阅读全文

高通个别驱动创建Buffer耗时高问题的解决

2023-07-12 13:48 by 风恋残雪, 542 阅读, 1 推荐, 收藏, 编辑
摘要:前言 最近在优化游戏的时候,发现在在高通特定驱动版本的机器上(855,855+等),创建VB的耗时跟VB的数量成正比,这个应该是驱动的bug。跟官方人员确认过,确实是有这个问题,他们给的解决方案是减少Buffer的数量,经过一轮优化后,Buffer数量减少了将近30%,但是这个耗时的问题还是没能解决 阅读全文

AAA游戏中雪的实现

2019-02-17 12:11 by 风恋残雪, 3393 阅读, 4 推荐, 收藏, 编辑
摘要:现在越来越多的AAA游戏中都实现了逼真的雪的效果,比如战神4、地平线:黎明时分、荒野大镖客:救赎2、古墓丽影:崛起等都实现了不错的雪地效果。今天我们就来探究一下他们的实现方式。现在主流的实现方式都是通过硬件提供的细分功能来实现的。 Batman: Arkham Origins 这个游戏里面没有地形, 阅读全文

游戏引擎中的光照算法

2019-01-12 12:13 by 风恋残雪, 3648 阅读, 1 推荐, 收藏, 编辑
摘要:前言 今天我们来聊一下游戏引擎中的光照算法,从最开始的Forward Render,到后来的Deferred Render再到后面的Clustered Forward Render以及Clustered Deferred Render,分析一下实现步骤以及它们的优缺点。 Forward Render 阅读全文

深入剖析GPU Early Z优化

2018-12-23 22:48 by 风恋残雪, 11636 阅读, 2 推荐, 收藏, 编辑
摘要:最近在公司群里同事发了一个UE4关于Mask材质的优化,比如在场景中有大面积的草和树的时候,可以在很大程度上提高效率。这其中的原理就是利用了GPU的特性Early Z,但是它的做法跟我最开始的理解有些出入,因为Early Z是GPU硬件实现的,每个厂商在实现的时候也有所不同。这次在查阅了一些资源和通 阅读全文

UE4联机编译光照

2018-03-16 13:37 by 风恋残雪, 2892 阅读, 0 推荐, 收藏, 编辑
摘要:UE4联机编译光照需要SwarmCoordinator以及SwarmAgent,在Engine\Binaries\DotNET目录下。 SwarmAgent 我们主要关注Distribution Setting中的内容。 AgentGroupName 组名,这里简化起见,所有Agent都在同一组。需 阅读全文

深入剖析MSAA

2018-01-08 21:37 by 风恋残雪, 19193 阅读, 6 推荐, 收藏, 编辑
摘要:本文打算对MSAA(Multisample anti aliasing)做一个深入的讲解,包括基本的原理、以及不同平台上的实现对比(主要是PC与Mobile)。为了对MSAA有个更好的理解,所以写下了这篇文章。当然文章中难免有错误之处,如有发现,还请指证,以免误导其他人。好了,废话不多说,下面我们开 阅读全文

Unity 使用xLua遇到的坑

2017-08-12 15:51 by 风恋残雪, 22619 阅读, 4 推荐, 收藏, 编辑
摘要:在我们使用xLua作为Unity中lua集成的解决方案时,遇到了一个问题,就是当我们使用在lua中把UI中的某个控件绑定相应的事件(如按钮的onClick事件),xLua绑定这个事件是用委托实现的,具体代码可以查看xLua的代码。而在程序退出的时候xLua会检查对应的委托有没有被正确的释放掉,如果没 阅读全文

扩展SQLite使其能从apk文件中读取db

2017-07-17 08:16 by 风恋残雪, 1839 阅读, 1 推荐, 收藏, 编辑
摘要:游戏中会大量使用到配置文件,每个项目组根据自己不同的需求会选择不同的存储格式,比如使用Json或者SQLite来存储数据。此处我们只对使用SQLite的情况来做讨论。一般情况下会选择把它放在可读写目录里面,这样SQLite可以直接使用它原来的io API来对db文件进行读取。在PC或者iOS平台上这 阅读全文

tolua#代码简要分析

2017-04-16 23:02 by 风恋残雪, 4460 阅读, 1 推荐, 收藏, 编辑
摘要:简介 tolua#是Unity静态绑定lua的一个解决方案,它通过C#提供的反射信息分析代码并生成包装的类。它是一个用来简化在C#中集成lua的插件,可以自动生成用于在lua中访问Unity的绑定代码,并把C#中的常量、变量、函数、属性、类以及枚举暴露给lua。它是从cstolua衍变而来。从它的名 阅读全文