代码改变世界

移动游戏的性能优化 | 材质优化篇

2024-06-07 18:14 by kk20161206, 92 阅读, 0 推荐, 收藏, 编辑
摘要:材质是什么 虚幻引擎是以hlsl着色语言为基础,来实现vs、ps、cs等,引擎底层提供了一套翻译系统,将hlsl翻译成gpu可执行的代码。 本篇文章限制下两个名词的定义: ● 材质:特指在虚幻引擎材质编辑界面通过连线等方式,生成的材质资源,它是蓝图系统的产物。材质资源会被转成hlsl代码,镶嵌进引擎 阅读全文

移动游戏的性能优化 | 贴图压缩篇

2024-06-05 12:19 by kk20161206, 313 阅读, 0 推荐, 收藏, 编辑
摘要:在移动游戏应用中,贴图是带宽的主要来源之一,也会影响包体的 大小,例如,一张2048x2048 RGBA贴图,存储是16M,64张就有1G。有很多的贴图压缩技术能降低贴图大小,例如JPEG、PNG,它们有很好的压缩率和压缩品质,但是必需解压整张贴图,才能读取贴图上的像素值, 不支持随机读取。GPU渲 阅读全文

slate里面依赖编辑器东西

2024-02-19 11:17 by kk20161206, 3 阅读, 0 推荐, 收藏, 编辑
摘要:在slateRHIRendererbuild.cs里,构造函数里添加: if(Target.bBuildEditor) {privateDependencyModulenames.Add("UnrealEd"); } 阅读全文

使用ue编辑器内的git导致配置文件锁定的bug修改

2024-02-19 11:14 by kk20161206, 7 阅读, 0 推荐, 收藏, 编辑
摘要:搜索SourceControlProvider,找到checkout操作相关的代码,注释掉即可。 阅读全文

vscode调试luapanda

2024-02-07 15:40 by kk20161206, 101 阅读, 0 推荐, 收藏, 编辑
摘要:安装luapando插件 将global debug viariable.lua 文件里的false改为true 阅读全文

大世界流程1

2023-07-04 12:11 by kk20161206, 14 阅读, 0 推荐, 收藏, 编辑
摘要:组件的根据输入的源坐标,半径,Layer名,加载Block函数。 这个layer是alwaysLoad,则加载; 是visible,则加载,可见; 是load,则加载。 根据输入的源坐标,半径,得到相交的block,和已经加载的block,去重后,一起,如果超过Block的限制数量,则按照优先级排序 阅读全文

大世界的流程

2023-06-28 11:02 by kk20161206, 12 阅读, 0 推荐, 收藏, 编辑
摘要:组件的根据输入的源坐标,半径,Layer名,加载Block函数。 这个layer是alwaysLoad,则加载; 是visible,则加载,可见; 是load,则加载。 根据输入的源坐标,半径,得到相交的block,和已经加载的block,去重后,一起,如果超过Block的限制数量,则按照优先级排序 阅读全文

ue5 wp生成cell

