diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index f57ece8..929e228 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"582020846":{"582020846":{"currentFile":{"count":1,"lastUpdated":1727792069567}}},"剩下8通道":{"剩下8通道":{"currentFile":{"count":1,"lastUpdated":1726629297275}}},"根据bComputeExport,分别使用RDG的ComputeShader与PixelShader输出DepthStencil。":{"根据bComputeExport,分别使用RDG的ComputeShader与PixelShader输出DepthStencil。":{"currentFile":{"count":1,"lastUpdated":1727249472660}}},"MeshDraw":{"MeshDraw":{"internalLink":{"count":1,"lastUpdated":1727260163677}}},"实现了一个在屏幕空间宽度恒定的":{"实现了一个在屏幕空间宽度恒定的":{"currentFile":{"count":1,"lastUpdated":1728700795488}}}} \ No newline at end of file +{"582020846":{"582020846":{"currentFile":{"count":1,"lastUpdated":1727792069567}}},"剩下8通道":{"剩下8通道":{"currentFile":{"count":1,"lastUpdated":1726629297275}}},"根据bComputeExport,分别使用RDG的ComputeShader与PixelShader输出DepthStencil。":{"根据bComputeExport,分别使用RDG的ComputeShader与PixelShader输出DepthStencil。":{"currentFile":{"count":1,"lastUpdated":1727249472660}}},"MeshDraw":{"MeshDraw":{"internalLink":{"count":1,"lastUpdated":1727260163677}}},"实现了一个在屏幕空间宽度恒定的":{"实现了一个在屏幕空间宽度恒定的":{"currentFile":{"count":1,"lastUpdated":1728700795488}}},"TsDirectorCamManagerActor":{"TsDirectorCamManagerActor":{"currentFile":{"count":1,"lastUpdated":1729139925413}}}} \ No newline at end of file diff --git a/02-Note/DAWA/ASoul/流程笔记/MultiView逻辑.md b/02-Note/DAWA/ASoul/流程笔记/MultiView逻辑.md index f2b3c1b..6f35d52 100644 --- a/02-Note/DAWA/ASoul/流程笔记/MultiView逻辑.md +++ b/02-Note/DAWA/ASoul/流程笔记/MultiView逻辑.md @@ -41,9 +41,44 @@ PVW&PGM使用 **BLACKMAGIC_OUTPUT_CONFIG_HORIZONTAL**  也就是/Game/ResArt/B ## c++ 核心函数在于**AMultiViewActor::StartVideoOutput** + +# TS传入设置位置 +- TsDirectorCamManagerActor.ts SwitchToDirectMode(newTag: UE.GameplayTag) +- FilmbackHelper.ts StartVideoOutput() + +SwitchToDirectMode() +```ts +case DirectorMode.Preview: + console.log('启动Splite4x4预览窗口') + if (shouldCreateWindow) { + this.PreviewWindow = UE.MultiViewActor.Open(this.GetWorld(), UE.EMultiViewCameraLayout.Display_1920x1080_Layout_4x4, UE.EMultiViewMultiGPUMode.HalfSplit) + this.PreviewWindow.SetRenderFeaturePlanarReflection(false); + this.PreviewWindow.SetRenderFeatureNiagara(false); + + // video output + let videoOutputParam = new UE.VideOutputParam() + videoOutputParam.bBlackMagicCard = false + videoOutputParam.bLazyStart = false + this.PreviewWindow.StartVideoOutput(videoOutputParam) + } +``` + +```ts +function StartVideoOutput(camManager : TsDirectorCamManagerActor, targetWindow : UE.MultiViewActor):void{ + if(!BE_USE_DECKLINK){ + let videoOutpuParam = new UE.VideOutputParam() + videoOutpuParam.FilmbackMode = camManager.FilmbackMode + videoOutpuParam.OutputConfigPath = BLACKMAGIC_OUTPUT_CONFIG_HORIZONTAL + videoOutpuParam.bBlackMagicCard = true + videoOutpuParam.bLazyStart = false + if(camManager.FilmbackMode == UE.EFilmbackMode.EFM_1080x1920){ + videoOutpuParam.MatV2H = GetV2HMaterialInstace(camManager) + } + targetWindow.StartVideoOutput(videoOutpuParam) + } +} +``` # UDeckLinkMediaCapture - - m_DeckLinkOutputDevice = DeckLinkDiscovery->GetDeviceByName(m_DeviceName); ```c++