RG11B10 + SceneDepthAux 16/32F + Alpha Propagate

For Forward ES31
 Default SceneColor RG11B10 + R16F\32F Depth texture
 With PropagateAlpha on RGBA16F + R16F\32F
 PostProcess we sample SceneDepthAux for Depth
For Deferred ES31
 SceneDepthAux only for Metal
 PropagateAlpha not working yet
 PostProcess we sample SceneDepthTexture for Depth

cvar to change Depth texture from 16 to 32Fr.Mobile.SceneDepthAux
cvar for AlphaPropagate r.Mobile.PropagateAlpha
#jira UE-98033
#rb Dmitriy.Dyomin, Carl.Lloyd, Jack.Porter

[CL 16644095 by Florin Pascu in ue5-main branch]
This commit is contained in:
Florin Pascu
2021-06-11 13:46:35 -04:00
parent 5d3c068629
commit 765b14e43b
34 changed files with 219 additions and 73 deletions

View File

@@ -385,6 +385,9 @@ public class GameActivity extends $${gameActivitySuperClass}$$ implements Surfac
// depthbuffer preference from manifest
int DepthBufferPreference = 0;
// PropagatetAlpha from the manifest
int PropagateAlpha = 0;
/** AssetManger reference - populated on start up and used when the OBB is packed into the APK */
private AssetManager AssetManagerReference;
@@ -2651,6 +2654,16 @@ public class GameActivity extends $${gameActivitySuperClass}$$ implements Surfac
Log.debug( "Did not find DepthBufferPreference, using default.");
}
if (bundle.containsKey("com.epicgames.ue4.GameActivity.PropagateAlpha"))
{
PropagateAlpha = bundle.getInt("com.epicgames.ue4.GameActivity.PropagateAlpha");
Log.debug( "Found PropagateAlpha = " + PropagateAlpha);
}
else
{
Log.debug( "Did not find PropagateAlpha, using default.");
}
// Determine if data is embedded in APK from AndroidManifest.xml
if (bundle.containsKey("com.epicgames.unreal.GameActivity.bPackageDataInsideApk"))
{
@@ -2812,7 +2825,7 @@ public class GameActivity extends $${gameActivitySuperClass}$$ implements Surfac
nativeSetGlobalActivity(UseExternalFilesDir, PublicLogFiles, getFilesDir().getPath(), getExternalFilesDir(null).getPath(), PackageDataInsideApkValue==1, APKPath);
// tell the engine if this is a portrait app
nativeSetWindowInfo(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT, DepthBufferPreference);
nativeSetWindowInfo(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT, DepthBufferPreference, PropagateAlpha);
// get the full language code, like en-US
// note: this may need to be Locale.getDefault().getLanguage()
@@ -3256,7 +3269,7 @@ public class GameActivity extends $${gameActivitySuperClass}$$ implements Surfac
}
// invalidate window cache
nativeSetWindowInfo(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT, DepthBufferPreference);
nativeSetWindowInfo(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT, DepthBufferPreference, PropagateAlpha);
// only do this on KitKat and above
if (ShouldHideUI)
@@ -6496,7 +6509,7 @@ public class GameActivity extends $${gameActivitySuperClass}$$ implements Surfac
public native void nativeSetAndroidStartupState(boolean bDebuggerAttached);
public native void nativeSetGlobalActivity(boolean bUseExternalFilesDir, boolean bPublicLogFiles, String internalFilePath, String externalFilePath, boolean bOBBInAPK, String APKPath);
public native void nativeSetObbFilePaths(String OBBMainFilePath, String OBBPatchFilePath, String OBBOverflow1FilePath, String OBBOverflow2FilePath);
public native void nativeSetWindowInfo(boolean bIsPortrait, int DepthBufferPreference);
public native void nativeSetWindowInfo(boolean bIsPortrait, int DepthBufferPreference, int PropagateAlpha);
public native void nativeSetObbInfo(String ProjectName, String PackageName, int Version, int PatchVersion, String AppType);
public native void nativeSetAndroidVersionInformation( String AndroidVersion, int TargetSDK, String PhoneMake, String PhoneModel, String PhoneBuildNumber, String OSLanguage );