概述 基础优化 帧数和LOD Stat FPS 可以显示帧数 锁帧设置 项目设置 Use Fixed Frame Rate。一般优化的时候不要勾选 自定义LOD,打开模型,右下角 LOD Settings 材质优化 合并材质 在上方 selection mode 那个下拉框里面有一个 modeing,能减少draw call 如果物体不需要破碎可以合并一下 纹理压缩 使用纹理压缩格式,如DXT, …
概述 基础优化 帧数和LOD Stat FPS 可以显示帧数 锁帧设置 项目设置 Use Fixed Frame Rate。一般优化的时候不要勾选 自定义LOD,打开模型,右下角 LOD Settings 材质优化 合并材质 在上方 selection mode 那个下拉框里面有一个 modeing,能减少draw call 如果物体不需要破碎可以合并一下 纹理压缩 使用纹理压缩格式,如DXT, …
概述 代码版本5.3。书接上回 https://www.yuque.com/chenweilin-tryw7/gbfomp/enpney50q2g2syc9?singleDoc# 《UE 渲染入门 v3》 这里是哪里呢? BeginRenderingViewFamilies 这个函数准备开始画 3D 场景了 这个函数前面通过 SendAllEndOfFrameUpdates 确保之前已经画完了 S…
概述 代码版本5.3 https://www.yuque.com/chenweilin-tryw7/gbfomp/ygwycvgmwps8niby?singleDoc# 《UE 渲染入门 v2》 上回书说到,渲染需要一个画布 然后 viewportclient->draw 最后通过 Flush_GameThread 刷新画布 FCanvas Canvas(this, nullptr, Vie…
概述 代码版本5.3,目前讨论PIE状态下的,能打断点 https://www.yuque.com/chenweilin-tryw7/gbfomp/ygwycvgmwps8niby?singleDoc# 《UE 渲染入门 v2》 FViewport::Draw void UEditorEngine::Tick( float DeltaSeconds, bool bIdleMode ) { // 。…
FlushRenderingCommands void FlushRenderingCommands() { if (!GIsRHIInitialized) // RHI必须初始化 { return; } TRACE_CPUPROFILER_EVENT_SCOPE(FlushRenderingCommands); // 开启CPU性能分析 FCoreRenderDelegates::OnFlush…
概述 笔记 代码版本5.3 从宏观的角度看引擎的初始化和Tick。 https://www.yuque.com/chenweilin-tryw7/gbfomp/ffox34r27nwf9nte?singleDoc# 《UE 架构基础入门》 跨平台Main入口 首先我们能很容易的找到主函数在哪 int32 WINAPI WinMain(_In_ HINSTANCE hInInstance, _In_…
倾斜姿势 RelativeAccelerationAmount 相对加速量前面用过。 我们需要的是前后,左右。两个方向上的速度值,用于混合空间的参数 void UCwlBaseAnimIns::CalculateLeanAmount() { FCwlLeanAmount TargetLeanAmount; float DeltaSeconds = GetWorld()->GetDeltaSe…
在tick中不断执行更新角色旋转 UpdateGroundedRotation() UpdateInAirRotation() 核心函数 void ACwlCharacter::SmoothCharacterRotation(const FRotator &Target, float TargetInterpSpeed, float ActorInterpSpeed, float Delt…
速度混合 计算速度混合量,速度在各个方向上的占比。 比如我们有前后左右四个方向的动作,角色向左前方向移动,那么四个动作融合后,左前两个动作的混合比重是要比右后大的。 void UCwlBaseAnimIns::CalculateVelocityBlend() { FVector VelocityNormal = UKismetMathLibrary::Normal(Velocity); FVect…