2023-06-15 19:28 by kk20161206, 83 阅读, 0 推荐, 收藏, 编辑
摘要:ue5 wp生成cell bool UWorldPartition::GenerateStreaming(TArray<FString>* OutPackagesToGenerate) { return GenerateContainerStreaming(ActorDescContainer, O 阅读全文

deviceProfile相关

2023-06-07 16:32 by kk20161206, 102 阅读, 0 推荐, 收藏, 编辑
摘要:deviceManager的get UDeviceProfileManager& UDeviceProfileManager::Get(bool bFromPostCDOContruct) { if (DeviceProfileManagerSingleton == nullptr) { stati 阅读全文

ue4 streammanager及贴图流式加载

2023-06-02 12:22 by kk20161206, 39 阅读, 0 推荐, 收藏, 编辑
摘要:https://zhuanlan.zhihu.com/p/546756533 阅读全文

[UE4]资源异步加载(Assets Asynchronous Loading)与内存释放(Free Memory)

2023-06-02 11:53 by kk20161206, 325 阅读, 0 推荐, 收藏, 编辑
摘要:为什么需要异步加载资源,因为当一次性加载的资源较多或者单个资源较大时,普通的LoadObject()方式会阻塞引擎的主线程。 假设测试工程叫TestTD4,自定义Character叫ATestTD4Character(头文件为TestTD4Character.h) 假设在Content/Assets 阅读全文

uobject只有可以声明无参构造函数和不写构造函数

2023-06-02 11:39 by kk20161206, 95 阅读, 0 推荐, 收藏, 编辑
摘要:(一)结论: (二)测试过程: 第一种:不声明任何构造函数: 第二种:声明默认构造函数: 第三种:声明其他构造函数:(直接报错,需要声明默认构造) (三)ue实现原理: UHT里可以解析出你是否定义了构造函数,是哪种构造函数: 参数是否匹配“FObjectInitializer”: 不同构造函数,对 阅读全文

大世界需求

2023-05-08 18:51 by kk20161206, 21 阅读, 0 推荐, 收藏, 编辑
摘要:1 实现一个主要用于俯视角游戏的地图资源管理系统。 2 场景会很大,手机可能无法全内存加载。 3 至少要保证相机视野范围内资源加载到场景中。 4 如果视野范围内的资源达到数量限制,优先加载离相机近的。 5 场景中相同的空间位置,可能根据业务逻辑需要,在不同条件下显示不同的数据。比如相机镜头拉近、拉远 阅读全文

ue4 ini读写

2023-04-26 14:50 by kk20161206, 44 阅读, 0 推荐, 收藏, 编辑
摘要:以Game.ini为例 其他配置的读写看这里 CoreGlobals.h,替换下面的 GGameIni 参数即可,这些字符串保存的是对应配置文件的路径 extern CORE_API FString GEditorIni;extern CORE_API FString GEditorPerProje 阅读全文

腾讯光子陈玉钢谈《Apex Legends Mobile》渲染优化实践

2023-04-07 16:48 by kk20161206, 38 阅读, 0 推荐, 收藏, 编辑
摘要:视频:https://www.bilibili.com/video/BV1eS4y177Ev/?spm_id_from=333.999.0.0&vd_source=7608c0f9a7423f9a65a6b18f1a3102e6 在近期由腾讯游戏学堂举办的TGDC2022腾讯游戏开发者大会上,腾讯互 阅读全文

ue4 加载资源

2023-04-03 11:14 by kk20161206, 213 阅读, 0 推荐, 收藏, 编辑
摘要:1. 通过引用路径加载资源,得到UObject: SAR_SoUnrealPath = TEXT("Texture2D'/Game/UI/Images/SoUnreal.SoUnreal'"); UObject* Obj = LoadObject<UObject>(nullptr, path, nu 阅读全文

ue4 替换软引用

2023-02-28 07:24 by kk20161206, 53 阅读, 0 推荐, 收藏, 编辑
摘要:TMap<FSoftObjectPath, FSoftObjectPath> ActorRedirectorMap; UTexture* baseTEx, diffuse, normalTex; baseTex = mat->GetTextureParamValue("baseTex", baseT 阅读全文

ue4移动端阴影

2023-02-20 17:32 by kk20161206, 55 阅读, 0 推荐, 收藏, 编辑
摘要:1. 阴影的初始化:initViews里面调用了initDynamicShadows: 上面是initviews。 下面是initDynamicShadows: void FSceneRenderer::InitDynamicShadows(FRHICommandListImmediate& RHI 阅读全文

shadowDepth变体条件

2023-02-09 18:33 by kk20161206, 38 阅读, 0 推荐, 收藏, 编辑
摘要:投射动态shadow函数 inline bool ShouldCastDynamicShadows() const { return !GetShadingModels().HasOnlyShadingModel(MSM_SingleLayerWater) && (GetBlendMode() == 阅读全文

hism的clusterBuilder

2023-01-12 22:09 by kk20161206, 74 阅读, 0 推荐, 收藏, 编辑
摘要:clusterBuilder的构造函数 FClusterBuilder(TArray<FMatrix> InTransforms, TArray<float> InCustomDataFloats, int32 InNumCustomDataFloats, const FBox& InInstBox 阅读全文