Commit Graph

562 Commits

Author SHA1 Message Date
Patrick Hardy
cc63483697 nDisplay: Add light card template feature.
Light cards can be saved to a template. Templates are displayed in a new dockable tab and each template can be dragged into the light card viewport.
Templates can be favorited and filtered.

- Refactor light card editor widget to use internal dockable tabs.
- Change operator details panel to use kismet inspector. This allows components to be hidden.

#jira UE-155429
#rb trystan.binkley-Jone, Alejandro.Arango
#preflight 62aa8f88993682759f3d35c8

[CL 20680389 by Patrick Hardy in ue5-main branch]
2022-06-15 22:18:57 -04:00
trystan binkley-Jone
d88837056b nDisplay: Added orthographic projection mode to the light card editor, as well as options to orient the view to face a particular direction of the stage (top, bottom, left, right, front, back). Also fixed several small bugs, including one where the stage actor proxy would disappear from the viewport when a light card was deleted.
#jira UE-154155
#rb Patrick.Hardy, Alejandro.Arango
#preflight 62a0f1f9593ebacf17e08d05

[CL 20563018 by trystan binkley-Jone in ue5-main branch]
2022-06-08 16:04:36 -04:00
Elliot Colp
1d4f299a33 [WebRemoteControl] WebSocket API for generating DisplayCluster previews
#jira: UE-141883
#rb: Alejandro.Arango
#preflight 62a0e5f7593ebacf17dd4053

[CL 20562205 by Elliot Colp in ue5-main branch]
2022-06-08 15:11:48 -04:00
Denys Dubinin
44f104bcb7 ~ Remote Control Logic Web API ~
UE-155855

For manipulating Controllers through HTTP requests

The following routes have been added:

1. SetPresetController - Set the value of a Controller (on a Remote Control Preset asset).
  HTTP Parameters: Preset Name, Controller Name, Body: JSON;
   Example:
  (PUT) http://127.0.0.1:30010/remote/preset/PresetNameParam/controller/SomeBoolController
  Body (raw JSON):  { "PropertyValue": false}

2. GetPresetController - Fetch the value of a Controller (on a Remote Control Preset asset).
  HTTP Parameters: Preset Name, Controller Name, Body: None
   Example:
  (GET) http://127.0.0.1:30010/remote/preset/PresetNameParam/controller/SomeBoolController
  HTTP Response:  { "PropertyValue": false}

Interception support has been provided as well by adding an nDispaly cluster implementation.

Pending work:
Unit tests for new route handlers to be added to RemoteControlIntereceptionTest.cpp. Review will be updated with this.
#preflight 62a0cca0232daff7b3f55c21

[CL 20559126 by Denys Dubinin in ue5-main branch]
2022-06-08 12:57:13 -04:00
Vitalii Boiko
c84d8e79c2 nDisplay: added support for CineCamera's custom nearplane support for Camera projection policy
#jira none
#rb Peter.Tarasenko
#preflight none

[CL 20492051 by Vitalii Boiko in ue5-main branch]
2022-06-03 16:23:22 -04:00
Elliot Colp
71bf8e59a4 [nDisplay] Fix a couple crashes that could happen when using the Epic Stage App
#jira: UE-145410
#rb: Alejandro.Arango, trystan.binkley-Jone
#preflight 629a2b38551457c8dde2247c

[CL 20487406 by Elliot Colp in ue5-main branch]
2022-06-03 11:45:12 -04:00
zach bethel
78b6b40701 Remove view uniform buffer from ray tracing mesh draw commands and delete FPersistentUniformBuffers::ViewUniformBuffer. Deprecated the view uniform buffer from MeshPassRenderState.
#rb yuriy.odonnell
#preflight 629915e62e20b63f9a9d2d46

[CL 20475710 by zach bethel in ue5-main branch]
2022-06-02 16:57:29 -04:00
Elliot Colp
1114acd7e3 [nDisplay] Split nDisplay scene preview rendering into its own module
#jira: UE-145410
#rb: Alejandro.Arango, Patrick.Hardy, trystan.binkley-Jone
#preflight 6298ecb36438e3c7311ab55c

[CL 20472054 by Elliot Colp in ue5-main branch]
2022-06-02 13:21:33 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
peter tarasenko
a600000eb3 nDisplay: Fixed crash when the light card editor is open and user changes nDisplay Preview's "Viewports per frame"
#jira UE-153864
#rb Alejandro.Arango, Vitalii.Boiko
#preflight 6296aa693015892cc0734de5

[CL 20444807 by peter tarasenko in ue5-main branch]
2022-05-31 20:01:38 -04:00
Alejandro Arango
8565b40d2b nDisplay: Made the distance from flush a settable property of the light cards called "RadialOffset".
#rb
#jira
#preflight 629570b391004dd61ca8cc20

[CL 20433675 by Alejandro Arango in ue5-main branch]
2022-05-30 21:39:49 -04:00
Alejandro Arango
14bb250d32 ColorCorrectRegions: Added billboard.
Used a slightly modified version of the place actor icon for now.

Also updated a couple of raw pointers to TObjectPtr in nDisplay Light Card Actor.

#rb
#jira
#preflight 629477b57149e31ace60bea9

[CL 20429103 by Alejandro Arango in ue5-main branch]
2022-05-30 03:57:59 -04:00
Alejandro Arango
6919f80d49 nDisplay: Added Gain to light card parameters. Exposure is 2^n while Gain a is linear multiplier to RGB.
#rb
#jira UE-132458
#preflight 6294405e7149e31ace3c7ccd

