Finish Assignment: NPC with a State Machine
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"FileVersion": 3,
|
"FileVersion": 3,
|
||||||
"EngineAssociation": "5.0",
|
"EngineAssociation": "5.1",
|
||||||
"Category": "",
|
"Category": "",
|
||||||
"Description": "",
|
"Description": "",
|
||||||
"Plugins": [
|
"Plugins": [
|
||||||
|
85
ASN4_StateMachine/Config/DefaultInput.ini
Normal file
85
ASN4_StateMachine/Config/DefaultInput.ini
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
[/Script/Engine.InputSettings]
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||||
|
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||||
|
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||||
|
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
bAltEnterTogglesFullscreen=True
|
||||||
|
bF11TogglesFullscreen=True
|
||||||
|
bUseMouseForTouch=False
|
||||||
|
bEnableMouseSmoothing=True
|
||||||
|
bEnableFOVScaling=True
|
||||||
|
bCaptureMouseOnLaunch=True
|
||||||
|
bEnableLegacyInputScales=True
|
||||||
|
bEnableMotionControls=True
|
||||||
|
bFilterInputByPlatformUser=False
|
||||||
|
bShouldFlushPressedKeysOnViewportFocusLost=True
|
||||||
|
bEnableDynamicComponentInputBinding=True
|
||||||
|
bAlwaysShowTouchInterface=False
|
||||||
|
bShowConsoleOnFourFingerTap=True
|
||||||
|
bEnableGestureRecognizer=False
|
||||||
|
bUseAutocorrect=False
|
||||||
|
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
|
||||||
|
DefaultViewportMouseLockMode=LockOnCapture
|
||||||
|
FOVScale=0.011110
|
||||||
|
DoubleClickTime=0.200000
|
||||||
|
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
||||||
|
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
||||||
|
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||||
|
-ConsoleKeys=Tilde
|
||||||
|
+ConsoleKeys=Tilde
|
||||||
|
|
BIN
ASN4_StateMachine/Content/GDV_StateMachine/AC_StateMachine.uasset
(Stored with Git LFS)
BIN
ASN4_StateMachine/Content/GDV_StateMachine/AC_StateMachine.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
ASN4_StateMachine/Content/GDV_StateMachine/AC_State_Pause.uasset
(Stored with Git LFS)
Normal file
BIN
ASN4_StateMachine/Content/GDV_StateMachine/AC_State_Pause.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
ASN4_StateMachine/Content/GDV_StateMachine/BP_NavAgent.uasset
(Stored with Git LFS)
BIN
ASN4_StateMachine/Content/GDV_StateMachine/BP_NavAgent.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
ASN4_StateMachine/Content/GDV_StateMachine/I_Machine.uasset
(Stored with Git LFS)
BIN
ASN4_StateMachine/Content/GDV_StateMachine/I_Machine.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
ASN4_StateMachine/Content/GDV_StateMachine/LevelExperiment.umap
(Stored with Git LFS)
BIN
ASN4_StateMachine/Content/GDV_StateMachine/LevelExperiment.umap
(Stored with Git LFS)
Binary file not shown.
BIN
ASN4_StateMachine/Intermediate/CachedAssetRegistry.bin
Normal file
BIN
ASN4_StateMachine/Intermediate/CachedAssetRegistry.bin
Normal file
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
[Internationalization]
|
||||||
|
ShouldUseLocalizedNumericInput=True
|
||||||
|
|
@@ -0,0 +1,293 @@
|
|||||||
|
[/Script/Engine.InputSettings]
|
||||||
|
bEnableMouseSmoothing=True
|
||||||
|
bEnableFOVScaling=True
|
||||||
|
FOVScale=0.011110
|
||||||
|
DoubleClickTime=0.200000
|
||||||
|
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||||
|
bAlwaysShowTouchInterface=False
|
||||||
|
bShowConsoleOnFourFingerTap=True
|
||||||
|
bAltEnterTogglesFullscreen=True
|
||||||
|
bF11TogglesFullscreen=True
|
||||||
|
bRequireCtrlToNavigateAutoComplete=False
|
||||||
|
bEnableGestureRecognizer=False
|
||||||
|
TriggerKeyIsConsideredPressed=0.75
|
||||||
|
TriggerKeyIsConsideredReleased=0.25
|
||||||
|
InitialButtonRepeatDelay=0.2
|
||||||
|
ButtonRepeatDelay=0.1
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||||
|
bUseMouseForTouch=False
|
||||||
|
bCaptureMouseOnLaunch=True
|
||||||
|
bEnableLegacyInputScales=True
|
||||||
|
bEnableMotionControls=True
|
||||||
|
bFilterInputByPlatformUser=False
|
||||||
|
bShouldFlushPressedKeysOnViewportFocusLost=True
|
||||||
|
bEnableDynamicComponentInputBinding=True
|
||||||
|
bUseAutocorrect=False
|
||||||
|
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
|
||||||
|
DefaultViewportMouseLockMode=LockOnCapture
|
||||||
|
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
||||||
|
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
||||||
|
ConsoleKeys=Tilde
|
||||||
|
|
||||||
|
[/Script/Engine.PlayerInput]
|
||||||
|
DebugExecBindings=(Key=F11,Command="LevelEditor.ToggleImmersive", bIgnoreCtrl=True, bIgnoreAlt=True)
|
||||||
|
DebugExecBindings=(Key=F11,Command="MainFrame.ToggleFullscreen",Shift=True)
|
||||||
|
DebugExecBindings=(Key=F1,Command="viewmode wireframe", bIgnoreShift=True)
|
||||||
|
DebugExecBindings=(Key=F2,Command="viewmode unlit")
|
||||||
|
DebugExecBindings=(Key=F3,Command="viewmode lit")
|
||||||
|
DebugExecBindings=(Key=F4,Command="viewmode lit_detaillighting")
|
||||||
|
DebugExecBindings=(Key=F5,Command="viewmode shadercomplexity")
|
||||||
|
DebugExecBindings=(Key=F9,Command="shot showui")
|
||||||
|
DebugExecBindings=(Key=Period,Command="RECOMPILESHADERS CHANGED",Control=True,Shift=True)
|
||||||
|
DebugExecBindings=(Key=Comma,Command="PROFILEGPU",Control=True,Shift=True)
|
||||||
|
DebugExecBindings=(Key=Slash,Command="DumpGPU",Control=True,Shift=True)
|
||||||
|
DebugExecBindings=(Key=Tab,Command="FocusNextPIEWindow",Control=True)
|
||||||
|
DebugExecBindings=(Key=Tab,Command="FocusLastPIEWindow",Control=True,Shift=True)
|
||||||
|
DebugExecBindings=(Key=PageDown,Command="PreviousDebugTarget")
|
||||||
|
DebugExecBindings=(Key=PageUp,Command="NextDebugTarget")
|
||||||
|
DebugExecBindings=(Key=Apostrophe,Command="EnableGDT")
|
||||||
|
DebugExecBindings=(Key=Quote,Command="EnableGDT")
|
||||||
|
DebugExecBindings=(Key=Semicolon,Command="ToggleDebugCamera")
|
||||||
|
|
||||||
|
[/Script/Engine.Console]
|
||||||
|
HistoryBot=-1
|
||||||
|
|
||||||
|
[/Script/EngineSettings.ConsoleSettings]
|
||||||
|
MaxScrollbackSize=1024
|
||||||
|
AutoCompleteMapPaths=Content/Maps
|
||||||
|
ManualAutoCompleteList=(Command="Exit",Desc="Exits the game")
|
||||||
|
ManualAutoCompleteList=(Command="DebugCreatePlayer 1",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ToggleDrawEvents",Desc="Toggles annotations for shader debugging with Pix, Razor or similar GPU capture tools")
|
||||||
|
ManualAutoCompleteList=(Command="Shot",Desc="Make a screenshot")
|
||||||
|
ManualAutoCompleteList=(Command="RecompileShaders changed",Desc="Recompile shaders that have any changes on their source files")
|
||||||
|
ManualAutoCompleteList=(Command="RecompileShaders global",Desc="Recompile global shaders that have any changes on their source files")
|
||||||
|
ManualAutoCompleteList=(Command="RecompileShaders material ",Desc="Recompile shaders for a specific material if it's source files have changed")
|
||||||
|
ManualAutoCompleteList=(Command="RecompileShaders all",Desc="Recompile all shaders that have any changes on their source files")
|
||||||
|
ManualAutoCompleteList=(Command="DumpMaterialStats",Desc="Dump material information")
|
||||||
|
ManualAutoCompleteList=(Command="DumpShaderStats",Desc="Dump shader information")
|
||||||
|
ManualAutoCompleteList=(Command="DumpShaderPipelineStats",Desc="Dump shader pipeline information")
|
||||||
|
ManualAutoCompleteList=(Command="DumpShaderCompileStats",Desc="Dump shader compilation information")
|
||||||
|
ManualAutoCompleteList=(Command="DumpGPU -upload",Desc="Dump the GPU's intermediary resources and upload to network")
|
||||||
|
ManualAutoCompleteList=(Command="StartFPSChart",Desc="after that use StopFPSChart")
|
||||||
|
ManualAutoCompleteList=(Command="StopFPSChart",Desc="after that look for the output in Saved/Profiling/FPSChartStats")
|
||||||
|
ManualAutoCompleteList=(Command="FreezeAt",Desc="Locks the player view and rendering time.")
|
||||||
|
ManualAutoCompleteList=(Command="Open",Desc="<MapName> Opens the specified map, doesn't pass previously set options")
|
||||||
|
ManualAutoCompleteList=(Command="Travel",Desc="<MapName> Travels to the specified map, passes along previously set options")
|
||||||
|
ManualAutoCompleteList=(Command="ServerTravel",Desc="<MapName> Travels to the specified map and brings clients along, passes along previously set options")
|
||||||
|
ManualAutoCompleteList=(Command="DisplayAll",Desc="<ClassName> <PropertyName> Display property values for instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="DisplayAllLocation",Desc="<ClassName> Display location for all instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="DisplayAllRotation",Desc="<ClassName> Display rotation for all instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="DisplayClear",Desc="Clears previous DisplayAll entries")
|
||||||
|
ManualAutoCompleteList=(Command="FlushPersistentDebugLines",Desc="Clears persistent debug line cache")
|
||||||
|
ManualAutoCompleteList=(Command="GetAll ",Desc="<ClassName> <PropertyName> <Name=ObjectInstanceName> <OUTER=ObjectInstanceName> <SHOWDEFAULTS> <SHOWPENDINGKILLS> <DETAILED> Log property values of all instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="GetAllLocation",Desc="<ClassName> Log location for all instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="GetAllRotation",Desc="<ClassName> Log rotation for all instances of classname")
|
||||||
|
ManualAutoCompleteList=(Command="Obj List ",Desc="<Class=ClassName> <Type=MetaClass> <Outer=OuterObject> <Package=InsidePackage> <Inside=InsideObject>")
|
||||||
|
ManualAutoCompleteList=(Command="Obj ListContentRefs",Desc="<Class=ClassName> <ListClass=ClassName>")
|
||||||
|
ManualAutoCompleteList=(Command="Obj Classes",Desc="Shows all classes")
|
||||||
|
ManualAutoCompleteList=(Command="Obj Refs",Desc="Name=<ObjectName> Class=<OptionalObjectClass> Lists referencers of the specified object")
|
||||||
|
ManualAutoCompleteList=(Command="EditActor",Desc="<Class=ClassName> or <Name=ObjectName> or TRACE")
|
||||||
|
ManualAutoCompleteList=(Command="EditDefault",Desc="<Class=ClassName>")
|
||||||
|
ManualAutoCompleteList=(Command="EditObject",Desc="<Class=ClassName> or <Name=ObjectName> or <ObjectName>")
|
||||||
|
ManualAutoCompleteList=(Command="ReloadCfg ",Desc="<Class/ObjectName> Reloads config variables for the specified object/class")
|
||||||
|
ManualAutoCompleteList=(Command="ReloadLoc ",Desc="<Class/ObjectName> Reloads localized variables for the specified object/class")
|
||||||
|
ManualAutoCompleteList=(Command="Set ",Desc="<ClassName> <PropertyName> <Value> Sets property to value on objectname")
|
||||||
|
ManualAutoCompleteList=(Command="SetNoPEC",Desc="<ClassName> <PropertyName> <Value> Sets property to value on objectname without Pre/Post Edit Change notifications")
|
||||||
|
ManualAutoCompleteList=(Command="Stat FPS",Desc="Shows FPS counter")
|
||||||
|
ManualAutoCompleteList=(Command="Stat UNIT",Desc="Shows hardware unit framerate")
|
||||||
|
ManualAutoCompleteList=(Command="Stat DrawCount",Desc="Shows draw counts broken down by category")
|
||||||
|
ManualAutoCompleteList=(Command="Stat UnitGraph",Desc="Draws simple unit time graph")
|
||||||
|
ManualAutoCompleteList=(Command="Stat NamedEvents",Desc="Stat NamedEvents (Enables named events for external profilers)")
|
||||||
|
ManualAutoCompleteList=(Command="Stat VerboseNamedEvents",Desc="Stat VerboseNamedEvents (Enables verbose named events for external profilers)")
|
||||||
|
ManualAutoCompleteList=(Command="Stat StartFile",Desc="Stat StartFile (starts a stats capture, creating a new file in the Profiling directory; stop with stat StopFile to close the file)")
|
||||||
|
ManualAutoCompleteList=(Command="Stat StopFile",Desc="Stat StopFile (finishes a stats capture started by stat StartFile)")
|
||||||
|
ManualAutoCompleteList=(Command="Stat CPULoad",Desc="Stat CPULoad (Shows CPU Utilization)")
|
||||||
|
ManualAutoCompleteList=(Command="Stat DUMPHITCHES",Desc="executes dumpstats on hitches - see log")
|
||||||
|
ManualAutoCompleteList=(Command="Stat D3D11RHI",Desc="Shows Direct3D 11 stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat LEVELS",Desc="Displays level streaming info")
|
||||||
|
ManualAutoCompleteList=(Command="Stat GAME",Desc="Displays game performance stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat MEMORY",Desc="Displays memory stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat PHYSICS",Desc="Displays physics performance stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat STREAMING",Desc="Displays basic texture streaming stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat STREAMINGDETAILS",Desc="Displays detailed texture streaming stats")
|
||||||
|
ManualAutoCompleteList=(Command="Stat GPU",Desc="Displays GPU stats for the frame")
|
||||||
|
ManualAutoCompleteList=(Command="Stat COLLISION",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat PARTICLES",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat SCRIPT",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat AUDIO",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat ANIM",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat NET",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="Stat LIST",Desc="<Groups/Sets/Group> List groups of stats, saved sets, or specific stats within a specified group")
|
||||||
|
ManualAutoCompleteList=(Command="Stat splitscreen",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="MemReport",Desc="Outputs memory stats to a profile file. -Full gives more data, -Log outputs to the log")
|
||||||
|
ManualAutoCompleteList=(Command="ListTextures",Desc="[Streaming|NonStreaming|Forced] [-Alphasort] [-csv] Lists all loaded textures and their current memory footprint")
|
||||||
|
ManualAutoCompleteList=(Command="ListStreamingTextures",Desc="Lists info for all streaming textures")
|
||||||
|
ManualAutoCompleteList=(Command="ListAnims",Desc="Lists info for all animations")
|
||||||
|
ManualAutoCompleteList=(Command="ListSkeletalMeshes",Desc="Lists info for all skeletal meshes")
|
||||||
|
ManualAutoCompleteList=(Command="ListStaticMeshes",Desc="Lists info for all static meshes")
|
||||||
|
ManualAutoCompleteList=(Command="InvestigateTexture",Desc="Shows streaming info about the specified texture")
|
||||||
|
ManualAutoCompleteList=(Command="DumpTextureStreamingStats",Desc="Dump current streaming stats (e.g. pool capacity) to the log")
|
||||||
|
ManualAutoCompleteList=(Command="RestartLevel",Desc="Restarts the level")
|
||||||
|
ManualAutoCompleteList=(Command="Module List",Desc="Lists all known modules")
|
||||||
|
ManualAutoCompleteList=(Command="Module Load",Desc="Attempts to load the specified module name")
|
||||||
|
ManualAutoCompleteList=(Command="Module Unload",Desc="Unloads the specified module name")
|
||||||
|
ManualAutoCompleteList=(Command="Module Reload",Desc="Reloads the specified module name, unloading it first if needed")
|
||||||
|
ManualAutoCompleteList=(Command="Module Recompile",Desc="Attempts to recompile a module, first unloading it if needed")
|
||||||
|
ManualAutoCompleteList=(Command="HotReload",Desc="<UObject DLL Hot Reload> Attempts to recompile a UObject DLL and reload it on the fly")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioDebugSound",Desc="<filter> Rejects new USoundBase requests where the sound name does not contain the provided filter")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioGetDynamicSoundVolume",Desc="Gets volume for given sound type ('Class', 'Cue' or 'Wave') with provided name")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioMemReport",Desc="Lists info for audio memory")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioMixerDebugSound",Desc="<filter> With new mixer enabled, rejects new USoundBase requests where the sound name does not contain the provided filter")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioResetAllDynamicSoundVolumes",Desc="Resets all dynamic volumes to unity")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioResetDynamicSoundVolume",Desc="Resets volume for given sound type ('Class', 'Cue' or 'Wave') with provided name to unity")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioSetDynamicSoundVolume",Desc="Name=<name> Type=<type> Vol=<vol> Sets volume for given sound type ('Class', 'Cue' or 'Wave') with provided name")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioSoloSoundClass",Desc="<name> [nonexclusive] Solos sounds using this USoundClass. If nonexclusive, existing solos will persist")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioSoloSoundCue",Desc="<name> [nonexclusive] Solos any type of USoundBase. If nonexclusive, existing solos will persist")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.AudioSoloSoundWave",Desc="<name> [nonexclusive] Solos USoundWave. If nonexclusive, existing solos will persist")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ClearSoloAudio",Desc="Clears solo'ed object")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.DisableLPF",Desc="Disables low-pass filter")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.DisableEQFilter",Desc="Disables EQ")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.DisableRadio",Desc="Disables radio effect")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.DumpSoundInfo",Desc="Dumps sound information to log")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.EnableRadio",Desc="Enables radio effect")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.IsolateDryAudio",Desc="Isolates dry audio")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.IsolateReverb",Desc="Isolates reverb")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ListAudioComponents",Desc="Dumps a detailed list of all AudioComponent objects")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ListSoundClasses",Desc="Lists a summary of loaded sound collated by class")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ListSoundClassVolumes",Desc="Lists all sound class volumes")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ListSoundDurations",Desc="Lists durations of all active sounds")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ListWaves",Desc="List the WaveInstances and whether they have a source")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.PlayAllPIEAudio",Desc="Toggls whether or not all devices should play their audio")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.PlaySoundCue",Desc="Plays the given soundcue")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.PlaySoundWave",Desc="<name> Plays the given soundwave")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ResetSoundState",Desc="Resets volumes to default and removes test filters")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.SetBaseSoundMix",Desc="<MixName> Sets the base sound mix")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ShowSoundClassHierarchy",Desc="")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.SoloAudio",Desc="Solos the audio device associated with the parent world")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.SoundClassFixup",Desc="Deprecated")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.TestLFEBleed",Desc="Sets LPF to max for all sources")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.TestLPF",Desc="Sets LPF to max for all sources")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.TestStereoBleed",Desc="Test bleeding stereo sounds fully to the rear speakers")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ToggleHRTFForAll",Desc="Toggles whether or not HRTF spatialization is enabled for all")
|
||||||
|
ManualAutoCompleteList=(Command="au.debug.ToggleSpatExt",Desc="Toggles enablement of the Spatial Audio Extension")
|
||||||
|
ManualAutoCompleteList=(Command="DisableAllScreenMessages",Desc="Disables all on-screen warnings/messages")
|
||||||
|
ManualAutoCompleteList=(Command="EnableAllScreenMessages",Desc="Enables all on-screen warnings/messages")
|
||||||
|
ManualAutoCompleteList=(Command="ToggleAllScreenMessages",Desc="Toggles display state of all on-screen warnings/messages")
|
||||||
|
ManualAutoCompleteList=(Command="ToggleAsyncCompute",Desc="Toggles AsyncCompute for platforms that have it")
|
||||||
|
ManualAutoCompleteList=(Command="ToggleRenderingThread",Desc="Toggles the rendering thread for platforms that have it")
|
||||||
|
ManualAutoCompleteList=(Command="CaptureMode",Desc="Toggles display state of all on-screen warnings/messages")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug None",Desc="Toggles ShowDebug w/ current debug type selection")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug Reset",Desc="Turns off ShowDebug, and clears debug type selection")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug NET",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug PHYSICS",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug COLLISION",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug AI",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug CAMERA",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug WEAPON",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug ANIMATION",Desc="Toggles display state of animation debug data")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug BONES",Desc="Toggles display of skeletalmesh bones")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug INPUT",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebug FORCEFEEDBACK",Desc="Toggles display of current force feedback values and what is contributing to that calculation")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory 3DBONES",Desc="With ShowDebug Bones: Toggles bone rendering between single lines and a more complex 3D model per bone")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory SYNCGROUPS",Desc="With ShowDebug Animation: Toggles display of sync group data")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory MONTAGES",Desc="With ShowDebug Animation: Toggles display of montage data")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory GRAPH",Desc="With ShowDebug Animation: Toggles display of animation blueprint graph")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory CURVES",Desc="With ShowDebug Animation: Toggles display of curve data")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory NOTIFIES",Desc="With ShowDebug Animation: Toggles display of notify data")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory FULLGRAPH",Desc="With ShowDebug Animation: Toggles graph display between active nodes only and all nodes")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory FULLBLENDSPACEDISPLAY",Desc="With ShowDebug Animation: Toggles display of sample blend weights on blendspaces")
|
||||||
|
ManualAutoCompleteList=(Command="ShowDebugForReticleTargetToggle ",Desc="<DesiredClass> Toggles 'ShowDebug' from showing debug info between reticle target actor (of subclass <DesiredClass>) and camera view target")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundCues",Desc="Deprecated (Use au.debug.SoundCues): Shows active SoundCues")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundMixes",Desc="Deprecated (Use au.debug.SoundMixes): Shows active SoundMixes")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundModulators",Desc="Deprecated (Use au.debug.SoundModulators): Shows modulator debug info as provided by active audio modulation plugin")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundModulatorsHelp",Desc="Deprecated (Use au.debug.SoundModulatorsHelp):Shows modulator debug help provided by active audio modulation plugin")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundReverb",Desc="Deprecated (Use au.debug.SoundReverb): Shows active SoundReverb")
|
||||||
|
ManualAutoCompleteList=(Command="Stat SoundWaves",Desc="Deprecated (Use au.debug.SoundWaves): Shows active SoundWaves")
|
||||||
|
ManualAutoCompleteList=(Command="Stat Sounds",Desc="Deprecated (Use au.debug.Sounds): <?> <sort=class|distance|name|priority|time|volume|waves> <-debug> Shows all active sounds. Displays value sorted by when sort is set")
|
||||||
|
ManualAutoCompleteList=(Command="ScriptAudit LongestFunctions",Desc="List functions that contain the most bytecode - optionally include # of entries to list")
|
||||||
|
ManualAutoCompleteList=(Command="ScriptAudit FrequentFunctionsCalled",Desc="List functions that are most frequently called from bytecode - optionally include # of entries to list")
|
||||||
|
ManualAutoCompleteList=(Command="ScriptAudit FrequentInstructions",Desc="List most frequently used instructions - optionally include # of entries to list")
|
||||||
|
ManualAutoCompleteList=(Command="ScriptAudit TotalBytecodeSize",Desc="Gather total size of bytecode in bytes of currently loaded functions")
|
||||||
|
ManualAutoCompleteList=(Command="Audio3dVisualize",Desc="Shows locations of sound sources playing (white text) and their left and right channel locations respectively (red and green). Virtualized loops (if enabled) display in blue.")
|
||||||
|
ManualAutoCompleteList=(Command="StartMovieCapture",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="StopMovieCapture",Desc=)
|
||||||
|
ManualAutoCompleteList=(Command="TraceTag",Desc="Draw traces that use the specified tag")
|
||||||
|
ManualAutoCompleteList=(Command="TraceTagAll",Desc="Draw all scene queries regardless of the trace tag")
|
||||||
|
ManualAutoCompleteList=(Command="VisLog",Desc="Launches Log Visualizer tool")
|
||||||
|
ManualAutoCompleteList=(Command="CycleNavDrawn",Desc="Cycles through navigation data (navmeshes for example) to draw one at a time")
|
||||||
|
ManualAutoCompleteList=(Command="Log ",Desc="<category> <level> Change verbosity level for a log category")
|
||||||
|
ManualAutoCompleteList=(Command="Log list",Desc="<search string> Search for log categories")
|
||||||
|
ManualAutoCompleteList=(Command="Log reset",Desc="Undo any changes to log verbosity")
|
||||||
|
ManualAutoCompleteList=(Command="RecordAnimation ActorName AnimName",Desc="Record animation for a specified actor to the specified file")
|
||||||
|
ManualAutoCompleteList=(Command="StopRecordingAnimation All",Desc="Stop all recording animations")
|
||||||
|
ManualAutoCompleteList=(Command="RecordSequence Filter ActorOrClassName",Desc="Record a level sequence from gameplay. Filter=<All|Actor|Class>")
|
||||||
|
ManualAutoCompleteList=(Command="StopRecordingSequence",Desc="Stop recording the current sequence. Only one sequence recording can be active at one time.")
|
||||||
|
ManualAutoCompleteList=(Command="RecordTake Filter ActorOrClassName",Desc="Record a level sequence from gameplay. Filter=<All|Actor|Class>")
|
||||||
|
ManualAutoCompleteList=(Command="StopRecordingTake",Desc="Stop recording the current sequence. Only one sequence recording can be active at one time.")
|
||||||
|
ManualAutoCompleteList=(Command="FreezeRendering",Desc="Toggle freezing of most aspects of rendering (such as visibility calculations), useful in conjunction with ToggleDebugCamera to fly around and see how frustum and occlusion culling is working")
|
||||||
|
ManualAutoCompleteList=(Command="ProfileGPU",Desc="Profile one frame of rendering commands sent to the GPU")
|
||||||
|
ManualAutoCompleteList=(Command="ProfileGPUHitches",Desc="Toggle profiling of GPU hitches.")
|
||||||
|
ManualAutoCompleteList=(Command="DumpGPU",Desc="Dump one frame of rendering intermediary resources to disk.")
|
||||||
|
ManualAutoCompleteList=(Command="Automation",Desc="Run an automation command (e.g., Automation RunTests TestName)")
|
||||||
|
ManualAutoCompleteList=(Command="CsvProfile Start",Desc="Start CSV profiling.")
|
||||||
|
ManualAutoCompleteList=(Command="CsvProfile Stop",Desc="Stop CSV profiling.")
|
||||||
|
ManualAutoCompleteList=(Command="NetProfile Enable",Desc="Start network profiling.")
|
||||||
|
ManualAutoCompleteList=(Command="NetProfile Disable",Desc="Stop network profiling.")
|
||||||
|
BackgroundOpacityPercentage=85.000000
|
||||||
|
InputColor=(R=230,G=230,B=230,A=255)
|
||||||
|
HistoryColor=(R=180,G=180,B=180,A=255)
|
||||||
|
AutoCompleteCommandColor=(B=185,G=109,R=144,A=255)
|
||||||
|
AutoCompleteCVarColor=(B=86,G=158,R=86,A=255)
|
||||||
|
AutoCompleteFadedColor=(R=100,G=100,B=100,A=255)
|
||||||
|
|
BIN
ASN4_StateMachine/Intermediate/ReimportCache/3688439234.bin
Normal file
BIN
ASN4_StateMachine/Intermediate/ReimportCache/3688439234.bin
Normal file
Binary file not shown.
@@ -0,0 +1,489 @@
|
|||||||
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
float SampleDeviceZFromSceneTexturesTempCopy(float2 UV)
|
||||||
|
{
|
||||||
|
return SceneDepthTexture.SampleLevel(SceneDepthTextureSampler, UV, 0).r;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GBUFFER_LAYOUT
|
||||||
|
#define GBUFFER_LAYOUT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_LAYOUT == 0
|
||||||
|
|
||||||
|
void EncodeGBufferToMRT(inout FPixelShaderOut Out, FGBufferData GBuffer, float QuantizationBias)
|
||||||
|
{
|
||||||
|
float4 MrtFloat1 = 0.0f;
|
||||||
|
float4 MrtFloat2 = 0.0f;
|
||||||
|
uint4 MrtUint2 = 0;
|
||||||
|
float4 MrtFloat3 = 0.0f;
|
||||||
|
float4 MrtFloat4 = 0.0f;
|
||||||
|
float4 MrtFloat5 = 0.0f;
|
||||||
|
|
||||||
|
float3 WorldNormal_Compressed = EncodeNormalHelper(GBuffer.WorldNormal, 0.0f);
|
||||||
|
|
||||||
|
MrtFloat1.x = WorldNormal_Compressed.x;
|
||||||
|
MrtFloat1.y = WorldNormal_Compressed.y;
|
||||||
|
MrtFloat1.z = WorldNormal_Compressed.z;
|
||||||
|
MrtFloat1.w = GBuffer.PerObjectGBufferData.x;
|
||||||
|
MrtFloat2.x = GBuffer.Metallic.x;
|
||||||
|
MrtFloat2.y = GBuffer.Specular.x;
|
||||||
|
MrtFloat2.z = GBuffer.Roughness.x;
|
||||||
|
MrtUint2.w |= ((((GBuffer.ShadingModelID.x) >> 0) & 0x0f) << 0);
|
||||||
|
MrtUint2.w |= ((((GBuffer.SelectiveOutputMask.x) >> 0) & 0x0f) << 4);
|
||||||
|
MrtFloat3.x = GBuffer.BaseColor.x;
|
||||||
|
MrtFloat3.y = GBuffer.BaseColor.y;
|
||||||
|
MrtFloat3.z = GBuffer.BaseColor.z;
|
||||||
|
MrtFloat3.w = GBuffer.GenericAO.x;
|
||||||
|
MrtFloat5.x = GBuffer.PrecomputedShadowFactors.x;
|
||||||
|
MrtFloat5.y = GBuffer.PrecomputedShadowFactors.y;
|
||||||
|
MrtFloat5.z = GBuffer.PrecomputedShadowFactors.z;
|
||||||
|
MrtFloat5.w = GBuffer.PrecomputedShadowFactors.w;
|
||||||
|
MrtFloat4.x = GBuffer.CustomData.x;
|
||||||
|
MrtFloat4.y = GBuffer.CustomData.y;
|
||||||
|
MrtFloat4.z = GBuffer.CustomData.z;
|
||||||
|
MrtFloat4.w = GBuffer.CustomData.w;
|
||||||
|
|
||||||
|
Out.MRT[1] = MrtFloat1;
|
||||||
|
Out.MRT[2] = float4(MrtFloat2.x, MrtFloat2.y, MrtFloat2.z, (float(MrtUint2.w) + .5f) / 255.0f);
|
||||||
|
Out.MRT[3] = MrtFloat3;
|
||||||
|
Out.MRT[4] = MrtFloat4;
|
||||||
|
Out.MRT[5] = MrtFloat5;
|
||||||
|
Out.MRT[6] = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
Out.MRT[7] = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FGBufferData DecodeGBufferDataDirect(float4 InMRT1,
|
||||||
|
float4 InMRT2,
|
||||||
|
float4 InMRT3,
|
||||||
|
float4 InMRT4,
|
||||||
|
float4 InMRT5,
|
||||||
|
|
||||||
|
float CustomNativeDepth,
|
||||||
|
float4 AnisotropicData,
|
||||||
|
uint CustomStencil,
|
||||||
|
float SceneDepth,
|
||||||
|
bool bGetNormalizedNormal,
|
||||||
|
bool bChecker)
|
||||||
|
{
|
||||||
|
FGBufferData Ret = (FGBufferData)0;
|
||||||
|
float3 WorldNormal_Compressed = 0.0f;
|
||||||
|
WorldNormal_Compressed.x = InMRT1.x;
|
||||||
|
WorldNormal_Compressed.y = InMRT1.y;
|
||||||
|
WorldNormal_Compressed.z = InMRT1.z;
|
||||||
|
Ret.PerObjectGBufferData.x = InMRT1.w;
|
||||||
|
Ret.Metallic.x = InMRT2.x;
|
||||||
|
Ret.Specular.x = InMRT2.y;
|
||||||
|
Ret.Roughness.x = InMRT2.z;
|
||||||
|
Ret.ShadingModelID.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 0) & 0x0f) << 0);
|
||||||
|
Ret.SelectiveOutputMask.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 4) & 0x0f) << 0);
|
||||||
|
Ret.BaseColor.x = InMRT3.x;
|
||||||
|
Ret.BaseColor.y = InMRT3.y;
|
||||||
|
Ret.BaseColor.z = InMRT3.z;
|
||||||
|
Ret.GenericAO.x = InMRT3.w;
|
||||||
|
Ret.PrecomputedShadowFactors.x = InMRT5.x;
|
||||||
|
Ret.PrecomputedShadowFactors.y = InMRT5.y;
|
||||||
|
Ret.PrecomputedShadowFactors.z = InMRT5.z;
|
||||||
|
Ret.PrecomputedShadowFactors.w = InMRT5.w;
|
||||||
|
Ret.CustomData.x = InMRT4.x;
|
||||||
|
Ret.CustomData.y = InMRT4.y;
|
||||||
|
Ret.CustomData.z = InMRT4.z;
|
||||||
|
Ret.CustomData.w = InMRT4.w;
|
||||||
|
|
||||||
|
Ret.WorldNormal = DecodeNormalHelper(WorldNormal_Compressed);
|
||||||
|
Ret.WorldTangent = AnisotropicData.xyz;
|
||||||
|
Ret.Anisotropy = AnisotropicData.w;
|
||||||
|
|
||||||
|
GBufferPostDecode(Ret,bChecker,bGetNormalizedNormal);
|
||||||
|
|
||||||
|
Ret.CustomDepth = ConvertFromDeviceZ(CustomNativeDepth);
|
||||||
|
Ret.CustomStencil = CustomStencil;
|
||||||
|
Ret.Depth = SceneDepth;
|
||||||
|
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUV(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = Texture2DSampleLevel(SceneTexturesStruct.CustomDepthTexture, SceneTexturesStruct_CustomDepthTextureSampler, UV, 0).r;
|
||||||
|
int2 IntUV = (int2)trunc(UV * View.BufferSizeAndInvSize.xy * View.BufferToSceneTextureScale.xy);
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(IntUV, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(UV);
|
||||||
|
float4 AnisotropicData = Texture2DSampleLevel(SceneTexturesStruct.GBufferFTexture, SceneTexturesStruct_GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = Texture2DSampleLevel(SceneTexturesStruct.GBufferATexture, SceneTexturesStruct_GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = Texture2DSampleLevel(SceneTexturesStruct.GBufferBTexture, SceneTexturesStruct_GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = Texture2DSampleLevel(SceneTexturesStruct.GBufferCTexture, SceneTexturesStruct_GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = Texture2DSampleLevel(SceneTexturesStruct.GBufferDTexture, SceneTexturesStruct_GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = Texture2DSampleLevel(SceneTexturesStruct.GBufferETexture, SceneTexturesStruct_GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUint(uint2 PixelPos, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = SceneTexturesStruct.CustomDepthTexture.Load(int3(PixelPos, 0)).r;
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(PixelPos, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(PixelPos);
|
||||||
|
float4 AnisotropicData = SceneTexturesStruct.GBufferFTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = SceneTexturesStruct.GBufferATexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT2 = SceneTexturesStruct.GBufferBTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT3 = SceneTexturesStruct.GBufferCTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT4 = SceneTexturesStruct.GBufferDTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT5 = SceneTexturesStruct.GBufferETexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelPos));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTextures(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SampleDeviceZFromSceneTexturesTempCopy(UV);
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.SampleLevel(GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.SampleLevel(GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.SampleLevel(GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.SampleLevel(GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = GBufferDTexture.SampleLevel(GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = GBufferETexture.SampleLevel(GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTexturesLoad(uint2 PixelCoord, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SceneDepthTexture.Load(int3(PixelCoord, 0)).r;
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT4 = GBufferDTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT5 = GBufferETexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelCoord));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_LAYOUT == 1
|
||||||
|
|
||||||
|
void EncodeGBufferToMRT(inout FPixelShaderOut Out, FGBufferData GBuffer, float QuantizationBias)
|
||||||
|
{
|
||||||
|
float4 MrtFloat1 = 0.0f;
|
||||||
|
float4 MrtFloat2 = 0.0f;
|
||||||
|
uint4 MrtUint2 = 0;
|
||||||
|
float4 MrtFloat3 = 0.0f;
|
||||||
|
float2 MrtFloat4 = 0.0f;
|
||||||
|
float4 MrtFloat5 = 0.0f;
|
||||||
|
float4 MrtFloat6 = 0.0f;
|
||||||
|
|
||||||
|
float3 WorldNormal_Compressed = EncodeNormalHelper(GBuffer.WorldNormal, 0.0f);
|
||||||
|
|
||||||
|
MrtFloat1.x = WorldNormal_Compressed.x;
|
||||||
|
MrtFloat1.y = WorldNormal_Compressed.y;
|
||||||
|
MrtFloat1.z = WorldNormal_Compressed.z;
|
||||||
|
MrtFloat1.w = GBuffer.PerObjectGBufferData.x;
|
||||||
|
MrtFloat2.x = GBuffer.Metallic.x;
|
||||||
|
MrtFloat2.y = GBuffer.Specular.x;
|
||||||
|
MrtFloat2.z = GBuffer.Roughness.x;
|
||||||
|
MrtUint2.w |= ((((GBuffer.ShadingModelID.x) >> 0) & 0x0f) << 0);
|
||||||
|
MrtUint2.w |= ((((GBuffer.SelectiveOutputMask.x) >> 0) & 0x0f) << 4);
|
||||||
|
MrtFloat3.x = GBuffer.BaseColor.x;
|
||||||
|
MrtFloat3.y = GBuffer.BaseColor.y;
|
||||||
|
MrtFloat3.z = GBuffer.BaseColor.z;
|
||||||
|
MrtFloat3.w = GBuffer.GenericAO.x;
|
||||||
|
MrtFloat4.x = GBuffer.Velocity.x;
|
||||||
|
MrtFloat4.y = GBuffer.Velocity.y;
|
||||||
|
MrtFloat6.x = GBuffer.PrecomputedShadowFactors.x;
|
||||||
|
MrtFloat6.y = GBuffer.PrecomputedShadowFactors.y;
|
||||||
|
MrtFloat6.z = GBuffer.PrecomputedShadowFactors.z;
|
||||||
|
MrtFloat6.w = GBuffer.PrecomputedShadowFactors.w;
|
||||||
|
MrtFloat5.x = GBuffer.CustomData.x;
|
||||||
|
MrtFloat5.y = GBuffer.CustomData.y;
|
||||||
|
MrtFloat5.z = GBuffer.CustomData.z;
|
||||||
|
MrtFloat5.w = GBuffer.CustomData.w;
|
||||||
|
|
||||||
|
Out.MRT[1] = MrtFloat1;
|
||||||
|
Out.MRT[2] = float4(MrtFloat2.x, MrtFloat2.y, MrtFloat2.z, (float(MrtUint2.w) + .5f) / 255.0f);
|
||||||
|
Out.MRT[3] = MrtFloat3;
|
||||||
|
Out.MRT[4] = float4(MrtFloat4.x, MrtFloat4.y, 0.0f, 0.0f);
|
||||||
|
Out.MRT[5] = MrtFloat5;
|
||||||
|
Out.MRT[6] = MrtFloat6;
|
||||||
|
Out.MRT[7] = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FGBufferData DecodeGBufferDataDirect(float4 InMRT1,
|
||||||
|
float4 InMRT2,
|
||||||
|
float4 InMRT3,
|
||||||
|
float2 InMRT4,
|
||||||
|
float4 InMRT5,
|
||||||
|
float4 InMRT6,
|
||||||
|
|
||||||
|
float CustomNativeDepth,
|
||||||
|
float4 AnisotropicData,
|
||||||
|
uint CustomStencil,
|
||||||
|
float SceneDepth,
|
||||||
|
bool bGetNormalizedNormal,
|
||||||
|
bool bChecker)
|
||||||
|
{
|
||||||
|
FGBufferData Ret = (FGBufferData)0;
|
||||||
|
float3 WorldNormal_Compressed = 0.0f;
|
||||||
|
WorldNormal_Compressed.x = InMRT1.x;
|
||||||
|
WorldNormal_Compressed.y = InMRT1.y;
|
||||||
|
WorldNormal_Compressed.z = InMRT1.z;
|
||||||
|
Ret.PerObjectGBufferData.x = InMRT1.w;
|
||||||
|
Ret.Metallic.x = InMRT2.x;
|
||||||
|
Ret.Specular.x = InMRT2.y;
|
||||||
|
Ret.Roughness.x = InMRT2.z;
|
||||||
|
Ret.ShadingModelID.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 0) & 0x0f) << 0);
|
||||||
|
Ret.SelectiveOutputMask.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 4) & 0x0f) << 0);
|
||||||
|
Ret.BaseColor.x = InMRT3.x;
|
||||||
|
Ret.BaseColor.y = InMRT3.y;
|
||||||
|
Ret.BaseColor.z = InMRT3.z;
|
||||||
|
Ret.GenericAO.x = InMRT3.w;
|
||||||
|
Ret.Velocity.x = InMRT4.x;
|
||||||
|
Ret.Velocity.y = InMRT4.y;
|
||||||
|
Ret.PrecomputedShadowFactors.x = InMRT6.x;
|
||||||
|
Ret.PrecomputedShadowFactors.y = InMRT6.y;
|
||||||
|
Ret.PrecomputedShadowFactors.z = InMRT6.z;
|
||||||
|
Ret.PrecomputedShadowFactors.w = InMRT6.w;
|
||||||
|
Ret.CustomData.x = InMRT5.x;
|
||||||
|
Ret.CustomData.y = InMRT5.y;
|
||||||
|
Ret.CustomData.z = InMRT5.z;
|
||||||
|
Ret.CustomData.w = InMRT5.w;
|
||||||
|
|
||||||
|
Ret.WorldNormal = DecodeNormalHelper(WorldNormal_Compressed);
|
||||||
|
Ret.WorldTangent = AnisotropicData.xyz;
|
||||||
|
Ret.Anisotropy = AnisotropicData.w;
|
||||||
|
|
||||||
|
GBufferPostDecode(Ret,bChecker,bGetNormalizedNormal);
|
||||||
|
|
||||||
|
Ret.CustomDepth = ConvertFromDeviceZ(CustomNativeDepth);
|
||||||
|
Ret.CustomStencil = CustomStencil;
|
||||||
|
Ret.Depth = SceneDepth;
|
||||||
|
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUV(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = Texture2DSampleLevel(SceneTexturesStruct.CustomDepthTexture, SceneTexturesStruct_CustomDepthTextureSampler, UV, 0).r;
|
||||||
|
int2 IntUV = (int2)trunc(UV * View.BufferSizeAndInvSize.xy * View.BufferToSceneTextureScale.xy);
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(IntUV, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(UV);
|
||||||
|
float4 AnisotropicData = Texture2DSampleLevel(SceneTexturesStruct.GBufferFTexture, SceneTexturesStruct_GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = Texture2DSampleLevel(SceneTexturesStruct.GBufferATexture, SceneTexturesStruct_GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = Texture2DSampleLevel(SceneTexturesStruct.GBufferBTexture, SceneTexturesStruct_GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = Texture2DSampleLevel(SceneTexturesStruct.GBufferCTexture, SceneTexturesStruct_GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float2 InMRT4 = Texture2DSampleLevel(SceneTexturesStruct.GBufferVelocityTexture, SceneTexturesStruct_GBufferVelocityTextureSampler, UV, 0).xy;
|
||||||
|
float4 InMRT5 = Texture2DSampleLevel(SceneTexturesStruct.GBufferDTexture, SceneTexturesStruct_GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = Texture2DSampleLevel(SceneTexturesStruct.GBufferETexture, SceneTexturesStruct_GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUint(uint2 PixelPos, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = SceneTexturesStruct.CustomDepthTexture.Load(int3(PixelPos, 0)).r;
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(PixelPos, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(PixelPos);
|
||||||
|
float4 AnisotropicData = SceneTexturesStruct.GBufferFTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = SceneTexturesStruct.GBufferATexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT2 = SceneTexturesStruct.GBufferBTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT3 = SceneTexturesStruct.GBufferCTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float2 InMRT4 = SceneTexturesStruct.GBufferVelocityTexture.Load(int3(PixelPos, 0)).xy;
|
||||||
|
float4 InMRT5 = SceneTexturesStruct.GBufferDTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT6 = SceneTexturesStruct.GBufferETexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelPos));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTextures(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SampleDeviceZFromSceneTexturesTempCopy(UV);
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.SampleLevel(GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.SampleLevel(GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.SampleLevel(GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.SampleLevel(GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float2 InMRT4 = GBufferVelocityTexture.SampleLevel(GBufferVelocityTextureSampler, UV, 0).xy;
|
||||||
|
float4 InMRT5 = GBufferDTexture.SampleLevel(GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.SampleLevel(GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTexturesLoad(uint2 PixelCoord, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SceneDepthTexture.Load(int3(PixelCoord, 0)).r;
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float2 InMRT4 = GBufferVelocityTexture.Load(int3(PixelCoord, 0)).xy;
|
||||||
|
float4 InMRT5 = GBufferDTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelCoord));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@@ -0,0 +1,511 @@
|
|||||||
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
float SampleDeviceZFromSceneTexturesTempCopy(float2 UV)
|
||||||
|
{
|
||||||
|
return SceneDepthTexture.SampleLevel(SceneDepthTextureSampler, UV, 0).r;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GBUFFER_LAYOUT
|
||||||
|
#define GBUFFER_LAYOUT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_LAYOUT == 0
|
||||||
|
|
||||||
|
void EncodeGBufferToMRT(inout FPixelShaderOut Out, FGBufferData GBuffer, float QuantizationBias)
|
||||||
|
{
|
||||||
|
float4 MrtFloat1 = 0.0f;
|
||||||
|
float4 MrtFloat2 = 0.0f;
|
||||||
|
uint4 MrtUint2 = 0;
|
||||||
|
float4 MrtFloat3 = 0.0f;
|
||||||
|
float4 MrtFloat4 = 0.0f;
|
||||||
|
float4 MrtFloat5 = 0.0f;
|
||||||
|
float4 MrtFloat6 = 0.0f;
|
||||||
|
|
||||||
|
float3 WorldNormal_Compressed = EncodeNormalHelper(GBuffer.WorldNormal, 0.0f);
|
||||||
|
|
||||||
|
MrtFloat1.x = WorldNormal_Compressed.x;
|
||||||
|
MrtFloat1.y = WorldNormal_Compressed.y;
|
||||||
|
MrtFloat1.z = WorldNormal_Compressed.z;
|
||||||
|
MrtFloat1.w = GBuffer.PerObjectGBufferData.x;
|
||||||
|
MrtFloat2.x = GBuffer.Metallic.x;
|
||||||
|
MrtFloat2.y = GBuffer.Specular.x;
|
||||||
|
MrtFloat2.z = GBuffer.Roughness.x;
|
||||||
|
MrtUint2.w |= ((((GBuffer.ShadingModelID.x) >> 0) & 0x0f) << 0);
|
||||||
|
MrtUint2.w |= ((((GBuffer.SelectiveOutputMask.x) >> 0) & 0x0f) << 4);
|
||||||
|
MrtFloat3.x = GBuffer.BaseColor.x;
|
||||||
|
MrtFloat3.y = GBuffer.BaseColor.y;
|
||||||
|
MrtFloat3.z = GBuffer.BaseColor.z;
|
||||||
|
MrtFloat3.w = GBuffer.GenericAO.x;
|
||||||
|
MrtFloat4.x = GBuffer.Velocity.x;
|
||||||
|
MrtFloat4.y = GBuffer.Velocity.y;
|
||||||
|
MrtFloat4.z = GBuffer.Velocity.z;
|
||||||
|
MrtFloat4.w = GBuffer.Velocity.w;
|
||||||
|
MrtFloat6.x = GBuffer.PrecomputedShadowFactors.x;
|
||||||
|
MrtFloat6.y = GBuffer.PrecomputedShadowFactors.y;
|
||||||
|
MrtFloat6.z = GBuffer.PrecomputedShadowFactors.z;
|
||||||
|
MrtFloat6.w = GBuffer.PrecomputedShadowFactors.w;
|
||||||
|
MrtFloat5.x = GBuffer.CustomData.x;
|
||||||
|
MrtFloat5.y = GBuffer.CustomData.y;
|
||||||
|
MrtFloat5.z = GBuffer.CustomData.z;
|
||||||
|
MrtFloat5.w = GBuffer.CustomData.w;
|
||||||
|
|
||||||
|
Out.MRT[1] = MrtFloat1;
|
||||||
|
Out.MRT[2] = float4(MrtFloat2.x, MrtFloat2.y, MrtFloat2.z, (float(MrtUint2.w) + .5f) / 255.0f);
|
||||||
|
Out.MRT[3] = MrtFloat3;
|
||||||
|
Out.MRT[4] = MrtFloat4;
|
||||||
|
Out.MRT[5] = MrtFloat5;
|
||||||
|
Out.MRT[6] = MrtFloat6;
|
||||||
|
Out.MRT[7] = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FGBufferData DecodeGBufferDataDirect(float4 InMRT1,
|
||||||
|
float4 InMRT2,
|
||||||
|
float4 InMRT3,
|
||||||
|
float4 InMRT4,
|
||||||
|
float4 InMRT5,
|
||||||
|
float4 InMRT6,
|
||||||
|
|
||||||
|
float CustomNativeDepth,
|
||||||
|
float4 AnisotropicData,
|
||||||
|
uint CustomStencil,
|
||||||
|
float SceneDepth,
|
||||||
|
bool bGetNormalizedNormal,
|
||||||
|
bool bChecker)
|
||||||
|
{
|
||||||
|
FGBufferData Ret = (FGBufferData)0;
|
||||||
|
float3 WorldNormal_Compressed = 0.0f;
|
||||||
|
WorldNormal_Compressed.x = InMRT1.x;
|
||||||
|
WorldNormal_Compressed.y = InMRT1.y;
|
||||||
|
WorldNormal_Compressed.z = InMRT1.z;
|
||||||
|
Ret.PerObjectGBufferData.x = InMRT1.w;
|
||||||
|
Ret.Metallic.x = InMRT2.x;
|
||||||
|
Ret.Specular.x = InMRT2.y;
|
||||||
|
Ret.Roughness.x = InMRT2.z;
|
||||||
|
Ret.ShadingModelID.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 0) & 0x0f) << 0);
|
||||||
|
Ret.SelectiveOutputMask.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 4) & 0x0f) << 0);
|
||||||
|
Ret.BaseColor.x = InMRT3.x;
|
||||||
|
Ret.BaseColor.y = InMRT3.y;
|
||||||
|
Ret.BaseColor.z = InMRT3.z;
|
||||||
|
Ret.GenericAO.x = InMRT3.w;
|
||||||
|
Ret.Velocity.x = InMRT4.x;
|
||||||
|
Ret.Velocity.y = InMRT4.y;
|
||||||
|
Ret.Velocity.z = InMRT4.z;
|
||||||
|
Ret.Velocity.w = InMRT4.w;
|
||||||
|
Ret.PrecomputedShadowFactors.x = InMRT6.x;
|
||||||
|
Ret.PrecomputedShadowFactors.y = InMRT6.y;
|
||||||
|
Ret.PrecomputedShadowFactors.z = InMRT6.z;
|
||||||
|
Ret.PrecomputedShadowFactors.w = InMRT6.w;
|
||||||
|
Ret.CustomData.x = InMRT5.x;
|
||||||
|
Ret.CustomData.y = InMRT5.y;
|
||||||
|
Ret.CustomData.z = InMRT5.z;
|
||||||
|
Ret.CustomData.w = InMRT5.w;
|
||||||
|
|
||||||
|
Ret.WorldNormal = DecodeNormalHelper(WorldNormal_Compressed);
|
||||||
|
Ret.WorldTangent = AnisotropicData.xyz;
|
||||||
|
Ret.Anisotropy = AnisotropicData.w;
|
||||||
|
|
||||||
|
GBufferPostDecode(Ret,bChecker,bGetNormalizedNormal);
|
||||||
|
|
||||||
|
Ret.CustomDepth = ConvertFromDeviceZ(CustomNativeDepth);
|
||||||
|
Ret.CustomStencil = CustomStencil;
|
||||||
|
Ret.Depth = SceneDepth;
|
||||||
|
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUV(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = Texture2DSampleLevel(SceneTexturesStruct.CustomDepthTexture, SceneTexturesStruct_CustomDepthTextureSampler, UV, 0).r;
|
||||||
|
int2 IntUV = (int2)trunc(UV * View.BufferSizeAndInvSize.xy * View.BufferToSceneTextureScale.xy);
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(IntUV, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(UV);
|
||||||
|
float4 AnisotropicData = Texture2DSampleLevel(SceneTexturesStruct.GBufferFTexture, SceneTexturesStruct_GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = Texture2DSampleLevel(SceneTexturesStruct.GBufferATexture, SceneTexturesStruct_GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = Texture2DSampleLevel(SceneTexturesStruct.GBufferBTexture, SceneTexturesStruct_GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = Texture2DSampleLevel(SceneTexturesStruct.GBufferCTexture, SceneTexturesStruct_GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = Texture2DSampleLevel(SceneTexturesStruct.GBufferVelocityTexture, SceneTexturesStruct_GBufferVelocityTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = Texture2DSampleLevel(SceneTexturesStruct.GBufferDTexture, SceneTexturesStruct_GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = Texture2DSampleLevel(SceneTexturesStruct.GBufferETexture, SceneTexturesStruct_GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUint(uint2 PixelPos, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = SceneTexturesStruct.CustomDepthTexture.Load(int3(PixelPos, 0)).r;
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(PixelPos, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(PixelPos);
|
||||||
|
float4 AnisotropicData = SceneTexturesStruct.GBufferFTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = SceneTexturesStruct.GBufferATexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT2 = SceneTexturesStruct.GBufferBTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT3 = SceneTexturesStruct.GBufferCTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT4 = SceneTexturesStruct.GBufferVelocityTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT5 = SceneTexturesStruct.GBufferDTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT6 = SceneTexturesStruct.GBufferETexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelPos));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTextures(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SampleDeviceZFromSceneTexturesTempCopy(UV);
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.SampleLevel(GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.SampleLevel(GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.SampleLevel(GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.SampleLevel(GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = GBufferVelocityTexture.SampleLevel(GBufferVelocityTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = GBufferDTexture.SampleLevel(GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.SampleLevel(GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTexturesLoad(uint2 PixelCoord, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SceneDepthTexture.Load(int3(PixelCoord, 0)).r;
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT4 = GBufferVelocityTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT5 = GBufferDTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelCoord));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GBUFFER_LAYOUT == 1
|
||||||
|
|
||||||
|
void EncodeGBufferToMRT(inout FPixelShaderOut Out, FGBufferData GBuffer, float QuantizationBias)
|
||||||
|
{
|
||||||
|
float4 MrtFloat1 = 0.0f;
|
||||||
|
float4 MrtFloat2 = 0.0f;
|
||||||
|
uint4 MrtUint2 = 0;
|
||||||
|
float4 MrtFloat3 = 0.0f;
|
||||||
|
float4 MrtFloat4 = 0.0f;
|
||||||
|
float4 MrtFloat5 = 0.0f;
|
||||||
|
float4 MrtFloat6 = 0.0f;
|
||||||
|
|
||||||
|
float3 WorldNormal_Compressed = EncodeNormalHelper(GBuffer.WorldNormal, 0.0f);
|
||||||
|
|
||||||
|
MrtFloat1.x = WorldNormal_Compressed.x;
|
||||||
|
MrtFloat1.y = WorldNormal_Compressed.y;
|
||||||
|
MrtFloat1.z = WorldNormal_Compressed.z;
|
||||||
|
MrtFloat1.w = GBuffer.PerObjectGBufferData.x;
|
||||||
|
MrtFloat2.x = GBuffer.Metallic.x;
|
||||||
|
MrtFloat2.y = GBuffer.Specular.x;
|
||||||
|
MrtFloat2.z = GBuffer.Roughness.x;
|
||||||
|
MrtUint2.w |= ((((GBuffer.ShadingModelID.x) >> 0) & 0x0f) << 0);
|
||||||
|
MrtUint2.w |= ((((GBuffer.SelectiveOutputMask.x) >> 0) & 0x0f) << 4);
|
||||||
|
MrtFloat3.x = GBuffer.BaseColor.x;
|
||||||
|
MrtFloat3.y = GBuffer.BaseColor.y;
|
||||||
|
MrtFloat3.z = GBuffer.BaseColor.z;
|
||||||
|
MrtFloat3.w = GBuffer.GenericAO.x;
|
||||||
|
MrtFloat4.x = GBuffer.Velocity.x;
|
||||||
|
MrtFloat4.y = GBuffer.Velocity.y;
|
||||||
|
MrtFloat4.z = GBuffer.Velocity.z;
|
||||||
|
MrtFloat4.w = GBuffer.Velocity.w;
|
||||||
|
MrtFloat6.x = GBuffer.PrecomputedShadowFactors.x;
|
||||||
|
MrtFloat6.y = GBuffer.PrecomputedShadowFactors.y;
|
||||||
|
MrtFloat6.z = GBuffer.PrecomputedShadowFactors.z;
|
||||||
|
MrtFloat6.w = GBuffer.PrecomputedShadowFactors.w;
|
||||||
|
MrtFloat5.x = GBuffer.CustomData.x;
|
||||||
|
MrtFloat5.y = GBuffer.CustomData.y;
|
||||||
|
MrtFloat5.z = GBuffer.CustomData.z;
|
||||||
|
MrtFloat5.w = GBuffer.CustomData.w;
|
||||||
|
|
||||||
|
Out.MRT[1] = MrtFloat1;
|
||||||
|
Out.MRT[2] = float4(MrtFloat2.x, MrtFloat2.y, MrtFloat2.z, (float(MrtUint2.w) + .5f) / 255.0f);
|
||||||
|
Out.MRT[3] = MrtFloat3;
|
||||||
|
Out.MRT[4] = MrtFloat4;
|
||||||
|
Out.MRT[5] = MrtFloat5;
|
||||||
|
Out.MRT[6] = MrtFloat6;
|
||||||
|
Out.MRT[7] = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FGBufferData DecodeGBufferDataDirect(float4 InMRT1,
|
||||||
|
float4 InMRT2,
|
||||||
|
float4 InMRT3,
|
||||||
|
float4 InMRT4,
|
||||||
|
float4 InMRT5,
|
||||||
|
float4 InMRT6,
|
||||||
|
|
||||||
|
float CustomNativeDepth,
|
||||||
|
float4 AnisotropicData,
|
||||||
|
uint CustomStencil,
|
||||||
|
float SceneDepth,
|
||||||
|
bool bGetNormalizedNormal,
|
||||||
|
bool bChecker)
|
||||||
|
{
|
||||||
|
FGBufferData Ret = (FGBufferData)0;
|
||||||
|
float3 WorldNormal_Compressed = 0.0f;
|
||||||
|
WorldNormal_Compressed.x = InMRT1.x;
|
||||||
|
WorldNormal_Compressed.y = InMRT1.y;
|
||||||
|
WorldNormal_Compressed.z = InMRT1.z;
|
||||||
|
Ret.PerObjectGBufferData.x = InMRT1.w;
|
||||||
|
Ret.Metallic.x = InMRT2.x;
|
||||||
|
Ret.Specular.x = InMRT2.y;
|
||||||
|
Ret.Roughness.x = InMRT2.z;
|
||||||
|
Ret.ShadingModelID.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 0) & 0x0f) << 0);
|
||||||
|
Ret.SelectiveOutputMask.x = (((uint((float(InMRT2.w) * 255.0f) + .5f) >> 4) & 0x0f) << 0);
|
||||||
|
Ret.BaseColor.x = InMRT3.x;
|
||||||
|
Ret.BaseColor.y = InMRT3.y;
|
||||||
|
Ret.BaseColor.z = InMRT3.z;
|
||||||
|
Ret.GenericAO.x = InMRT3.w;
|
||||||
|
Ret.Velocity.x = InMRT4.x;
|
||||||
|
Ret.Velocity.y = InMRT4.y;
|
||||||
|
Ret.Velocity.z = InMRT4.z;
|
||||||
|
Ret.Velocity.w = InMRT4.w;
|
||||||
|
Ret.PrecomputedShadowFactors.x = InMRT6.x;
|
||||||
|
Ret.PrecomputedShadowFactors.y = InMRT6.y;
|
||||||
|
Ret.PrecomputedShadowFactors.z = InMRT6.z;
|
||||||
|
Ret.PrecomputedShadowFactors.w = InMRT6.w;
|
||||||
|
Ret.CustomData.x = InMRT5.x;
|
||||||
|
Ret.CustomData.y = InMRT5.y;
|
||||||
|
Ret.CustomData.z = InMRT5.z;
|
||||||
|
Ret.CustomData.w = InMRT5.w;
|
||||||
|
|
||||||
|
Ret.WorldNormal = DecodeNormalHelper(WorldNormal_Compressed);
|
||||||
|
Ret.WorldTangent = AnisotropicData.xyz;
|
||||||
|
Ret.Anisotropy = AnisotropicData.w;
|
||||||
|
|
||||||
|
GBufferPostDecode(Ret,bChecker,bGetNormalizedNormal);
|
||||||
|
|
||||||
|
Ret.CustomDepth = ConvertFromDeviceZ(CustomNativeDepth);
|
||||||
|
Ret.CustomStencil = CustomStencil;
|
||||||
|
Ret.Depth = SceneDepth;
|
||||||
|
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM5
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUV(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = Texture2DSampleLevel(SceneTexturesStruct.CustomDepthTexture, SceneTexturesStruct_CustomDepthTextureSampler, UV, 0).r;
|
||||||
|
int2 IntUV = (int2)trunc(UV * View.BufferSizeAndInvSize.xy * View.BufferToSceneTextureScale.xy);
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(IntUV, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(UV);
|
||||||
|
float4 AnisotropicData = Texture2DSampleLevel(SceneTexturesStruct.GBufferFTexture, SceneTexturesStruct_GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = Texture2DSampleLevel(SceneTexturesStruct.GBufferATexture, SceneTexturesStruct_GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = Texture2DSampleLevel(SceneTexturesStruct.GBufferBTexture, SceneTexturesStruct_GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = Texture2DSampleLevel(SceneTexturesStruct.GBufferCTexture, SceneTexturesStruct_GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = Texture2DSampleLevel(SceneTexturesStruct.GBufferVelocityTexture, SceneTexturesStruct_GBufferVelocityTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = Texture2DSampleLevel(SceneTexturesStruct.GBufferDTexture, SceneTexturesStruct_GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = Texture2DSampleLevel(SceneTexturesStruct.GBufferETexture, SceneTexturesStruct_GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataUint(uint2 PixelPos, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
float CustomNativeDepth = SceneTexturesStruct.CustomDepthTexture.Load(int3(PixelPos, 0)).r;
|
||||||
|
uint CustomStencil = SceneTexturesStruct.CustomStencilTexture.Load(int3(PixelPos, 0)) STENCIL_COMPONENT_SWIZZLE;
|
||||||
|
float SceneDepth = CalcSceneDepth(PixelPos);
|
||||||
|
float4 AnisotropicData = SceneTexturesStruct.GBufferFTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = SceneTexturesStruct.GBufferATexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT2 = SceneTexturesStruct.GBufferBTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT3 = SceneTexturesStruct.GBufferCTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT4 = SceneTexturesStruct.GBufferVelocityTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT5 = SceneTexturesStruct.GBufferDTexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
float4 InMRT6 = SceneTexturesStruct.GBufferETexture.Load(int3(PixelPos, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelPos));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTextures(float2 UV, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SampleDeviceZFromSceneTexturesTempCopy(UV);
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.SampleLevel(GBufferFTextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.SampleLevel(GBufferATextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.SampleLevel(GBufferBTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.SampleLevel(GBufferCTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT4 = GBufferVelocityTexture.SampleLevel(GBufferVelocityTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT5 = GBufferDTexture.SampleLevel(GBufferDTextureSampler, UV, 0).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.SampleLevel(GBufferETextureSampler, UV, 0).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromSceneColorUV(UV));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param PixelPos relative to left top of the rendertarget (not viewport)
|
||||||
|
FGBufferData DecodeGBufferDataSceneTexturesLoad(uint2 PixelCoord, bool bGetNormalizedNormal = true)
|
||||||
|
{
|
||||||
|
uint CustomStencil = 0;
|
||||||
|
float CustomNativeDepth = 0;
|
||||||
|
float DeviceZ = SceneDepthTexture.Load(int3(PixelCoord, 0)).r;
|
||||||
|
float SceneDepth = ConvertFromDeviceZ(DeviceZ);
|
||||||
|
float4 AnisotropicData = GBufferFTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
float4 InMRT1 = GBufferATexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT2 = GBufferBTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT3 = GBufferCTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT4 = GBufferVelocityTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT5 = GBufferDTexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
float4 InMRT6 = GBufferETexture.Load(int3(PixelCoord, 0)).xyzw;
|
||||||
|
|
||||||
|
FGBufferData Ret = DecodeGBufferDataDirect(InMRT1,
|
||||||
|
InMRT2,
|
||||||
|
InMRT3,
|
||||||
|
InMRT4,
|
||||||
|
InMRT5,
|
||||||
|
InMRT6,
|
||||||
|
|
||||||
|
CustomNativeDepth,
|
||||||
|
AnisotropicData,
|
||||||
|
CustomStencil,
|
||||||
|
SceneDepth,
|
||||||
|
bGetNormalizedNormal,
|
||||||
|
CheckerFromPixelPos(PixelCoord));
|
||||||
|
|
||||||
|
return Ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
BIN
ASN4_StateMachine/Saved/AutoScreenshot.png
(Stored with Git LFS)
Normal file
BIN
ASN4_StateMachine/Saved/AutoScreenshot.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
ASN4_StateMachine/Saved/Autosaves/PackageRestoreData.json
Normal file
BIN
ASN4_StateMachine/Saved/Autosaves/PackageRestoreData.json
Normal file
Binary file not shown.
@@ -0,0 +1,5 @@
|
|||||||
|
[CrashReportClient]
|
||||||
|
bHideLogFilesOption=false
|
||||||
|
bIsAllowedToCloseWithoutSending=true
|
||||||
|
CrashConfigPurgeDays=2
|
||||||
|
|
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Compat.ini
Normal file
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Compat.ini
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
3
ASN4_StateMachine/Saved/Config/WindowsEditor/Editor.ini
Normal file
3
ASN4_StateMachine/Saved/Config/WindowsEditor/Editor.ini
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[/Script/UnrealEd.UnrealEdOptions]
|
||||||
|
UsingXGE=False
|
||||||
|
|
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
|
70
ASN4_StateMachine/Saved/Config/WindowsEditor/Engine.ini
Normal file
70
ASN4_StateMachine/Saved/Config/WindowsEditor/Engine.ini
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
[Core.System]
|
||||||
|
Paths=../../../Engine/Content
|
||||||
|
Paths=%GAMEDIR%Content
|
||||||
|
Paths=../../../Engine/Plugins/Bridge/Content
|
||||||
|
Paths=../../../Engine/Plugins/2D/Paper2D/Content
|
||||||
|
Paths=../../../Engine/Plugins/Animation/ControlRig/Content
|
||||||
|
Paths=../../../Engine/Plugins/Animation/ControlRigSpline/Content
|
||||||
|
Paths=../../../Engine/Plugins/FX/Niagara/Content
|
||||||
|
Paths=../../../Engine/Plugins/Animation/IKRig/Content
|
||||||
|
Paths=../../../Engine/Plugins/Enterprise/DatasmithContent/Content
|
||||||
|
Paths=../../../Engine/Plugins/Enterprise/GLTFExporter/Content
|
||||||
|
Paths=../../../Engine/Plugins/VirtualProduction/Takes/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/BlueprintHeaderView/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/GeometryMode/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/GLTFImporter/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/ModelingToolsEditorMode/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/SpeedTreeImporter/Content
|
||||||
|
Paths=../../../Engine/Plugins/Media/MediaCompositing/Content
|
||||||
|
Paths=../../../Engine/Plugins/Media/MediaPlate/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/AudioSynesthesia/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/AudioWidgets/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/GeometryProcessing/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/MeshModelingToolset/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/Metasound/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/ResonanceAudio/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/Synthesis/Content
|
||||||
|
Paths=../../../Engine/Plugins/Runtime/WaveTable/Content
|
||||||
|
Paths=../../../Engine/Plugins/Interchange/Runtime/Content
|
||||||
|
Paths=../../../Engine/Plugins/Developer/AnimationSharing/Content
|
||||||
|
Paths=../../../Engine/Plugins/MovieScene/SequencerScripting/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/ChaosCaching/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/ChaosClothEditor/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/ChaosNiagara/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/ChaosSolverPlugin/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/Dataflow/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/FullBodyIK/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/GeometryCollectionPlugin/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/GeometryFlow/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/MeshLODToolset/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/MeshModelingToolsetExp/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/PythonScriptPlugin/Content
|
||||||
|
Paths=../../../Engine/Plugins/Experimental/UVEditor/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/ObjectMixer/ObjectMixer/Content
|
||||||
|
Paths=../../../Engine/Plugins/Editor/ObjectMixer/LightMixer/Content
|
||||||
|
|
||||||
|
[/Script/UnrealEd.UnrealEdEngine]
|
||||||
|
TemplateMapInfos=(ThumbnailTexture=None,Thumbnail="/Engine/Maps/Templates/Thumbnails/OpenWorld.OpenWorld",Map="/Engine/Maps/Templates/OpenWorld",DisplayName="Open World",Category="OpenWorld")
|
||||||
|
TemplateMapInfos=(ThumbnailTexture=None,Thumbnail="/Engine/Maps/Templates/Thumbnails/Basic.Basic",Map="/Engine/Maps/Templates/Template_Default",DisplayName="Basic",Category="")
|
||||||
|
|
||||||
|
[/Script/AndroidPlatformEditor.AndroidSDKSettings]
|
||||||
|
SDKPath=(Path="")
|
||||||
|
NDKPath=(Path="")
|
||||||
|
JavaPath=(Path="")
|
||||||
|
|
||||||
|
[/Script/UdpMessaging.UdpMessagingSettings]
|
||||||
|
EnabledByDefault=False
|
||||||
|
EnableTransport=True
|
||||||
|
bAutoRepair=True
|
||||||
|
MaxSendRate=1.000000
|
||||||
|
AutoRepairAttemptLimit=10
|
||||||
|
WorkQueueSize=1024
|
||||||
|
bStopServiceWhenAppDeactivates=True
|
||||||
|
UnicastEndpoint=0.0.0.0:0
|
||||||
|
MulticastEndpoint=230.0.0.1:6666
|
||||||
|
MessageFormat=CborPlatformEndianness
|
||||||
|
MulticastTimeToLive=1
|
||||||
|
EnableTunnel=False
|
||||||
|
TunnelUnicastEndpoint=
|
||||||
|
TunnelMulticastEndpoint=
|
||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Game.ini
Normal file
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Game.ini
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1,29 @@
|
|||||||
|
[/Script/Engine.GameUserSettings]
|
||||||
|
bUseVSync=False
|
||||||
|
bUseDynamicResolution=False
|
||||||
|
ResolutionSizeX=2560
|
||||||
|
ResolutionSizeY=1440
|
||||||
|
LastUserConfirmedResolutionSizeX=2560
|
||||||
|
LastUserConfirmedResolutionSizeY=1440
|
||||||
|
WindowPosX=-1
|
||||||
|
WindowPosY=-1
|
||||||
|
FullscreenMode=1
|
||||||
|
LastConfirmedFullscreenMode=1
|
||||||
|
PreferredFullscreenMode=1
|
||||||
|
Version=5
|
||||||
|
AudioQualityLevel=0
|
||||||
|
LastConfirmedAudioQualityLevel=0
|
||||||
|
FrameRateLimit=0.000000
|
||||||
|
DesiredScreenWidth=1280
|
||||||
|
bUseDesiredScreenHeight=False
|
||||||
|
DesiredScreenHeight=720
|
||||||
|
LastUserConfirmedDesiredScreenWidth=1280
|
||||||
|
LastUserConfirmedDesiredScreenHeight=720
|
||||||
|
LastRecommendedScreenWidth=-1.000000
|
||||||
|
LastRecommendedScreenHeight=-1.000000
|
||||||
|
LastCPUBenchmarkResult=-1.000000
|
||||||
|
LastGPUBenchmarkResult=-1.000000
|
||||||
|
LastGPUBenchmarkMultiplier=1.000000
|
||||||
|
bUseHDRDisplayOutput=False
|
||||||
|
HDRDisplayOutputNits=1000
|
||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Input.ini
Normal file
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Input.ini
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Niagara.ini
Normal file
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Niagara.ini
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1,3 @@
|
|||||||
|
[/Script/ObjectMixerEditor.ObjectMixerEditorSerializedData]
|
||||||
|
SerializedDataPerFilter=()
|
||||||
|
|
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Paper2D.ini
Normal file
1
ASN4_StateMachine/Saved/Config/WindowsEditor/Paper2D.ini
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
@@ -0,0 +1 @@
|
|||||||
|
|
BIN
ASN4_StateMachine/Saved/Config/WorldState/1920393416.json
Normal file
BIN
ASN4_StateMachine/Saved/Config/WorldState/1920393416.json
Normal file
Binary file not shown.
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"changelists": [
|
||||||
|
{
|
||||||
|
"guid": "00000000000000000000000000000000",
|
||||||
|
"description": "Default Uncontrolled Changelist",
|
||||||
|
"files": [
|
||||||
|
"F:/Projects/College/GDN3113-SCD3/ASN4_StateMachine/Content/GDV_StateMachine/AC_State_Pause.uasset",
|
||||||
|
"F:/Projects/College/GDN3113-SCD3/ASN4_StateMachine/Content/GDV_StateMachine/BP_NavAgent.uasset",
|
||||||
|
"F:/Projects/College/GDN3113-SCD3/ASN4_StateMachine/Content/GDV_StateMachine/LevelExperiment.umap",
|
||||||
|
"F:/Projects/College/GDN3113-SCD3/ASN4_StateMachine/Content/GDV_StateMachine/AC_StateMachine.uasset",
|
||||||
|
"F:/Projects/College/GDN3113-SCD3/ASN4_StateMachine/Content/GDV_StateMachine/I_Machine.uasset"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user