Files
UnrealEngineUWP/Engine/Shaders/DebugViewModeCommon.usf
Nick Whiting d64cd6df6d Copying //UE4/Dev-VR to //UE4/Main (Source: //UE4/Dev-VR @ 2940090)
#lockdown nick.penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2897367 on 2016/03/07 by Chad.Taylor@Chad.Taylor_Z3299_Tango

	PS4Tracker Submit call now assigning the appropriate memory type read mode

Change 2920696 on 2016/03/23 by Nick.Whiting@nick.whiting_T7326_DevVRStream

	Fixed analytics event for VRPIE to have a description

	#jira UE-28562

Change 2925395 on 2016/03/28 by Chad.Taylor@Chad.Taylor_Z3299_Tango

	Aspect ratio and buffer clearing fixed up to properly handle non-standard viewport configurations.

	#jira UE-28816

Change 2932703 on 2016/04/04 by Nick.Whiting@nick.whiting_T7326_DevVRStream

	Merging CL 2922134, fix for culling because of stale view matrices

Change 2932761 on 2016/04/04 by Nick.Whiting@nick.whiting_T7326_DevVRStream

	Oculus 1.3 Engine support, merged from 4.11 stream

Change 2932762 on 2016/04/04 by Nick.Whiting@nick.whiting_T7326_DevVRStream

	Removing redundant libraries for Oculus LibOVRMobile

Change 2932765 on 2016/04/04 by Nick.Whiting@nick.whiting_T7326_DevVRStream

	Merging updated license files for Oculus libraries

Change 2938342 on 2016/04/08 by Ryan.Vance@ryan.vance_devvr

	Fixing bloom offset in stereo.

Change 2938427 on 2016/04/08 by Ryan.Vance@ryan.vance_devvr

	Adding PSVR support for changing the screen percentage dynamically. Previously it could only be changed with ini settings and a relaunch.
	Reworked mutex use in reprojection thread. Some things weren't locked that should have been and removed a redundant mutex.

Change 2938736 on 2016/04/08 by Ryan.Vance@ryan.vance_devvr

	#jira UE-26722
	Updating ISR related code for debug view to fix tesselation.

Change 2939709 on 2016/04/11 by Chad.Taylor@Chad.Taylor_Z3299_Tango

	Explicit order prioritization for ISceneViewExtensions for proper sampling order

Change 2939717 on 2016/04/11 by Chad.Taylor@Chad.Taylor_Z3299_Tango

	Initial stereo layer implementation sans editor wireframe visualization

Change 2939816 on 2016/04/11 by Chad.Taylor@Chad.Taylor_Z3299_Tango

	Stereo layer compionent visualizer

[CL 2940449 by Nick Whiting in Main branch]
2016-04-11 23:01:18 -04:00

82 lines
2.8 KiB
Plaintext

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
DebugViewModeCommon.hlsl: Debug pixel shader interpolants.
=============================================================================*/
// This define the interpolant needed by the pixel shader used for debug viewmode.
// Those use a global shader that must have exactly the same inputs as the VS outputs.
// This is also compatible with shaders that modify the mesh position (like tesselation).
// Which is better in the end than simply defining a material override.
struct FDebugVSToPS
{
// TexCoords must first in order to be compatible with viewmode requiring using only SV_Position
float4 Position : SV_POSITION;
float4 VertexColor : TEXCOORD0;
float4 TexCoord01 : TEXCOORD1;
float4 TexCoord23 : TEXCOORD2;
float3 TangentToWorld0 : TEXCOORD3;
float3 TangentToWorld1 : TEXCOORD4;
float3 TangentToWorld2 : TEXCOORD5;
#if INSTANCED_STEREO
nointerpolation uint PackedEyeIndex : PACKED_EYE_INDEX;
#endif
};
struct FDebugPSIn
{
float4 SvPosition : SV_POSITION;
float4 VertexColor : TEXCOORD0;
float4 TexCoord01 : TEXCOORD1;
float4 TexCoord23 : TEXCOORD2;
float3 TangentToWorld0 : TEXCOORD3;
float3 TangentToWorld1 : TEXCOORD4;
float3 TangentToWorld2 : TEXCOORD5;
#if INSTANCED_STEREO
nointerpolation uint PackedEyeIndex : PACKED_EYE_INDEX;
#endif
uint SvPrimitiveID : SV_PrimitiveID;
};
// This one is only compatible if no previous stage outputed SV_PrimitiveID (i.e. geometry shader)
struct FDebugPSInLean
{
float4 SvPosition : SV_POSITION;
uint PrimitiveID : SV_PrimitiveID;
};
#if DEBUG_MATERIAL_PARAMETERS
/** Converts from vertex factory specific interpolants to a FMaterialPixelParameters, which is used by material inputs. */
FMaterialPixelParameters GetMaterialPixelParameters(FDebugPSIn DebugInputs, float4 SvPosition)
{
// GetMaterialPixelParameters is responsible for fully initializing the result
FMaterialPixelParameters Result = MakeInitializedMaterialPixelParameters();
Result.VertexColor = DebugInputs.VertexColor;
Result.TangentToWorld = half3x3(half3(DebugInputs.TangentToWorld0), half3(DebugInputs.TangentToWorld1), half3(DebugInputs.TangentToWorld2));
#if NUM_MATERIAL_TEXCOORDS > 0
Result.TexCoords[0].xy = DebugInputs.TexCoord01.xy;
#endif
#if NUM_MATERIAL_TEXCOORDS > 1
Result.TexCoords[1].xy = DebugInputs.TexCoord01.zw;
#endif
#if NUM_MATERIAL_TEXCOORDS > 2
Result.TexCoords[2].xy = DebugInputs.TexCoord23.xy;
#endif
#if NUM_MATERIAL_TEXCOORDS > 3
Result.TexCoords[3].xy = DebugInputs.TexCoord23.zw;
#endif
#if NUM_MATERIAL_TEXCOORDS > 4
for(int CoordinateIndex = 4; CoordinateIndex < NUM_MATERIAL_TEXCOORDS; CoordinateIndex++)
{
Result.TexCoords[CoordinateIndex] = DebugInputs.TexCoord01.xy;
}
#endif
Result.TwoSidedSign = 1;
return Result;
}
#endif