我正在尝试捕获 Unreal Project 5 场景的场景并将其像素内容发送到计算着色器以对渲染图像进行一些转换。该着色器的目标是将标准分辨率和高分辨率图像发送到着色器。
经过一番研究,我发现USceneCaptureComponent2D
它可用于生成Texture2D
可用于从图像中提取像素数据的元素(https://www.reddit.com/r/unrealengine/comments/dwu3sf/get_output_in_pixels_from_camera/)
但是,我似乎无法操纵渲染目标,因为它有一个incomplete
类型:
现在,在 TickComponent 方法上,我正在获取用户的相机并将场景捕获相机视图设置为玩家相机的最新 POV:
void UComputeShaderTestComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
if (UWorld* World = GetWorld())
{
APlayerCameraManager* PlayerCameraManager = World->GetFirstPlayerController()->PlayerCameraManager;
SceneCapture->SetCameraView(PlayerCameraManager->GetLastFrameCameraCachePOV());
}
}
我想知道这些更改是否来自 UE5,如果是,是否有更好的方法可以将屏幕上显示的所有像素发送到着色器?
我正在使用的模型的源代码:https ://github.com/mortmaire/Unreal-Engine-Access-Render-Target
我在Build.cs
文件中使用的模块:
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"RenderCore",
"RHI"
});
以下帖子表明它可能是由上述列表中缺少的模块引起的。我尝试添加渲染器,但它不起作用。 不允许指向不完整类类型的指针 Unreal Engine 4.26
谢谢!