UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "ConvexVolume.h"
9#include "EngineDefines.h"
11#include "GameTime.h"
14#include "Math/MirrorMatrix.h"
16#include "RendererInterface.h"
17#include "RenderResource.h"
18#include "SceneViewOwner.h"
19#include "ShowFlags.h"
20#include "StereoRendering.h"
21#include "StereoRenderUtils.h"
22
23#define MAX_PHYSICS_FIELD_TARGETS 32
24
25class FSceneView;
32class ISceneRenderer;
34struct FMinimalViewInfo;
36{
37 class FCollector;
38}
39
41{
42
43class ITemporalUpscaler;
44
45}
46
47class FRenderTarget;
48
49// Projection data for a FSceneView
51{
54
57
60
61 //The unconstrained (no aspect ratio bars applied) view rectangle (also unscaled)
63
64 //The vector (including distance) from the camera to it's viewtarget, if set. Primarily only used for Ortho views.
66
67protected:
68 // The constrained view rectangle (identical to UnconstrainedUnscaledViewRect if aspect ratio is not constrained)
70
71public:
77
82
84 {
85 return (ConstrainedViewRect.Min.X >= 0) &&
86 (ConstrainedViewRect.Min.Y >= 0) &&
87 (ConstrainedViewRect.Width() > 0) &&
89 }
90
92 {
93 return ProjectionMatrix.M[3][3] < 1.0f;
94 }
95
96 const FIntRect& GetViewRect() const { return ViewRect; }
98
103
104 //Function for retrieving the NearPlane from the existing projection matrix
106 {
107 if (ProjectionMatrix.M[3][3] < 1.0f)
108 {
109 // Infinite projection with reversed Z.
110 return static_cast<float>(ProjectionMatrix.M[3][2]);
111 }
112 else
113 {
114 // Ortho projection with reversed Z.
115 return static_cast<float>((1.0f - ProjectionMatrix.M[3][2]) / (ProjectionMatrix.M[2][2] == 0.0f ? UE_DELTA : ProjectionMatrix.M[2][2]));
116 }
117 }
118
123
124 // Function for correcting Ortho camera near plane locations to avoid artifacts behind camera view origin
125 static ENGINE_API bool UpdateOrthoPlanes(FSceneViewProjectionData* InOutProjectionData, float& NearPlane, float& FarPlane, float HalfOrthoWidth, bool bUseCameraHeightAsViewTarget);
126 inline bool UpdateOrthoPlanes(float& NearPlane, float& FarPlane, float HalfOrthoWidth, bool bUseCameraHeightAsViewTarget)
127 {
128 return UpdateOrthoPlanes(this, NearPlane, FarPlane, HalfOrthoWidth, bUseCameraHeightAsViewTarget);
129 }
131 ENGINE_API bool UpdateOrthoPlanes(bool bUseCameraHeightAsViewTarget);
132};
133
136{
137 // Add spatial upscale pass at the end of post processing chain, before the secondary upscale.
139
140 // Let temporal AA's do the upscale.
142
143 // No upscaling or up sampling, just output the view rect smaller.
144 // This is useful for VR's render thread dynamic resolution with MSAA.
145 RawOutput,
146};
147
153{
154 // Helpful to work on aliasing issue on HighDPI monitors.
156
157 // Upscale to simulate smaller pixel density on HighDPI monitors.
159
160 // TODO: Same config as primary upscale?
161};
162
177
178// Construction parameters for a FSceneView
180{
184 FSceneViewOwner ViewActor; // TODO: Rename to ViewOwner
187
191
194
197
200
204
206
209
210 // -1,-1 if not setup
212
214
217
220
223
226
228 float FOV;
230
233
236
239
242
245
248
251
254
257
259 float CropFraction = 1.0f;
260
266
267#if WITH_EDITOR
270
273#endif
274
311};
312
313
315
317{
328
330 {
331 ProjectionMatrix.SetIdentity();
332 ProjectionNoAAMatrix.SetIdentity();
333 InvProjectionMatrix.SetIdentity();
334 ViewMatrix.SetIdentity();
335 InvViewMatrix.SetIdentity();
336 ViewProjectionMatrix.SetIdentity();
337 InvViewProjectionMatrix.SetIdentity();
338 HMDViewMatrixNoRoll.SetIdentity();
339 TranslatedViewMatrix.SetIdentity();
340 InvTranslatedViewMatrix.SetIdentity();
341 OverriddenTranslatedViewMatrix.SetIdentity();
342 OverriddenInvTranslatedViewMatrix.SetIdentity();
343 TranslatedViewProjectionMatrix.SetIdentity();
344 InvTranslatedViewProjectionMatrix.SetIdentity();
345 ScreenToClipMatrix.SetIdentity();
346 FirstPersonTransform.SetIdentity();
347 PreViewTranslation = FVector::ZeroVector;
348 ViewOrigin = FVector::ZeroVector;
349 CameraToViewTarget = FVector::ZeroVector;
350 ProjectionScale = FVector2D::ZeroVector;
351 TemporalAAProjectionJitter = FVector2D::ZeroVector;
352 ScreenScale = 1.f;
353 }
354
355 ENGINE_API FViewMatrices(const FMinimalInitializer& Initializer);
357
358private:
359
360 void Init(const FMinimalInitializer& Initializer);
361
363 FMatrix ProjectionMatrix;
365 FMatrix ProjectionNoAAMatrix;
367 FMatrix InvProjectionMatrix;
368 // WorldToView..
369 FMatrix ViewMatrix;
370 // ViewToWorld..
371 FMatrix InvViewMatrix;
372 // WorldToClip : UE projection matrix projects such that clip space Z=1 is the near plane, and Z=0 is the infinite far plane. */
373 FMatrix ViewProjectionMatrix;
374 // ClipToWorld : UE projection matrix projects such that clip space Z=1 is the near plane, and Z=0 is the infinite far plane. */
375 FMatrix InvViewProjectionMatrix;
376 // HMD WorldToView with roll removed
377 FMatrix HMDViewMatrixNoRoll;
379 FMatrix TranslatedViewMatrix;
381 FMatrix InvTranslatedViewMatrix;
383 FMatrix OverriddenTranslatedViewMatrix;
385 FMatrix OverriddenInvTranslatedViewMatrix;
387 FMatrix TranslatedViewProjectionMatrix;
389 FMatrix InvTranslatedViewProjectionMatrix;
391 FMatrix ScreenToClipMatrix;
393 FMatrix FirstPersonTransform;
395 FVector PreViewTranslation;
397 FVector ViewOrigin;
399 FVector CameraToViewTarget;
401 FVector2D ProjectionScale;
403 FVector2D TemporalAAProjectionJitter;
404
413 float ScreenScale;
414
416 float PerProjectionDepthThicknessScale;
417
419 FFirstPersonParameters FirstPersonParams;
420
421 //
422 // World = TranslatedWorld - PreViewTranslation
423 // TranslatedWorld = World + PreViewTranslation
424 //
425
426 // ----------------
427
428public:
429 ENGINE_API void UpdateViewMatrix(const FVector& ViewLocation, const FRotator& ViewRotation);
430
432
433 inline const FMatrix& GetProjectionMatrix() const
434 {
435 return ProjectionMatrix;
436 }
437
438 inline const FMatrix& GetProjectionNoAAMatrix() const
439 {
440 return ProjectionNoAAMatrix;
441 }
442
443 inline const FMatrix& GetInvProjectionMatrix() const
444 {
445 return InvProjectionMatrix;
446 }
447
448 inline const FMatrix& GetViewMatrix() const
449 {
450 return ViewMatrix;
451 }
452
453 inline const FMatrix& GetInvViewMatrix() const
454 {
455 return InvViewMatrix;
456 }
457
458 inline const FMatrix& GetViewProjectionMatrix() const
459 {
460 return ViewProjectionMatrix;
461 }
462
464 {
465 return InvViewProjectionMatrix;
466 }
467
468 inline const FMatrix& GetHMDViewMatrixNoRoll() const
469 {
470 return HMDViewMatrixNoRoll;
471 }
472
473 inline const FMatrix& GetTranslatedViewMatrix() const
474 {
475 return TranslatedViewMatrix;
476 }
477
479 {
480 return InvTranslatedViewMatrix;
481 }
482
484 {
485 return OverriddenTranslatedViewMatrix;
486 }
487
489 {
490 return OverriddenInvTranslatedViewMatrix;
491 }
492
494 {
495 return TranslatedViewProjectionMatrix;
496 }
497
499 {
500 return InvTranslatedViewProjectionMatrix;
501 }
502
503 inline const FMatrix& GetScreenToClipMatrix() const
504 {
505 return ScreenToClipMatrix;
506 }
507
508 inline const FMatrix& GetFirstPersonTransform() const
509 {
510 return FirstPersonTransform;
511 }
512
513 inline float GetFirstPersonScale() const
514 {
515 return FirstPersonParams.bUseParameters ? FirstPersonParams.Scale : 1.0f;
516 }
517
518 inline const FVector& GetPreViewTranslation() const
519 {
520 return PreViewTranslation;
521 }
522
523 inline const FVector& GetViewOrigin() const
524 {
525 return ViewOrigin;
526 }
527
528 inline const FVector& GetCameraToViewTarget() const
529 {
530 return CameraToViewTarget;
531 }
532
533 inline float GetScreenScale() const
534 {
535 return ScreenScale;
536 }
537
538 inline const FVector2D& GetProjectionScale() const
539 {
540 return ProjectionScale;
541 }
542
544 inline bool IsPerspectiveProjection() const
545 {
546 return ProjectionMatrix.M[3][3] < 1.0f;
547 }
548
550 {
551 //No concept of FOV for orthographic projection so only return perspective related values or 1.0f
553 {
554 return FVector2f(static_cast<float>(ProjectionMatrix.M[0][0]), static_cast<float>(ProjectionMatrix.M[1][1]));
555 }
556 return FVector2f(1.0f, 1.0f);
557 }
558
560 {
561 //No concept of FOV for orthographic projection so only return perspective related values or 1.0f
563 {
564 return FVector2f(static_cast<float>(InvProjectionMatrix.M[0][0]), static_cast<float>(InvProjectionMatrix.M[1][1]));
565 }
566 return FVector2f(1.0f,1.0f);
567 }
568
569 //Used for initializing the View Uniform Buffer TanAndInvTanHalfFOV variable without repeated calls to IsPerspectiveProjection
571 {
572 //No concept of FOV for orthographic projection so only return perspective related values or 1.0f
574 {
575 return FVector4f(static_cast<float>(InvProjectionMatrix.M[0][0]), //ClipToView[0][0] - X axis
576 static_cast<float>(InvProjectionMatrix.M[1][1]), //ClipToView[1][1] - Y axis
577 static_cast<float>(ProjectionMatrix.M[0][0]), //ViewToClip[0][0] - 1/X axis
578 static_cast<float>(ProjectionMatrix.M[1][1])); //ViewToClip[1][1] - 1/Y axis
579 }
580 return FVector4f(1.0f, 1.0f, 1.0f, 1.0f);
581 }
582
584 {
585 return PerProjectionDepthThicknessScale;
586 }
587
589
591
593 {
594 ProjectionNoAAMatrix = ProjectionMatrix;
595 }
596
598 {
599 ensure(TemporalAAProjectionJitter.X == 0.0f && TemporalAAProjectionJitter.Y == 0.0f);
600
601 TemporalAAProjectionJitter = InTemporalAAProjectionJitter;
602
604 {
605 ProjectionMatrix.M[2][0] += TemporalAAProjectionJitter.X;
606 ProjectionMatrix.M[2][1] += TemporalAAProjectionJitter.Y;
607 }
608 else
609 {
610 ProjectionMatrix.M[3][0] += TemporalAAProjectionJitter.X;
611 ProjectionMatrix.M[3][1] += TemporalAAProjectionJitter.Y;
612 }
613 InvProjectionMatrix = InvertProjectionMatrix(ProjectionMatrix);
614
615 RecomputeDerivedMatrices();
616 }
617
619 {
621 {
622 ProjectionMatrix.M[2][0] -= TemporalAAProjectionJitter.X;
623 ProjectionMatrix.M[2][1] -= TemporalAAProjectionJitter.Y;
624 }
625 else
626 {
627 ProjectionMatrix.M[3][0] -= TemporalAAProjectionJitter.X;
628 ProjectionMatrix.M[3][1] -= TemporalAAProjectionJitter.Y;
629 }
630 InvProjectionMatrix = InvertProjectionMatrix(ProjectionMatrix);
631
632 TemporalAAProjectionJitter = FVector2D::ZeroVector;
633 RecomputeDerivedMatrices();
634 }
635
637 {
638 FMatrix ProjNoAAMatrix = ProjectionMatrix;
639
641 {
642 ProjNoAAMatrix.M[2][0] -= TemporalAAProjectionJitter.X;
643 ProjNoAAMatrix.M[2][1] -= TemporalAAProjectionJitter.Y;
644 }
645 else
646 {
647 ProjNoAAMatrix.M[3][0] -= TemporalAAProjectionJitter.X;
648 ProjNoAAMatrix.M[3][1] -= TemporalAAProjectionJitter.Y;
649 }
650
651 return ProjNoAAMatrix;
652 }
653
654 inline const FVector2D GetTemporalAAJitter() const
655 {
656 return TemporalAAProjectionJitter;
657 }
658
660 {
661 return ViewMatrix.RemoveTranslation() * ProjectionMatrix;
662 }
663
665 {
666 return InvertProjectionMatrix( ComputeProjectionNoAAMatrix() );
667 }
668
669 // @return in radians (horizontal,vertical)
671 {
673 {
674 const FMatrix ClipToView = ComputeInvProjectionNoAAMatrix();
675
676 FVector VCenter = FVector(ClipToView.TransformPosition(FVector(0.0, 0.0, 0.0)));
677 FVector VUp = FVector(ClipToView.TransformPosition(FVector(0.0, 1.0, 0.0)));
678 FVector VRight = FVector(ClipToView.TransformPosition(FVector(1.0, 0.0, 0.0)));
679
680 VCenter.Normalize();
681 VUp.Normalize();
682 VRight.Normalize();
683
684 using ResultType = decltype(FVector2D::X);
685 return FVector2D((ResultType)FMath::Acos(VCenter | VRight), (ResultType)FMath::Acos(VCenter | VUp));
686 }
687 return FVector2D::Zero();
688 }
689
691 {
692 return ( ProjectionMatrix.M[3][3] - ProjectionMatrix.M[3][2] ) / ( ProjectionMatrix.M[2][2] - ProjectionMatrix.M[2][3] );
693 }
694
696 {
698 {
699 return ComputeNearPlane() - InvProjectionMatrix.M[2][2];
700 }
701 return 0.0;
702 }
703
704 void ApplyWorldOffset(const FVector& InOffset)
705 {
706 ViewOrigin+= InOffset;
707 PreViewTranslation-= InOffset;
708
709 ViewMatrix.SetOrigin(ViewMatrix.GetOrigin() + ViewMatrix.TransformVector(-InOffset));
710 InvViewMatrix.SetOrigin(ViewOrigin);
711 RecomputeDerivedMatrices();
712 }
713
715 {
717 {
718 return FVector2f(static_cast<float>(InvProjectionMatrix.M[0][0]) * 2.0f, static_cast<float>(InvProjectionMatrix.M[1][1]) * 2.0f);
719 }
721 }
722
723 // @return in radians (horizontal,vertical)
734
736 {
737 // No concept of FOV for orthographic projection so only return perspective related values or 1.0f
739 {
741 const float FOVCorrectionFactor = FirstPersonParams.bUseParameters ? FirstPersonParams.FOVCorrectionFactor : 1.0f;
742 // FOVCorrectionFactor = SceneTanHalfFOV / FirstPersonTanHalfFov -> FirstPersonTanHalfFov = SceneTanHalfFOV / FOVCorrectionFactor
744 SceneTanAndInvTanHalfFOV.X / FOVCorrectionFactor,
745 SceneTanAndInvTanHalfFOV.Y / FOVCorrectionFactor,
746 SceneTanAndInvTanHalfFOV.Z * FOVCorrectionFactor,
747 SceneTanAndInvTanHalfFOV.W * FOVCorrectionFactor);
749 }
750 return FVector4f(1.0f, 1.0f, 1.0f, 1.0f);
751 }
752
753private:
754 inline void RecomputeDerivedMatrices()
755 {
756 // Compute the view projection matrix and its inverse.
757 ViewProjectionMatrix = GetViewMatrix() * GetProjectionMatrix();
758 InvViewProjectionMatrix = GetInvProjectionMatrix() * GetInvViewMatrix();
759
760 // Compute a transform from view origin centered world-space to clip space.
761 TranslatedViewProjectionMatrix = GetTranslatedViewMatrix() * GetProjectionMatrix();
762 InvTranslatedViewProjectionMatrix = GetInvProjectionMatrix() * GetInvTranslatedViewMatrix();
763 }
764
765 static const FMatrix InvertProjectionMatrix( const FMatrix& M )
766 {
767 if( M.M[1][0] == 0.0f &&
768 M.M[3][0] == 0.0f &&
769 M.M[0][1] == 0.0f &&
770 M.M[3][1] == 0.0f &&
771 M.M[0][2] == 0.0f &&
772 M.M[1][2] == 0.0f &&
773 M.M[0][3] == 0.0f &&
774 M.M[1][3] == 0.0f &&
775 M.M[2][3] == 1.0f &&
776 M.M[3][3] == 0.0f )
777 {
778 // Solve the common case directly with very high precision.
779 /*
780 M =
781 | a | 0 | 0 | 0 |
782 | 0 | b | 0 | 0 |
783 | s | t | c | 1 |
784 | 0 | 0 | d | 0 |
785 */
786
787 double a = M.M[0][0];
788 double b = M.M[1][1];
789 double c = M.M[2][2];
790 double d = M.M[3][2];
791 double s = M.M[2][0];
792 double t = M.M[2][1];
793
794 return FMatrix(
795 FPlane( 1.0 / a, 0.0f, 0.0f, 0.0f ),
796 FPlane( 0.0f, 1.0 / b, 0.0f, 0.0f ),
797 FPlane( 0.0f, 0.0f, 0.0f, 1.0 / d ),
798 FPlane( -s/a, -t/b, 1.0f, -c/d )
799 );
800 }
801 else
802 {
803 return M.Inverse();
804 }
805 }
806};
807
809
810inline constexpr int MAX_MOBILE_SHADOWCASCADES = 4;
811
828
829
830
831
841
842#define SKY_IRRADIANCE_ENVIRONMENT_MAP_VEC4_COUNT 8
843
844//VIEW_UNIFORM_BUFFER_MEMBER(FMatrix44f, PrevProjection)
845//VIEW_UNIFORM_BUFFER_MEMBER(FMatrix44f, PrevViewProj)
846//VIEW_UNIFORM_BUFFER_MEMBER(FMatrix44f, PrevViewRotationProj)
847
848// View uniform buffer member declarations
849#define VIEW_UNIFORM_BUFFER_MEMBER_TABLE \
850 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, TranslatedWorldToClip) \
851 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, RelativeWorldToClip) \
852 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ClipToRelativeWorld) \
853 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, TranslatedWorldToView) \
854 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ViewToTranslatedWorld) \
855 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, TranslatedWorldToCameraView) \
856 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, CameraViewToTranslatedWorld) \
857 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ViewToClip) \
858 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ViewToClipNoAA) \
859 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ClipToView) \
860 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ClipToTranslatedWorld) \
861 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, SVPositionToTranslatedWorld) \
862 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ScreenToRelativeWorld) \
863 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ScreenToTranslatedWorld) \
864 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, MobileMultiviewShadowTransform) \
865 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, MobileMultiviewDecalTransform) \
866 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, FirstPersonTransform) \
867 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevFirstPersonTransform) \
868 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, ViewOriginHigh) \
869 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector3f, ViewForward, EShaderPrecisionModifier::Half) \
870 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector3f, ViewUp, EShaderPrecisionModifier::Half) \
871 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector3f, ViewRight, EShaderPrecisionModifier::Half) \
872 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(FVector3f, HMDViewNoRollUp, EShaderPrecisionModifier::Half) \
873 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(FVector3f, HMDViewNoRollRight, EShaderPrecisionModifier::Half) \
874 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, InvDeviceZToWorldZTransform) \
875 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(FVector4f, ScreenPositionScaleBias, EShaderPrecisionModifier::Half) \
876 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, ViewOriginLow) \
877 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, TranslatedWorldCameraOrigin) \
878 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, WorldViewOriginHigh) \
879 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, WorldViewOriginLow) \
880 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PreViewTranslationHigh) \
881 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PreViewTranslationLow) \
882 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevViewToClip) \
883 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevClipToView) \
884 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevTranslatedWorldToClip) \
885 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevTranslatedWorldToView) \
886 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevViewToTranslatedWorld) \
887 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevTranslatedWorldToCameraView) \
888 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevCameraViewToTranslatedWorld) \
889 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevTranslatedWorldCameraOrigin) \
890 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevWorldCameraOriginHigh) \
891 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevWorldCameraOriginLow) \
892 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevWorldViewOriginHigh) \
893 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevWorldViewOriginLow) \
894 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevPreViewTranslationHigh) \
895 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevPreViewTranslationLow) \
896 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, ViewTilePosition) \
897 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, RelativeWorldCameraOriginTO) \
898 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, RelativeWorldViewOriginTO) \
899 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, RelativePreViewTranslationTO) \
900 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevRelativeWorldCameraOriginTO) \
901 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, PrevRelativeWorldViewOriginTO) \
902 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, RelativePrevPreViewTranslationTO) \
903 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevClipToRelativeWorld) \
904 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, PrevScreenToTranslatedWorld) \
905 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ClipToPrevClip) \
906 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FMatrix44f, ClipToPrevClipWithAA) \
907 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, TemporalAAJitter) \
908 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, GlobalClippingPlane) \
909 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, FieldOfViewWideAngles) \
910 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, PrevFieldOfViewWideAngles) \
911 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, FirstPersonFieldOfViewWideAngles) \
912 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, PrevFirstPersonFieldOfViewWideAngles) \
913 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(FVector4f, ViewRectMin, EShaderPrecisionModifier::Half) \
914 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, ViewSizeAndInvSize) \
915 VIEW_UNIFORM_BUFFER_MEMBER(FUintVector4, ViewRectMinAndSize) \
916 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, LightProbeSizeRatioAndInvSizeRatio) \
917 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, BufferSizeAndInvSize) \
918 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, BufferBilinearUVMinMax) \
919 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, ScreenToViewSpace) \
920 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, BufferToSceneTextureScale) \
921 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, ResolutionFractionAndInv) \
922 VIEW_UNIFORM_BUFFER_MEMBER(int32, NumSceneColorMSAASamples) \
923 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(float, ProjectionDepthThicknessScale) \
924 VIEW_UNIFORM_BUFFER_MEMBER(float, PreExposure) \
925 VIEW_UNIFORM_BUFFER_MEMBER(float, OneOverPreExposure) \
926 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector4f, DiffuseOverrideParameter, EShaderPrecisionModifier::Half) \
927 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector4f, SpecularOverrideParameter, EShaderPrecisionModifier::Half) \
928 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector4f, NormalOverrideParameter, EShaderPrecisionModifier::Half) \
929 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector2f, RoughnessOverrideParameter, EShaderPrecisionModifier::Half) \
930 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector2f, AmbientOcclusionOverrideParameter, EShaderPrecisionModifier::Half) \
931 VIEW_UNIFORM_BUFFER_MEMBER(float, PrevFrameGameTime) \
932 VIEW_UNIFORM_BUFFER_MEMBER(float, PrevFrameRealTime) \
933 VIEW_UNIFORM_BUFFER_MEMBER_EX(float, OutOfBoundsMask, EShaderPrecisionModifier::Half) \
934 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector3f, WorldCameraMovementSinceLastFrame) \
935 VIEW_UNIFORM_BUFFER_MEMBER(float, CullingSign) \
936 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(float, NearPlane, EShaderPrecisionModifier::Half) \
937 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(float, OrthoFarPlane) \
938 VIEW_UNIFORM_BUFFER_MEMBER(float, GameTime) \
939 VIEW_UNIFORM_BUFFER_MEMBER(float, RealTime) \
940 VIEW_UNIFORM_BUFFER_MEMBER(float, DeltaTime) \
941 VIEW_UNIFORM_BUFFER_MEMBER(float, MaterialTextureMipBias) \
942 VIEW_UNIFORM_BUFFER_MEMBER(float, MaterialTextureDerivativeMultiply) \
943 VIEW_UNIFORM_BUFFER_MEMBER(uint32, Random) \
944 VIEW_UNIFORM_BUFFER_MEMBER(uint32, FrameNumber) \
945 VIEW_UNIFORM_BUFFER_MEMBER(uint32, FrameCounter) \
946 VIEW_UNIFORM_BUFFER_MEMBER(uint32, StateFrameIndexMod8) \
947 VIEW_UNIFORM_BUFFER_MEMBER(uint32, StateFrameIndex) \
948 VIEW_UNIFORM_BUFFER_MEMBER(uint32, StateOutputFrameIndex) \
949 VIEW_UNIFORM_BUFFER_MEMBER(uint32, DebugViewModeMask) \
950 VIEW_UNIFORM_BUFFER_MEMBER(uint32, WorldIsPaused) \
951 VIEW_UNIFORM_BUFFER_MEMBER_EX(float, CameraCut, EShaderPrecisionModifier::Half) \
952 VIEW_UNIFORM_BUFFER_MEMBER_EX(float, UnlitViewmodeMask, EShaderPrecisionModifier::Half) \
953 VIEW_UNIFORM_BUFFER_MEMBER_EX(FLinearColor, DirectionalLightColor, EShaderPrecisionModifier::Half) \
954 VIEW_UNIFORM_BUFFER_MEMBER_EX(FVector3f, DirectionalLightDirection, EShaderPrecisionModifier::Half) \
955 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, TranslucencyLightingVolumeMin, TVC_MAX) \
956 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, TranslucencyLightingVolumeInvSize, TVC_MAX) \
957 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, TemporalAAParams) \
958 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, CircleDOFParams) \
959 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldSensorWidth) \
960 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldFocalDistance) \
961 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldScale) \
962 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldFocalLength) \
963 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldFocalRegion) \
964 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldNearTransitionRegion) \
965 VIEW_UNIFORM_BUFFER_MEMBER(float, DepthOfFieldFarTransitionRegion) \
966 VIEW_UNIFORM_BUFFER_MEMBER(float, MotionBlurNormalizedToPixel) \
967 VIEW_UNIFORM_BUFFER_MEMBER(float, GeneralPurposeTweak) \
968 VIEW_UNIFORM_BUFFER_MEMBER(float, GeneralPurposeTweak2) \
969 VIEW_UNIFORM_BUFFER_MEMBER_EX(float, DemosaicVposOffset, EShaderPrecisionModifier::Half) \
970 VIEW_UNIFORM_BUFFER_MEMBER(float, DecalDepthBias) \
971 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, SceneColorTextureFormatQuantizationError) \
972 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, IndirectLightingColorScale) \
973 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, PrecomputedIndirectLightingColorScale) \
974 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, PrecomputedIndirectSpecularColorScale) \
975 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, AtmosphereLightDirection, NUM_ATMOSPHERE_LIGHTS) \
976 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FLinearColor, AtmosphereLightIlluminanceOnGroundPostTransmittance, NUM_ATMOSPHERE_LIGHTS) \
977 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FLinearColor, AtmosphereLightIlluminanceOuterSpace, NUM_ATMOSPHERE_LIGHTS) \
978 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FLinearColor, AtmosphereLightDiscLuminance, NUM_ATMOSPHERE_LIGHTS) \
979 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, AtmosphereLightDiscCosHalfApexAngle_PPTrans, NUM_ATMOSPHERE_LIGHTS) \
980 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SkyViewLutSizeAndInvSize) \
981 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, SkyCameraTranslatedWorldOrigin) \
982 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SkyPlanetTranslatedWorldCenterAndViewHeight) \
983 VIEW_UNIFORM_BUFFER_MEMBER(FMatrix44f, SkyViewLutReferential) \
984 VIEW_UNIFORM_BUFFER_MEMBER(FLinearColor, SkyAtmosphereSkyLuminanceFactor) \
985 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmospherePresentInScene) \
986 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereHeightFogContribution) \
987 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereBottomRadiusKm) \
988 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereTopRadiusKm) \
989 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SkyAtmosphereCameraAerialPerspectiveVolumeSizeAndInvSize) \
990 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereAerialPerspectiveStartDepthKm) \
991 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereCameraAerialPerspectiveVolumeDepthResolution) \
992 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereCameraAerialPerspectiveVolumeDepthResolutionInv) \
993 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereCameraAerialPerspectiveVolumeDepthSliceLengthKm) \
994 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereCameraAerialPerspectiveVolumeDepthSliceLengthKmInv) \
995 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyAtmosphereApplyCameraAerialPerspectiveVolume) \
996 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, NormalCurvatureToRoughnessScaleBias) \
997 VIEW_UNIFORM_BUFFER_MEMBER(float, RenderingReflectionCaptureMask) \
998 VIEW_UNIFORM_BUFFER_MEMBER(float, RealTimeReflectionCapture) \
999 VIEW_UNIFORM_BUFFER_MEMBER(float, RealTimeReflectionCapturePreExposure) \
1000 VIEW_UNIFORM_BUFFER_MEMBER(FLinearColor, AmbientCubemapTint) \
1001 VIEW_UNIFORM_BUFFER_MEMBER(float, AmbientCubemapIntensity) \
1002 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyLightApplyPrecomputedBentNormalShadowingFlag) \
1003 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyLightAffectReflectionFlag) \
1004 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyLightAffectGlobalIlluminationFlag) \
1005 VIEW_UNIFORM_BUFFER_MEMBER(FLinearColor, SkyLightColor) \
1006 VIEW_UNIFORM_BUFFER_MEMBER(float, SkyLightVolumetricScatteringIntensity) \
1007 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, MobileSkyIrradianceEnvironmentMap, SKY_IRRADIANCE_ENVIRONMENT_MAP_VEC4_COUNT) \
1008 VIEW_UNIFORM_BUFFER_MEMBER(float, MobilePreviewMode) \
1009 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(float, HMDEyePaddingOffset) \
1010 VIEW_UNIFORM_BUFFER_MEMBER_EX(float, ReflectionCubemapMaxMip, EShaderPrecisionModifier::Half) \
1011 VIEW_UNIFORM_BUFFER_MEMBER(float, ShowDecalsMask) \
1012 VIEW_UNIFORM_BUFFER_MEMBER(uint32, DistanceFieldAOSpecularOcclusionMode) \
1013 VIEW_UNIFORM_BUFFER_MEMBER(float, IndirectCapsuleSelfShadowingIntensity) \
1014 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, ReflectionEnvironmentRoughnessMixingScaleBiasAndLargestWeight) \
1015 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(int32, StereoPassIndex) \
1016 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, GlobalVolumeTranslatedCenterAndExtent, GlobalDistanceField::MaxClipmaps) \
1017 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, GlobalVolumeTranslatedWorldToUVAddAndMul, GlobalDistanceField::MaxClipmaps) \
1018 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, GlobalDistanceFieldMipTranslatedWorldToUVScale, GlobalDistanceField::MaxClipmaps) \
1019 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, GlobalDistanceFieldMipTranslatedWorldToUVBias, GlobalDistanceField::MaxClipmaps) \
1020 VIEW_UNIFORM_BUFFER_MEMBER(float, GlobalDistanceFieldMipFactor) \
1021 VIEW_UNIFORM_BUFFER_MEMBER(float, GlobalDistanceFieldMipTransition) \
1022 VIEW_UNIFORM_BUFFER_MEMBER(int32, GlobalDistanceFieldClipmapSizeInPages) \
1023 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, GlobalDistanceFieldInvPageAtlasSize) \
1024 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, GlobalDistanceFieldInvCoverageAtlasSize) \
1025 VIEW_UNIFORM_BUFFER_MEMBER(float, GlobalVolumeDimension) \
1026 VIEW_UNIFORM_BUFFER_MEMBER(float, GlobalVolumeTexelSize) \
1027 VIEW_UNIFORM_BUFFER_MEMBER(float, MaxGlobalDFAOConeDistance) \
1028 VIEW_UNIFORM_BUFFER_MEMBER(uint32, NumGlobalSDFClipmaps) \
1029 VIEW_UNIFORM_BUFFER_MEMBER(float, CoveredExpandSurfaceScale) \
1030 VIEW_UNIFORM_BUFFER_MEMBER(float, NotCoveredExpandSurfaceScale) \
1031 VIEW_UNIFORM_BUFFER_MEMBER(float, NotCoveredMinStepScale) \
1032 VIEW_UNIFORM_BUFFER_MEMBER(float, DitheredTransparencyStepThreshold) \
1033 VIEW_UNIFORM_BUFFER_MEMBER(float, DitheredTransparencyTraceThreshold) \
1034 VIEW_UNIFORM_BUFFER_MEMBER(float, ViewportScaleUI) \
1035 VIEW_UNIFORM_BUFFER_MEMBER(FIntPoint, CursorPosition) \
1036 VIEW_UNIFORM_BUFFER_MEMBER(float, bCheckerboardSubsurfaceProfileRendering) \
1037 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricFogInvGridSize) \
1038 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricFogGridZParams) \
1039 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogSVPosToVolumeUV) \
1040 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogViewGridUVToPrevViewRectUV) \
1041 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogPrevViewGridRectUVToResourceUV) \
1042 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogPrevUVMax) \
1043 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogPrevUVMaxForTemporalBlend) \
1044 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricFogPrevResourceGridSize) \
1045 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogScreenToResourceUV) \
1046 VIEW_UNIFORM_BUFFER_MEMBER(FVector2f, VolumetricFogUVMax) \
1047 VIEW_UNIFORM_BUFFER_MEMBER(float, VolumetricFogMaxDistance) \
1048 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricLightmapWorldToUVScale) \
1049 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricLightmapWorldToUVAdd) \
1050 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricLightmapIndirectionTextureSize) \
1051 VIEW_UNIFORM_BUFFER_MEMBER(float, VolumetricLightmapBrickSize) \
1052 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, VolumetricLightmapBrickTexelSize) \
1053 VIEW_UNIFORM_BUFFER_MEMBER(float, IndirectLightingCacheShowFlag) \
1054 VIEW_UNIFORM_BUFFER_MEMBER(float, EyeToPixelSpreadAngle) \
1055 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FVector4f, XRPassthroughCameraUVs, 2) \
1056 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, GlobalVirtualTextureMipBias) \
1057 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureFeedbackBufferSize) \
1058 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureFeedbackShift) \
1059 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureFeedbackMask) \
1060 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureFeedbackJitterOffset) \
1061 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureFeedbackSampleOffset) \
1062 VIEW_UNIFORM_BUFFER_MEMBER(uint32, VirtualTextureExtendedDebugBufferSize) \
1063 VIEW_UNIFORM_BUFFER_MEMBER(int32, FarShadowStaticMeshLODBias) \
1064 VIEW_UNIFORM_BUFFER_MEMBER(float, MinRoughness) \
1065 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, HairRenderInfo) \
1066 VIEW_UNIFORM_BUFFER_MEMBER(uint32, EnableSkyLight) \
1067 VIEW_UNIFORM_BUFFER_MEMBER(uint32, HairRenderInfoBits) \
1068 VIEW_UNIFORM_BUFFER_MEMBER(uint32, HairComponents) \
1069 VIEW_UNIFORM_BUFFER_MEMBER(float, bSubsurfacePostprocessEnabled) \
1070 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SSProfilesTextureSizeAndInvSize) \
1071 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SSProfilesPreIntegratedTextureSizeAndInvSize) \
1072 VIEW_UNIFORM_BUFFER_MEMBER(FVector4f, SpecularProfileTextureSizeAndInvSize) \
1073 VIEW_UNIFORM_BUFFER_MEMBER(FVector3f, PhysicsFieldClipmapCenter) \
1074 VIEW_UNIFORM_BUFFER_MEMBER(float, PhysicsFieldClipmapDistance) \
1075 VIEW_UNIFORM_BUFFER_MEMBER(int, PhysicsFieldClipmapResolution) \
1076 VIEW_UNIFORM_BUFFER_MEMBER(int, PhysicsFieldClipmapExponent) \
1077 VIEW_UNIFORM_BUFFER_MEMBER(int, PhysicsFieldClipmapCount) \
1078 VIEW_UNIFORM_BUFFER_MEMBER(int, PhysicsFieldTargetCount) \
1079 VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(FIntVector4, PhysicsFieldTargets, MAX_PHYSICS_FIELD_TARGETS) \
1080 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(uint32, GPUSceneViewId) \
1081 VIEW_UNIFORM_BUFFER_MEMBER(float, ViewResolutionFraction) \
1082 VIEW_UNIFORM_BUFFER_MEMBER(float, SubSurfaceColorAsTransmittanceAtDistanceInMeters) \
1083 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, TanAndInvTanHalfFOV) \
1084 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, PrevTanAndInvTanHalfFOV) \
1085 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, FirstPersonTanAndInvTanHalfFOV) \
1086 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, PrevFirstPersonTanAndInvTanHalfFOV) \
1087 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector2f, WorldDepthToPixelWorldRadius) \
1088 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, ScreenRayLengthMultiplier) \
1089 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, GlintLUTParameters0) \
1090 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(FVector4f, GlintLUTParameters1) \
1091 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(float, FirstPersonScale) \
1092 VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(float, PrevFirstPersonScale) \
1093 VIEW_UNIFORM_BUFFER_MEMBER(float, MaterialMaxEmissiveValue) \
1094 VIEW_UNIFORM_BUFFER_MEMBER(int32, PostVolumeUserFlags) \
1095 VIEW_UNIFORM_BUFFER_MEMBER(FIntVector4, EnvironmentComponentsFlags) \
1096 VIEW_UNIFORM_BUFFER_MEMBER(uint32, bPrimitiveAlphaHoldoutEnabled) \
1097
1099#define VIEW_UNIFORM_BUFFER_MEMBER(type, identifier) \
1100 SHADER_PARAMETER(type, identifier)
1101
1102#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(type, identifier) \
1103 SHADER_PARAMETER(type, identifier)
1104
1105#define VIEW_UNIFORM_BUFFER_MEMBER_EX(type, identifier, precision) \
1106 SHADER_PARAMETER_EX(type, identifier, precision)
1107
1108#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(type, identifier, precision) \
1109 SHADER_PARAMETER_EX(type, identifier, precision)
1110
1111#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(type, identifier, dimension) \
1112 SHADER_PARAMETER_ARRAY(type, identifier, [dimension])
1113
1114#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW(type, identifier, dimension) \
1115 SHADER_PARAMETER_ARRAY(type, identifier, [dimension])
1116
1118
1120
1121 // Same as Wrap_WorldGroupSettings and Clamp_WorldGroupSettings, but with mipbias=MaterialTextureMipBias.
1124
1125 SHADER_PARAMETER_TEXTURE(Texture3D<uint4>, VolumetricLightmapIndirectionTexture) // FPrecomputedVolumetricLightmapLightingPolicy
1126 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickAmbientVector) // FPrecomputedVolumetricLightmapLightingPolicy
1127 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients0) // FPrecomputedVolumetricLightmapLightingPolicy
1128 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients1) // FPrecomputedVolumetricLightmapLightingPolicy
1129 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients2) // FPrecomputedVolumetricLightmapLightingPolicy
1130 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients3) // FPrecomputedVolumetricLightmapLightingPolicy
1131 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients4) // FPrecomputedVolumetricLightmapLightingPolicy
1132 SHADER_PARAMETER_TEXTURE(Texture3D, VolumetricLightmapBrickSHCoefficients5) // FPrecomputedVolumetricLightmapLightingPolicy
1133 SHADER_PARAMETER_TEXTURE(Texture3D, SkyBentNormalBrickTexture) // FPrecomputedVolumetricLightmapLightingPolicy
1134 SHADER_PARAMETER_TEXTURE(Texture3D, DirectionalLightShadowingBrickTexture) // FPrecomputedVolumetricLightmapLightingPolicy
1135
1136 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapBrickAmbientVectorSampler) // FPrecomputedVolumetricLightmapLightingPolicy
1137 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler0) // FPrecomputedVolumetricLightmapLightingPolicy
1138 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler1) // FPrecomputedVolumetricLightmapLightingPolicy
1139 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler2) // FPrecomputedVolumetricLightmapLightingPolicy
1140 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler3) // FPrecomputedVolumetricLightmapLightingPolicy
1141 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler4) // FPrecomputedVolumetricLightmapLightingPolicy
1142 SHADER_PARAMETER_SAMPLER(SamplerState, VolumetricLightmapTextureSampler5) // FPrecomputedVolumetricLightmapLightingPolicy
1143 SHADER_PARAMETER_SAMPLER(SamplerState, SkyBentNormalTextureSampler) // FPrecomputedVolumetricLightmapLightingPolicy
1144 SHADER_PARAMETER_SAMPLER(SamplerState, DirectionalLightShadowingTextureSampler) // FPrecomputedVolumetricLightmapLightingPolicy
1145
1153
1154 SHADER_PARAMETER_TEXTURE(Texture2D, AtmosphereTransmittanceTexture)
1156 SHADER_PARAMETER_TEXTURE(Texture2D, AtmosphereIrradianceTexture)
1158 SHADER_PARAMETER_TEXTURE(Texture3D, AtmosphereInscatterTexture)
1174 SHADER_PARAMETER_SRV(StructuredBuffer<float4>, SkyIrradianceEnvironmentMap)
1175 // Atmosphere
1176 SHADER_PARAMETER_TEXTURE(Texture2D, TransmittanceLutTexture)
1186 SHADER_PARAMETER_SRV(StructuredBuffer<float4>, DistantSkyLightLutBufferSRV)
1187 SHADER_PARAMETER_SRV(Buffer<float4>, MobileDistantSkyLightLutBufferSRV)
1188 // Hair
1191 // GGX/Sheen LTC textures
1192 SHADER_PARAMETER_TEXTURE(Texture2D, GGXLTCMatTexture)
1194 SHADER_PARAMETER_TEXTURE(Texture2D, GGXLTCAmpTexture)
1196 SHADER_PARAMETER_TEXTURE(Texture2D, SheenLTCTexture)
1198 // Energy conservation
1206 // Glints
1209 // Simple volume texture
1210 SHADER_PARAMETER_TEXTURE(Texture3D<float>, SimpleVolumeTexture)
1212 SHADER_PARAMETER_TEXTURE(Texture3D<float>, SimpleVolumeEnvTexture)
1214 // SSS
1220 // Specular Profile
1223 // Water
1226 SHADER_PARAMETER(int32, WaterInfoTextureViewIndex)
1227 // Rect light atlas
1232 // IES atlas
1236 // Landscape
1238 SHADER_PARAMETER_SRV(Buffer<uint>, LandscapeIndirection)
1240
1242
1244
1245 // Blue noise texture
1246 SHADER_PARAMETER_TEXTURE(Texture2D<float>, BlueNoiseScalarTexture)
1249
1250 // Ray tracing
1253
1255
1256#undef VIEW_UNIFORM_BUFFER_MEMBER
1257#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW
1258#undef VIEW_UNIFORM_BUFFER_MEMBER_EX
1259#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX
1260#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY
1261#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW
1262
1264#define INSTANCED_VIEW_COUNT 2
1265
1266#define VIEW_UNIFORM_BUFFER_MEMBER(type, identifier) \
1267 SHADER_PARAMETER(type, identifier)
1268
1269#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(type, identifier) \
1270 SHADER_PARAMETER_ARRAY(TShaderParameterTypeInfo<type>::TInstancedType, identifier, [INSTANCED_VIEW_COUNT])
1271
1272#define VIEW_UNIFORM_BUFFER_MEMBER_EX(type, identifier, precision) \
1273 SHADER_PARAMETER_EX(type, identifier, precision)
1274
1275#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(type, identifier, precision) \
1276 SHADER_PARAMETER_ARRAY_EX(TShaderParameterTypeInfo<type>::TInstancedType, identifier, [INSTANCED_VIEW_COUNT], precision)
1277
1278#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(type, identifier, dimension) \
1279 SHADER_PARAMETER_ARRAY(type, identifier, [dimension])
1280
1281#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW(type, identifier, dimension) \
1282 SHADER_PARAMETER_ARRAY(type, identifier, [dimension * INSTANCED_VIEW_COUNT])
1283
1287
1288#undef VIEW_UNIFORM_BUFFER_MEMBER
1289#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW
1290#undef VIEW_UNIFORM_BUFFER_MEMBER_EX
1291#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX
1292#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY
1293#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW
1294
1295#define VIEW_UNIFORM_BUFFER_MEMBER(type, identifier) \
1296 if ( CopyViewId == 0 ) \
1297 { \
1298 FMemory::Memcpy(&InstancedViewParameters.identifier, &ViewParameters.identifier, sizeof(type)); \
1299 }
1300
1301// since per-view attributes are of type type, but the backing structure is TInstancedType for 16 byte alignment, we'd need to mem0 the rest,
1302// but we rely on FInstancedViewUniformShaderParameters zeroing itself in the constructor
1303#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(type, identifier) \
1304 FMemory::Memcpy(&InstancedViewParameters.identifier[CopyViewId], &ViewParameters.identifier, sizeof(type)); \
1305 check(FMemory::MemIsZero(((uint8*) &InstancedViewParameters.identifier[CopyViewId]) + sizeof(type), sizeof(TShaderParameterTypeInfo<type>::TInstancedType) - sizeof(type)));
1306
1307#define VIEW_UNIFORM_BUFFER_MEMBER_EX(type, identifier, precision) \
1308 if ( CopyViewId == 0 ) \
1309 { \
1310 FMemory::Memcpy(&InstancedViewParameters.identifier, &ViewParameters.identifier, sizeof(type)); \
1311 }
1312
1313#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(type, identifier, precision) \
1314 FMemory::Memcpy(&InstancedViewParameters.identifier[CopyViewId], &ViewParameters.identifier, sizeof(type)); \
1315 check(FMemory::MemIsZero(((uint8*)&InstancedViewParameters.identifier[CopyViewId]) + sizeof(type), sizeof(TShaderParameterTypeInfo<type>::TInstancedType) - sizeof(type)));
1316
1317#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(type, identifier, dimension) \
1318 if ( CopyViewId == 0 ) \
1319 { \
1320 for (uint32 ElementIndex = 0; ElementIndex < dimension; ElementIndex++) \
1321 { \
1322 FMemory::Memcpy(&InstancedViewParameters.identifier[CopyViewId * dimension + ElementIndex], &ViewParameters.identifier[ElementIndex], sizeof(type)); \
1323 } \
1324 }
1325
1326#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW(type, identifier, dimension) \
1327 for (uint32 ElementIndex = 0; ElementIndex < dimension; ElementIndex++) \
1328 { \
1329 FMemory::Memcpy(&InstancedViewParameters.identifier[CopyViewId * dimension + ElementIndex], &ViewParameters.identifier[ElementIndex], sizeof(type)); \
1330 check(FMemory::MemIsZero(((uint8*) &InstancedViewParameters.identifier[CopyViewId * dimension + ElementIndex]) + sizeof(type), sizeof(TShaderParameterTypeInfo<type>::TInstancedType) - sizeof(type))); \
1331 }
1332
1340
1341#undef VIEW_UNIFORM_BUFFER_MEMBER
1342#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW
1343#undef VIEW_UNIFORM_BUFFER_MEMBER_EX
1344#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX
1345#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY
1346#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW
1347
1349#define VIEW_UNIFORM_BUFFER_MEMBER(type, identifier) \
1350 FMemory::Memcpy(&DstView.identifier, &SrcView.identifier, sizeof(type));
1351
1352#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW(type, identifier) \
1353 FMemory::Memcpy(&DstView.identifier, &SrcView.identifier, sizeof(type));
1354
1355#define VIEW_UNIFORM_BUFFER_MEMBER_EX(type, identifier, precision) \
1356 FMemory::Memcpy(&DstView.identifier, &SrcView.identifier, sizeof(type));
1357
1358#define VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX(type, identifier, precision) \
1359 FMemory::Memcpy(&DstView.identifier, &SrcView.identifier, sizeof(type));
1360
1361#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY(type, identifier, dimension) \
1362 for (uint32 ElementIndex = 0; ElementIndex < dimension; ElementIndex++) \
1363 { \
1364 FMemory::Memcpy(&DstView.identifier[ElementIndex], &SrcView.identifier[ElementIndex], sizeof(type)); \
1365 } \
1366
1367#define VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW(type, identifier, dimension) \
1368 for (uint32 ElementIndex = 0; ElementIndex < dimension; ElementIndex++) \
1369 { \
1370 FMemory::Memcpy(&DstView.identifier[ElementIndex], &SrcView.identifier[ElementIndex], sizeof(type)); \
1371 } \
1372
1374{
1375 // This only copy the base view, not any instanced view data.
1376 static void CopyViewParametersOnly(FViewUniformShaderParameters& DstView, const FViewUniformShaderParameters& SrcView)
1377 {
1379 }
1380}
1381
1382#undef VIEW_UNIFORM_BUFFER_MEMBER
1383#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW
1384#undef VIEW_UNIFORM_BUFFER_MEMBER_EX
1385#undef VIEW_UNIFORM_BUFFER_MEMBER_PER_VIEW_EX
1386#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY
1387#undef VIEW_UNIFORM_BUFFER_MEMBER_ARRAY_PER_VIEW
1388
1389#undef INSTANCED_VIEW_COUNT
1390#undef VIEW_UNIFORM_BUFFER_MEMBER_TABLE
1391
1396
1398{
1400 {
1401 None = 0,
1404 };
1405}
1406
1413
1414// Hacky base class to avoid 8 bytes of padding after the vtable
1416{
1417public:
1418 virtual ~FSceneViewFixLayout() = default;
1419};
1420
1425{
1426public:
1430
1433
1434private:
1436 const FConvexVolume* DynamicMeshElementsShadowCullFrustum;
1438 FVector PreShadowTranslation;
1439
1440 TSharedPtr<FConvexVolume> StereoCullingFrustum;
1441 void SetupViewFrustum();
1442
1443public:
1445
1447 FSceneViewOwner ViewActor; // TODO: Rename to ViewOwner
1448
1451
1454
1455 /* Final position of the view in the final render target (in pixels), potentially constrained by an aspect ratio requirement (black bars) */
1457
1458 /* Raw view size (in pixels), used for screen space calculations */
1460
1463
1465
1473
1474 UE_DEPRECATED(5.6, "Use GetShadowViewMatrices instead")
1476
1477#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1479#else
1480 const FViewMatrices& GetShadowViewMatrices() const { return ViewMatrices; }
1481#endif
1482
1484
1487
1490
1493
1496
1499
1502
1505
1508
1511
1512 // Whether to use FOV when computing mesh LOD.
1514
1515 // Whether this view should use an HMD hidden area mask where appropriate.
1517
1519 float FOV;
1521
1523
1526
1529
1532
1535
1538
1541
1544
1547
1550
1553
1556
1557#if WITH_EDITOR
1558 /* Whether to use the pixel inspector */
1559 bool bUsePixelInspector;
1560#endif //WITH_EDITOR
1561
1571
1574
1577
1580
1581 // Derived members.
1582
1584
1586
1587 UE_DEPRECATED(5.6, "Use GetCullingFrustum() instead.")
1589
1591 {
1592 return StereoCullingFrustum ? *StereoCullingFrustum : ViewFrustum;
1593 }
1594
1596
1598
1600
1603
1606
1607 /* Vector used by shaders to convert depth buffer samples into z coordinates in world space */
1609
1612
1615
1618
1619 // -1,-1 if not setup
1621
1624
1627
1629
1632
1635
1638
1645
1648
1651
1654
1657
1660
1663
1669
1672
1675
1678
1681
1685
1690
1693
1696
1699
1702
1705
1708
1711
1717
1720
1723
1731
1738
1741
1745
1746#if WITH_EDITOR
1749
1752
1756 FLinearColor SelectionOutlineColor;
1758 FLinearColor SubduedSelectionOutlineColor;
1763
1766#endif
1767
1773#if DEBUG_POST_PROCESS_VOLUME_ENABLE
1775#endif
1776
1777 // The antialiasing method.
1779
1780 // Primary screen percentage method to use.
1782
1787
1793
1811
1815
1818
1820 float InFocusDistance = 0.0;
1821
1824
1827
1830
1832 bool bAllowRayTracing = true;
1833
1836
1839
1840protected:
1841 friend class FSceneRenderer;
1842
1845
1846public:
1847
1849 ENGINE_API FSceneView(const FSceneViewInitOptions& InitOptions);
1850
1853 FSceneView(const FSceneView& Other) = default;
1856
1859
1860#if DO_CHECK || USING_CODE_ANALYSIS
1862 ENGINE_API bool VerifyMembersChecks() const;
1863#endif
1864
1866
1869
1872
1875
1877 ENGINE_API FVector4 PixelToScreen(float X,float Y,float Z) const;
1878
1880 ENGINE_API FVector4 CursorToScreen(float X, float Y, float Z) const;
1881
1884
1886 ENGINE_API FVector4 PixelToWorld(float X,float Y,float Z) const;
1887
1893
1899
1907
1917 static ENGINE_API void DeprojectScreenToWorld(const FVector2D& ScreenPos, const FIntRect& ViewRect, const FMatrix& InvViewMatrix, const FMatrix& InvProjMatrix, FVector& out_WorldOrigin, FVector& out_WorldDirection);
1918
1921
1930 static ENGINE_API bool ProjectWorldToScreen(const FVector& WorldPosition, const FIntRect& ViewRect, const FMatrix& ViewProjectionMatrix, FVector2D& out_ScreenPos, bool bShouldCalcOutsideViewPosition = false);
1931
1933 inline FVector GetViewUp() const { return ViewMatrices.GetViewMatrix().GetColumn(1); }
1935
1936 inline const FConvexVolume* GetDynamicMeshElementsShadowCullFrustum() const { return DynamicMeshElementsShadowCullFrustum; }
1938
1939 inline const FVector& GetPreShadowTranslation() const { return PreShadowTranslation; }
1941
1944
1945 bool IsUnderwater() const { return UnderwaterDepth > 0.0f; }
1946
1952
1957
1962
1967
1972
1974
1977
1980
1983
1989
1992
1994
1997
1998#if !(UE_BUILD_SHIPPING)
2001#endif
2002
2005
2008
2010 ENGINE_API bool IsInstancedStereoPass() const;
2011
2014
2017 const FIntPoint& InBufferSize,
2020 const FViewMatrices& InPrevViewMatrice) const;
2021
2022 static ENGINE_API FVector4f GetScreenPositionScaleBias(const FIntPoint& BufferSize, const FIntRect& ViewRect);
2023
2030 const FIntPoint& InBufferSize,
2031 int32 NumMSAASamples,
2034 const FViewMatrices& InPrevViewMatrices) const;
2035
2038
2041
2044
2047
2050
2053
2055 inline bool IsPrimarySceneView() const
2056 {
2057 return GetPrimarySceneView() == this;
2058 }
2059
2062
2064 inline bool IsInstancedSceneView() const
2065 {
2066 return GetInstancedSceneView() == this;
2067 }
2068
2071
2077
2083
2085
2086 inline bool IsRayTracingAllowedForView() const
2087 {
2089 }
2090
2091 inline bool HasEyeAdaptationViewState() const
2092 {
2093 return EyeAdaptationViewState != nullptr;
2094 }
2095
2096protected:
2098
2100
2103};
2104
2106
2107// for r.DisplayInternals (allows for easy passing down data from main to render thread)
2109{
2110 //
2112 // -1 if not set, from IStreamingManager::Get().StreamAllResources(Duration) in FStreamAllResourcesLatentCommand
2114
2121
2122 // called on main thread
2123 // @param World may be 0
2124 void Setup(UWorld *World);
2125
2126 bool IsValid() const { return DisplayInternalsCVarValue != 0; }
2127};
2128
2130
2135{
2136protected:
2142
2143 friend class FSceneViewFamily;
2144};
2145
2150{
2151public:
2153 virtual const TCHAR* GetSubclassIdentifier() const = 0;
2154};
2155
2156
2157/*
2158 * Game thread and render thread interface that takes care of a FSceneViewFamily's screen percentage.
2159 *
2160 * The renderer reserves the right to delete and replace the view family's screen percentage interface
2161 * for testing purposes with the r.Test.OverrideScreenPercentageInterface CVar.
2162 */
2164{
2165public:
2166 // Sets the minimal and max screen percentage.
2167 static constexpr float kMinResolutionFraction = 0.01f;
2168 static constexpr float kMaxResolutionFraction = 4.0f;
2169
2170 // Sets the minimal and maximal screen percentage for TSR.
2171 static constexpr float kMinTSRResolutionFraction = 0.25f;
2172 static constexpr float kMaxTSRResolutionFraction = 2.0f;
2173
2174 // Sets the minimal and maximal screen percentage for TAAU.
2175 static constexpr float kMinTAAUpsampleResolutionFraction = 0.5f;
2176 static constexpr float kMaxTAAUpsampleResolutionFraction = 2.0f;
2177
2178#if DO_CHECK || USING_CODE_ANALYSIS
2179 static bool IsValidResolutionFraction(float ResolutionFraction)
2180 {
2181 return ResolutionFraction >= kMinResolutionFraction && ResolutionFraction <= kMaxResolutionFraction;
2182 }
2183#endif
2184
2190
2192 virtual ISceneViewFamilyScreenPercentage* Fork_GameThread(const class FSceneViewFamily& ViewFamily) const = 0;
2193
2194protected:
2200
2201 friend class FSceneViewFamily;
2202 friend class FSceneRenderer;
2203};
2204
2205
2207
2212{
2213public:
2224 {
2231
2236 );
2237
2241
2244
2247
2252
2255
2258
2261
2264
2267
2270
2273
2279
2282 {
2283 Time = InTime;
2284 bTimesSet = true;
2285 return *this;
2286 }
2287
2290
2293
2295 ConstructionValues& SetDeferClear(const bool Value) { bDeferClear = Value; return *this; }
2296
2299
2302
2305 };
2306
2309
2312
2315
2319
2322
2325
2328
2331
2334
2337
2340
2343
2346
2349
2350#if WITH_MGPU
2352 bool bForceCopyCrossGPU = false;
2353#endif
2354
2355 UE_DEPRECATED(5.6, "bIsMultipleViewFamily is no longer used")
2357
2364
2366
2369
2375
2381
2382
2385
2388
2394
2397
2400
2402 float DebugDPIScale = 1.0f;
2403
2406
2409
2410 // for r.DisplayInternals (allows for easy passing down data from main to render thread)
2412
2419
2420 // Override the LOD of landscape in this viewport
2422
2425
2428
2431
2432#if WITH_EDITOR
2434 bool bDrawBaseInfo;
2435
2442 bool bNullifyWorldSpacePosition;
2443#endif
2444
2445 // Optional description of view family for Unreal Insights profiling
2447
2448 UE_DEPRECATED(5.6, "This member is no longer used")
2450
2453
2458
2460
2462
2463#if WITH_DEBUG_VIEW_MODES
2464 UE_DEPRECATED(5.7, "Use GetDebugViewShaderMode()")
2466 UE_DEPRECATED(5.7, "Use GetViewModeParam()")
2468 UE_DEPRECATED(5.7, "Use GetViewModeParamName()")
2470
2471 UE_DEPRECATED(5.7, "Use GetDebugViewShaderMode()")
2473
2475 // Return the debug viewmode last set by SetDebugViewShaderMode.
2476 // If no debug viewmode was set, this function will set one based on showflags.
2479 inline int32 GetViewModeParam() const { return ViewModeParam; }
2480 inline const FName& GetViewModeParamName() const { return ViewModeParamName; }
2481 inline bool UseDebugViewPS() const { return GetDebugViewShaderMode() != DVSM_None; }
2483#else
2484 inline EDebugViewShaderMode GetDebugViewShaderMode() const { return DVSM_None; }
2486 inline int32 GetViewModeParam() const { return -1; }
2487 inline FName GetViewModeParamName() const { return NAME_None; }
2488 inline bool UseDebugViewPS() const { return false; }
2489#endif
2490
2493
2494 inline bool AllowTranslucencyAfterDOF() const { return bAllowTranslucencyAfterDOF; }
2495
2496 inline bool AllowStandardTranslucencySeparated() const { return bAllowStandardTranslucencySeparated; }
2497
2499 {
2500 return ScreenPercentageInterface;
2501 }
2502
2513 {
2515 checkf(ScreenPercentageInterface == nullptr, TEXT("View family already had a screen percentage interface assigned."));
2516 ScreenPercentageInterface = InScreenPercentageInterface;
2517 }
2518
2523
2524 // View family assignment operator is not allowed because of ScreenPercentageInterface lifetime.
2525 void operator = (const FSceneViewFamily&) = delete;
2526
2527 // Allow moving view family as long as no screen percentage interface are set.
2529
2530 template<typename TExtensionData> const TExtensionData* GetExtentionData() const
2531 {
2532 static_assert(TIsDerivedFrom<TExtensionData, ISceneViewFamilyExtentionData>::Value, "TExtensionData is not derived from ISceneViewFamilyExtentionData.");
2533
2535 {
2536 if (ViewExtensionData->GetSubclassIdentifier() == TExtensionData::GSubclassIdentifier)
2537 {
2538 return static_cast<const TExtensionData*>(&ViewExtensionData.Get());
2539 }
2540 }
2541 return nullptr;
2542 }
2543
2544 template<typename TExtensionData> TExtensionData* GetExtentionData()
2545 {
2546 return const_cast<TExtensionData*>(AsConst(*this).GetExtentionData<TExtensionData>());
2547 }
2548
2549 template<typename TExtensionData> TExtensionData* GetOrCreateExtentionData()
2550 {
2552 if (!ViewExtensionData)
2553 {
2554 ViewExtentionDatas.Push(MakeShared<TExtensionData>());
2555 ViewExtensionData = static_cast<TExtensionData*>(&ViewExtentionDatas.Last().Get());
2556 check(ViewExtensionData->GetSubclassIdentifier() == TExtensionData::GSubclassIdentifier);
2557 }
2558 return ViewExtensionData;
2559 }
2560
2562 {
2564 checkf(TemporalUpscalerInterface == nullptr, TEXT("View family already had a temporal upscaler assigned."));
2565 TemporalUpscalerInterface = InTemporalUpscalerInterface;
2566 }
2567
2569 {
2570 return TemporalUpscalerInterface;
2571 }
2572
2574 {
2576 checkf(PrimarySpatialUpscalerInterface == nullptr, TEXT("View family already had a primary spatial upscaler assigned."));
2577 PrimarySpatialUpscalerInterface = InSpatialUpscalerInterface;
2578 }
2579
2581 {
2582 return PrimarySpatialUpscalerInterface;
2583 }
2584
2586 {
2588 checkf(SecondarySpatialUpscalerInterface == nullptr, TEXT("View family already had a secondary spatial upscaler assigned."));
2589 SecondarySpatialUpscalerInterface = InSpatialUpscalerInterface;
2590 }
2591
2593 {
2594 return SecondarySpatialUpscalerInterface;
2595 }
2596
2597 inline bool GetIsInFocus() const { return bIsInFocus; }
2598 inline void SetIsInFocus(bool bInIsInFocus) { bIsInFocus = bInIsInFocus; }
2599
2601 ISceneRenderer* GetSceneRenderer() const { check(SceneRenderer); return SceneRenderer; }
2602
2603private:
2605 ISceneRenderer* SceneRenderer;
2606
2608 ISceneViewFamilyScreenPercentage* ScreenPercentageInterface;
2609
2611 UE::Renderer::Private::ITemporalUpscaler* TemporalUpscalerInterface;
2612 ISpatialUpscaler* PrimarySpatialUpscalerInterface;
2613 ISpatialUpscaler* SecondarySpatialUpscalerInterface;
2614
2617
2619 bool bAllowTranslucencyAfterDOF = false;
2620
2622 bool bAllowStandardTranslucencySeparated = false;
2623
2625 bool bIsInFocus = true;
2626
2627 friend class FSceneRenderer;
2628 friend class FViewFamilyInfo;
2629
2631};
2633
2646
2648{
2650 {
2652 {
2654 , .UnscaledViewRect = View.UnscaledViewRect
2655 , .Time = View.Family->Time
2656 , .CursorPosition = View.CursorPos
2657 , .GlobalClippingPlane = View.GlobalClippingPlane
2658 , .InvDeviceZToWorldZTransform = View.InvDeviceZToWorldZTransform
2659 , .DiffuseOverrideParameter = View.DiffuseOverrideParameter
2660 , .NormalOverrideParameter = View.NormalOverrideParameter
2661 , .SpecularOverrideParameter = View.SpecularOverrideParameter
2662 , .RoughnessOverrideParameter = View.RoughnessOverrideParameter
2663 , .AmbientOcclusionOverrideParameter = View.AmbientOcclusionOverrideParameter
2664 , .DebugViewShaderMode = View.Family->GetDebugViewShaderMode()
2665 , .FrameCounter = View.Family->FrameCounter
2666 , .FrameNumber = View.Family->FrameNumber
2667 , .FOV = View.FOV
2668 , .MotionBlurMax = View.FinalPostProcessSettings.MotionBlurMax
2669#if WITH_EDITOR
2670 , .bNullifyWorldSpacePosition = View.Family->bNullifyWorldSpacePosition
2671#endif
2672 , .bReverseCulling = View.bReverseCulling
2673 , .bCameraCut = View.bCameraCut
2674 , .bWorldIsPaused = View.Family->bWorldIsPaused
2675 };
2676 }
2677
2692 float FOV = 0.0f;
2693 float MotionBlurMax = 0.0f;
2695 bool bReverseCulling = false;
2696 bool bCameraCut = false;
2697 bool bWorldIsPaused = false;
2698};
2699
2701 const FIntPoint& InBufferSize,
2702 int32 NumMSAASamples,
2706 const FSetupViewUniformParametersInputs& Inputs);
2707
2709 const FIntPoint& InBufferSize,
2713 const FSetupViewUniformParametersInputs& Inputs);
#define NULL
Definition oodle2base.h:134
PlayerIndex
Definition AppleControllerInterface.h:24
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInitToZero
Definition CoreMiscDefines.h:156
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDebugViewShaderMode
Definition DebugViewModeHelpers.h:23
@ DVSM_None
Definition DebugViewModeHelpers.h:24
@ DVSM_MAX
Definition DebugViewModeHelpers.h:38
EViewModeIndex
Definition EngineBaseTypes.h:962
ESceneCaptureCompositeMode
Definition EngineTypes.h:550
ESceneCaptureSource
Definition EngineTypes.h:532
return true
Definition ExternalRpcRegistry.cpp:601
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define FVector
Definition IOSSystemIncludes.h:8
void Init()
Definition LockFreeList.h:4
UE::Math::TIntRect< int32 > FIntRect
Definition MathFwd.h:133
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
UE::Math::TPlane< double > FPlane
Definition MathFwd.h:52
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
UE::Math::TMatrix< double > FMatrix
Definition MathFwd.h:51
const bool
Definition NetworkReplayStreaming.h:178
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
EShaderPlatform GetFeatureLevelShaderPlatform(const FStaticFeatureLevel InFeatureLevel)
Definition RHIGlobals.h:961
EShaderPlatform
Definition RHIShaderPlatform.h:11
EAntiAliasingMethod
Definition SceneUtils.h:45
#define VIEW_UNIFORM_BUFFER_MEMBER_TABLE
Definition SceneView.h:849
ETranslucencyVolumeCascade
Definition SceneView.h:835
@ TVC_Inner
Definition SceneView.h:836
@ TVC_MAX
Definition SceneView.h:839
@ TVC_Outer
Definition SceneView.h:837
EViewWaterIntersection
Definition SceneView.h:1408
ESecondaryScreenPercentageMethod
Definition SceneView.h:153
constexpr int MAX_MOBILE_SHADOWCASCADES
Definition SceneView.h:810
ENGINE_API void SetupViewRectUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters, const FIntPoint &InBufferSize, const FIntRect &InEffectiveViewRect, const FViewMatrices &InViewMatrices, const FViewMatrices &InPrevViewMatrice, const FSetupViewUniformParametersInputs &Inputs)
Definition SceneView.cpp:2514
EPrimaryScreenPercentageMethod
Definition SceneView.h:136
ENGINE_API void SetupCommonViewUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters, const FIntPoint &InBufferSize, int32 NumMSAASamples, const FIntRect &InEffectiveViewRect, const FViewMatrices &InViewMatrices, const FViewMatrices &InPrevViewMatrices, const FSetupViewUniformParametersInputs &Inputs)
Definition SceneView.cpp:2625
#define SHADER_PARAMETER_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1708
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define SHADER_PARAMETER_ARRAY(MemberType, MemberName, ArrayDecl)
Definition ShaderParameterMacros.h:1696
#define SHADER_PARAMETER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1720
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define SHADER_PARAMETER_EX(MemberType, MemberName, Precision)
Definition ShaderParameterMacros.h:1687
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define SHADER_PARAMETER_STRUCT_REF(StructType, MemberName)
Definition ShaderParameterMacros.h:1909
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT_WITH_CONSTRUCTOR
Definition ShaderParameterMacros.h:1666
#define SHADER_PARAMETER_UAV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1731
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
ESPMode
Definition SharedPointerFwd.h:12
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
EStereoscopicPass
Definition StereoRendering.h:21
#define UE_DELTA
Definition UnrealMathUtility.h:186
constexpr UE_FORCEINLINE_HINT const T & AsConst(T &Ref)
Definition UnrealTemplate.h:123
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition DynamicRenderScaling.h:172
Definition CustomRenderPass.h:50
Definition FinalPostProcessSettings.h:17
Definition NameTypes.h:617
Definition RenderGraphResources.h:1196
Definition UnrealClient.h:30
Definition SceneInterface.h:106
Definition SceneRendering.h:2080
Definition SceneView.h:2638
virtual ENGINE_API ~FSceneViewFamilyContext()
Definition SceneView.cpp:3135
Definition SceneView.h:2212
bool UseDebugViewPS() const
Definition SceneView.h:2481
void SetSceneRenderer(ISceneRenderer *NewSceneRenderer)
Definition SceneView.h:2600
FDisplayInternalsData DisplayInternalsData
Definition SceneView.h:2411
bool bAdditionalViewFamily
Definition SceneView.h:2336
const FRenderTarget * RenderTarget
Definition SceneView.h:2317
FSceneInterface * Scene
Definition SceneView.h:2321
void operator=(const FSceneViewFamily &)=delete
uint32 FrameNumber
Definition SceneView.h:2330
TExtensionData * GetExtentionData()
Definition SceneView.h:2544
FEngineShowFlags EngineShowFlags
Definition SceneView.h:2324
TArray< const FSceneView * > Views
Definition SceneView.h:2308
EShaderPlatform GetShaderPlatform() const
Definition SceneView.h:2461
bool bWorldIsPaused
Definition SceneView.h:2393
int32 ViewModeParam
Definition SceneView.h:2467
bool bOverrideVirtualTextureThrottle
Definition SceneView.h:2427
const ISpatialUpscaler * GetPrimarySpatialUpscalerInterface() const
Definition SceneView.h:2580
const FName & GetViewModeParamName() const
Definition SceneView.h:2480
const FRenderTarget * RenderTargetDepth
Definition SceneView.h:2318
ESceneCaptureCompositeMode SceneCaptureCompositeMode
Definition SceneView.h:2384
const ISceneViewFamilyScreenPercentage * GetScreenPercentageInterface() const
Definition SceneView.h:2498
bool bMultiGPUForkAndJoin
Definition SceneView.h:2348
const TExtensionData * GetExtentionData() const
Definition SceneView.h:2530
uint64 FrameCounter
Definition SceneView.h:2333
FName ViewModeParamName
Definition SceneView.h:2469
ISceneRenderer * GetSceneRenderer() const
Definition SceneView.h:2601
float SecondaryViewFraction
Definition SceneView.h:2417
bool AllowStandardTranslucencySeparated() const
Definition SceneView.h:2496
bool bRealtimeUpdate
Definition SceneView.h:2339
bool GetIsInFocus() const
Definition SceneView.h:2597
ENGINE_API EDebugViewShaderMode ChooseDebugViewShaderMode() const
TArray< const FSceneView * > AllViews
Definition SceneView.h:2311
EViewModeIndex ViewMode
Definition SceneView.h:2314
const UE::Renderer::Private::ITemporalUpscaler * GetTemporalUpscalerInterface() const
Definition SceneView.h:2568
void SetIsInFocus(bool bInIsInFocus)
Definition SceneView.h:2598
void SetDebugViewShaderMode(EDebugViewShaderMode InMode)
Definition SceneView.h:2478
bool bIsMultipleViewFamily
Definition SceneView.h:2356
const ISpatialUpscaler * GetSecondarySpatialUpscalerInterface() const
Definition SceneView.h:2592
bool bCurrentlyBeingEdited
Definition SceneView.h:2424
void SetSecondarySpatialUpscalerInterface(ISpatialUpscaler *InSpatialUpscalerInterface)
Definition SceneView.h:2585
FExposureSettings ExposureSettings
Definition SceneView.h:2405
FString ProfileDescription
Definition SceneView.h:2446
EDebugViewShaderMode DebugViewShaderMode
Definition SceneView.h:2465
PRAGMA_ENABLE_DEPRECATION_WARNINGS ENGINE_API bool SupportsScreenPercentage() const
Definition SceneView.cpp:3106
TArray< FVector, TInlineAllocator< 2 > > StreamingViewOrigins
Definition SceneView.h:2452
bool bThumbnailRendering
Definition SceneView.h:2387
ENGINE_API ERHIFeatureLevel::Type GetFeatureLevel() const
Definition SceneView.cpp:3094
bool AllowTranslucencyAfterDOF() const
Definition SceneView.h:2494
bool bIsHDR
Definition SceneView.h:2396
bool bIsViewFamilyInfo
Definition SceneView.h:2365
void SetScreenPercentageInterface(ISceneViewFamilyScreenPercentage *InScreenPercentageInterface)
Definition SceneView.h:2512
float * ProfileSceneRenderTime
Definition SceneView.h:2449
int32 VirtualTextureFeedbackFactor
Definition SceneView.h:2430
TExtensionData * GetOrCreateExtentionData()
Definition SceneView.h:2549
bool bResolveScene
Definition SceneView.h:2345
int32 GetViewModeParam() const
Definition SceneView.h:2479
bool bRequireMultiView
Definition SceneView.h:2399
int8 LandscapeLODOverride
Definition SceneView.h:2421
bool bIsMainViewFamily
Definition SceneView.h:2374
FGameTime Time
Definition SceneView.h:2327
bool bSplitScreenDebugAllowed
Definition SceneView.h:2368
PRAGMA_DISABLE_DEPRECATION_WARNINGS ENGINE_API EDebugViewShaderMode GetDebugViewShaderMode() const
bool bIsFirstViewInMultipleViewFamily
Definition SceneView.h:2363
float DebugDPIScale
Definition SceneView.h:2402
ESceneCaptureSource SceneCaptureSource
Definition SceneView.h:2380
bool bDeferClear
Definition SceneView.h:2342
TArray< TSharedRef< class ISceneViewExtension, ESPMode::ThreadSafe > > ViewExtensions
Definition SceneView.h:2408
void SetScreenPercentageInterface_Unchecked(ISceneViewFamilyScreenPercentage *InScreenPercentageInterface)
Definition SceneView.h:2519
ESecondaryScreenPercentageMethod SecondaryScreenPercentageMethod
Definition SceneView.h:2418
void SetTemporalUpscalerInterface(UE::Renderer::Private::ITemporalUpscaler *InTemporalUpscalerInterface)
Definition SceneView.h:2561
void SetPrimarySpatialUpscalerInterface(ISpatialUpscaler *InSpatialUpscalerInterface)
Definition SceneView.h:2573
Definition SceneView.h:1416
virtual ~FSceneViewFixLayout()=default
Definition SceneManagement.h:132
Definition SceneView.h:1425
FShaderResourceViewRHIRef WaterDataBuffer
Definition SceneView.h:1790
bool bIsMultiViewportEnabled
Definition SceneView.h:1674
ENGINE_API float GetLastEyeAdaptationExposure() const
Definition SceneView.cpp:2882
float UnderwaterDepth
Definition SceneView.h:1704
bool IsInstancedSceneView() const
Definition SceneView.h:2064
float DesiredFOV
Definition SceneView.h:1520
ENGINE_API uint32 GetViewKey() const
Definition SceneView.cpp:1177
ENGINE_API void OverridePostProcessSettings(const FPostProcessSettings &Src, float Weight)
Definition SceneView.cpp:1566
const FSceneView * GetSnapshotOriginView() const
Definition SceneView.h:2084
ENGINE_API uint32 GetDistanceFieldTemporalSampleIndex() const
Definition SceneView.cpp:1168
const FConvexVolume & GetCullingFrustum() const
Definition SceneView.h:1590
FSceneViewInitOptions SceneViewInitOptions
Definition SceneView.h:1444
FName CurrentVisualizeCalibrationGrayscaleMaterialName
Definition SceneView.h:1549
FVector CullingOrigin
Definition SceneView.h:1602
static ENGINE_API FVector4f GetScreenPositionScaleBias(const FIntPoint &BufferSize, const FIntRect &ViewRect)
Definition SceneView.cpp:2499
TOptional< TSet< FPrimitiveComponentId > > ShowOnlyPrimitives
Definition SceneView.h:1579
bool bForcePathTracerReset
Definition SceneView.h:1698
FVector ViewLocation
Definition SceneView.h:1467
bool bIsLocked
Definition SceneView.h:1662
TUniformBufferRef< FViewUniformShaderParameters > ViewUniformBuffer
Definition SceneView.h:1432
bool bEnableDynamicCocOffset
Definition SceneView.h:1817
const FSceneViewFamily * Family
Definition SceneView.h:1427
FName CurrentRayTracingDebugVisualizationMode
Definition SceneView.h:2037
void SetDynamicMeshElementsShadowCullFrustum(const FConvexVolume *InDynamicMeshElementsShadowCullFrustum)
Definition SceneView.h:1937
ENGINE_API bool HasValidEyeAdaptationBuffer() const
Definition SceneView.cpp:2863
void SetPreShadowTranslation(const FVector &InPreShadowTranslation)
Definition SceneView.h:1940
FVector BaseHmdLocation
Definition SceneView.h:1470
FConvexVolume ViewFrustum
Definition SceneView.h:1585
static ENGINE_API bool ProjectWorldToScreen(const FVector &WorldPosition, const FIntRect &ViewRect, const FMatrix &ViewProjectionMatrix, FVector2D &out_ScreenPos, bool bShouldCalcOutsideViewPosition=false)
Definition SceneView.cpp:1524
bool bRenderFirstInstanceOnly
Definition SceneView.h:1510
ENGINE_API void DeprojectFVector2D(const FVector2D &ScreenPos, FVector &out_WorldOrigin, FVector &out_WorldDirection) const
Definition SceneView.cpp:1425
TOptional< bool > bCameraMotionBlur
Definition SceneView.h:1740
uint8 ViewLightingChannelMask
Definition SceneView.h:1835
FName CurrentBufferVisualizationMode
Definition SceneView.h:1525
FVector4f SpecularOverrideParameter
Definition SceneView.h:1567
int32 PlayerIndex
Definition SceneView.h:1450
ENGINE_API void SetupViewRectUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters, const FIntPoint &InBufferSize, const FIntRect &InEffectiveViewRect, const FViewMatrices &InViewMatrices, const FViewMatrices &InPrevViewMatrice) const
Definition SceneView.cpp:2842
bool bReverseCulling
Definition SceneView.h:1605
TEnumAsByte< ETranslucentSortPolicy::Type > TranslucentSortPolicy
Definition SceneView.h:1722
bool bIsReflectionCapture
Definition SceneView.h:1647
FVector4f InvDeviceZToWorldZTransform
Definition SceneView.h:1608
bool bForceCameraVisibilityReset
Definition SceneView.h:1689
ERHIFeatureLevel::Type GetFeatureLevel() const
Definition SceneView.h:2004
bool bDisableDistanceBasedFadeTransitions
Definition SceneView.h:1692
ERenderTargetLoadAction GetOverwriteLoadAction() const
Definition SceneView.h:2079
FSceneViewStateInterface * State
Definition SceneView.h:1429
FVector TranslucentSortAxis
Definition SceneView.h:1719
UE::StereoRenderUtils::FStereoShaderAspects Aspects
Definition SceneView.h:1838
FVector2f AmbientOcclusionOverrideParameter
Definition SceneView.h:1570
PRAGMA_DISABLE_DEPRECATION_WARNINGS FSceneView(const FSceneView &Other)=default
FName CurrentGPUSkinCacheVisualizationMode
Definition SceneView.h:1555
const FSceneView * SnapshotOriginView
Definition SceneView.h:1844
bool bIsSinglePassStereo
Definition SceneView.h:1684
bool bIsInstancedStereoEnabled
Definition SceneView.h:1671
float MaterialTextureMipBias
Definition SceneView.h:1573
ENGINE_API FVector4 PixelToScreen(float X, float Y, float Z) const
Definition SceneView.cpp:1351
bool bShouldBindInstancedViewUB
Definition SceneView.h:1680
bool bIsMobileMultiViewEnabled
Definition SceneView.h:1677
FViewElementDrawer * Drawer
Definition SceneView.h:1453
TUniformBufferRef< FInstancedViewUniformShaderParameters > InstancedViewUniformBuffer
Definition SceneView.h:2102
FViewMatrices ViewMatrices
Definition SceneView.h:1464
FLinearColor BackgroundColor
Definition SceneView.h:1485
ENGINE_API float GetLastAverageSceneLuminance() const
Definition SceneView.cpp:2892
FFinalPostProcessSettings FinalPostProcessSettings
Definition SceneView.h:1772
float InFocusDistance
Definition SceneView.h:1820
int32 StereoViewIndex
Definition SceneView.h:1495
FName CurrentVirtualTextureVisualizationMode
Definition SceneView.h:1543
FIntPoint CursorPos
Definition SceneView.h:1620
bool bAllowRayTracing
Definition SceneView.h:1832
FMatrix ProjectionMatrixUnadjustedForRHI
Definition SceneView.h:1483
bool bHMDHiddenAreaMaskActive
Definition SceneView.h:1516
static ENGINE_API void DeprojectScreenToWorld(const FVector2D &ScreenPos, const FIntRect &ViewRect, const FMatrix &InvViewMatrix, const FMatrix &InvProjMatrix, FVector &out_WorldOrigin, FVector &out_WorldDirection)
Definition SceneView.cpp:1431
FName CurrentVisualizeCalibrationCustomMaterialName
Definition SceneView.h:1552
bool bExcludeFromSceneTextureExtents
Definition SceneView.h:1695
bool bUseFieldOfViewForLOD
Definition SceneView.h:1513
bool IsPerspectiveProjection() const
Definition SceneView.h:1943
const TUniformBufferRef< FInstancedViewUniformShaderParameters > & GetInstancedViewUniformBuffer() const
Definition SceneView.h:2073
FVector GetViewRight() const
Definition SceneView.h:1932
bool bIsVirtualTexture
Definition SceneView.h:1653
ENGINE_API bool WorldToPixel(const FVector &WorldPoint, FVector2D &OutPixelLocation) const
Definition SceneView.cpp:1385
ENGINE_API EShaderPlatform GetShaderPlatform() const
Definition SceneView.cpp:2489
bool bIsGameView
Definition SceneView.h:1623
const ERHIFeatureLevel::Type FeatureLevel
Definition SceneView.h:1826
FShaderResourceViewRHIRef LandscapePerComponentDataBuffer
Definition SceneView.h:1814
FIntRect CameraConstrainedViewRect
Definition SceneView.h:1716
bool bIsSceneCaptureCube
Definition SceneView.h:1634
ENGINE_API void SetupAntiAliasingMethod()
Definition SceneView.cpp:1101
ENGINE_API const FSceneView * GetInstancedSceneView() const
Definition SceneView.cpp:2911
ENGINE_API void UpdateViewMatrix()
Definition SceneView.cpp:1275
ENGINE_API TArray< const FSceneView * > GetSecondaryViews() const
Definition SceneView.cpp:2926
EViewWaterIntersection WaterIntersection
Definition SceneView.h:1707
ENGINE_API void EndFinalPostprocessSettings(const FSceneViewInitOptions &ViewInitOptions)
Definition SceneView.cpp:2082
bool bAllowTemporalJitter
Definition SceneView.h:1583
ENGINE_API bool ScreenToPixel(const FVector4 &ScreenPoint, FVector2D &OutPixelLocation) const
Definition SceneView.cpp:1332
PRAGMA_ENABLE_DEPRECATION_WARNINGS virtual ENGINE_API ~FSceneView()
int32 MaxShadowCascades
Definition SceneView.h:1462
bool bIsViewInfo
Definition SceneView.h:1626
int32 GetStereoPassInstanceFactor() const
Definition SceneView.h:2013
ENGINE_API void UpdatePlanarReflectionViewMatrix(const FSceneView &SourceView, const FMirrorMatrix &MirrorMatrix)
Definition SceneView.cpp:1314
float WorldToMetersScale
Definition SceneView.h:1471
int32 PrimaryViewIndex
Definition SceneView.h:1498
bool IsPrimarySceneView() const
Definition SceneView.h:2055
bool bStaticSceneOnly
Definition SceneView.h:1668
ENGINE_API FVector4 PixelToWorld(float X, float Y, float Z) const
Definition SceneView.cpp:1392
FName CurrentLumenVisualizationMode
Definition SceneView.h:1531
ENGINE_API void SetupCommonViewUniformBufferParameters(FViewUniformShaderParameters &ViewUniformShaderParameters, const FIntPoint &InBufferSize, int32 NumMSAASamples, const FIntRect &InEffectiveViewRect, const FViewMatrices &InViewMatrices, const FViewMatrices &InPrevViewMatrices) const
Definition SceneView.cpp:2852
FRotator ViewRotation
Definition SceneView.h:1468
FTextureRHIRef AtmosphereIrradianceTexture
Definition SceneView.h:1785
ENGINE_API uint32 GetOcclusionFrameCounter() const
Definition SceneView.cpp:1186
float FOV
Definition SceneView.h:1519
TOptional< uint32 > OverrideFrameIndexValue
Definition SceneView.h:1725
FRHIGPUMask GPUMask
Definition SceneView.h:1507
FVector OriginOffsetThisFrame
Definition SceneView.h:1611
FVector GetViewUp() const
Definition SceneView.h:1933
class FCustomRenderPassBase * CustomRenderPass
Definition SceneView.h:1628
ENGINE_API void ConfigureBufferVisualizationSettings()
Definition SceneView.cpp:2379
EStereoscopicPass StereoPass
Definition SceneView.h:1492
FPlane GlobalClippingPlane
Definition SceneView.h:1710
uint8 ShadowViewMatrices
Definition SceneView.h:1475
bool AllowGPUParticleUpdate() const
Definition SceneView.h:1865
int32 WaterInfoTextureViewIndex
Definition SceneView.h:1792
ENGINE_API FRDGPooledBuffer * GetEyeAdaptationBuffer() const
Definition SceneView.cpp:2872
FPlane NearClippingPlane
Definition SceneView.h:1597
TOptional< uint32 > OverrideOutputFrameIndexValue
Definition SceneView.h:1730
ENGINE_API FVector GetTemporalLODOrigin(int32 Index, bool bUseLaggedLODTransition=true) const
Definition SceneView.cpp:1146
ENGINE_API FVector4 CursorToScreen(float X, float Y, float Z) const
Definition SceneView.cpp:1376
bool bOverrideGPUMask
Definition SceneView.h:1504
FName CurrentVirtualShadowMapVisualizationMode
Definition SceneView.h:1540
bool bSceneCaptureUsesRayTracing
Definition SceneView.h:1644
FSceneViewOwner ViewActor
Definition SceneView.h:1447
const FVector & GetPreShadowTranslation() const
Definition SceneView.h:1939
const FConvexVolume * GetDynamicMeshElementsShadowCullFrustum() const
Definition SceneView.h:1936
bool IsUnderwater() const
Definition SceneView.h:1945
FName CurrentSubstrateVisualizationMode
Definition SceneView.h:1534
bool bCameraCut
Definition SceneView.h:1617
FVector4f NormalOverrideParameter
Definition SceneView.h:1568
uint32 InstanceFactor
Definition SceneView.h:1829
float LODDistanceFactor
Definition SceneView.h:1614
TOptional< FMatrix > ClipToPrevClipOverride
Definition SceneView.h:1744
FTextureRHIRef DynamicCocOffsetLUT
Definition SceneView.h:1823
bool bIsSceneCapture
Definition SceneView.h:1631
ENGINE_API FVector ScreenToWorld(const FVector4 &ScreenPoint) const
Definition SceneView.cpp:1327
const FIntRect UnscaledViewRect
Definition SceneView.h:1456
TArray< FWaterInfoTextureRenderingParams > WaterInfoTextureRenderingParams
Definition SceneView.h:1810
FVector GetViewDirection() const
Definition SceneView.h:1934
bool bIsPlanarReflection
Definition SceneView.h:1650
bool HasEyeAdaptationViewState() const
Definition SceneView.h:2091
bool bIsOfflineRender
Definition SceneView.h:1656
ENGINE_API FVector4 WorldToScreen(const FVector &WorldPoint) const
Definition SceneView.cpp:1322
ENGINE_API const FSceneView * GetPrimarySceneView() const
Definition SceneView.cpp:2901
int32 PathTracerSeedOffset
Definition SceneView.h:1701
bool bEyeAdaptationAllViewPixels
Definition SceneView.h:1637
TOptional< FTransform > PreviousViewTransform
Definition SceneView.h:1472
FSceneView(FSceneView &&Other)=default
bool IsRayTracingAllowedForView() const
Definition SceneView.h:2086
FVector4f LensPrincipalPointOffsetScale
Definition SceneView.h:1737
ENGINE_API const FViewMatrices & GetShadowViewMatrices() const
Definition SceneView.cpp:1075
EAntiAliasingMethod AntiAliasingMethod
Definition SceneView.h:1778
FLinearColor ColorScale
Definition SceneView.h:1489
FName CurrentGroomVisualizationMode
Definition SceneView.h:1537
ENGINE_API void StartFinalPostprocessSettings(FVector InViewLocation)
Definition SceneView.cpp:1966
ENGINE_API void ConfigureVisualizeCalibrationSettings()
Definition SceneView.cpp:2450
FQuat BaseHmdOrientation
Definition SceneView.h:1469
FName CurrentNaniteVisualizationMode
Definition SceneView.h:1528
FIntRect UnconstrainedViewRect
Definition SceneView.h:1459
EDrawDynamicFlags::Type DrawDynamicFlags
Definition SceneView.h:1522
FTextureRHIRef AtmosphereInscatterTexture
Definition SceneView.h:1786
FVector4f DiffuseOverrideParameter
Definition SceneView.h:1566
FSceneViewStateInterface * EyeAdaptationViewState
Definition SceneView.h:2099
FShaderResourceViewRHIRef WaterIndirectionBuffer
Definition SceneView.h:1789
ENGINE_API void UpdateProjectionMatrix(const FMatrix &NewProjectionMatrix)
Definition SceneView.cpp:1195
FShaderResourceViewRHIRef LandscapeIndirectionBuffer
Definition SceneView.h:1813
ENGINE_API float GetTemporalLODTransition() const
Definition SceneView.cpp:1159
EPrimaryScreenPercentageMethod PrimaryScreenPercentageMethod
Definition SceneView.h:1781
FName CurrentVisualizeCalibrationColorMaterialName
Definition SceneView.h:1546
bool bRenderSceneTwoSided
Definition SceneView.h:1659
float NearClippingDistance
Definition SceneView.h:1599
ENGINE_API FVector Deproject(const FPlane &ScreenPoint) const
Definition SceneView.cpp:1420
TSet< FPrimitiveComponentId > HiddenPrimitives
Definition SceneView.h:1576
FVector2f RoughnessOverrideParameter
Definition SceneView.h:1569
uint8 CullingFrustum
Definition SceneView.h:1588
bool bAllowCrossGPUTransfer
Definition SceneView.h:1501
FTextureRHIRef AtmosphereTransmittanceTexture
Definition SceneView.h:1784
FLinearColor OverlayColor
Definition SceneView.h:1486
ENGINE_API bool IsInstancedStereoPass() const
Definition SceneView.cpp:2494
bool bHasNearClippingPlane
Definition SceneView.h:1595
Definition SceneManagement.h:1280
Definition SceneRendering.h:1970
Definition ViewSnapshotCache.cpp:7
Definition SceneRendering.h:755
Definition SceneRendererInterface.h:47
Definition SceneViewExtension.h:113
Definition SceneView.h:2150
virtual const TCHAR * GetSubclassIdentifier() const =0
Definition SceneView.h:2135
virtual ~ISceneViewFamilyExtention()
Definition SceneView.h:2141
Definition SceneView.h:2164
static constexpr float kMaxTAAUpsampleResolutionFraction
Definition SceneView.h:2176
static constexpr float kMaxTSRResolutionFraction
Definition SceneView.h:2172
virtual ISceneViewFamilyScreenPercentage * Fork_GameThread(const class FSceneViewFamily &ViewFamily) const =0
static constexpr float kMaxResolutionFraction
Definition SceneView.h:2168
static constexpr float kMinTAAUpsampleResolutionFraction
Definition SceneView.h:2175
virtual DynamicRenderScaling::TMap< float > GetResolutionFractionsUpperBound() const =0
virtual DynamicRenderScaling::TMap< float > GetResolutionFractions_RenderThread() const =0
static constexpr float kMinTSRResolutionFraction
Definition SceneView.h:2171
static constexpr float kMinResolutionFraction
Definition SceneView.h:2167
Definition PostProcessUpscale.h:40
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_NODEBUG UE_FORCEINLINE_HINT void Push(ElementType &&Item)
Definition Array.h:1224
Definition EnumAsByte.h:22
Definition SharedPointer.h:692
Definition SharedPointer.h:153
ObjectType & Get() const
Definition SharedPointer.h:474
Definition ContainerAllocationPolicies.h:894
Definition StaticArray.h:26
Definition ShaderParameterMacros.h:136
Definition TemporalUpscaler.h:12
Definition StereoRenderUtils.h:16
Definition World.h:918
Definition SceneView.h:1398
Type
Definition SceneView.h:1400
@ ForceLowestLOD
Definition SceneView.h:1402
@ FarShadowCascade
Definition SceneView.h:1403
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
@ Half
Definition ShaderParameterMetadata.h:40
Definition SceneView.h:1334
Definition SceneView.h:36
Definition SceneView.h:41
Definition SceneView.h:1374
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition ConvexVolume.h:44
Definition SceneView.h:2109
int32 DisplayInternalsCVarValue
Definition SceneView.h:2111
FDisplayInternalsData()
Definition SceneView.h:2115
uint32 NumPendingStreamingRequests
Definition SceneView.h:2113
void Setup(UWorld *World)
Definition SceneRendering.cpp:2487
bool IsValid() const
Definition SceneView.h:2126
Definition ShowFlags.h:56
Definition EngineBaseTypes.h:1089
Definition SceneView.h:164
FFirstPersonParameters(float InFOVCorrectionFactor, float InScale, bool bInUseParameters)
Definition SceneView.h:175
float FOVCorrectionFactor
Definition SceneView.h:166
FFirstPersonParameters()=default
bool bUseParameters
Definition SceneView.h:172
float Scale
Definition SceneView.h:169
Definition GameTime.h:10
Definition Color.h:48
Definition CameraTypes.h:37
Definition Scene.h:693
float MotionBlurMax
Definition Scene.h:2297
Definition MultiGPU.h:33
Definition SceneView.h:2224
ConstructionValues(const ConstructionValues &Other)=default
uint32 bRequireMultiView
Definition SceneView.h:2272
FGameTime Time
Definition SceneView.h:2254
ConstructionValues & operator=(const ConstructionValues &Other)=default
ConstructionValues & SetTime(const FGameTime &InTime)
Definition SceneView.h:2281
ConstructionValues & SetAdditionalViewFamily(const bool Value)
Definition SceneView.h:2289
uint32 bTimesSet
Definition SceneView.h:2269
FSceneInterface * Scene
Definition SceneView.h:2243
uint32 bAdditionalViewFamily
Definition SceneView.h:2257
ConstructionValues & SetRequireMobileMultiView(const bool Value)
Definition SceneView.h:2301
FEngineShowFlags EngineShowFlags
Definition SceneView.h:2246
uint32 bRealtimeUpdate
Definition SceneView.h:2260
uint32 bResolveScene
Definition SceneView.h:2266
ConstructionValues & operator=(ConstructionValues &&)=default
const FRenderTarget * RenderTarget
Definition SceneView.h:2239
ConstructionValues & SetViewModeParam(const int InViewModeParam, const FName &InViewModeParamName)
Definition SceneView.h:2304
uint32 bDeferClear
Definition SceneView.h:2263
ConstructionValues & SetResolveScene(const bool Value)
Definition SceneView.h:2298
ConstructionValues & SetRealtimeUpdate(const bool Value)
Definition SceneView.h:2292
const FRenderTarget * RenderTargetDepth
Definition SceneView.h:2240
int32 ViewModeParam
Definition SceneView.h:2249
PRAGMA_DISABLE_DEPRECATION_WARNINGS ConstructionValues(ConstructionValues &&)=default
ConstructionValues & SetRenderTargetDepth(const FRenderTarget *InRenderTargetDepth)
Definition SceneView.h:2274
ConstructionValues & SetDeferClear(const bool Value)
Definition SceneView.h:2295
FName ViewModeParamName
Definition SceneView.h:2251
Definition SceneView.h:180
FLinearColor ColorScale
Definition SceneView.h:190
bool bInCameraCut
Definition SceneView.h:222
float WorldToMetersScale
Definition SceneView.h:199
float OverscanResolutionFraction
Definition SceneView.h:256
bool bSceneCaptureUsesRayTracing
Definition SceneView.h:241
int32 PlayerIndex
Definition SceneView.h:185
bool bExcludeFromSceneTextureExtents
Definition SceneView.h:250
FSceneViewInitOptions()
Definition SceneView.h:275
FSceneViewStateInterface * ExposureSceneViewStateInterface
Definition SceneView.h:183
int32 StereoViewIndex
Definition SceneView.h:196
FVector OriginOffsetThisFrame
Definition SceneView.h:219
FFirstPersonParameters FirstPersonParams
Definition SceneView.h:232
float FOV
Definition SceneView.h:228
bool bIsSceneCapture
Definition SceneView.h:235
FVector ViewLocation
Definition SceneView.h:202
TOptional< TSet< FPrimitiveComponentId > > ShowOnlyPrimitives
Definition SceneView.h:208
FVector4f AsymmetricCropFraction
Definition SceneView.h:265
float OverrideFarClippingPlaneDistance
Definition SceneView.h:216
float CropFraction
Definition SceneView.h:259
bool bIsReflectionCapture
Definition SceneView.h:244
FViewElementDrawer * ViewElementDrawer
Definition SceneView.h:186
FLinearColor OverlayColor
Definition SceneView.h:189
FIntPoint CursorPos
Definition SceneView.h:211
float DesiredFOV
Definition SceneView.h:229
float LODDistanceFactor
Definition SceneView.h:213
FRotator ViewRotation
Definition SceneView.h:203
bool bIsPlanarReflection
Definition SceneView.h:247
bool bUseFieldOfViewForLOD
Definition SceneView.h:225
FSceneViewOwner ViewActor
Definition SceneView.h:184
float OverridePrimaryResolutionFraction
Definition SceneView.h:253
bool bIsSceneCaptureCube
Definition SceneView.h:238
TSet< FPrimitiveComponentId > HiddenPrimitives
Definition SceneView.h:205
const FSceneViewFamily * ViewFamily
Definition SceneView.h:181
FLinearColor BackgroundColor
Definition SceneView.h:188
FSceneViewStateInterface * SceneViewStateInterface
Definition SceneView.h:182
EStereoscopicPass StereoPass
Definition SceneView.h:193
Definition SceneViewOwner.h:12
Definition SceneView.h:51
FMatrix ProjectionMatrix
Definition SceneView.h:59
float GetNearPlaneFromProjectionMatrix() const
Definition SceneView.h:119
FVector CameraToViewTarget
Definition SceneView.h:65
FIntRect ConstrainedViewRect
Definition SceneView.h:69
FVector ViewOrigin
Definition SceneView.h:53
FMatrix ComputeViewProjectionMatrix() const
Definition SceneView.h:99
FIntRect ViewRect
Definition SceneView.h:62
static float GetNearPlaneFromProjectionMatrix(const FMatrix &ProjectionMatrix)
Definition SceneView.h:105
bool IsPerspectiveProjection() const
Definition SceneView.h:91
FMatrix ViewRotationMatrix
Definition SceneView.h:56
bool UpdateOrthoPlanes(float &NearPlane, float &FarPlane, float HalfOrthoWidth, bool bUseCameraHeightAsViewTarget)
Definition SceneView.h:126
void SetConstrainedViewRectangle(const FIntRect &InViewRect)
Definition SceneView.h:78
void SetViewRectangle(const FIntRect &InViewRect)
Definition SceneView.h:72
bool IsValidViewRectangle() const
Definition SceneView.h:83
const FIntRect & GetViewRect() const
Definition SceneView.h:96
static ENGINE_API bool UpdateOrthoPlanes(FSceneViewProjectionData *InOutProjectionData, float &NearPlane, float &FarPlane, float HalfOrthoWidth, bool bUseCameraHeightAsViewTarget)
Definition SceneView.cpp:560
const FIntRect & GetConstrainedViewRect() const
Definition SceneView.h:97
int32 VelocityBlurRadius
Definition SceneView.h:1807
float GroundZMin
Definition SceneView.h:1805
FMatrix ProjectionMatrix
Definition SceneView.h:1799
FVector2f WaterHeightExtents
Definition SceneView.h:1804
TSet< FPrimitiveComponentId > WaterBodyComponentIds
Definition SceneView.h:1801
FVector ViewLocation
Definition SceneView.h:1797
FMatrix ViewRotationMatrix
Definition SceneView.h:1798
int32 RenderTargetArrayLayer
Definition SceneView.h:1808
FVector WaterZoneExtents
Definition SceneView.h:1803
TSet< FPrimitiveComponentId > DilatedWaterBodyComponentIds
Definition SceneView.h:1802
float CaptureZ
Definition SceneView.h:1806
TSet< FPrimitiveComponentId > TerrainComponentIds
Definition SceneView.h:1800
FRenderTarget * RenderTarget
Definition SceneView.h:1796
Definition SceneView.h:2648
FVector4f DiffuseOverrideParameter
Definition SceneView.h:2684
float FOV
Definition SceneView.h:2692
FIntRect UnscaledViewRect
Definition SceneView.h:2679
bool bReverseCulling
Definition SceneView.h:2695
bool bWorldIsPaused
Definition SceneView.h:2697
const FEngineShowFlags * EngineShowFlags
Definition SceneView.h:2678
static FSetupViewUniformParametersInputs Create(const FSceneView &View)
Definition SceneView.h:2649
float MotionBlurMax
Definition SceneView.h:2693
FIntPoint CursorPosition
Definition SceneView.h:2681
uint64 FrameCounter
Definition SceneView.h:2690
FGameTime Time
Definition SceneView.h:2680
bool bNullifyWorldSpacePosition
Definition SceneView.h:2694
FVector2f RoughnessOverrideParameter
Definition SceneView.h:2687
bool bCameraCut
Definition SceneView.h:2696
uint32 FrameNumber
Definition SceneView.h:2691
FVector4f InvDeviceZToWorldZTransform
Definition SceneView.h:2683
FVector4f NormalOverrideParameter
Definition SceneView.h:2685
EDebugViewShaderMode DebugViewShaderMode
Definition SceneView.h:2689
FVector4f SpecularOverrideParameter
Definition SceneView.h:2686
FVector2f AmbientOcclusionOverrideParameter
Definition SceneView.h:2688
FPlane GlobalClippingPlane
Definition SceneView.h:2682
static constexpr uint8 GetMaskDefault()
Definition EngineTypes.h:643
Definition SceneView.h:319
FIntRect ConstrainedViewRect
Definition SceneView.h:323
FFirstPersonParameters FirstPersonParams
Definition SceneView.h:326
FMatrix ProjectionMatrix
Definition SceneView.h:321
FMatrix ViewRotationMatrix
Definition SceneView.h:320
FVector ViewOrigin
Definition SceneView.h:322
FVector CameraToViewTarget
Definition SceneView.h:324
EStereoscopicPass StereoPass
Definition SceneView.h:325
Definition SceneView.h:317
FVector2f GetOrthoDimensions() const
Definition SceneView.h:714
const FVector & GetCameraToViewTarget() const
Definition SceneView.h:528
FVector2f GetInvTanHalfFov() const
Definition SceneView.h:549
const FMatrix & GetProjectionNoAAMatrix() const
Definition SceneView.h:438
const FVector2D ComputeHalfFieldOfViewPerAxis() const
Definition SceneView.h:670
const FMatrix & GetScreenToClipMatrix() const
Definition SceneView.h:503
FVector4f GetFirstPersonTanAndInvTanHalfFOV() const
Definition SceneView.h:735
const FMatrix & GetHMDViewMatrixNoRoll() const
Definition SceneView.h:468
void SaveProjectionNoAAMatrix()
Definition SceneView.h:592
float GetScreenScale() const
Definition SceneView.h:533
const FMatrix & GetInvProjectionMatrix() const
Definition SceneView.h:443
bool IsPerspectiveProjection() const
Definition SceneView.h:544
void ApplyWorldOffset(const FVector &InOffset)
Definition SceneView.h:704
const FVector & GetViewOrigin() const
Definition SceneView.h:523
void UpdatePlanarReflectionViewMatrix(const FSceneView &SourceView, const FMirrorMatrix &MirrorMatrix)
Definition SceneView.cpp:1290
const FMatrix & GetFirstPersonTransform() const
Definition SceneView.h:508
FMatrix::FReal ComputeOrthoFarPlane() const
Definition SceneView.h:695
const FMatrix & GetOverriddenInvTranslatedViewMatrix() const
Definition SceneView.h:488
const FMatrix & GetInvTranslatedViewProjectionMatrix() const
Definition SceneView.h:498
const FMatrix & GetTranslatedViewProjectionMatrix() const
Definition SceneView.h:493
FViewMatrices()
Definition SceneView.h:329
const FMatrix & GetProjectionMatrix() const
Definition SceneView.h:433
const FMatrix & GetViewProjectionMatrix() const
Definition SceneView.h:458
const FMatrix & GetTranslatedViewMatrix() const
Definition SceneView.h:473
const FMatrix & GetInvViewProjectionMatrix() const
Definition SceneView.h:463
const FMatrix & GetViewMatrix() const
Definition SceneView.h:448
ENGINE_API void HackOverrideViewMatrixForShadows(const FMatrix &InViewMatrix)
Definition SceneView.cpp:1267
const FVector2D & GetProjectionScale() const
Definition SceneView.h:538
void HackRemoveTemporalAAProjectionJitter()
Definition SceneView.h:618
FMatrix::FReal ComputeNearPlane() const
Definition SceneView.h:690
FVector2f GetFirstPersonHalfFieldOfViewPerAxis() const
Definition SceneView.h:724
const FVector2D GetTemporalAAJitter() const
Definition SceneView.h:654
const FMatrix & GetInvTranslatedViewMatrix() const
Definition SceneView.h:478
const FMatrix & GetOverriddenTranslatedViewMatrix() const
Definition SceneView.h:483
float GetPerProjectionDepthThicknessScale() const
Definition SceneView.h:583
FVector2f GetTanHalfFov() const
Definition SceneView.h:559
void HackAddTemporalAAProjectionJitter(const FVector2D &InTemporalAAProjectionJitter)
Definition SceneView.h:597
const FMatrix & GetInvViewMatrix() const
Definition SceneView.h:453
const FVector & GetPreViewTranslation() const
Definition SceneView.h:518
const FMatrix ComputeInvProjectionNoAAMatrix() const
Definition SceneView.h:664
float GetFirstPersonScale() const
Definition SceneView.h:513
const FMatrix ComputeViewRotationProjectionMatrix() const
Definition SceneView.h:659
ENGINE_API void UpdateViewMatrix(const FVector &ViewLocation, const FRotator &ViewRotation)
Definition SceneView.cpp:1210
FMatrix ScreenToClipProjectionMatrix() const
Definition SceneView.cpp:1246
FVector4f GetTanAndInvTanHalfFOV() const
Definition SceneView.h:570
const FMatrix ComputeProjectionNoAAMatrix() const
Definition SceneView.h:636
Definition UnrealTypeTraits.h:40
Definition Optional.h:131
Definition IntPoint.h:25
IntType Y
Definition IntPoint.h:37
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType X
Definition IntPoint.h:34
IntType Width() const
Definition IntRect.h:469
IntType Height() const
Definition IntRect.h:372
IntPointType Min
Definition IntRect.h:34
TMatrix< T > Inverse() const
Definition Matrix.inl:384
TVector4< T > TransformPosition(const TVector< T > &V) const
Definition Matrix.inl:184
TVector4< T > TransformVector(const TVector< T > &V) const
Definition Matrix.inl:204
T M[4][4]
Definition Matrix.h:49
TVector< T > GetColumn(int32 i) const
Definition Matrix.inl:740
TMatrix< T > RemoveTranslation() const
Definition Matrix.inl:545
void SetIdentity()
Definition Matrix.inl:48
double FReal
Definition Matrix.h:47
static CORE_API const TMatrix Identity
Definition Matrix.h:52
TVector< T > GetOrigin() const
Definition Matrix.inl:641
void SetOrigin(const TVector< T > &NewOrigin)
Definition Matrix.inl:701
T Y
Definition Vector2D.h:52
static TVector2< double > Zero()
Definition Vector2D.h:79
T X
Definition Vector2D.h:49
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63
static TVector4< float > One()
Definition Vector4.h:185
static TVector< double > Zero()
Definition Vector.h:112
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79