Commit Graph

277 Commits

Author SHA1 Message Date
sebastien lussier
c344fbeb86 Approximate Actors - Fix ensure() caused by empty scene representation
* Return an error if no valid input was provided
#rb jimmy.andrews, lonnie.li

[CL 27845860 by sebastien lussier in ue5-main branch]
2023-09-13 15:43:42 -04:00
sebastien lussier
3668334a65 WorldRenderCapture - Renamed CVarModelingWorldRenderCaptureVTWarmupFrames to CVarModelingWorldRenderCaptureWarmupFrames
* Warmup is not specific to VT, but also of use for Nanite
#rb matija.recman

[CL 27831331 by sebastien lussier in ue5-main branch]
2023-09-13 10:48:23 -04:00
sebastien lussier
b0d4418ed2 WorldRenderCapture - Modified capture to use default time (0) and set realtime update off on the view family context
* Makes it clear that the capture isn't using a realtime view, and prevent materials relying on Time from giving different results based on the time elapsed since the app start
#rb matija.kecman

[CL 27830514 by sebastien lussier in ue5-main branch]
2023-09-13 10:28:02 -04:00
zach bethel
29f735f4a3 Modified scene proxy GetDynamicMeshElements calls to take a local command list instead of relying on the immediate command list and defer uniform expression cache invalidations.
- Calls to FRHICommandListImmediate::Get() replaced with Collector.GetRHICommandList()

#jira UE-194426

[CL 27813729 by zach bethel in ue5-main branch]
2023-09-12 18:32:22 -04:00
jimmy andrews
78fbcb1c6b Use deprecated typedef to fix FSelectedOjectsChangeList typo in ITF's ToolContextInterfaces
#jira UE-192620
#rb matija.kecman
#rb lonnie.li

[CL 27782397 by jimmy andrews in ue5-main branch]
2023-09-12 00:11:43 -04:00
zach bethel
6473b91df9 Hardened thread safety of render command pipe system and added ability to sync specific pipes.
- Added additional sync scopes to handle VT standalone path.

#jira UE-194136, FORT-648678, UE-194553, PLAY-12828

[CL 27691097 by zach bethel in ue5-main branch]
2023-09-07 17:51:23 -04:00
matija kecman
fccb4f9aff Scene sampling using a Render Capture approach
#rb jimmy.andrews
#jira UE-193152,UE-194653

[CL 27637471 by matija kecman in ue5-main branch]
2023-09-06 11:39:40 -04:00
sebastien lussier
9ba039e68e Approximate Actors - Allow approximate actors to use an array of components as input, rather than only actors
#rb patrick.enfedaque

[CL 27597062 by sebastien lussier in ue5-main branch]
2023-09-05 11:04:59 -04:00
sebastien lussier
825738d91d MeshModelingToolset - Render Capture: Use of the fallback material could be captured in some cases, as the first render could potentially trigger shader(s) compilation.
* After the render, test if there are assets pending compilation. If so, wait for compilation to complete and restart the scene capture.
#rb matija.kecman, ryan.schmidt

[CL 27593647 by sebastien lussier in ue5-main branch]
2023-09-05 08:42:15 -04:00
matija kecman
84bdab0304 Support Geometry Selection in the Tangents tool and fix some bugs
#jira UE-181650
#rb jimmy.andrews

[CL 27584315 by matija kecman in ue5-main branch]
2023-09-04 07:29:03 -04:00
kiaran ritchie
5375337bcc Adding select shell / grow / shrink to vertex selection modes.
#rb halfdan.ingvarsson

[CL 27327509 by kiaran ritchie in ue5-main branch]
2023-08-23 19:29:44 -04:00
dominic couture
8bc739dd3e This changelist contains various changes to allow the creation of FPrimitiveSceneProxy & FPrimtiveSceneInfos for meshes not associated with an AActor/UPrimitiveComponent pair. In other words, it's now possible to add primitives to FScene that aren't associated with AActors & UPrimitiveComponents. These are additional entry points, all existing code should continue to build & execute as is.
*Added FPrimitiveSceneDesc, a structure you can initialize with a description of the primitive you're trying to Add/Remove/Update in the FScene
-Added entry points in FSceneInterface to do those operations, legacy entry points using UPrimitiveComponent are untouched.
-The code that executes those operations in FScene has been refactored to be shared between the two entry points as much as possible to lessen the additional maintenance burden.


