You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Movie Pipeline: Fixed the example editor utility widget not working due to API changes during development.
This removes an unused variable (to prevent confusion), adds UFUNCTIONs to some functions, and adds some safe guards against common scripting mistakes. #jira UE-91501 #rb Andrew.Rodham #lockdown simon.tourangeau #ROBOMERGE-OWNER: jeanmichel.dignard #ROBOMERGE-AUTHOR: matt.hoffman #ROBOMERGE-SOURCE: CL 12634452 in //UE4/Release-4.25/... via CL 12634466 via CL 12634480 via CL 12634509 #ROBOMERGE-BOT: TOOLS (Main -> Dev-Tools-Staging) (v675-12543919) [CL 12643974 by matt hoffman in Dev-Tools-Staging branch]
This commit is contained in:
@@ -40895,7 +40895,7 @@
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Blueprints/UI_MovieRenderPipelineInfoTableRow.uasset" Hash="4953394a044869e4dded03333580fb7c77ac6b5e" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Blueprints/UI_MovieRenderPipelineScreenOverlay.uasset" Hash="79cea97fca83b7e4133bf9a9bc5621088d26e532" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/ButtonHoverHint.png" Hash="e5dff31080f2818ba199deab710885802d5fde41" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Editor/MovieRenderPipelineExampleEditorWidget.uasset" Hash="01e2d8a762321b5453219d8e7a11758e40b882b7" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Editor/MovieRenderPipelineExampleEditorWidget.uasset" Hash="3b3de6b1e92781a487f3dfc8256f2e5857373cd2" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Switch_OFF.png" Hash="d544ab5d4cdec9eee472a1940ade1d3362be9d00" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Switch_ON.png" Hash="f5fe4d4d4e5080e2d8088090e87a0790e659be85" />
|
||||
<File Name="Engine/Plugins/MovieScene/MovieRenderPipeline/Content/TabIcon_24x.png" Hash="15eef2bd6a683ce699b6b425f8faec8184165c80" />
|
||||
@@ -61041,7 +61041,6 @@
|
||||
<Blob Hash="01dee57d0c766e28906d3ee006eb650b4bd39dc6" Size="385" PackHash="740468294ff5dc113d230e62ae67c145d10bfb6c" PackOffset="1019796" />
|
||||
<Blob Hash="01df028c6864d922b014a7e3776504b2c4c248e3" Size="38391" PackHash="0c9578c545bd2333a4be670893470a926491d507" PackOffset="1409986" />
|
||||
<Blob Hash="01df3958a093ca1d895dc4d8e7c1c4f1aa51c9c2" Size="104" PackHash="cca5a69a24718ef21c5a46099acf07d223f787fd" PackOffset="1539180" />
|
||||
<Blob Hash="01e2d8a762321b5453219d8e7a11758e40b882b7" Size="245005" PackHash="9afbb29532637bc15449e1a783e43e49bcaca6e3" PackOffset="8" />
|
||||
<Blob Hash="01ebdc3cdcd48724d68aef11790e6e18dd22a0a2" Size="47784" PackHash="739196fc7439861c4458969395497183bd768263" PackOffset="2013235" />
|
||||
<Blob Hash="01efec6cc6020608bd18d1c3d79f55cb93af76aa" Size="191" PackHash="63b24429e811a198d948d6fbf044db9b5e1ac5c5" PackOffset="1018698" />
|
||||
<Blob Hash="01f050c2c5215bf44cbd7a90ed307bef33ecfddb" Size="20252" PackHash="a8ed11c69d5776ee844bd440e344bd93f1fda46c" PackOffset="42771" />
|
||||
@@ -67375,7 +67374,7 @@
|
||||
<Blob Hash="29867370767f2cf7d3530d112ad1efa696bd77fb" Size="12525" PackHash="8962c9283d246aa6183316165b2eabb0cb7e0781" PackOffset="1906380" />
|
||||
<Blob Hash="298943e10373b8cba2792d3f63c14048c39e8b93" Size="6030" PackHash="12d213957fbfe643a97d5072b1f6ae30aeebcbb7" PackOffset="107584" />
|
||||
<Blob Hash="298c9e1d955f10f6f72c6915c3c6ff9bf9695cec" Size="2520" PackHash="ba6e6f4eaf7c50e1dcff51145723e736d4474d28" PackOffset="1623294" />
|
||||
<Blob Hash="2992c5bc37065a260e24cc0a52b4fbf76a9a85b4" Size="17735" PackHash="9afbb29532637bc15449e1a783e43e49bcaca6e3" PackOffset="270804" />
|
||||
<Blob Hash="2992c5bc37065a260e24cc0a52b4fbf76a9a85b4" Size="17735" PackHash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" PackOffset="295017" />
|
||||
<Blob Hash="299549efe83e9edf3f4d92b950dea88f98423b1b" Size="4567" PackHash="63aeef61540766058c9217278f4c99890729a052" PackOffset="681864" />
|
||||
<Blob Hash="2995e2f3bb163772737f41e2aeebb1009c151095" Size="2405" PackHash="740468294ff5dc113d230e62ae67c145d10bfb6c" PackOffset="933125" />
|
||||
<Blob Hash="2996119f1d621ab769414a3affc26c629052bb15" Size="897" PackHash="74fc4e491bddbae9f76d9198edf1efb42e23dbb0" PackOffset="144791" />
|
||||
@@ -70276,6 +70275,7 @@
|
||||
<Blob Hash="3b3afd9d56a4cb6810073c8f4ff080039ca74ce4" Size="952" PackHash="afc5cb40d4e6c77d1775d83fce7636691d3fa748" PackOffset="730154" />
|
||||
<Blob Hash="3b3b29e460309055f1a3d829d02e7fc62278e6fc" Size="22016" PackHash="303ddf28767e0ef83c669c43d74ec40d813f6251" PackOffset="1700044" />
|
||||
<Blob Hash="3b3c9b814b05faa15e3da920d89b7663aa87e940" Size="357181" PackHash="5b22694ec563bdb868aa87303c90f06998e15369" PackOffset="1733701" />
|
||||
<Blob Hash="3b3de6b1e92781a487f3dfc8256f2e5857373cd2" Size="269218" PackHash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" PackOffset="8" />
|
||||
<Blob Hash="3b3df1798cf20cc12a8041c6112a2c917eebd9aa" Size="401" PackHash="6974b9c6f99dd329465ca79c60ac6eebd6d448a5" PackOffset="490637" />
|
||||
<Blob Hash="3b3e2ba247bb5ac526626c5ec12f2a9963a37031" Size="3762" PackHash="4905bf362dac5be04631d1ce552b8184a6f9eb7f" PackOffset="2060481" />
|
||||
<Blob Hash="3b41009cd9a07de0bd6628a3f61e45954c69c30f" Size="15101" PackHash="cb936ac75ecfadbfd97c634641fc2428d92083f9" PackOffset="125812" />
|
||||
@@ -77662,7 +77662,7 @@
|
||||
<Blob Hash="68a026d12742851ddbcc7857a299f9eaa311326e" Size="2812" PackHash="e458507f455e3bac9232d632426fc4b75f29841d" PackOffset="851827" />
|
||||
<Blob Hash="68a15efde1060617a78b402dbb46a249e65d1050" Size="1668" PackHash="7ca0e1410f00142dc9791ff1fb493669e443f644" PackOffset="1006340" />
|
||||
<Blob Hash="68a639f8effd9c6d580f9785f2ce94ac3938dba6" Size="826" PackHash="740468294ff5dc113d230e62ae67c145d10bfb6c" PackOffset="1533733" />
|
||||
<Blob Hash="68a8867683359f42e6bb958922357d985564594e" Size="21732" PackHash="9afbb29532637bc15449e1a783e43e49bcaca6e3" PackOffset="288539" />
|
||||
<Blob Hash="68a8867683359f42e6bb958922357d985564594e" Size="21732" PackHash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" PackOffset="312752" />
|
||||
<Blob Hash="68ab699ac30c775a099a69fc6fe3c487554add1c" Size="1580" PackHash="5cb17f3f8319e59e99cf89cdd430848948628eee" PackOffset="611112" />
|
||||
<Blob Hash="68acae026ab3634789db2fd57ba2511e06b7ed13" Size="143" PackHash="c7fb5a52786de3f047f9949d98826960b11eac96" PackOffset="2096986" />
|
||||
<Blob Hash="68acc369055fc8fcc07abfdd72fbfab00f95b377" Size="88" PackHash="de2e42ad57386aaae5fdc67c8512ac9ea3798d6d" PackOffset="622536" />
|
||||
@@ -91340,7 +91340,7 @@
|
||||
<Blob Hash="bd36f754ee885a0a03c6c802b5bf6c5b730a7cda" Size="9229" PackHash="5e7d96af5e5b1cafa670bd77ae918457a118f7a5" PackOffset="9237" />
|
||||
<Blob Hash="bd37e85bf38192614d2b8fb5048d7e9f38eb34ac" Size="454656" PackHash="a546f5b5ac5ed8bf6182b7d63936e2caf8ab0638" PackOffset="385032" />
|
||||
<Blob Hash="bd395a29345adcdaa0436ac0b35a8a8ad393a0c6" Size="7262448" PackHash="27bc2da5af690873b31c77fb1fd2754fb68372e5" PackOffset="8" />
|
||||
<Blob Hash="bd3c3d018cd85f664f89c74cf155399252c7ba87" Size="16979" PackHash="9afbb29532637bc15449e1a783e43e49bcaca6e3" PackOffset="310271" />
|
||||
<Blob Hash="bd3c3d018cd85f664f89c74cf155399252c7ba87" Size="16979" PackHash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" PackOffset="334484" />
|
||||
<Blob Hash="bd3c46df953ab712c847d12d03bc3f6bac4fa0b3" Size="120" PackHash="d5bafdf3f50a35765f845dea41332e85db30f9ec" PackOffset="387790" />
|
||||
<Blob Hash="bd40bd875a3b7dd16978580685ab4dd7ebbbc2ad" Size="32" PackHash="2e3237f4ac211e07a6a21bd72eb72dcb0a8d87ed" PackOffset="1699143" />
|
||||
<Blob Hash="bd4325bf16f680d1ebb4718f683737a03b007224" Size="121" PackHash="0fe10da645346a0bddc78fefb2134f9e5b40d3a7" PackOffset="8" />
|
||||
@@ -95898,7 +95898,7 @@
|
||||
<Blob Hash="d93b16f3d000c4f4593147276cec0ec574f0d528" Size="584" PackHash="4b0f6024494e02f2b2cdd75b48b059c81bde532c" PackOffset="45862" />
|
||||
<Blob Hash="d93c3a9a4fbddc96a6c35afce089e234bfa4a5c6" Size="378" PackHash="f1f7c9d958c098113ab1fca1fd2355ab72172280" PackOffset="1403036" />
|
||||
<Blob Hash="d93c76c348c5179eb57e84e2b30c314013fffdd9" Size="88628" PackHash="c9e4b45c6cc512de9832f75e289ce69056260b5a" PackOffset="8" />
|
||||
<Blob Hash="d93ea05c5eaf8b4514a76927acbeeeeedca90f43" Size="25791" PackHash="9afbb29532637bc15449e1a783e43e49bcaca6e3" PackOffset="245013" />
|
||||
<Blob Hash="d93ea05c5eaf8b4514a76927acbeeeeedca90f43" Size="25791" PackHash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" PackOffset="269226" />
|
||||
<Blob Hash="d93eaf735d05f6466472987a1b3e757a8628e6ad" Size="1912" PackHash="c6a87a27121ee980a108fbacde92cb925b2682d0" PackOffset="493317" />
|
||||
<Blob Hash="d93f2348a79eef850011c925d197a93fff7400f5" Size="157552" PackHash="d1cc40fc311b1fe882b059047a6c7f53925c9827" PackOffset="680466" />
|
||||
<Blob Hash="d9401e293d89535ed0c9963ea353d283b10a5cd7" Size="26213" PackHash="1922efdc75b4835f1e0cd19d027a86f5cea255af" PackOffset="1550447" />
|
||||
@@ -104449,7 +104449,6 @@
|
||||
<Pack Hash="9adbee8a4624a34e02cd98b2e6024b65c2f7a677" Size="2053770" CompressedSize="2013213" RemotePath="UnrealEngine-12388917-ea8cd47f6ca74426b55c4ca2adcbc8cc" />
|
||||
<Pack Hash="9aec8735040beb57da24cffa27ef5d254408275f" Size="2396655" CompressedSize="956325" RemotePath="2487260-b428468bcd6545bfbb79f02a6605b9ef" />
|
||||
<Pack Hash="9af52409e333bbf4b230646a16524de6e0d5b266" Size="1963015" CompressedSize="602374" RemotePath="UnrealEngine-7312987-0ad2049677f34445af16c2d8fca0dc3c" />
|
||||
<Pack Hash="9afbb29532637bc15449e1a783e43e49bcaca6e3" Size="327250" CompressedSize="115703" RemotePath="UnrealEngine-11171981-f3048b1fab5844efa21a44990480d3fa" />
|
||||
<Pack Hash="9b12e8b5b7088940221ebeb80ab678cac285f904" Size="4300" CompressedSize="2391" RemotePath="UnrealEngine-4209456-367f0e8d6f0c46a49dc0846733a82826" />
|
||||
<Pack Hash="9b15bc831d3929d38198d490cb85a4feace577bc" Size="330" CompressedSize="198" RemotePath="UnrealEngine-11546101-75fb664889794962ba9b048ff60a0b8c" />
|
||||
<Pack Hash="9b1f19cdae964121a086e84458f6b82f45dd84e3" Size="35368" CompressedSize="11275" RemotePath="UnrealEngine-7810763-4a7566c610654a05a33dd7dbc356cad9" />
|
||||
@@ -105522,6 +105521,7 @@
|
||||
<Pack Hash="e2f107fbd5a4382c70c2d259a7d86e25928d3ec5" Size="2036063" CompressedSize="445035" RemotePath="UnrealEngine-12001713-fc0f59035a724183afc7f52051f62076" />
|
||||
<Pack Hash="e2fa2ac520eb51bd27214ee5bf3c3511f0803850" Size="2038418" CompressedSize="1625268" RemotePath="UnrealEngine-3545186-3e1e53de154c41009b26c236d720f37a" />
|
||||
<Pack Hash="e380f683db24a7cfe78e8b2762eedb95af1e281b" Size="106452" CompressedSize="98943" RemotePath="UnrealEngine-3437498-56fbf497639649cca9f98b12b727c3c2" />
|
||||
<Pack Hash="e3983a17ff6a285c0cf35e4f98df1a32ce93fe00" Size="351463" CompressedSize="119371" RemotePath="UnrealEngine-12634452-f729dcf8384949c88203a458e04bd3e2" />
|
||||
<Pack Hash="e39b1ffe375995e81f45f2d90aaf437e84c11ca7" Size="2097116" CompressedSize="1458424" RemotePath="3041367-5ed8062ed7b244fbbe088cb9a31b34cd" />
|
||||
<Pack Hash="e3a05c83ce77dfa959040db8be0048c53ec803f5" Size="1143699" CompressedSize="517194" RemotePath="UnrealEngine-7205959-a30cfcda3e624bf3a4ac3f26bef57248" />
|
||||
<Pack Hash="e3a2d76455fdea0d1a6fe3a8bd3b2925536ebd19" Size="28046368" CompressedSize="6235794" RemotePath="UnrealEngine-8652397-312e66bcf6fe48d1acafe9592bbd7b30" />
|
||||
|
||||
@@ -86,12 +86,6 @@ UMoviePipelineShotConfig* UMoviePipelineMasterConfig::GetConfigForShot(const FSt
|
||||
{
|
||||
UMoviePipelineShotConfig* OutConfig = PerShotConfigMapping.FindRef(ShotName);
|
||||
|
||||
// They didn't customize this shot, return the global pipeline default
|
||||
if (!OutConfig)
|
||||
{
|
||||
OutConfig = DefaultShotConfig;
|
||||
}
|
||||
|
||||
return OutConfig;
|
||||
}
|
||||
|
||||
@@ -255,8 +249,6 @@ TRange<FFrameNumber> UMoviePipelineMasterConfig::GetEffectivePlaybackRange(const
|
||||
|
||||
UMoviePipelineMasterConfig::UMoviePipelineMasterConfig()
|
||||
{
|
||||
DefaultShotConfig = CreateDefaultSubobject<UMoviePipelineShotConfig>("DefaultShotConfig");
|
||||
|
||||
// Always add at least the output settings block since having a framerate/directory/etc. is critical.
|
||||
OutputSetting = CreateDefaultSubobject<UMoviePipelineOutputSetting>("DefaultOutputSetting");
|
||||
}
|
||||
|
||||
@@ -226,7 +226,10 @@ void UMoviePipeline::RenderFrame()
|
||||
|
||||
int32 NumSpatialSamples = AntiAliasingSettings->SpatialSampleCount;
|
||||
int32 NumTemporalSamples = AntiAliasingSettings->TemporalSampleCount;
|
||||
ensure(TileCount.X > 0 && TileCount .Y> 0 && NumSpatialSamples > 0);
|
||||
if (!ensureAlways(TileCount.X > 0 && TileCount.Y > 0 && NumSpatialSamples > 0 && NumTemporalSamples > 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
FrameInfo.PrevViewLocation = FrameInfo.CurrViewLocation;
|
||||
FrameInfo.PrevViewRotation = FrameInfo.CurrViewRotation;
|
||||
|
||||
@@ -45,6 +45,11 @@ public:
|
||||
UFUNCTION(BlueprintCallable, Category = "Movie Render Pipeline")
|
||||
void Execute(UMoviePipelineQueue* InPipelineQueue)
|
||||
{
|
||||
if (!InPipelineQueue)
|
||||
{
|
||||
FFrame::KismetExecutionMessage(TEXT("Cannot execute movie render queue with null queue object."), ELogVerbosity::Error);
|
||||
return;
|
||||
}
|
||||
ExecuteImpl(InPipelineQueue);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,15 +75,11 @@ protected:
|
||||
|
||||
virtual void OnSettingAdded(UMoviePipelineSetting* InSetting) override;
|
||||
virtual void OnSettingRemoved(UMoviePipelineSetting* InSetting) override;
|
||||
|
||||
void AddTransientSettingByClass(const UClass* InSettingClass);
|
||||
public:
|
||||
|
||||
/** The default shot-setup to use for any shot that doesn't a specific implementation. This is required! */
|
||||
UPROPERTY(EditAnywhere, Instanced, BlueprintReadWrite, Category = "Movie Render Pipeline")
|
||||
UMoviePipelineShotConfig* DefaultShotConfig;
|
||||
|
||||
public:
|
||||
/** A mapping of Shot Name -> Shot Config to use for rendering specific shots with specific configs. */
|
||||
UPROPERTY(VisibleAnywhere, Instanced, BlueprintReadOnly, Category = "Movie Render Pipeline")
|
||||
UPROPERTY(Instanced)
|
||||
TMap<FString, UMoviePipelineShotConfig*> PerShotConfigMapping;
|
||||
|
||||
private:
|
||||
|
||||
@@ -56,6 +56,7 @@ public:
|
||||
return LoadedSequence;
|
||||
}
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "Movie Render Pipeline")
|
||||
void SetPresetOrigin(UMoviePipelineMasterConfig* InPreset)
|
||||
{
|
||||
if (InPreset)
|
||||
@@ -65,16 +66,19 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Movie Render Pipeline")
|
||||
UMoviePipelineMasterConfig* GetPresetOrigin() const
|
||||
{
|
||||
return PresetOrigin.Get();
|
||||
}
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "Movie Render Pipeline")
|
||||
UMoviePipelineMasterConfig* GetConfiguration() const
|
||||
{
|
||||
return Configuration;
|
||||
}
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "Movie Render Pipeline")
|
||||
void SetConfiguration(UMoviePipelineMasterConfig* InPreset)
|
||||
{
|
||||
if (InPreset)
|
||||
|
||||
@@ -72,45 +72,6 @@ namespace
|
||||
|
||||
}
|
||||
|
||||
void FMovieRenderPipelineEditorModule::PerformTestPipelineRender(const TArray<FString>& Args)
|
||||
{
|
||||
if (Args.Num() == 0)
|
||||
{
|
||||
UE_LOG(LogMovieRenderPipeline, Warning, TEXT("No arguments specified. Specify the path to a sequence asset to render."));
|
||||
return;
|
||||
}
|
||||
|
||||
FSoftObjectPath SequencePath = FSoftObjectPath(FPackageName::ExportTextPathToObjectPath(Args[0]));
|
||||
|
||||
const UMovieRenderPipelineProjectSettings* ProjectSettings = GetDefault<UMovieRenderPipelineProjectSettings>();
|
||||
TSubclassOf<UMoviePipelineExecutorBase> ExecutorClass = ProjectSettings->DefaultLocalExecutor;
|
||||
|
||||
check(false);
|
||||
// Create an instance of the Executor and add it to the root so it never dies.
|
||||
// Executor = NewObject<UMoviePipelineExecutorBase>(GetTransientPackage(), ExecutorClass);
|
||||
// Executor->AddToRoot();
|
||||
// Executor->OnExecutorFinished().AddRaw(this, &FMovieRenderPipelineEditorModule::OnTestPipelineExecutorFinished);
|
||||
//
|
||||
// TArray<UMoviePipelineMasterConfig*> Pipelines = GenerateTestPipelineConfigs();
|
||||
//
|
||||
// TArray<FMoviePipelineExecutorJobPrev> Jobs;
|
||||
// for(UMoviePipelineMasterConfig* Pipeline : Pipelines)
|
||||
// {
|
||||
// Jobs.Add(FMoviePipelineExecutorJobPrev(SequencePath, Pipeline));
|
||||
// }
|
||||
//
|
||||
// Executor->Execute(Jobs);
|
||||
}
|
||||
|
||||
void FMovieRenderPipelineEditorModule::OnTestPipelineExecutorFinished(UMoviePipelineExecutorBase* InExecutor, bool bSuccess)
|
||||
{
|
||||
if (Executor)
|
||||
{
|
||||
Executor->RemoveFromRoot();
|
||||
Executor = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void FMovieRenderPipelineEditorModule::RegisterSettings()
|
||||
{
|
||||
ISettingsModule& SettingsModule = FModuleManager::LoadModuleChecked<ISettingsModule>("Settings");
|
||||
@@ -120,13 +81,6 @@ void FMovieRenderPipelineEditorModule::RegisterSettings()
|
||||
LOCTEXT("ProjectSettings_Description", "Configure project-wide defaults for the movie render pipeline."),
|
||||
GetMutableDefault<UMovieRenderPipelineProjectSettings>()
|
||||
);
|
||||
|
||||
IConsoleManager::Get().RegisterConsoleCommand(
|
||||
TEXT("MovieRenderPipeline.TestRenderSequence"),
|
||||
TEXT("Renders the specified sequence asset using the default executor and a pre-made configuration."),
|
||||
FConsoleCommandWithArgsDelegate::CreateRaw(this, &FMovieRenderPipelineEditorModule::PerformTestPipelineRender),
|
||||
ECVF_Default
|
||||
);
|
||||
}
|
||||
|
||||
void FMovieRenderPipelineEditorModule::UnregisterSettings()
|
||||
|
||||
@@ -17,13 +17,4 @@ public:
|
||||
private:
|
||||
void RegisterSettings();
|
||||
void UnregisterSettings();
|
||||
void PerformTestPipelineRender(const TArray<FString>& Args);
|
||||
void OnTestPipelineExecutorFinished(UMoviePipelineExecutorBase* InExecutor, bool bSuccess);
|
||||
|
||||
private:
|
||||
TArray<UMoviePipelineMasterConfig*> GenerateTestPipelineConfigs();
|
||||
private:
|
||||
class UMoviePipeline* ActiveMoviePipeline;
|
||||
class UMoviePipelineMasterConfig* PipelineConfig;
|
||||
UMoviePipelineExecutorBase* Executor;
|
||||
};
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
#include "MovieRenderPipelineEditorModule.h"
|
||||
#include "MoviePipelineShotConfig.h"
|
||||
#include "MoviePipelineGameOverrideSetting.h"
|
||||
#include "MoviePipelineAntiAliasingSetting.h"
|
||||
#include "MoviePipelineImageSequenceOutput.h"
|
||||
#include "Misc/Paths.h"
|
||||
#include "MoviePipelineMasterConfig.h"
|
||||
#include "MoviePipelineOutputSetting.h"
|
||||
#include "MoviePipelineHighResSetting.h"
|
||||
#include "MoviePipelineDeferredPasses.h"
|
||||
#include "MoviePipelineCameraSetting.h"
|
||||
#include "GameFramework/GameModeBase.h"
|
||||
|
||||
UMoviePipelineShotConfig* GenerateTestShotConfig(UObject* InOwner, int32 InSampleCount,
|
||||
int32 InShutterAngle, EMoviePipelineShutterTiming InFrameTiming, int32 InTileCount,
|
||||
int32 InSpatialSampleCount, float PadRatioX, float PadRatioY, float AccumulationGamma)
|
||||
{
|
||||
UMoviePipelineShotConfig* OutConfig = NewObject<UMoviePipelineShotConfig>(InOwner);
|
||||
OutConfig->FindOrAddSetting<UMoviePipelineDeferredPassBase>();
|
||||
|
||||
UMoviePipelineAntiAliasingSetting* AntiAliasing = OutConfig->FindOrAddSetting< UMoviePipelineAntiAliasingSetting>();
|
||||
AntiAliasing->SpatialSampleCount = InSpatialSampleCount;
|
||||
AntiAliasing->AccumulationGamma = AccumulationGamma;
|
||||
AntiAliasing->TemporalSampleCount = InSampleCount;
|
||||
|
||||
{
|
||||
UMoviePipelineCameraSetting* CameraSetting = OutConfig->FindOrAddSetting<UMoviePipelineCameraSetting>();
|
||||
CameraSetting->CameraShutterAngle = InShutterAngle;
|
||||
CameraSetting->ShutterTiming = InFrameTiming;
|
||||
CameraSetting->bManualExposure = false;
|
||||
CameraSetting->ExposureCompensation = 10;
|
||||
}
|
||||
|
||||
{
|
||||
UMoviePipelineHighResSetting* HighRes = OutConfig->FindOrAddSetting<UMoviePipelineHighResSetting>();
|
||||
HighRes->TileCount = InTileCount;
|
||||
HighRes->OverlapRatio = PadRatioX;
|
||||
// HighRes->bWriteAllSamples = true;
|
||||
// HighRes->OverlapPercentage = 0.f;
|
||||
}
|
||||
|
||||
return OutConfig;
|
||||
}
|
||||
|
||||
TArray<UMoviePipelineMasterConfig*> FMovieRenderPipelineEditorModule::GenerateTestPipelineConfigs()
|
||||
{
|
||||
// int32 ShutterAngles[] = { 180, 360 };
|
||||
// EMoviePipelineShutterTiming ShutterTimings[] = { EMoviePipelineShutterTiming::FrameOpen, EMoviePipelineShutterTiming::FrameCenter, EMoviePipelineShutterTiming::FrameClose };
|
||||
// FString ShutterTimingNames[] = { TEXT("FOpen"), TEXT("FCenter"), TEXT("FClose") };
|
||||
// int32 TemporalSampleCounts[] = { 1, 5 };
|
||||
|
||||
int32 ShutterAngles[] = { 180 };
|
||||
EMoviePipelineShutterTiming ShutterTimings[] = { EMoviePipelineShutterTiming::FrameCenter };
|
||||
FString ShutterTimingNames[] = { TEXT("FCenter") };
|
||||
int32 TemporalSampleCounts[] = { 1 };
|
||||
|
||||
TArray<UMoviePipelineMasterConfig*> Configs;
|
||||
|
||||
for (int32 ShutterAngleIndex = 0; ShutterAngleIndex < UE_ARRAY_COUNT(ShutterAngles); ShutterAngleIndex++)
|
||||
{
|
||||
for (int32 ShutterTimingIndex = 0; ShutterTimingIndex < UE_ARRAY_COUNT(ShutterTimings); ShutterTimingIndex++)
|
||||
{
|
||||
for (int32 TemporalSampleCountIndex = 0; TemporalSampleCountIndex < UE_ARRAY_COUNT(TemporalSampleCounts); TemporalSampleCountIndex++)
|
||||
{
|
||||
// Build a folder string to place this particular test in.
|
||||
FString DirectoryName = FString::Printf(TEXT("SA_%d_ST_%s_SC_%d"), ShutterAngles[ShutterAngleIndex], *ShutterTimingNames[ShutterTimingIndex], TemporalSampleCounts[TemporalSampleCountIndex]);
|
||||
|
||||
UMoviePipelineMasterConfig* OutPipeline = NewObject<UMoviePipelineMasterConfig>(GetTransientPackage());
|
||||
UMoviePipelineOutputSetting* OutputSetting = OutPipeline->FindOrAddSetting<UMoviePipelineOutputSetting>();
|
||||
|
||||
int32 SizeX = 1920;
|
||||
int32 SizeY = 1080;
|
||||
int32 TileX = 4;
|
||||
int32 TileY = 4;
|
||||
int32 TestNumSamples = 8;
|
||||
float PadRatioX = 0.5f;
|
||||
float PadRatioY = 0.5f;
|
||||
float AccumulationGamma = 1.0f;
|
||||
|
||||
OutputSetting->OutputResolution = FIntPoint(SizeX*TileX, SizeY*TileY);
|
||||
OutputSetting->OutputDirectory.Path = FPaths::ProjectSavedDir() / TEXT("/VideoCaptures/") / *DirectoryName;
|
||||
|
||||
const int32 NumSpatialSamples = TestNumSamples;
|
||||
const int32 NumTiles = TileX;
|
||||
|
||||
UMoviePipelineShotConfig* DefaultConfig = GenerateTestShotConfig(OutPipeline,
|
||||
TemporalSampleCounts[TemporalSampleCountIndex],
|
||||
ShutterAngles[ShutterAngleIndex],
|
||||
ShutterTimings[ShutterTimingIndex],
|
||||
NumTiles, NumSpatialSamples, PadRatioX, PadRatioY, AccumulationGamma);
|
||||
|
||||
OutPipeline->DefaultShotConfig = DefaultConfig;
|
||||
|
||||
// Add some Outputs
|
||||
OutPipeline->FindOrAddSetting<UMoviePipelineImageSequenceOutput_EXR>();
|
||||
OutPipeline->FindOrAddSetting<UMoviePipelineImageSequenceOutput_PNG>();
|
||||
|
||||
UMoviePipelineGameOverrideSetting* GamemodeOverride = OutPipeline->FindOrAddSetting<UMoviePipelineGameOverrideSetting>();
|
||||
GamemodeOverride->GameModeOverride = AGameModeBase::StaticClass();
|
||||
|
||||
// Add it to our list to be processed.
|
||||
Configs.Add(OutPipeline);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Configs;
|
||||
}
|
||||
Reference in New Issue
Block a user