You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭Unreal Engine移动端HDR导致AR模板相机画面垂直翻转

Unreal Engine Android端关闭HDR后AR相机画面翻转的解决方案

问题背景

关闭UE移动端HDR渲染解决了光照异常、网格体渲染故障及应用卡顿问题,但引发AR模板相机画面垂直翻转。已尝试修改相机流材质UV、调整项目设置,均未解决。

蓝图实现方案

方案1:后处理材质翻转画面

  • 创建后处理材质(Material Domain设为Post Process)
  • 材质节点中,将纹理采样的UV坐标Y分量取反:1 - TextureCoordinate.Y
  • 将该材质添加到AR相机所属的后处理体积,或直接绑定到相机的Post Process Settings,设置高优先级确保生效

方案2:修改相机投影矩阵

  • 在AR相机蓝图中,获取Get Camera Projection Matrix节点
  • 用Make Matrix或Set Matrix Component将矩阵的Y轴缩放值改为原数值的相反数
  • 通过Set Camera Projection Matrix将修改后的矩阵应用到相机

C++代码实现方案

方案1:后处理材质绑定

在AR相机Actor的派生类中添加代码:

#include "Camera/CameraComponent.h"
#include "Engine/PostProcessVolume.h"
#include "Materials/MaterialInstanceDynamic.h"

void AARCameraFixActor::BeginPlay()
{
    Super::BeginPlay();

    // 创建并绑定翻转后处理材质
    UMaterial* FlipPostProcessMat = LoadObject<UMaterial>(nullptr, TEXT("/Game/PostProcess/PP_FlipVertical.PP_FlipVertical"));
    if (FlipPostProcessMat)
    {
        UMaterialInstanceDynamic* DynMat = UMaterialInstanceDynamic::Create(FlipPostProcessMat, this);
        APlayerController* PC = GetWorld()->GetFirstPlayerController();
        if (PC)
        {
            PC->AddPostProcessMaterial(DynMat, 100.f); // 设置高优先级
        }
    }
}

方案2:直接修改投影矩阵

#include "Camera/CameraComponent.h"

void AARCameraFixActor::BeginPlay()
{
    Super::BeginPlay();

    UCameraComponent* CameraComp = GetCameraComponent();
    if (CameraComp)
    {
        FMatrix ProjMatrix = CameraComp->GetProjectionMatrix();
        // 翻转Y轴投影
        ProjMatrix.M[1][1] = -ProjMatrix.M[1][1];
        CameraComp->SetProjectionMatrix(ProjMatrix);
    }
}

额外排查建议

  • 确认项目设置Rendering > Mobile > Disable HDR已勾选
  • 检查AR模板默认相机流材质是否存在硬编码UV逻辑,可尝试替换为自定义材质
  • 查看Project Settings > Rendering > Mobile中是否有Camera Image Flip相关选项,直接调整系统设置

内容的提问来源于stack exchange,提问作者mohammad ramezani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:20:58