*Added FPrimitiveSceneProxyDesc/FStaticMeshSceneProxyDesc/FInstancedStaticMeshSceneProxyDesc, structures that hold all the necessary information to create a FPrimitiveSceneProxy/FStaticMeshSceneProxy/FInstancedStaticMeshSceneProxy without depending on AActors or UPrimitiveComponent.
-Those structures can be initialized by constructing them with the corresponding UPrimitiveComponents, or by constructing their default versions and initializing the desired fields.
-Creation code for FPrimitiveSceneProxy/FStaticMeshSceneProxy/FInstancedStaticMeshSceneProxy now takes all its info from those desc structures. They are created on demand during scene proxy creation for UPrimitiveComponents. This means no additional memory, and all serialized assets & blueprints are unaffected.


*Added IPrimitiveComponent/IStaticMeshComponent interfaces
-These allow for some editor-only interactions occurring during proxy creation, and serve as a common interface for some code that expected to manipulate UPrimitiveComponent/UStaticMeshComponents. For example FObjectCacheEventSink / FObjectCacheContext now uses those interfaces to associate the resources between various users and interactions like proxy recreation on shader/mesh changes occur through those interfaces.


* Misc
-Moved scene primitive related member variables into a new structure (FPrimitiveSceneInfoData) to facilitate code sharing and implementations of various related functionality (like SetLastRenderTime).
-Changed ObjectCacheContext to store associations between resources and components using component interfaces so that other systems creating proxies have the proper behaviors when resource changes require proxy recreation.
-Added natvis support so that component interfaces to UPrimitiveComponent/UStaticMeshComponent display the component ptr for easier debugging.
-Changed FMotionVectorSimulation to use UObject* instead of UPrimitiveComponent*, it was already using this internally
-Templatized some nanite helpers like ShouldCreateNaniteProxy & AuditMaterials since we need to use them from both UPrimitiveComponent & FPrimitiveSceneProxyDesc and it'll help make sure we keep them in sync.

#jira UE-191990

#rb Zach.Bethel, Ola.Olsson, Jason.Nadro, Krzysztof.Narkowicz

[CL 27200716 by dominic couture in ue5-main branch]
2023-08-18 09:26:39 -04:00
nathan mitchell
6fa4cb42f1 ModelingTools: Fix crash issue in the Simple Collision Editor when undoing a delete operation.
#rb Jimmy.Andrews
#jira UE-190149

[CL 26711848 by nathan mitchell in ue5-main branch]
2023-07-31 13:24:10 -04:00
matija kecman
d9a8710948 Fix ensure in BakeRC tool which occured when disabling a capture channel after cancelling a previous scene capture
#rb lonnie.li
#jira UE-191193

[CL 26611051 by matija kecman in ue5-main branch]
2023-07-26 12:38:53 -04:00
matija kecman
e4e99966ed Fix horde issue 337708 related to text conflicts in LOCTEXT
#rb trivial
#horde 337708

[CL 26601159 by matija kecman in ue5-main branch]
2023-07-26 04:49:50 -04:00
nathan mitchell
eec5c6c119 Modeling Mode: Fix issue where weightmaps are loaded with invalid values for a target when tools' settings are loaded with a preset.
#rb Jimmy.Andrews
#jira UE-188052

[CL 26590929 by nathan mitchell in ue5-main branch]
2023-07-25 17:57:32 -04:00
matija kecman
00ca171680 Fix crashes in BakeRC tool, improved the scene capture progress bar, improved and simplified the scene capture cancellation behavior
* Fixed a crash that occurred in the baking step when cancelling a scene capture which was triggered by changing an option which invalidated all photo sets (i.e., render capture resolution or capture anti aliasing). This was occurring because the baking step proceeded after the scene capture cancellation and the needed photosets were empty.