[CL 20428487 by Alejandro Arango in ue5-main branch]
2022-05-30 00:00:25 -04:00
Alejandro Arango
95bcd39416 nDisplay: Added alpha gradient with angle and start/end values to light cards.
#rb
#jira UE-154142
#preflight 629360f13d25c726e801c96e

[CL 20424987 by Alejandro Arango in ue5-main branch]
2022-05-29 08:18:00 -04:00
Alejandro Arango
0403ed5ac5 nDisplay: Added Tint and Temperature to light cards.
#rb
#jira UE-152636
#preflight

[CL 20424853 by Alejandro Arango in ue5-main branch]
2022-05-29 04:57:40 -04:00
Alejandro Arango
965d22aec4 nDisplay: Added some support for feathering when using custom polygon light cards.
The current method is erosion followed by blur of the inverted alpha.

#rb
#jira
#preflight 6291f2c2db0a62f25c013e08

[CL 20405864 by Alejandro Arango in ue5-main branch]
2022-05-28 06:13:55 -04:00
trystan binkley-Jone
ab20fc60ca nDisplay: Added context menus to the light card list view and the 3D viewport, which contain common editing commands like copy and paste; users can now copy and paste light cards in either view, as well as use common keyboard shortcuts. Also replaced all light card types with specific ADisplayClusterLightCardActor references, as we were implicitly making the assumption all light cards were of that type, but rarely enforcing it
#jira UE-152646
#rb Patrick.Hardy, Alejandro.Aranjo
#preflight 629156f3532586228db0e6a0

[CL 20400812 by trystan binkley-Jone in ue5-main branch]
2022-05-27 19:04:14 -04:00
Alejandro Arango
3de3ec90cb nDisplay: Light card world placement when drawn on the viewport was improved to be based on world positions instead of screen space positions.
This makes it independent of the map projection.

#jira
#rb
#preflight 62906003f6668c14a3c0c019

[CL 20390390 by Alejandro Arango in ue5-main branch]
2022-05-27 01:30:16 -04:00
Leon Huang
19877e39c5 Fix for duplicate localization key warnings and missing localization defines/undefines in various files.
#rnx
#rb: Vincent.Gauthier
#jira: UE-151614
#preflight: 628fc4a98c23e52ef0fdfa7d

[CL 20384450 by Leon Huang in ue5-main branch]
2022-05-26 16:11:10 -04:00
Guillaume Abadie
bbb8d0e2c8 Rewrites dynamic resolution on top of the DynamicRenderScaling API
#rb none
#jira UE-152561
#preflight 628f43e6f622d972b5cb4f2f

[CL 20377247 by Guillaume Abadie in ue5-main branch]
2022-05-26 05:34:08 -04:00
Alejandro Arango
32e241df8f nDisplay: Optimized spin value to minimize area of light card for a given polygon.
This improves the visual quality of the light card. And you end up with smaller light cards.

#rb
#jira
#preflight 628ee9a2f622d972b5b0024a

[CL 20375537 by Alejandro Arango in ue5-main branch]
2022-05-25 23:02:08 -04:00
Alejandro Arango
863164a53b nDisplay: Added ability to draw lightcards on viewport using polygons.
To use, click on the viewport "Draw LC" button, then click on the viewport at the locations where the polygon vertices should exist, then end the polygon with right mouse button. Or abort by toggling the "Draw LC" button.

The polygon is saved in an array in the light card, and is used to generate an alpha texture. This alpha texture is independent of the color texture. This alpha texture is generated dynamically, so there is no need to save it as an asset.

The default generated alpha texture dimensions is 128x128, but can be changed with DC.LightCardPolygonTextureSize.

Currently there is visual indication of the drawing process (other than the mouse becoming a cross and the Draw LC button being highlighted).

#rb trystan.binkley-jone, patrick.hardy
#jira

#preflight 628ec2c289000256cea3ba07

[CL 20373874 by Alejandro Arango in ue5-main branch]
2022-05-25 20:05:36 -04:00
jason hoerner
0267d53323 DisplayCluster: Virtual Shadow Map cache can optionally be allocated per view, and enabled that feature for Virtual Production. Significant performance win by avoiding constant cache thrashing when rendering multiple families. Frame time goes from ~45 ms to ~26 ms for Valley test scene (Node 2), GPU bound in both cases. Separate cache per view isn't implemented for split screen views (single view family with multiple views), but Virtual Production doesn't use that, and support for that could be added in the future.
#jira UE-142732
#rb andrew.lauritzen ola.olsson
#preflight 628d06a45c3ef99a7b2fffa3

[CL 20351116 by jason hoerner in ue5-main branch]
2022-05-24 13:17:13 -04:00
Alejandro Arango
f7b0259a60 nDisplay: Increased LC rotator circle radius and thickness.
Felt it needed to be a bit bigger for ease of use and rotation precision.

#rb
#jira
#preflight

[CL 20313517 by Alejandro Arango in ue5-main branch]
2022-05-21 18:07:12 -04:00
Alejandro Arango
6985fc25c6 nDisplay: Re-enabled eye adaptation on previews.
This makes the LC Editor / Stage Operator Panel look correct.

#rb
#jira
#preflight

[CL 20313262 by Alejandro Arango in ue5-main branch]
2022-05-21 17:51:20 -04:00