UE4:移动端级联阴影简要分析 前言 假装过一下移动端渲染管线的源码,其实是看一下移动端的固定方向光源对移动物体生成阴影的部分。 本文重点在UE4 关于CSM阴影的这部分源码,其他的略过 之前从来没有看过这部分源码,本人基础也很薄弱,rendering方面能力不足,本文仅仅是给我的脑子梳理一下,避免稀里糊涂的看完不出三天就忘记了…… 学而不思则罔~ 目录: 前言 流程梳理 简单描述 详细流程 源码学习 移动端渲染主 2022-06-16 UE4 #UE4 #Rendering #Mobile #Shadow
UE4:4.27版本PSO变化 前言 最近项目升级了4.27版本,发现PSO部分似乎又有了什么改动,于是决定去看一下ReleaseNotes,对比一下相对4.26版本的变化。 ReleaseNotes 其中与PSO相关的几点如下: 安卓 BUG FIX 修复了在PSO缓存处理期间,如果传入的PSO在PSO缓存加载开始之前已经实例化则可能触发GLES断言的问题 Rendering 新特性 实现了可选的非阻塞光线跟 2022-06-12 #UE4
UE4:AnimSequence曲线和Tracks复制 前言 本文在4.27版本下完成 在编辑AnimSequence的时候,不同的动画可能需要服用Curves和AdditiveLayerTracks,为了提高效率,增加了一下原本编辑器不存在的复制粘贴方法 Curves 查看方法 在AnimSequenceBase.h文件中UAnimSequenceBase类有一个成员变量:RawCurveData 12345/** * Raw uncompr 2022-05-25 #UE4 #C++ #UE4 Editor
UE4:ShadecodeLibrary拆分 前言 UE4的项目设置的Packaging中提供了Share Material Shader Code,开启选项后会把ShaderCode从每一个材质中拿出单独的放在一个.ushaderbytecode文件中,目的是减少包体大小,该文件会在游戏启动时加载。 如果是用UE4的Pak分包机制,那么打包过程会处理掉每个Pak中需要的Shader,不用自己去关心ShaderArchive的生成。如果是更 2022-05-09 #UE4 #Rendering #Material #Shader
UE4:运行时获取UFont相关数据 最近项目中要排查运行时字体的使用和内存占用情况,稍微看了一下相关的东西,简单整理一下,目测没啥用 UFont相关类 去官网查了一些得知,UFont在运行时和非运行时有不同的缓存,运行时缓存包含了一些TTF文件,这些文件组合成了一个复合字体。 然后发现UFont有一个成员函数GetResourceSizeEx,继承自Uobject,大概看一下这个函数: 1234567/** * Get the 2022-03-12 #UE4 #C++ #Program
UE4:Log综合 基本使用 UE的log相关的一些tips,用于索引,部分细节忘记的时候快速查阅用 1UE_LOG(LogTemp, Warning, TEXT("Your message")); LogTemp是Log的Category,可以自定义 Warning是Log的显示级别,常用的有Display、Warning、Error 后面是Log的内容 Log显示级别 显示级别 Ship 2022-03-12 #UE4 #Program
UE4:Log控制台相关 运行时控制台指令 Log list - 列出所有日志类别 Log list [string] - 列出包含string字符串的所有Category Log reset - 将所有日志类别重置为其启动时默认值 Log [cat] off - 关闭Category的输出 Log [cat] on - 打开Category的输出 Log [cat] [level] - 设置Category的显示级别 2022-03-12 #UE4 #Program
UE4:Log自定义Category 自定义Category 头文件中 1DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity); CategoryName就是Category名字 DefaultVerbosity是Log的默认显示级别,比如Display CompileTimeVerbosity,编译器的Log级别 Log级 2022-03-12 #UE4 #Program
UE4:Log不同的数据类型 Log不同的数据类型 直接Log 1UE_LOG(YourLog,Warning,TEXT("This is a message to yourself during runtime!")); FString 1UE_LOG(YourLog,Warning,TEXT("MyCharacter's Name is %s"), *MyCharac 2022-03-12 #UE4 #Program
UE4:Shipping模式打印Log UE4:Shipping模式打印Log 需要在Game.Target.cs中添加 1bUseLoggingInShipping = true; 即可打开shipping版本的log。 在LogSuppressionInterface.cpp文件中, -LogCmds的处理在Shipping版本被干掉了,需要Shipping版本的log参数控制就需要修改源码重新编译引擎 Android可以在Ga 2022-02-23 #UE4 #Program