* Fixed a crash which can happen if you have no channel enabled, change cleanup tolerance from 0 to 1 and then enable the BaseColor channel. This was fixed by changing the behavior of the Cleanup Threshold property, if its positive the DeviceDepth capture is enabled and its disabled otherwise, previously we also required that another channel was enabled which led to the crash in the baking step. The new semantics are easier to understand in the code and and is probably an improvement to the UX as well since the Cleanup Threshold property behavior does not depend on other properties.

* Improved the scene capture cancellation: Users can now cancel the scene capture when the tool is starting up which is better UX since if they picked slow settings they don't intend to reuse, the capture can be cancelled, also, the code is simpler. Changed the behavior of the BakeRC tool properties so that after cancellation the completed captures with the desired settings are enabled. The old behavior where cancellation was documented to restore old results was broken and cannot be made to work unless we store the old results in a separate scene capture but for high capture resolutions that would require a lot of memory. When the SceneCapture is cancelled the channels which were pending and didn't complete are logged in the Output Log in case the user forgets which ones were enabled.

* Simplified the code in various places: Added `operator[](ERenderCaptureType)` to structs with per-capture data, and use it to simplify many places where we previously checked channels individually. Added conversion functions from tool properties/geometry script parameters to the render capture parameters. Removed old confusing logic that determined if a capture had been updated by tracking the number of photos in each photoset with a new system based on a new per-capture pending state. Deprecated a bunch of functions which are no longer useful or which used the wrong types (e.g., `FRenderCaptureUpdate` was added because I hadn't noticed `FRenderCaptureTypeFlags`). Changed the defaults in `FSceneCapturePhotoSet` so that the DeviceDepth capture is off, its an advanced feature and the defaults are intended to make the class friendly to new developers

#rb lonnie.li

[CL 26569987 by matija kecman in ue5-main branch]
2023-07-25 08:46:23 -04:00
semion piskarev
e3d5ff2bdc MeshModelingTools: Make depth bias in our materials less sensitive and adjust for FOV, and clean up the material graphs. Add options for dithered and dimmed occluded lines.
#rb Matija.Kecman
#jira UE-189441

[CL 26504582 by semion piskarev in ue5-main branch]
2023-07-20 22:54:18 -04:00
jimmy andrews
a4fbc0b633 make the 'simple collision editor' tool show hidden lines so that it is usable for collision that is hidden inside solid shapes
#rb rinat.abdrashitov

[CL 26442074 by jimmy andrews in ue5-main branch]
2023-07-18 14:45:34 -04:00
jimmy andrews
51c961876f Fix meshes that have 'recompute tangents' enabled not displaying with correct tangents after conversion to dynamic mesh + enable tangents on sculpt tools so 'original material' mode renders correctly when normal maps are used
#jira UE-189344
#rb rinat.abdrashitov

[CL 26408384 by jimmy andrews in ue5-main branch]
2023-07-17 11:25:00 -04:00
dan thompson
992eceb8f3 Texture2DBuilder shouldn't remove mips - this is unneeded, and in the use cases where the builder texture is reused as the final texture, causes issues.
[FYI] Ryan.Schmidt
#rb none
#jira UE-187796

[CL 26328949 by dan thompson in ue5-main branch]
2023-06-29 17:26:02 -04:00
tyson brochu
f605a439af Mesh Topology Selection Mechanic: enable/disable different selection modes in the details customization
#rb semion.piskarev

[CL 26319136 by tyson brochu in ue5-main branch]
2023-06-29 13:27:16 -04:00
christopher waters
4e96f4193d Removing UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_0 and UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_1 including all uses in the engine.
[CL 26259545 by christopher waters in ue5-main branch]
2023-06-27 11:54:23 -04:00
zach bethel
61a256b156 More command list conversions. Streaming buffers, vertex factories, and TUniformBufferRef.
[CL 26217320 by zach bethel in ue5-main branch]
2023-06-23 16:03:17 -04:00
matija kecman
fd4d7cfcde Fix horde issue 323832 about a warning caused by #inlcude "Engine.h", fixed by using #include "Engine/Engine.h" instead
#rb none

[CL 26181688 by matija kecman in ue5-main branch]
2023-06-22 10:21:01 -04:00