Browse Source
First import of Unity FSR2 test project on built-in render pipeline:
First import of Unity FSR2 test project on built-in render pipeline:
- Yoinked a bunch of code from MadGoat SSAA to build a custom render scaler - Added a simple shader to check some of the render buffers during upscaling - Successfully ported the RCAS compute shader from the FSR2 project into Unity!mac-autoexp
commit
0bdc75ff08
67 changed files with 13154 additions and 0 deletions
-
8.gitignore
-
8Assets/Materials.meta
-
8Assets/Resources.meta
-
8Assets/Resources/Shaders.meta
-
40Assets/Resources/Shaders/FSRTest.shader
-
10Assets/Resources/Shaders/FSRTest.shader.meta
-
429Assets/Resources/Shaders/ffx_common_types.h
-
27Assets/Resources/Shaders/ffx_common_types.h.meta
-
52Assets/Resources/Shaders/ffx_core.h
-
27Assets/Resources/Shaders/ffx_core.h.meta
-
2784Assets/Resources/Shaders/ffx_core_gpu_common.h
-
27Assets/Resources/Shaders/ffx_core_gpu_common.h.meta
-
2978Assets/Resources/Shaders/ffx_core_gpu_common_half.h
-
27Assets/Resources/Shaders/ffx_core_gpu_common_half.h.meta
-
1396Assets/Resources/Shaders/ffx_core_hlsl.h
-
27Assets/Resources/Shaders/ffx_core_hlsl.h.meta
-
50Assets/Resources/Shaders/ffx_core_portability.h
-
27Assets/Resources/Shaders/ffx_core_portability.h.meta
-
1250Assets/Resources/Shaders/ffx_fsr1.h
-
27Assets/Resources/Shaders/ffx_fsr1.h.meta
-
422Assets/Resources/Shaders/ffx_fsr2_common.h
-
27Assets/Resources/Shaders/ffx_fsr2_common.h.meta
-
105Assets/Resources/Shaders/ffx_fsr2_rcas.h
-
27Assets/Resources/Shaders/ffx_fsr2_rcas.h.meta
-
84Assets/Resources/Shaders/ffx_fsr2_rcas_pass.compute
-
8Assets/Resources/Shaders/ffx_fsr2_rcas_pass.compute.meta
-
8Assets/Scenes.meta
-
447Assets/Scenes/SampleScene.unity
-
7Assets/Scenes/SampleScene.unity.meta
-
8Assets/Scripts.meta
-
28Assets/Scripts/CameraMover.cs
-
11Assets/Scripts/CameraMover.cs.meta
-
105Assets/Scripts/FSR2Thing.cs
-
11Assets/Scripts/FSR2Thing.cs.meta
-
155Assets/Scripts/SubsampleTest.cs
-
11Assets/Scripts/SubsampleTest.cs.meta
-
45Packages/manifest.json
-
413Packages/packages-lock.json
-
19ProjectSettings/AudioManager.asset
-
6ProjectSettings/ClusterInputManager.asset
-
34ProjectSettings/DynamicsManager.asset
-
8ProjectSettings/EditorBuildSettings.asset
-
30ProjectSettings/EditorSettings.asset
-
13ProjectSettings/GameCoreScarlettSettings.asset
-
16ProjectSettings/GameCoreXboxOneSettings.asset
-
63ProjectSettings/GraphicsSettings.asset
-
295ProjectSettings/InputManager.asset
-
35ProjectSettings/MemorySettings.asset
-
91ProjectSettings/NavMeshAreas.asset
-
48ProjectSettings/PS5Settings.json
-
35ProjectSettings/PackageManagerSettings.asset
-
7ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json
-
56ProjectSettings/Physics2DSettings.asset
-
7ProjectSettings/PresetManager.asset
-
719ProjectSettings/ProjectSettings.asset
-
2ProjectSettings/ProjectVersion.txt
-
241ProjectSettings/QualitySettings.asset
-
6ProjectSettings/ScarlettGame.config
-
167ProjectSettings/SceneTemplateSettings.json
-
43ProjectSettings/TagManager.asset
-
9ProjectSettings/TimeManager.asset
-
36ProjectSettings/UnityConnectSettings.asset
-
12ProjectSettings/VFXManager.asset
-
8ProjectSettings/VersionControlSettings.asset
-
10ProjectSettings/XRSettings.asset
-
6ProjectSettings/XboxOneGame.config
-
0ProjectSettings/boot.config
@ -0,0 +1,8 @@ |
|||
*.csproj |
|||
*.sln |
|||
.idea/ |
|||
Library/ |
|||
Logs/ |
|||
obj/ |
|||
Temp/ |
|||
UserSettings/ |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 1177d83b5558cdb4fb1a10fb8b3ce2af |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: f1c65c7377a34fe41beb57484d87a08b |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 99529786e04ad7e468cdde9e81ce2dba |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,40 @@ |
|||
Shader "FSR2/FSRTest" |
|||
{ |
|||
Properties |
|||
{ |
|||
_MainTex ("Texture", 2D) = "" {} |
|||
} |
|||
SubShader { |
|||
|
|||
Pass { |
|||
ZTest Always Cull Off ZWrite Off |
|||
|
|||
HLSLPROGRAM |
|||
// include the unityCG.cginc |
|||
#include "UnityCG.cginc" |
|||
|
|||
// The default vert setup used in all the shaders |
|||
struct v2f { |
|||
float4 vertex : SV_POSITION; |
|||
float2 texCoord : TEXCOORD0; |
|||
}; |
|||
|
|||
#pragma vertex vert_img |
|||
#pragma fragment frag |
|||
|
|||
sampler2D _MainTex; |
|||
sampler2D _CameraDepthTexture; |
|||
sampler2D_half _CameraMotionVectorsTexture; |
|||
|
|||
fixed4 frag(v2f i) : COLOR |
|||
{ |
|||
return tex2D(_MainTex, i.texCoord).rgba; |
|||
return fixed4(((tex2D(_CameraMotionVectorsTexture, i.texCoord) + 0.5f) / 2.0f).xyz, 1.0f); |
|||
//return tex2D(_CameraDepthTexture, i.texCoord).rrra; |
|||
} |
|||
ENDHLSL |
|||
|
|||
} |
|||
} |
|||
Fallback Off |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
fileFormatVersion: 2 |
|||
guid: ad642f5802989914585b30523ba86017 |
|||
ShaderImporter: |
|||
externalObjects: {} |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
preprocessorOverride: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,429 @@ |
|||
// This file is part of the FidelityFX SDK. |
|||
// |
|||
// Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. |
|||
// |
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
// of this software and associated documentation files (the "Software"), to deal |
|||
// in the Software without restriction, including without limitation the rights |
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
// copies of the Software, and to permit persons to whom the Software is |
|||
// furnished to do so, subject to the following conditions: |
|||
// The above copyright notice and this permission notice shall be included in |
|||
// all copies or substantial portions of the Software. |
|||
// |
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|||
// THE SOFTWARE. |
|||
#ifndef FFX_COMMON_TYPES_H |
|||
#define FFX_COMMON_TYPES_H |
|||
|
|||
#if defined(FFX_CPU) |
|||
#define FFX_PARAMETER_IN |
|||
#define FFX_PARAMETER_OUT |
|||
#define FFX_PARAMETER_INOUT |
|||
#elif defined(FFX_HLSL) |
|||
#define FFX_PARAMETER_IN in |
|||
#define FFX_PARAMETER_OUT out |
|||
#define FFX_PARAMETER_INOUT inout |
|||
#elif defined(FFX_GLSL) |
|||
#define FFX_PARAMETER_IN in |
|||
#define FFX_PARAMETER_OUT out |
|||
#define FFX_PARAMETER_INOUT inout |
|||
#endif // #if defined(FFX_CPU) |
|||
|
|||
#if defined(FFX_CPU) |
|||
/// A typedef for a boolean value. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef bool FfxBoolean; |
|||
|
|||
/// A typedef for a unsigned 8bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint8_t FfxUInt8; |
|||
|
|||
/// A typedef for a unsigned 16bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint16_t FfxUInt16; |
|||
|
|||
/// A typedef for a unsigned 32bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint32_t FfxUInt32; |
|||
|
|||
/// A typedef for a unsigned 64bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint64_t FfxUInt64; |
|||
|
|||
/// A typedef for a signed 8bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef int8_t FfxInt8; |
|||
|
|||
/// A typedef for a signed 16bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef int16_t FfxInt16; |
|||
|
|||
/// A typedef for a signed 32bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef int32_t FfxInt32; |
|||
|
|||
/// A typedef for a signed 64bit integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef int64_t FfxInt64; |
|||
|
|||
/// A typedef for a floating point value. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef float FfxFloat32; |
|||
|
|||
/// A typedef for a 2-dimensional floating point value. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef float FfxFloat32x2[2]; |
|||
|
|||
/// A typedef for a 3-dimensional floating point value. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef float FfxFloat32x3[3]; |
|||
|
|||
/// A typedef for a 4-dimensional floating point value. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef float FfxFloat32x4[4]; |
|||
|
|||
/// A typedef for a 2-dimensional 32bit unsigned integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint32_t FfxUInt32x2[2]; |
|||
|
|||
/// A typedef for a 3-dimensional 32bit unsigned integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint32_t FfxUInt32x3[3]; |
|||
|
|||
/// A typedef for a 4-dimensional 32bit unsigned integer. |
|||
/// |
|||
/// @ingroup CPU |
|||
typedef uint32_t FfxUInt32x4[4]; |
|||
#endif // #if defined(FFX_CPU) |
|||
|
|||
#if defined(FFX_HLSL) |
|||
/// A typedef for a boolean value. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef bool FfxBoolean; |
|||
|
|||
#if FFX_HLSL_6_2 |
|||
typedef float32_t FfxFloat32; |
|||
typedef float32_t2 FfxFloat32x2; |
|||
typedef float32_t3 FfxFloat32x3; |
|||
typedef float32_t4 FfxFloat32x4; |
|||
|
|||
/// A typedef for a unsigned 32bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef uint32_t FfxUInt32; |
|||
typedef uint32_t2 FfxUInt32x2; |
|||
typedef uint32_t3 FfxUInt32x3; |
|||
typedef uint32_t4 FfxUInt32x4; |
|||
typedef int32_t FfxInt32; |
|||
typedef int32_t2 FfxInt32x2; |
|||
typedef int32_t3 FfxInt32x3; |
|||
typedef int32_t4 FfxInt32x4; |
|||
#else |
|||
#define FfxFloat32 float |
|||
#define FfxFloat32x2 float2 |
|||
#define FfxFloat32x3 float3 |
|||
#define FfxFloat32x4 float4 |
|||
|
|||
/// A typedef for a unsigned 32bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef uint FfxUInt32; |
|||
typedef uint2 FfxUInt32x2; |
|||
typedef uint3 FfxUInt32x3; |
|||
typedef uint4 FfxUInt32x4; |
|||
typedef int FfxInt32; |
|||
typedef int2 FfxInt32x2; |
|||
typedef int3 FfxInt32x3; |
|||
typedef int4 FfxInt32x4; |
|||
#endif // #if defined(FFX_HLSL_6_2) |
|||
|
|||
#if FFX_HALF |
|||
#if FFX_HLSL_6_2 |
|||
typedef float16_t FfxFloat16; |
|||
typedef float16_t2 FfxFloat16x2; |
|||
typedef float16_t3 FfxFloat16x3; |
|||
typedef float16_t4 FfxFloat16x4; |
|||
|
|||
/// A typedef for an unsigned 16bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef uint16_t FfxUInt16; |
|||
typedef uint16_t2 FfxUInt16x2; |
|||
typedef uint16_t3 FfxUInt16x3; |
|||
typedef uint16_t4 FfxUInt16x4; |
|||
|
|||
/// A typedef for a signed 16bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef int16_t FfxInt16; |
|||
typedef int16_t2 FfxInt16x2; |
|||
typedef int16_t3 FfxInt16x3; |
|||
typedef int16_t4 FfxInt16x4; |
|||
#else |
|||
typedef min16float FfxFloat16; |
|||
typedef min16float2 FfxFloat16x2; |
|||
typedef min16float3 FfxFloat16x3; |
|||
typedef min16float4 FfxFloat16x4; |
|||
|
|||
/// A typedef for an unsigned 16bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef min16uint FfxUInt16; |
|||
typedef min16uint2 FfxUInt16x2; |
|||
typedef min16uint3 FfxUInt16x3; |
|||
typedef min16uint4 FfxUInt16x4; |
|||
|
|||
/// A typedef for a signed 16bit integer. |
|||
/// |
|||
/// @ingroup GPU |
|||
typedef min16int FfxInt16; |
|||
typedef min16int2 FfxInt16x2; |
|||
typedef min16int3 FfxInt16x3; |
|||
typedef min16int4 FfxInt16x4; |
|||
#endif // FFX_HLSL_6_2 |
|||
#endif // FFX_HALF |
|||
#endif // #if defined(FFX_HLSL) |
|||
|
|||
#if defined(FFX_GLSL) |
|||
/// A typedef for a boolean value. |
|||
/// |
|||
/// @ingroup GPU |
|||
#define FfxBoolean bool |
|||
#define FfxFloat32 float |
|||
#define FfxFloat32x2 vec2 |
|||
#define FfxFloat32x3 vec3 |
|||
#define FfxFloat32x4 vec4 |
|||
#define FfxUInt32 uint |
|||
#define FfxUInt32x2 uvec2 |
|||
#define FfxUInt32x3 uvec3 |
|||
#define FfxUInt32x4 uvec4 |
|||
#define FfxInt32 int |
|||
#define FfxInt32x2 ivec2 |
|||
#define FfxInt32x3 ivec3 |
|||
#define FfxInt32x4 ivec4 |
|||
#if FFX_HALF |
|||
#define FfxFloat16 float16_t |
|||
#define FfxFloat16x2 f16vec2 |
|||
#define FfxFloat16x3 f16vec3 |
|||
#define FfxFloat16x4 f16vec4 |
|||
#define FfxUInt16 uint16_t |
|||
#define FfxUInt16x2 u16vec2 |
|||
#define FfxUInt16x3 u16vec3 |
|||
#define FfxUInt16x4 u16vec4 |
|||
#define FfxInt16 int16_t |
|||
#define FfxInt16x2 i16vec2 |
|||
#define FfxInt16x3 i16vec3 |
|||
#define FfxInt16x4 i16vec4 |
|||
#endif // FFX_HALF |
|||
#endif // #if defined(FFX_GLSL) |
|||
|
|||
// Global toggles: |
|||
// #define FFX_HALF (1) |
|||
// #define FFX_HLSL_6_2 (1) |
|||
|
|||
#if FFX_HALF |
|||
|
|||
#if FFX_HLSL_6_2 |
|||
|
|||
#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; |
|||
#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector<BaseComponentType##16_t, COL> TypeName; |
|||
#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix<BaseComponentType##16_t, ROW, COL> TypeName; |
|||
|
|||
#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; |
|||
#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector<BaseComponentType##16_t, COL> TypeName; |
|||
#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix<BaseComponentType##16_t, ROW, COL> TypeName; |
|||
|
|||
#else //FFX_HLSL_6_2 |
|||
|
|||
#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef min16##BaseComponentType TypeName; |
|||
#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector<min16##BaseComponentType, COL> TypeName; |
|||
#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix<min16##BaseComponentType, ROW, COL> TypeName; |
|||
|
|||
#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) FFX_MIN16_SCALAR( TypeName, BaseComponentType ); |
|||
#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ); |
|||
#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ); |
|||
|
|||
#endif //FFX_HLSL_6_2 |
|||
|
|||
#else //FFX_HALF |
|||
|
|||
#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; |
|||
#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector<BaseComponentType, COL> TypeName; |
|||
#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix<BaseComponentType, ROW, COL> TypeName; |
|||
|
|||
#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; |
|||
#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector<BaseComponentType, COL> TypeName; |
|||
#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix<BaseComponentType, ROW, COL> TypeName; |
|||
|
|||
#endif //FFX_HALF |
|||
|
|||
#if defined(FFX_GPU) |
|||
// Common typedefs: |
|||
#if defined(FFX_HLSL) |
|||
FFX_MIN16_SCALAR( FFX_MIN16_F , float ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_F2, float, 2 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_F3, float, 3 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_F4, float, 4 ); |
|||
|
|||
FFX_MIN16_SCALAR( FFX_MIN16_I, int ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_I2, int, 2 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_I3, int, 3 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_I4, int, 4 ); |
|||
|
|||
FFX_MIN16_SCALAR( FFX_MIN16_U, uint ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_U2, uint, 2 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_U3, uint, 3 ); |
|||
FFX_MIN16_VECTOR( FFX_MIN16_U4, uint, 4 ); |
|||
|
|||
FFX_16BIT_SCALAR( FFX_F16_t , float ); |
|||
FFX_16BIT_VECTOR( FFX_F16_t2, float, 2 ); |
|||
FFX_16BIT_VECTOR( FFX_F16_t3, float, 3 ); |
|||
FFX_16BIT_VECTOR( FFX_F16_t4, float, 4 ); |
|||
|
|||
FFX_16BIT_SCALAR( FFX_I16_t, int ); |
|||
FFX_16BIT_VECTOR( FFX_I16_t2, int, 2 ); |
|||
FFX_16BIT_VECTOR( FFX_I16_t3, int, 3 ); |
|||
FFX_16BIT_VECTOR( FFX_I16_t4, int, 4 ); |
|||
|
|||
FFX_16BIT_SCALAR( FFX_U16_t, uint ); |
|||
FFX_16BIT_VECTOR( FFX_U16_t2, uint, 2 ); |
|||
FFX_16BIT_VECTOR( FFX_U16_t3, uint, 3 ); |
|||
FFX_16BIT_VECTOR( FFX_U16_t4, uint, 4 ); |
|||
|
|||
#define TYPEDEF_MIN16_TYPES(Prefix) \ |
|||
typedef FFX_MIN16_F Prefix##_F; \ |
|||
typedef FFX_MIN16_F2 Prefix##_F2; \ |
|||
typedef FFX_MIN16_F3 Prefix##_F3; \ |
|||
typedef FFX_MIN16_F4 Prefix##_F4; \ |
|||
typedef FFX_MIN16_I Prefix##_I; \ |
|||
typedef FFX_MIN16_I2 Prefix##_I2; \ |
|||
typedef FFX_MIN16_I3 Prefix##_I3; \ |
|||
typedef FFX_MIN16_I4 Prefix##_I4; \ |
|||
typedef FFX_MIN16_U Prefix##_U; \ |
|||
typedef FFX_MIN16_U2 Prefix##_U2; \ |
|||
typedef FFX_MIN16_U3 Prefix##_U3; \ |
|||
typedef FFX_MIN16_U4 Prefix##_U4; |
|||
|
|||
#define TYPEDEF_16BIT_TYPES(Prefix) \ |
|||
typedef FFX_16BIT_F Prefix##_F; \ |
|||
typedef FFX_16BIT_F2 Prefix##_F2; \ |
|||
typedef FFX_16BIT_F3 Prefix##_F3; \ |
|||
typedef FFX_16BIT_F4 Prefix##_F4; \ |
|||
typedef FFX_16BIT_I Prefix##_I; \ |
|||
typedef FFX_16BIT_I2 Prefix##_I2; \ |
|||
typedef FFX_16BIT_I3 Prefix##_I3; \ |
|||
typedef FFX_16BIT_I4 Prefix##_I4; \ |
|||
typedef FFX_16BIT_U Prefix##_U; \ |
|||
typedef FFX_16BIT_U2 Prefix##_U2; \ |
|||
typedef FFX_16BIT_U3 Prefix##_U3; \ |
|||
typedef FFX_16BIT_U4 Prefix##_U4; |
|||
|
|||
#define TYPEDEF_FULL_PRECISION_TYPES(Prefix) \ |
|||
typedef FfxFloat32 Prefix##_F; \ |
|||
typedef FfxFloat32x2 Prefix##_F2; \ |
|||
typedef FfxFloat32x3 Prefix##_F3; \ |
|||
typedef FfxFloat32x4 Prefix##_F4; \ |
|||
typedef FfxInt32 Prefix##_I; \ |
|||
typedef FfxInt32x2 Prefix##_I2; \ |
|||
typedef FfxInt32x3 Prefix##_I3; \ |
|||
typedef FfxInt32x4 Prefix##_I4; \ |
|||
typedef FfxUInt32 Prefix##_U; \ |
|||
typedef FfxUInt32x2 Prefix##_U2; \ |
|||
typedef FfxUInt32x3 Prefix##_U3; \ |
|||
typedef FfxUInt32x4 Prefix##_U4; |
|||
#endif // #if defined(FFX_HLSL) |
|||
|
|||
#if defined(FFX_GLSL) |
|||
|
|||
#if FFX_HALF |
|||
|
|||
#define FFX_MIN16_F float16_t |
|||
#define FFX_MIN16_F2 f16vec2 |
|||
#define FFX_MIN16_F3 f16vec3 |
|||
#define FFX_MIN16_F4 f16vec4 |
|||
|
|||
#define FFX_MIN16_I int16_t |
|||
#define FFX_MIN16_I2 i16vec2 |
|||
#define FFX_MIN16_I3 i16vec3 |
|||
#define FFX_MIN16_I4 i16vec4 |
|||
|
|||
#define FFX_MIN16_U uint16_t |
|||
#define FFX_MIN16_U2 u16vec2 |
|||
#define FFX_MIN16_U3 u16vec3 |
|||
#define FFX_MIN16_U4 u16vec4 |
|||
|
|||
#define FFX_16BIT_F float16_t |
|||
#define FFX_16BIT_F2 f16vec2 |
|||
#define FFX_16BIT_F3 f16vec3 |
|||
#define FFX_16BIT_F4 f16vec4 |
|||
|
|||
#define FFX_16BIT_I int16_t |
|||
#define FFX_16BIT_I2 i16vec2 |
|||
#define FFX_16BIT_I3 i16vec3 |
|||
#define FFX_16BIT_I4 i16vec4 |
|||
|
|||
#define FFX_16BIT_U uint16_t |
|||
#define FFX_16BIT_U2 u16vec2 |
|||
#define FFX_16BIT_U3 u16vec3 |
|||
#define FFX_16BIT_U4 u16vec4 |
|||
|
|||
#else // FFX_HALF |
|||
|
|||
#define FFX_MIN16_F float |
|||
#define FFX_MIN16_F2 vec2 |
|||
#define FFX_MIN16_F3 vec3 |
|||
#define FFX_MIN16_F4 vec4 |
|||
|
|||
#define FFX_MIN16_I int |
|||
#define FFX_MIN16_I2 ivec2 |
|||
#define FFX_MIN16_I3 ivec3 |
|||
#define FFX_MIN16_I4 ivec4 |
|||
|
|||
#define FFX_MIN16_U uint |
|||
#define FFX_MIN16_U2 uvec2 |
|||
#define FFX_MIN16_U3 uvec3 |
|||
#define FFX_MIN16_U4 uvec4 |
|||
|
|||
#define FFX_16BIT_F float |
|||
#define FFX_16BIT_F2 vec2 |
|||
#define FFX_16BIT_F3 vec3 |
|||
#define FFX_16BIT_F4 vec4 |
|||
|
|||
#define FFX_16BIT_I int |
|||
#define FFX_16BIT_I2 ivec2 |
|||
#define FFX_16BIT_I3 ivec3 |
|||
#define FFX_16BIT_I4 ivec4 |
|||
|
|||
#define FFX_16BIT_U uint |
|||
#define FFX_16BIT_U2 uvec2 |
|||
#define FFX_16BIT_U3 uvec3 |
|||
#define FFX_16BIT_U4 uvec4 |
|||
|
|||
#endif // FFX_HALF |
|||
|
|||
#endif // #if defined(FFX_GLSL) |
|||
|
|||
#endif // #if defined(FFX_GPU) |
|||
#endif // #ifndef FFX_COMMON_TYPES_H |
|||
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: a44469065afba1e40ab87f099c2c8848 |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,52 @@ |
|||
// This file is part of the FidelityFX SDK. |
|||
// |
|||
// Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. |
|||
// |
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
// of this software and associated documentation files (the "Software"), to deal |
|||
// in the Software without restriction, including without limitation the rights |
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
// copies of the Software, and to permit persons to whom the Software is |
|||
// furnished to do so, subject to the following conditions: |
|||
// The above copyright notice and this permission notice shall be included in |
|||
// all copies or substantial portions of the Software. |
|||
// |
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|||
// THE SOFTWARE. |
|||
|
|||
/// @defgroup Core |
|||
/// @defgroup HLSL |
|||
/// @defgroup GLSL |
|||
/// @defgroup GPU |
|||
/// @defgroup CPU |
|||
/// @defgroup CAS |
|||
/// @defgroup FSR1 |
|||
|
|||
#if !defined(FFX_CORE_H) |
|||
#define FFX_CORE_H |
|||
|
|||
#include "ffx_common_types.h" |
|||
|
|||
#if defined(FFX_CPU) |
|||
#include "ffx_core_cpu.h" |
|||
#endif // #if defined(FFX_CPU) |
|||
|
|||
#if defined(FFX_GLSL) && defined(FFX_GPU) |
|||
#include "ffx_core_glsl.h" |
|||
#endif // #if defined(FFX_GLSL) && defined(FFX_GPU) |
|||
|
|||
#if defined(FFX_HLSL) && defined(FFX_GPU) |
|||
#include "ffx_core_hlsl.h" |
|||
#endif // #if defined(FFX_HLSL) && defined(FFX_GPU) |
|||
|
|||
#if defined(FFX_GPU) |
|||
#include "ffx_core_gpu_common.h" |
|||
#include "ffx_core_gpu_common_half.h" |
|||
#include "ffx_core_portability.h" |
|||
#endif // #if defined(FFX_GPU) |
|||
#endif // #if !defined(FFX_CORE_H) |
|||
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 35579ac40cf103a49a29966f8d991a61 |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
2784
Assets/Resources/Shaders/ffx_core_gpu_common.h
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 041095789ff5b314fae434ff885e389d |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
2978
Assets/Resources/Shaders/ffx_core_gpu_common_half.h
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: d16a1a4953abf534caaa4bd8843de607 |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
1396
Assets/Resources/Shaders/ffx_core_hlsl.h
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: d9d43e208984ec94facb71623986b1cf |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,50 @@ |
|||
// This file is part of the FidelityFX SDK. |
|||
// |
|||
// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved. |
|||
// |
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
// of this software and associated documentation files (the "Software"), to deal |
|||
// in the Software without restriction, including without limitation the rights |
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
// copies of the Software, and to permit persons to whom the Software is |
|||
// furnished to do so, subject to the following conditions: |
|||
// The above copyright notice and this permission notice shall be included in |
|||
// all copies or substantial portions of the Software. |
|||
// |
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|||
// THE SOFTWARE. |
|||
|
|||
FfxFloat32x3 opAAddOneF3(FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) |
|||
{ |
|||
d = a + ffxBroadcast3(b); |
|||
return d; |
|||
} |
|||
|
|||
FfxFloat32x3 opACpyF3(FfxFloat32x3 d, FfxFloat32x3 a) |
|||
{ |
|||
d = a; |
|||
return d; |
|||
} |
|||
|
|||
FfxFloat32x3 opAMulF3(FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32x3 b) |
|||
{ |
|||
d = a * b; |
|||
return d; |
|||
} |
|||
|
|||
FfxFloat32x3 opAMulOneF3(FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) |
|||
{ |
|||
d = a * ffxBroadcast3(b); |
|||
return d; |
|||
} |
|||
|
|||
FfxFloat32x3 opARcpF3(FfxFloat32x3 d, FfxFloat32x3 a) |
|||
{ |
|||
d = rcp(a); |
|||
return d; |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 99bc6885ecf87554aae6119a96eaaf6c |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
1250
Assets/Resources/Shaders/ffx_fsr1.h
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 7d1bd748bf4775847ac7cec07191796a |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,422 @@ |
|||
// This file is part of the FidelityFX SDK. |
|||
// |
|||
// Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. |
|||
// |
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
// of this software and associated documentation files (the "Software"), to deal |
|||
// in the Software without restriction, including without limitation the rights |
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
// copies of the Software, and to permit persons to whom the Software is |
|||
// furnished to do so, subject to the following conditions: |
|||
// The above copyright notice and this permission notice shall be included in |
|||
// all copies or substantial portions of the Software. |
|||
// |
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|||
// THE SOFTWARE. |
|||
|
|||
#if !defined(FFX_FSR2_COMMON_H) |
|||
#define FFX_FSR2_COMMON_H |
|||
|
|||
#if defined(FFX_CPU) || defined(FFX_GPU) |
|||
//Locks |
|||
#define LOCK_LIFETIME_REMAINING 0 |
|||
#define LOCK_TEMPORAL_LUMA 1 |
|||
#define LOCK_TRUST 2 |
|||
#endif // #if defined(FFX_CPU) || defined(FFX_GPU) |
|||
|
|||
#if defined(FFX_GPU) |
|||
FFX_STATIC const FfxFloat32 FSR2_EPSILON = 1e-03f; |
|||
FFX_STATIC const FfxFloat32 FSR2_TONEMAP_EPSILON = 1e-03f; |
|||
FFX_STATIC const FfxFloat32 FSR2_FLT_MAX = 3.402823466e+38f; |
|||
FFX_STATIC const FfxFloat32 FSR2_FLT_MIN = 1.175494351e-38f; |
|||
|
|||
// treat vector truncation warnings as errors |
|||
#pragma warning(error: 3206) |
|||
|
|||
// suppress warnings |
|||
#pragma warning(disable: 3205) // conversion from larger type to smaller |
|||
#pragma warning(disable: 3571) // in ffxPow(f, e), f could be negative |
|||
|
|||
// Reconstructed depth usage |
|||
FFX_STATIC const FfxFloat32 reconstructedDepthBilinearWeightThreshold = 0.05f; |
|||
|
|||
// Accumulation |
|||
FFX_STATIC const FfxFloat32 averageLanczosWeightPerFrame = 0.74f; // Average lanczos weight for jitter accumulated samples |
|||
FFX_STATIC const FfxFloat32 accumulationMaxOnMotion = 4.0f; |
|||
|
|||
// Auto exposure |
|||
FFX_STATIC const FfxFloat32 resetAutoExposureAverageSmoothing = 1e8f; |
|||
|
|||
struct LockState |
|||
{ |
|||
FfxBoolean NewLock; //Set for both unique new and re-locked new |
|||
FfxBoolean WasLockedPrevFrame; //Set to identify if the pixel was already locked (relock) |
|||
}; |
|||
|
|||
FfxFloat32 GetNormalizedRemainingLockLifetime(FfxFloat32x3 fLockStatus) |
|||
{ |
|||
const FfxFloat32 fTrust = fLockStatus[LOCK_TRUST]; |
|||
|
|||
return ffxSaturate(fLockStatus[LOCK_LIFETIME_REMAINING] - LockInitialLifetime()) / LockInitialLifetime() * fTrust; |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
FFX_MIN16_F GetNormalizedRemainingLockLifetime(FFX_MIN16_F3 fLockStatus) |
|||
{ |
|||
const FFX_MIN16_F fTrust = fLockStatus[LOCK_TRUST]; |
|||
const FFX_MIN16_F fInitialLockLifetime = FFX_MIN16_F(LockInitialLifetime()); |
|||
|
|||
return ffxSaturate(fLockStatus[LOCK_LIFETIME_REMAINING] - fInitialLockLifetime) / fInitialLockLifetime * fTrust; |
|||
} |
|||
#endif |
|||
|
|||
void InitializeNewLockSample(FFX_PARAMETER_OUT FfxFloat32x3 fLockStatus) |
|||
{ |
|||
fLockStatus = FfxFloat32x3(0, 0, 1); // LOCK_TRUST to 1 |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
void InitializeNewLockSample(FFX_PARAMETER_OUT FFX_MIN16_F3 fLockStatus) |
|||
{ |
|||
fLockStatus = FFX_MIN16_F3(0, 0, 1); // LOCK_TRUST to 1 |
|||
} |
|||
#endif |
|||
|
|||
|
|||
void KillLock(FFX_PARAMETER_INOUT FfxFloat32x3 fLockStatus) |
|||
{ |
|||
fLockStatus[LOCK_LIFETIME_REMAINING] = 0; |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
void KillLock(FFX_PARAMETER_INOUT FFX_MIN16_F3 fLockStatus) |
|||
{ |
|||
fLockStatus[LOCK_LIFETIME_REMAINING] = FFX_MIN16_F(0); |
|||
} |
|||
#endif |
|||
|
|||
struct RectificationBoxData |
|||
{ |
|||
FfxFloat32x3 boxCenter; |
|||
FfxFloat32x3 boxVec; |
|||
FfxFloat32x3 aabbMin; |
|||
FfxFloat32x3 aabbMax; |
|||
}; |
|||
#if FFX_HALF |
|||
struct RectificationBoxDataMin16 |
|||
{ |
|||
FFX_MIN16_F3 boxCenter; |
|||
FFX_MIN16_F3 boxVec; |
|||
FFX_MIN16_F3 aabbMin; |
|||
FFX_MIN16_F3 aabbMax; |
|||
}; |
|||
#endif |
|||
|
|||
struct RectificationBox |
|||
{ |
|||
RectificationBoxData data_; |
|||
FfxFloat32 fBoxCenterWeight; |
|||
}; |
|||
#if FFX_HALF |
|||
struct RectificationBoxMin16 |
|||
{ |
|||
RectificationBoxDataMin16 data_; |
|||
FFX_MIN16_F fBoxCenterWeight; |
|||
}; |
|||
#endif |
|||
|
|||
void RectificationBoxReset(FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 initialColorSample) |
|||
{ |
|||
rectificationBox.fBoxCenterWeight = FfxFloat32(0); |
|||
|
|||
rectificationBox.data_.boxCenter = FfxFloat32x3(0, 0, 0); |
|||
rectificationBox.data_.boxVec = FfxFloat32x3(0, 0, 0); |
|||
rectificationBox.data_.aabbMin = initialColorSample; |
|||
rectificationBox.data_.aabbMax = initialColorSample; |
|||
} |
|||
#if FFX_HALF |
|||
void RectificationBoxReset(FFX_PARAMETER_INOUT RectificationBoxMin16 rectificationBox, const FFX_MIN16_F3 initialColorSample) |
|||
{ |
|||
rectificationBox.fBoxCenterWeight = FFX_MIN16_F(0); |
|||
|
|||
rectificationBox.data_.boxCenter = FFX_MIN16_F3(0, 0, 0); |
|||
rectificationBox.data_.boxVec = FFX_MIN16_F3(0, 0, 0); |
|||
rectificationBox.data_.aabbMin = initialColorSample; |
|||
rectificationBox.data_.aabbMax = initialColorSample; |
|||
} |
|||
#endif |
|||
|
|||
void RectificationBoxAddSample(FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 colorSample, const FfxFloat32 fSampleWeight) |
|||
{ |
|||
rectificationBox.data_.aabbMin = ffxMin(rectificationBox.data_.aabbMin, colorSample); |
|||
rectificationBox.data_.aabbMax = ffxMax(rectificationBox.data_.aabbMax, colorSample); |
|||
FfxFloat32x3 weightedSample = colorSample * fSampleWeight; |
|||
rectificationBox.data_.boxCenter += weightedSample; |
|||
rectificationBox.data_.boxVec += colorSample * weightedSample; |
|||
rectificationBox.fBoxCenterWeight += fSampleWeight; |
|||
} |
|||
#if FFX_HALF |
|||
void RectificationBoxAddSample(FFX_PARAMETER_INOUT RectificationBoxMin16 rectificationBox, const FFX_MIN16_F3 colorSample, const FFX_MIN16_F fSampleWeight) |
|||
{ |
|||
rectificationBox.data_.aabbMin = ffxMin(rectificationBox.data_.aabbMin, colorSample); |
|||
rectificationBox.data_.aabbMax = ffxMax(rectificationBox.data_.aabbMax, colorSample); |
|||
FFX_MIN16_F3 weightedSample = colorSample * fSampleWeight; |
|||
rectificationBox.data_.boxCenter += weightedSample; |
|||
rectificationBox.data_.boxVec += colorSample * weightedSample; |
|||
rectificationBox.fBoxCenterWeight += fSampleWeight; |
|||
} |
|||
#endif |
|||
|
|||
void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT RectificationBox rectificationBox) |
|||
{ |
|||
rectificationBox.fBoxCenterWeight = (abs(rectificationBox.fBoxCenterWeight) > FfxFloat32(FSR2_EPSILON) ? rectificationBox.fBoxCenterWeight : FfxFloat32(1.f)); |
|||
rectificationBox.data_.boxCenter /= rectificationBox.fBoxCenterWeight; |
|||
rectificationBox.data_.boxVec /= rectificationBox.fBoxCenterWeight; |
|||
FfxFloat32x3 stdDev = sqrt(abs(rectificationBox.data_.boxVec - rectificationBox.data_.boxCenter * rectificationBox.data_.boxCenter)); |
|||
rectificationBox.data_.boxVec = stdDev; |
|||
} |
|||
#if FFX_HALF |
|||
void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT RectificationBoxMin16 rectificationBox) |
|||
{ |
|||
rectificationBox.fBoxCenterWeight = (abs(rectificationBox.fBoxCenterWeight) > FFX_MIN16_F(FSR2_EPSILON) ? rectificationBox.fBoxCenterWeight : FFX_MIN16_F(1.f)); |
|||
rectificationBox.data_.boxCenter /= rectificationBox.fBoxCenterWeight; |
|||
rectificationBox.data_.boxVec /= rectificationBox.fBoxCenterWeight; |
|||
FFX_MIN16_F3 stdDev = sqrt(abs(rectificationBox.data_.boxVec - rectificationBox.data_.boxCenter * rectificationBox.data_.boxCenter)); |
|||
rectificationBox.data_.boxVec = stdDev; |
|||
} |
|||
#endif |
|||
|
|||
RectificationBoxData RectificationBoxGetData(FFX_PARAMETER_INOUT RectificationBox rectificationBox) |
|||
{ |
|||
return rectificationBox.data_; |
|||
} |
|||
#if FFX_HALF |
|||
RectificationBoxDataMin16 RectificationBoxGetData(FFX_PARAMETER_INOUT RectificationBoxMin16 rectificationBox) |
|||
{ |
|||
return rectificationBox.data_; |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32x3 SafeRcp3(FfxFloat32x3 v) |
|||
{ |
|||
return (all(FFX_NOT_EQUAL(v, FfxFloat32x3(0, 0, 0)))) ? (FfxFloat32x3(1, 1, 1) / v) : FfxFloat32x3(0, 0, 0); |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F3 SafeRcp3(FFX_MIN16_F3 v) |
|||
{ |
|||
return (all(FFX_NOT_EQUAL(v, FFX_MIN16_F3(0, 0, 0)))) ? (FFX_MIN16_F3(1, 1, 1) / v) : FFX_MIN16_F3(0, 0, 0); |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1) |
|||
{ |
|||
const FfxFloat32 m = ffxMax(v0, v1); |
|||
return m != 0 ? ffxMin(v0, v1) / m : 0; |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
FFX_MIN16_F MinDividedByMax(const FFX_MIN16_F v0, const FFX_MIN16_F v1) |
|||
{ |
|||
const FFX_MIN16_F m = ffxMax(v0, v1); |
|||
return m != FFX_MIN16_F(0) ? ffxMin(v0, v1) / m : FFX_MIN16_F(0); |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32x3 YCoCgToRGB(FfxFloat32x3 fYCoCg) |
|||
{ |
|||
FfxFloat32x3 fRgb; |
|||
|
|||
fYCoCg.yz -= FfxFloat32x2(0.5f, 0.5f); // [0,1] -> [-0.5,0.5] |
|||
|
|||
fRgb = FfxFloat32x3( |
|||
fYCoCg.x + fYCoCg.y - fYCoCg.z, |
|||
fYCoCg.x + fYCoCg.z, |
|||
fYCoCg.x - fYCoCg.y - fYCoCg.z); |
|||
|
|||
return fRgb; |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F3 YCoCgToRGB(FFX_MIN16_F3 fYCoCg) |
|||
{ |
|||
FFX_MIN16_F3 fRgb; |
|||
|
|||
fYCoCg.yz -= FFX_MIN16_F2(0.5f, 0.5f); // [0,1] -> [-0.5,0.5] |
|||
|
|||
fRgb = FFX_MIN16_F3( |
|||
fYCoCg.x + fYCoCg.y - fYCoCg.z, |
|||
fYCoCg.x + fYCoCg.z, |
|||
fYCoCg.x - fYCoCg.y - fYCoCg.z); |
|||
|
|||
return fRgb; |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32x3 RGBToYCoCg(FfxFloat32x3 fRgb) |
|||
{ |
|||
FfxFloat32x3 fYCoCg; |
|||
|
|||
fYCoCg = FfxFloat32x3( |
|||
0.25f * fRgb.r + 0.5f * fRgb.g + 0.25f * fRgb.b, |
|||
0.5f * fRgb.r - 0.5f * fRgb.b, |
|||
-0.25f * fRgb.r + 0.5f * fRgb.g - 0.25f * fRgb.b); |
|||
|
|||
fYCoCg.yz += FfxFloat32x2(0.5f, 0.5f); // [-0.5,0.5] -> [0,1] |
|||
|
|||
return fYCoCg; |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F3 RGBToYCoCg(FFX_MIN16_F3 fRgb) |
|||
{ |
|||
FFX_MIN16_F3 fYCoCg; |
|||
|
|||
fYCoCg = FFX_MIN16_F3( |
|||
0.25 * fRgb.r + 0.5 * fRgb.g + 0.25 * fRgb.b, |
|||
0.5 * fRgb.r - 0.5 * fRgb.b, |
|||
-0.25 * fRgb.r + 0.5 * fRgb.g - 0.25 * fRgb.b); |
|||
|
|||
fYCoCg.yz += FFX_MIN16_F2(0.5, 0.5); // [-0.5,0.5] -> [0,1] |
|||
|
|||
return fYCoCg; |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb) |
|||
{ |
|||
return dot(fLinearRgb, FfxFloat32x3(0.2126f, 0.7152f, 0.0722f)); |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F RGBToLuma(FFX_MIN16_F3 fLinearRgb) |
|||
{ |
|||
return dot(fLinearRgb, FFX_MIN16_F3(0.2126f, 0.7152f, 0.0722f)); |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32 RGBToPerceivedLuma(FfxFloat32x3 fLinearRgb) |
|||
{ |
|||
FfxFloat32 fLuminance = RGBToLuma(fLinearRgb); |
|||
|
|||
FfxFloat32 fPercievedLuminance = 0; |
|||
if (fLuminance <= 216.0f / 24389.0f) { |
|||
fPercievedLuminance = fLuminance * (24389.0f / 27.0f); |
|||
} else { |
|||
fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; |
|||
} |
|||
|
|||
return fPercievedLuminance * 0.01f; |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F RGBToPerceivedLuma(FFX_MIN16_F3 fLinearRgb) |
|||
{ |
|||
FFX_MIN16_F fLuminance = RGBToLuma(fLinearRgb); |
|||
|
|||
FFX_MIN16_F fPercievedLuminance = FFX_MIN16_F(0); |
|||
if (fLuminance <= FFX_MIN16_F(216.0f / 24389.0f)) { |
|||
fPercievedLuminance = fLuminance * FFX_MIN16_F(24389.0f / 27.0f); |
|||
} |
|||
else { |
|||
fPercievedLuminance = ffxPow(fLuminance, FFX_MIN16_F(1.0f / 3.0f)) * FFX_MIN16_F(116.0f) - FFX_MIN16_F(16.0f); |
|||
} |
|||
|
|||
return fPercievedLuminance * FFX_MIN16_F(0.01f); |
|||
} |
|||
#endif |
|||
|
|||
|
|||
FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb) |
|||
{ |
|||
return fRgb / (ffxMax(ffxMax(0.f, fRgb.r), ffxMax(fRgb.g, fRgb.b)) + 1.f).xxx; |
|||
} |
|||
|
|||
FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb) |
|||
{ |
|||
return fRgb / ffxMax(FSR2_TONEMAP_EPSILON, 1.f - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
FFX_MIN16_F3 Tonemap(FFX_MIN16_F3 fRgb) |
|||
{ |
|||
return fRgb / (ffxMax(ffxMax(FFX_MIN16_F(0.f), fRgb.r), ffxMax(fRgb.g, fRgb.b)) + FFX_MIN16_F(1.f)).xxx; |
|||
} |
|||
|
|||
FFX_MIN16_F3 InverseTonemap(FFX_MIN16_F3 fRgb) |
|||
{ |
|||
return fRgb / ffxMax(FFX_MIN16_F(FSR2_TONEMAP_EPSILON), FFX_MIN16_F(1.f) - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; |
|||
} |
|||
#endif |
|||
|
|||
FfxInt32x2 ClampLoad(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt32x2 iTextureSize) |
|||
{ |
|||
return clamp(iPxSample + iPxOffset, FfxInt32x2(0, 0), iTextureSize - FfxInt32x2(1, 1)); |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_I2 ClampLoad(FFX_MIN16_I2 iPxSample, FFX_MIN16_I2 iPxOffset, FFX_MIN16_I2 iTextureSize) |
|||
{ |
|||
return clamp(iPxSample + iPxOffset, FFX_MIN16_I2(0, 0), iTextureSize - FFX_MIN16_I2(1, 1)); |
|||
} |
|||
#endif |
|||
|
|||
FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size) |
|||
{ |
|||
return all(FFX_GREATER_THAN_EQUAL(pos, FfxInt32x2(0, 0))) && all(FFX_LESS_THAN(pos, size)); |
|||
} |
|||
#if FFX_HALF |
|||
FfxBoolean IsOnScreen(FFX_MIN16_I2 pos, FFX_MIN16_I2 size) |
|||
{ |
|||
return all(FFX_GREATER_THAN_EQUAL(pos, FFX_MIN16_I2(0, 0))) && all(FFX_LESS_THAN(pos, size)); |
|||
} |
|||
#endif |
|||
|
|||
FfxFloat32 ComputeAutoExposureFromLavg(FfxFloat32 Lavg) |
|||
{ |
|||
Lavg = exp(Lavg); |
|||
|
|||
const FfxFloat32 S = 100.0f; //ISO arithmetic speed |
|||
const FfxFloat32 K = 12.5f; |
|||
FfxFloat32 ExposureISO100 = log2((Lavg * S) / K); |
|||
|
|||
const FfxFloat32 q = 0.65f; |
|||
FfxFloat32 Lmax = (78.0f / (q * S)) * ffxPow(2.0f, ExposureISO100); |
|||
|
|||
return 1 / Lmax; |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_F ComputeAutoExposureFromLavg(FFX_MIN16_F Lavg) |
|||
{ |
|||
Lavg = exp(Lavg); |
|||
|
|||
const FFX_MIN16_F S = FFX_MIN16_F(100.0f); //ISO arithmetic speed |
|||
const FFX_MIN16_F K = FFX_MIN16_F(12.5f); |
|||
const FFX_MIN16_F ExposureISO100 = log2((Lavg * S) / K); |
|||
|
|||
const FFX_MIN16_F q = FFX_MIN16_F(0.65f); |
|||
const FFX_MIN16_F Lmax = (FFX_MIN16_F(78.0f) / (q * S)) * ffxPow(FFX_MIN16_F(2.0f), ExposureISO100); |
|||
|
|||
return FFX_MIN16_F(1) / Lmax; |
|||
} |
|||
#endif |
|||
|
|||
FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos) |
|||
{ |
|||
FfxFloat32x2 fSrcJitteredPos = FfxFloat32x2(iPxLrPos) + 0.5f - Jitter(); |
|||
FfxFloat32x2 fLrPosInHr = (fSrcJitteredPos / RenderSize()) * DisplaySize(); |
|||
FfxFloat32x2 fHrPos = floor(fLrPosInHr) + 0.5f; |
|||
return FfxInt32x2(fHrPos); |
|||
} |
|||
#if FFX_HALF |
|||
FFX_MIN16_I2 ComputeHrPosFromLrPos(FFX_MIN16_I2 iPxLrPos) |
|||
{ |
|||
FFX_MIN16_F2 fSrcJitteredPos = FFX_MIN16_F2(iPxLrPos) + FFX_MIN16_F(0.5f) - FFX_MIN16_F2(Jitter()); |
|||
FFX_MIN16_F2 fLrPosInHr = (fSrcJitteredPos / FFX_MIN16_F2(RenderSize())) * FFX_MIN16_F2(DisplaySize()); |
|||
FFX_MIN16_F2 fHrPos = floor(fLrPosInHr) + FFX_MIN16_F(0.5); |
|||
return FFX_MIN16_I2(fHrPos); |
|||
} |
|||
#endif |
|||
|
|||
#endif // #if defined(FFX_GPU) |
|||
|
|||
#endif //!defined(FFX_FSR2_COMMON_H) |
|||
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 9cdba182d33eab646b8df7521a7ec649 |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,105 @@ |
|||
// This file is part of the FidelityFX SDK. |
|||
// |
|||
// Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. |
|||
// |
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
// of this software and associated documentation files (the "Software"), to deal |
|||
// in the Software without restriction, including without limitation the rights |
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
// copies of the Software, and to permit persons to whom the Software is |
|||
// furnished to do so, subject to the following conditions: |
|||
// The above copyright notice and this permission notice shall be included in |
|||
// all copies or substantial portions of the Software. |
|||
// |
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|||
// THE SOFTWARE. |
|||
|
|||
#define GROUP_SIZE 8 |
|||
|
|||
#define FSR_RCAS_DENOISE 1 |
|||
|
|||
void WriteUpscaledOutput(FFX_MIN16_U2 iPxHrPos, FfxFloat32x3 fUpscaledColor) |
|||
{ |
|||
StoreUpscaledOutput(FFX_MIN16_I2(iPxHrPos), fUpscaledColor); |
|||
} |
|||
|
|||
#if FFX_HALF |
|||
#define FSR_RCAS_H |
|||
FfxFloat16x4 FsrRcasLoadH(FfxInt16x2 p) |
|||
{ |
|||
FfxFloat32x4 inputSample = LoadRCAS_Input(p); //TODO: fix type |
|||
|
|||
inputSample.rgb *= Exposure(); |
|||
|
|||
#if FFX_FSR2_OPTION_HDR_COLOR_INPUT |
|||
inputSample.rgb = Tonemap(inputSample.rgb); |
|||
#endif // #if FFX_FSR2_OPTION_HDR_COLOR_INPUT |
|||
|
|||
return FfxFloat16x4(inputSample); |
|||
} |
|||
void FsrRcasInputH(inout FfxFloat16 r, inout FfxFloat16 g, inout FfxFloat16 b) {} |
|||
#else |
|||
#define FSR_RCAS_F |
|||
FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p) |
|||
{ |
|||
FfxFloat32x4 inputSample = LoadRCAS_Input(p); |
|||
|
|||
inputSample.rgb *= Exposure(); |
|||
|
|||
#if FFX_FSR2_OPTION_HDR_COLOR_INPUT |
|||
inputSample.rgb = Tonemap(inputSample.rgb); |
|||
#endif |
|||
|
|||
return inputSample; |
|||
} |
|||
|
|||
void FsrRcasInputF(inout FfxFloat32 r, inout FfxFloat32 g, inout FfxFloat32 b) {} |
|||
#endif // #if FFX_HALF |
|||
|
|||
#include "ffx_fsr1.h" |
|||
|
|||
|
|||
void CurrFilter(FFX_MIN16_U2 pos) |
|||
{ |
|||
#if FFX_HALF |
|||
FfxFloat16x3 c; |
|||
FsrRcasH(c.r, c.g, c.b, pos, RCASConfig()); |
|||
|
|||
#if FFX_FSR2_OPTION_HDR_COLOR_INPUT |
|||
c = InverseTonemap(c); |
|||
#endif |
|||
|
|||
c /= FfxFloat16(Exposure()); |
|||
|
|||
WriteUpscaledOutput(pos, c); //TODO: fix type |
|||
#else |
|||
FfxFloat32x3 c; |
|||
FsrRcasF(c.r, c.g, c.b, pos, RCASConfig()); |
|||
|
|||
#if FFX_FSR2_OPTION_HDR_COLOR_INPUT |
|||
c = InverseTonemap(c); |
|||
#endif |
|||
|
|||
c /= Exposure(); |
|||
|
|||
WriteUpscaledOutput(pos, c); |
|||
#endif |
|||
} |
|||
|
|||
void RCAS(FfxUInt32x3 LocalThreadId, FfxUInt32x3 WorkGroupId, FfxUInt32x3 Dtid) |
|||
{ |
|||
// Do remapping of local xy in workgroup for a more PS-like swizzle pattern. |
|||
FfxUInt32x2 gxy = ffxRemapForQuad(LocalThreadId.x) + FfxUInt32x2(WorkGroupId.x << 4u, WorkGroupId.y << 4u); |
|||
CurrFilter(FFX_MIN16_U2(gxy)); |
|||
gxy.x += 8u; |
|||
CurrFilter(FFX_MIN16_U2(gxy)); |
|||
gxy.y += 8u; |
|||
CurrFilter(FFX_MIN16_U2(gxy)); |
|||
gxy.x -= 8u; |
|||
CurrFilter(FFX_MIN16_U2(gxy)); |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 755780b5a13da4047a06cae98bbcc0de |
|||
PluginImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
iconMap: {} |
|||
executionOrder: {} |
|||
defineConstraints: [] |
|||
isPreloaded: 0 |
|||
isOverridable: 0 |
|||
isExplicitlyReferenced: 0 |
|||
validateReferences: 1 |
|||
platformData: |
|||
- first: |
|||
Any: |
|||
second: |
|||
enabled: 1 |
|||
settings: {} |
|||
- first: |
|||
Editor: Editor |
|||
second: |
|||
enabled: 0 |
|||
settings: |
|||
DefaultValueInitialized: true |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,84 @@ |
|||
// Each #kernel tells which function to compile; you can have many kernels |
|||
#pragma kernel CS |
|||
|
|||
// Create a RenderTexture with enableRandomWrite flag and set it with cs.SetTexture |
|||
// NOTE: the .hlsl files conveniently contain a list of inputs and outputs in their header comments |
|||
//Texture2D<float2> r_exposure; // Expose is not used at the moment, so no need to bind it |
|||
Texture2D<float4> r_rcas_input; |
|||
RWTexture2D<float4> rw_upscaled_output; |
|||
|
|||
// Some global defines are needed |
|||
#define FFX_GPU // Compiling for GPU |
|||
#define FFX_HLSL // Compile for plain HLSL |
|||
|
|||
//#define FFX_FSR2_OPTION_HDR_COLOR_INPUT // This ought to be supported in the long run |
|||
|
|||
#define FSR_RCAS_F // Using 32-bit float mode (not half) |
|||
#define FSR2_BIND_UAV_UPSCALED_OUTPUT // Create an SRV binding for the output we need |
|||
|
|||
#include "ffx_core.h" // With the above defines this all compiles cleanly, yay! |
|||
|
|||
// This is from ffx_fsr2_callbacks_hlsl.h (bunch of macro use to declare SRVs, may need conversion) |
|||
FfxFloat32 Exposure() |
|||
{ |
|||
// return 1.0f; |
|||
#if defined(FSR2_BIND_SRV_EXPOSURE) || defined(FFX_INTERNAL) |
|||
FfxFloat32 exposure = r_exposure[FfxUInt32x2(0, 0)].x; |
|||
#else |
|||
FfxFloat32 exposure = 1.f; |
|||
#endif |
|||
|
|||
if (exposure == 0.0f) { |
|||
exposure = 1.0f; |
|||
} |
|||
|
|||
return exposure; |
|||
} |
|||
|
|||
FfxFloat32 PreExposure() |
|||
{ |
|||
//return fPreExposure; // TODO: requires constant buffer bindings, uhhh... (see FSR2_BIND_CB_FSR2) |
|||
return 1.0f; |
|||
} |
|||
|
|||
void StoreUpscaledOutput(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor) |
|||
{ |
|||
#if defined(FSR2_BIND_UAV_UPSCALED_OUTPUT) || defined(FFX_INTERNAL) |
|||
rw_upscaled_output[iPxPos] = FfxFloat32x4(fColor * PreExposure(), 1.f); |
|||
#endif |
|||
} |
|||
|
|||
//#include "ffx_fsr2_common.h" // TODO: still depends on a bunch of CB's from callbacks_hlsl |
|||
|
|||
// Below is all converted from ffx_fsr2_rcas_pass.hlsl |
|||
uint4 RCASConfig() |
|||
{ |
|||
// These are not your typical config parameters... these are packed floats-as-ints, i.e. complete nonsense values |
|||
return uint4(1061290752, 974141968, 0, 0); // TODO: this needs to be a constant buffer value |
|||
} |
|||
|
|||
float4 LoadRCAS_Input(FfxInt32x2 iPxPos) |
|||
{ |
|||
return r_rcas_input[iPxPos]; |
|||
} |
|||
|
|||
#include "ffx_fsr2_rcas.h" |
|||
|
|||
#ifndef FFX_FSR2_THREAD_GROUP_WIDTH |
|||
#define FFX_FSR2_THREAD_GROUP_WIDTH 64 |
|||
#endif // #ifndef FFX_FSR2_THREAD_GROUP_WIDTH |
|||
#ifndef FFX_FSR2_THREAD_GROUP_HEIGHT |
|||
#define FFX_FSR2_THREAD_GROUP_HEIGHT 1 |
|||
#endif // #ifndef FFX_FSR2_THREAD_GROUP_HEIGHT |
|||
#ifndef FFX_FSR2_THREAD_GROUP_DEPTH |
|||
#define FFX_FSR2_THREAD_GROUP_DEPTH 1 |
|||
#endif // #ifndef FFX_FSR2_THREAD_GROUP_DEPTH |
|||
#ifndef FFX_FSR2_NUM_THREADS |
|||
#define FFX_FSR2_NUM_THREADS [numthreads(FFX_FSR2_THREAD_GROUP_WIDTH, FFX_FSR2_THREAD_GROUP_HEIGHT, FFX_FSR2_THREAD_GROUP_DEPTH)] |
|||
#endif // #ifndef FFX_FSR2_NUM_THREADS |
|||
|
|||
FFX_FSR2_NUM_THREADS |
|||
void CS(uint3 LocalThreadId : SV_GroupThreadID, uint3 WorkGroupId : SV_GroupID, uint3 Dtid : SV_DispatchThreadID) |
|||
{ |
|||
RCAS(LocalThreadId, WorkGroupId, Dtid); |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 5a82801f160ff6a4eb47db567216e592 |
|||
ComputeShaderImporter: |
|||
externalObjects: {} |
|||
preprocessorOverride: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 6ea315d0fd7389c41b19996891e99ae3 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,447 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 9 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 705507994} |
|||
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} |
|||
m_UseRadianceAmbientProbe: 0 |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 12 |
|||
m_GIWorkflowMode: 1 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 0 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 12 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_AtlasSize: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_ExtractAmbientOcclusion: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 1 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVREnvironmentSampleCount: 500 |
|||
m_PVREnvironmentReferencePointCount: 2048 |
|||
m_PVRFilteringMode: 2 |
|||
m_PVRDenoiserTypeDirect: 0 |
|||
m_PVRDenoiserTypeIndirect: 0 |
|||
m_PVRDenoiserTypeAO: 0 |
|||
m_PVRFilterTypeDirect: 0 |
|||
m_PVRFilterTypeIndirect: 0 |
|||
m_PVRFilterTypeAO: 0 |
|||
m_PVREnvironmentMIS: 0 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 |
|||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 |
|||
m_PVRFilteringAtrousPositionSigmaAO: 1 |
|||
m_ExportTrainingData: 0 |
|||
m_TrainingDataDestination: TrainingData |
|||
m_LightProbeSampleCountMultiplier: 4 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_LightingSettings: {fileID: 0} |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
maxJobWorkers: 0 |
|||
preserveTilesOutsideBounds: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1 &705507993 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 705507995} |
|||
- component: {fileID: 705507994} |
|||
m_Layer: 0 |
|||
m_Name: Directional Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!108 &705507994 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 705507993} |
|||
m_Enabled: 1 |
|||
serializedVersion: 10 |
|||
m_Type: 1 |
|||
m_Shape: 0 |
|||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 10 |
|||
m_SpotAngle: 30 |
|||
m_InnerSpotAngle: 21.80208 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 2 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 1 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_CullingMatrixOverride: |
|||
e00: 1 |
|||
e01: 0 |
|||
e02: 0 |
|||
e03: 0 |
|||
e10: 0 |
|||
e11: 1 |
|||
e12: 0 |
|||
e13: 0 |
|||
e20: 0 |
|||
e21: 0 |
|||
e22: 1 |
|||
e23: 0 |
|||
e30: 0 |
|||
e31: 0 |
|||
e32: 0 |
|||
e33: 1 |
|||
m_UseCullingMatrixOverride: 0 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingLayerMask: 1 |
|||
m_Lightmapping: 1 |
|||
m_LightShadowCasterMode: 0 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} |
|||
m_UseBoundingSphereOverride: 0 |
|||
m_UseViewFrustumForShadowCasterCull: 1 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &705507995 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 705507993} |
|||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
|||
m_LocalPosition: {x: 0, y: 3, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_ConstrainProportionsScale: 0 |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
|||
--- !u!1 &963194225 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 963194228} |
|||
- component: {fileID: 963194227} |
|||
- component: {fileID: 963194226} |
|||
- component: {fileID: 963194229} |
|||
- component: {fileID: 963194230} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &963194226 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
--- !u!20 &963194227 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
m_projectionMatrixMode: 1 |
|||
m_GateFitMode: 2 |
|||
m_FOVAxisMode: 0 |
|||
m_SensorSize: {x: 36, y: 24} |
|||
m_LensShift: {x: 0, y: 0} |
|||
m_FocalLength: 50 |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: 3 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 0 |
|||
m_AllowMSAA: 0 |
|||
m_AllowDynamicResolution: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
--- !u!4 &963194228 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_LocalRotation: {x: 0.050175156, y: 0.8117933, z: -0.07053209, w: 0.577494} |
|||
m_LocalPosition: {x: -1.94, y: 1.24, z: 2.14} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_ConstrainProportionsScale: 0 |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 9.931, y: 109.145, z: 0} |
|||
--- !u!114 &963194229 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 955cb66a9ecc20441a7e32934c9b4690, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
renderScale: 1 |
|||
enableJitter: 0 |
|||
--- !u!114 &963194230 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 963194225} |
|||
m_Enabled: 0 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: e3b91bb9659da8f49b7b36df73b7f70a, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
amplitude: 30 |
|||
frequency: 0.1 |
|||
--- !u!1001 &1313173313 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: |
|||
- target: {fileID: 3116566584170727252, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_Name |
|||
value: Workbench |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 3 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0.897 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: -0.018 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: -0.609 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 3119308079644534864, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 8850d132797ff49298ba781e8e1c9bfe, type: 3} |
|||
--- !u!1001 &1724307687 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: |
|||
- target: {fileID: 1059178161569566, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_Name |
|||
value: WorkshopSet |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 2 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 4527368504392492, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: a87f0180d46fd334b9025d0314a0dc70, type: 3} |
|||
@ -0,0 +1,7 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 9fc0d4010bbf28b4594072e72b8655ab |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,8 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 4c3d2ef72096d68469d97fa6b5872f5b |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,28 @@ |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
|
|||
public class CameraMover : MonoBehaviour |
|||
{ |
|||
private Camera _camera; |
|||
private Vector3 _startAngles; |
|||
|
|||
[SerializeField] |
|||
private float amplitude = 30f; |
|||
|
|||
[SerializeField] |
|||
private float frequency = 0.1f; |
|||
|
|||
void Start() |
|||
{ |
|||
_camera = GetComponent<Camera>(); |
|||
_startAngles = _camera.transform.localEulerAngles; |
|||
} |
|||
|
|||
void Update() |
|||
{ |
|||
var angles = _startAngles; |
|||
angles.x = amplitude * Mathf.Sin(2 * Mathf.PI * frequency * Time.time); |
|||
_camera.transform.localEulerAngles = angles; |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
fileFormatVersion: 2 |
|||
guid: e3b91bb9659da8f49b7b36df73b7f70a |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,105 @@ |
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using UnityEditor; |
|||
using UnityEngine; |
|||
using UnityEngine.Rendering; |
|||
|
|||
public class FSR2Thing : MonoBehaviour |
|||
{ |
|||
[SerializeField] |
|||
private bool performSharpenPass = true; |
|||
|
|||
[HideInInspector] |
|||
public Camera gameCamera; |
|||
|
|||
[HideInInspector] |
|||
public Camera outputCamera; |
|||
|
|||
[HideInInspector] |
|||
public float renderScale; |
|||
|
|||
private RenderTexture _upscaleRT; |
|||
private RenderTexture _rcasOutput; |
|||
|
|||
private Material _testMaterial; |
|||
private Material TestMaterial |
|||
{ |
|||
get |
|||
{ |
|||
if (_testMaterial == null) |
|||
{ |
|||
var testShader = Shader.Find("FSR2/FSRTest"); |
|||
_testMaterial = new Material(testShader); |
|||
} |
|||
|
|||
return _testMaterial; |
|||
} |
|||
} |
|||
|
|||
private ComputeShader _rcasComputeShader; |
|||
private ComputeShader RCASComputeShader |
|||
{ |
|||
get |
|||
{ |
|||
if (_rcasComputeShader == null) |
|||
{ |
|||
// TODO: this is nasty, I don't like this. How do we manage/bind compute shaders best?
|
|||
// GPUInstancer used Resources, we modified that to load stuff from asset bundles instead. Maybe provide a custom loader callback interface?
|
|||
_rcasComputeShader = Resources.Load<ComputeShader>("Shaders/ffx_fsr2_rcas_pass"); |
|||
} |
|||
|
|||
return _rcasComputeShader; |
|||
} |
|||
} |
|||
|
|||
private void OnEnable() |
|||
{ |
|||
RenderPipelineManager.endContextRendering += OnEndContextRendering; |
|||
|
|||
_upscaleRT = new RenderTexture(Screen.width, Screen.height, 24, RenderTextureFormat.ARGBHalf); |
|||
_upscaleRT.Create(); |
|||
|
|||
_rcasOutput = new RenderTexture(Screen.width, Screen.height, 24, RenderTextureFormat.ARGBHalf); |
|||
_rcasOutput.enableRandomWrite = true; |
|||
_rcasOutput.Create(); |
|||
} |
|||
|
|||
private void OnDisable() |
|||
{ |
|||
_rcasOutput.Release(); |
|||
_upscaleRT.Release(); |
|||
|
|||
RenderPipelineManager.endContextRendering -= OnEndContextRendering; |
|||
} |
|||
|
|||
// For scriptable rendering pipeline
|
|||
private void OnEndContextRendering(ScriptableRenderContext context, List<Camera> cameras) |
|||
{ |
|||
Debug.Log($"OnEndContentRendering, cameras = {string.Join(", ", cameras.Select(c => c.name))}"); |
|||
} |
|||
|
|||
// For legacy built-in render pipeline
|
|||
private void OnRenderImage(RenderTexture src, RenderTexture dest) |
|||
{ |
|||
// Do a dumb upscale first
|
|||
Graphics.Blit(gameCamera.targetTexture, _upscaleRT, TestMaterial); |
|||
|
|||
if (performSharpenPass) |
|||
{ |
|||
// Run the RCAS sharpening filter on the upscaled image
|
|||
int rcasKernel = RCASComputeShader.FindKernel("CS"); |
|||
RCASComputeShader.SetTexture(rcasKernel, "r_rcas_input", _upscaleRT); |
|||
RCASComputeShader.SetTexture(rcasKernel, "rw_upscaled_output", _rcasOutput); |
|||
RCASComputeShader.Dispatch(rcasKernel, Screen.width, Screen.height, 1); // TODO: not sure how these thread groups work...
|
|||
|
|||
// Output sharpened image to screen
|
|||
Graphics.Blit(_rcasOutput, dest); |
|||
} |
|||
else |
|||
{ |
|||
Graphics.Blit(_upscaleRT, dest); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
fileFormatVersion: 2 |
|||
guid: d59d37e0744f1344e95cf689136fc9d9 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,155 @@ |
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
|
|||
[RequireComponent(typeof(Camera))] |
|||
public class SubsampleTest : MonoBehaviour |
|||
{ |
|||
private Camera gameCamera; |
|||
|
|||
private GameObject outputCameraObject; |
|||
private Camera outputCamera; |
|||
|
|||
[SerializeField] |
|||
private float renderScale = 0.5f; |
|||
|
|||
[SerializeField] |
|||
private bool enableJitter; |
|||
|
|||
private FSR2Thing fsr2Thing; |
|||
|
|||
private void OnEnable() |
|||
{ |
|||
gameCamera = GetComponent<Camera>(); |
|||
if (outputCameraObject == null) |
|||
{ |
|||
outputCameraObject = new GameObject("FSR2 Camera Object"); |
|||
outputCameraObject.transform.SetParent(transform); |
|||
outputCameraObject.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); |
|||
//outputCameraObject.transform.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector;
|
|||
|
|||
outputCamera = outputCameraObject.AddComponent<Camera>(); |
|||
outputCamera.eventMask = 0; |
|||
|
|||
fsr2Thing = outputCameraObject.AddComponent<FSR2Thing>(); |
|||
fsr2Thing.gameCamera = gameCamera; |
|||
fsr2Thing.outputCamera = outputCamera; |
|||
fsr2Thing.renderScale = renderScale; |
|||
fsr2Thing.enabled = true; |
|||
|
|||
//outputCamera.CopyFrom(gameCamera);
|
|||
|
|||
outputCamera.cullingMask = 0; |
|||
outputCamera.clearFlags = CameraClearFlags.Nothing; |
|||
} |
|||
else |
|||
{ |
|||
fsr2Thing.enabled = true; |
|||
} |
|||
|
|||
gameCamera.targetTexture = new RenderTexture( |
|||
(int)(Screen.width * renderScale), (int)(Screen.height * renderScale), |
|||
24, // Can we copy depth value from original camera?
|
|||
RenderTextureFormat.ARGBHalf); // Can we copy format from original camera? Or renderer quality settings?
|
|||
|
|||
gameCamera.depthTextureMode = DepthTextureMode.Depth | DepthTextureMode.DepthNormals | DepthTextureMode.MotionVectors; |
|||
|
|||
gameCamera.targetTexture.name = "FSR2 Source Texture"; |
|||
gameCamera.targetTexture.Create(); |
|||
|
|||
// TODO: adjust texture mipmap LOD bias by log2(renderResolution/displayResolution) - 1.0;
|
|||
// May need to leave this to the game dev, as we don't know which textures do and don't belong to the 3D scene
|
|||
float biasOffset = GetMipmapBiasOffset(); |
|||
foreach (var tex in Resources.FindObjectsOfTypeAll<Texture2D>()) |
|||
{ |
|||
tex.mipMapBias += biasOffset; |
|||
} |
|||
} |
|||
|
|||
private void OnDisable() |
|||
{ |
|||
float biasOffset = GetMipmapBiasOffset(); |
|||
foreach (var tex in Resources.FindObjectsOfTypeAll<Texture2D>()) |
|||
{ |
|||
tex.mipMapBias -= biasOffset; |
|||
} |
|||
|
|||
gameCamera.targetTexture.Release(); |
|||
gameCamera.targetTexture = null; |
|||
|
|||
fsr2Thing.enabled = false; |
|||
outputCamera.enabled = false; |
|||
} |
|||
|
|||
public float GetMipmapBiasOffset() |
|||
{ |
|||
return Mathf.Log(renderScale) - 1.0f; |
|||
} |
|||
|
|||
private void Update() |
|||
{ |
|||
outputCamera.enabled = gameCamera.enabled; |
|||
//outputCamera.CopyFrom(gameCamera);
|
|||
|
|||
outputCamera.clearFlags = CameraClearFlags.Color; |
|||
} |
|||
|
|||
private Rect tempRect; |
|||
|
|||
private void OnPreRender() |
|||
{ |
|||
gameCamera.aspect = (Screen.width * gameCamera.rect.width) / (Screen.height * gameCamera.rect.height); |
|||
|
|||
tempRect = gameCamera.rect; |
|||
gameCamera.rect = new Rect(0, 0, 1, 1); |
|||
|
|||
if (enableJitter) |
|||
{ |
|||
// Perform custom jittering of the camera's projection matrix according to FSR2's instructions
|
|||
// Unity already does jittering behind the scenes for certain post-effects, so can we perhaps integrate with that?
|
|||
int jitterPhaseCount = GetJitterPhaseCount(gameCamera.targetTexture.width, Screen.width); |
|||
GetJitterOffset(out float jitterX, out float jitterY, Time.frameCount, jitterPhaseCount); |
|||
|
|||
jitterX = 2.0f * jitterX / gameCamera.targetTexture.width; |
|||
jitterY = -2.0f * jitterY / gameCamera.targetTexture.height; |
|||
|
|||
var jitterTranslationMatrix = Matrix4x4.Translate(new Vector3(jitterX, jitterY, 0)); |
|||
gameCamera.projectionMatrix = jitterTranslationMatrix * gameCamera.nonJitteredProjectionMatrix; |
|||
} |
|||
} |
|||
|
|||
private void OnPostRender() |
|||
{ |
|||
gameCamera.rect = tempRect; |
|||
gameCamera.ResetProjectionMatrix(); |
|||
} |
|||
|
|||
private static int GetJitterPhaseCount(int renderWidth, int displayWidth) |
|||
{ |
|||
const float basePhaseCount = 8.0f; |
|||
int jitterPhaseCount = (int)(basePhaseCount * Mathf.Pow((float)displayWidth / renderWidth, 2.0f)); |
|||
return jitterPhaseCount; |
|||
} |
|||
|
|||
private static void GetJitterOffset(out float outX, out float outY, int index, int phaseCount) |
|||
{ |
|||
outX = Halton((index % phaseCount) + 1, 2) - 0.5f; |
|||
outY = Halton((index % phaseCount) + 1, 3) - 0.5f; |
|||
} |
|||
|
|||
// Calculate halton number for index and base.
|
|||
private static float Halton(int index, int @base) |
|||
{ |
|||
float f = 1.0f, result = 0.0f; |
|||
|
|||
for (int currentIndex = index; currentIndex > 0;) { |
|||
|
|||
f /= @base; |
|||
result += f * (currentIndex % @base); |
|||
currentIndex = (int)Mathf.Floor((float)currentIndex / @base); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 955cb66a9ecc20441a7e32934c9b4690 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
@ -0,0 +1,45 @@ |
|||
{ |
|||
"dependencies": { |
|||
"com.unity.collab-proxy": "1.17.7", |
|||
"com.unity.feature.development": "1.0.1", |
|||
"com.unity.ide.rider": "3.0.16", |
|||
"com.unity.ide.visualstudio": "2.0.16", |
|||
"com.unity.ide.vscode": "1.2.5", |
|||
"com.unity.test-framework": "1.1.31", |
|||
"com.unity.textmeshpro": "3.0.6", |
|||
"com.unity.timeline": "1.6.4", |
|||
"com.unity.ugui": "1.0.0", |
|||
"com.unity.visualscripting": "1.7.8", |
|||
"com.unity.modules.ai": "1.0.0", |
|||
"com.unity.modules.androidjni": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0", |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.cloth": "1.0.0", |
|||
"com.unity.modules.director": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.particlesystem": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.physics2d": "1.0.0", |
|||
"com.unity.modules.screencapture": "1.0.0", |
|||
"com.unity.modules.terrain": "1.0.0", |
|||
"com.unity.modules.terrainphysics": "1.0.0", |
|||
"com.unity.modules.tilemap": "1.0.0", |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.uielements": "1.0.0", |
|||
"com.unity.modules.umbra": "1.0.0", |
|||
"com.unity.modules.unityanalytics": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequestaudio": "1.0.0", |
|||
"com.unity.modules.unitywebrequesttexture": "1.0.0", |
|||
"com.unity.modules.unitywebrequestwww": "1.0.0", |
|||
"com.unity.modules.vehicles": "1.0.0", |
|||
"com.unity.modules.video": "1.0.0", |
|||
"com.unity.modules.vr": "1.0.0", |
|||
"com.unity.modules.wind": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
} |
|||
} |
|||
@ -0,0 +1,413 @@ |
|||
{ |
|||
"dependencies": { |
|||
"com.unity.collab-proxy": { |
|||
"version": "1.17.7", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.services.core": "1.0.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.editorcoroutines": { |
|||
"version": "1.0.0", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ext.nunit": { |
|||
"version": "1.0.6", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.feature.development": { |
|||
"version": "1.0.1", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.ide.visualstudio": "2.0.16", |
|||
"com.unity.ide.rider": "3.0.16", |
|||
"com.unity.ide.vscode": "1.2.5", |
|||
"com.unity.editorcoroutines": "1.0.0", |
|||
"com.unity.performance.profile-analyzer": "1.1.1", |
|||
"com.unity.test-framework": "1.1.31", |
|||
"com.unity.testtools.codecoverage": "1.2.2" |
|||
} |
|||
}, |
|||
"com.unity.ide.rider": { |
|||
"version": "3.0.16", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ext.nunit": "1.0.6" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.visualstudio": { |
|||
"version": "2.0.16", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.1.9" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.vscode": { |
|||
"version": "1.2.5", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.nuget.newtonsoft-json": { |
|||
"version": "3.0.2", |
|||
"depth": 2, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.performance.profile-analyzer": { |
|||
"version": "1.1.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.services.core": { |
|||
"version": "1.6.0", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.nuget.newtonsoft-json": "3.0.2", |
|||
"com.unity.modules.androidjni": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.settings-manager": { |
|||
"version": "1.0.3", |
|||
"depth": 2, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.test-framework": { |
|||
"version": "1.1.31", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ext.nunit": "1.0.6", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.testtools.codecoverage": { |
|||
"version": "1.2.2", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.0.16", |
|||
"com.unity.settings-manager": "1.0.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.textmeshpro": { |
|||
"version": "3.0.6", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.timeline": { |
|||
"version": "1.6.4", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.modules.director": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.particlesystem": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ugui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.visualscripting": { |
|||
"version": "1.7.8", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.modules.ai": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.androidjni": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.animation": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.assetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.audio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.cloth": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.director": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.imageconversion": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.imgui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.jsonserialize": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.particlesystem": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics2d": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.screencapture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.subsystems": { |
|||
"version": "1.0.0", |
|||
"depth": 1, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.terrain": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.terrainphysics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.terrain": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.tilemap": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics2d": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.ui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.uielements": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.uielementsnative": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.uielementsnative": { |
|||
"version": "1.0.0", |
|||
"depth": 1, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.umbra": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unityanalytics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequest": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unitywebrequestassetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestaudio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequesttexture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestwww": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequestaudio": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vehicles": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.video": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.wind": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.xr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.subsystems": "1.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!11 &1 |
|||
AudioManager: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Volume: 1 |
|||
Rolloff Scale: 1 |
|||
Doppler Factor: 1 |
|||
Default Speaker Mode: 2 |
|||
m_SampleRate: 0 |
|||
m_DSPBufferSize: 1024 |
|||
m_VirtualVoiceCount: 512 |
|||
m_RealVoiceCount: 32 |
|||
m_SpatializerPlugin: |
|||
m_AmbisonicDecoderPlugin: |
|||
m_DisableAudio: 0 |
|||
m_VirtualizeEffects: 1 |
|||
m_RequestedDSPBufferSize: 1024 |
|||
@ -0,0 +1,6 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!236 &1 |
|||
ClusterInputManager: |
|||
m_ObjectHideFlags: 0 |
|||
m_Inputs: [] |
|||
@ -0,0 +1,34 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!55 &1 |
|||
PhysicsManager: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_Gravity: {x: 0, y: -9.81, z: 0} |
|||
m_DefaultMaterial: {fileID: 0} |
|||
m_BounceThreshold: 2 |
|||
m_SleepThreshold: 0.005 |
|||
m_DefaultContactOffset: 0.01 |
|||
m_DefaultSolverIterations: 6 |
|||
m_DefaultSolverVelocityIterations: 1 |
|||
m_QueriesHitBackfaces: 0 |
|||
m_QueriesHitTriggers: 1 |
|||
m_EnableAdaptiveForce: 0 |
|||
m_ClothInterCollisionDistance: 0 |
|||
m_ClothInterCollisionStiffness: 0 |
|||
m_ContactsGeneration: 1 |
|||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|||
m_AutoSimulation: 1 |
|||
m_AutoSyncTransforms: 0 |
|||
m_ReuseCollisionCallbacks: 1 |
|||
m_ClothInterCollisionSettingsToggle: 0 |
|||
m_ContactPairsMode: 0 |
|||
m_BroadphaseType: 0 |
|||
m_WorldBounds: |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
m_Extent: {x: 250, y: 250, z: 250} |
|||
m_WorldSubdivisions: 8 |
|||
m_FrictionType: 0 |
|||
m_EnableEnhancedDeterminism: 0 |
|||
m_EnableUnifiedHeightmaps: 1 |
|||
m_DefaultMaxAngluarSpeed: 7 |
|||
@ -0,0 +1,8 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1045 &1 |
|||
EditorBuildSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Scenes: [] |
|||
m_configObjects: {} |
|||
@ -0,0 +1,30 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!159 &1 |
|||
EditorSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_ExternalVersionControlSupport: Visible Meta Files |
|||
m_SerializationMode: 2 |
|||
m_LineEndingsForNewScripts: 0 |
|||
m_DefaultBehaviorMode: 0 |
|||
m_PrefabRegularEnvironment: {fileID: 0} |
|||
m_PrefabUIEnvironment: {fileID: 0} |
|||
m_SpritePackerMode: 0 |
|||
m_SpritePackerPaddingPower: 1 |
|||
m_EtcTextureCompressorBehavior: 1 |
|||
m_EtcTextureFastCompressor: 1 |
|||
m_EtcTextureNormalCompressor: 2 |
|||
m_EtcTextureBestCompressor: 4 |
|||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref |
|||
m_ProjectGenerationRootNamespace: |
|||
m_CollabEditorSettings: |
|||
inProgressEnabled: 1 |
|||
m_EnableTextureStreamingInEditMode: 1 |
|||
m_EnableTextureStreamingInPlayMode: 1 |
|||
m_AsyncShaderCompilation: 1 |
|||
m_EnterPlayModeOptionsEnabled: 0 |
|||
m_EnterPlayModeOptions: 3 |
|||
m_ShowLightmapResolutionOverlay: 1 |
|||
m_UseLegacyProbeSampleCount: 0 |
|||
m_SerializeInlineMappingsOnOneLine: 1 |
|||
@ -0,0 +1,13 @@ |
|||
{ |
|||
"buildSubtarget": 0, |
|||
"deploymentMethod": 0, |
|||
"deploymentDrive": 0, |
|||
"scid": "00000000-0000-0000-0000-000000000000", |
|||
"packageEncryption": 0, |
|||
"localizationPathOverride": "", |
|||
"resourcePriPathOverride": "", |
|||
"xboxSeriesSResolutionWidth": 2560, |
|||
"xboxSeriesSResolutionHeight": 1440, |
|||
"xboxSeriesXResolutionWidth": 3840, |
|||
"xboxSeriesXResolutionHeight": 2160 |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
{ |
|||
"buildSubtarget": 0, |
|||
"deploymentMethod": 0, |
|||
"deploymentDrive": 0, |
|||
"scid": "00000000-0000-0000-0000-000000000000", |
|||
"packageEncryption": 0, |
|||
"localizationPathOverride": "", |
|||
"resourcePriPathOverride": "", |
|||
"xboxOneResolutionWidth": 1920, |
|||
"xboxOneResolutionHeight": 1080, |
|||
"xboxOneSResolutionWidth": 1920, |
|||
"xboxOneSResolutionHeight": 1080, |
|||
"xboxOneXResolutionWidth": 3840, |
|||
"xboxOneXResolutionHeight": 2160, |
|||
"esramDisabled": false |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!30 &1 |
|||
GraphicsSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 13 |
|||
m_Deferred: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_DeferredReflections: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ScreenSpaceShadows: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_LegacyDeferred: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_DepthNormals: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_MotionVectors: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_LightHalo: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_LensFlare: |
|||
m_Mode: 1 |
|||
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_AlwaysIncludedShaders: |
|||
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} |
|||
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} |
|||
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} |
|||
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} |
|||
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} |
|||
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_PreloadedShaders: [] |
|||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, |
|||
type: 0} |
|||
m_CustomRenderPipeline: {fileID: 0} |
|||
m_TransparencySortMode: 0 |
|||
m_TransparencySortAxis: {x: 0, y: 0, z: 1} |
|||
m_DefaultRenderingPath: 1 |
|||
m_DefaultMobileRenderingPath: 1 |
|||
m_TierSettings: [] |
|||
m_LightmapStripping: 0 |
|||
m_FogStripping: 0 |
|||
m_InstancingStripping: 0 |
|||
m_LightmapKeepPlain: 1 |
|||
m_LightmapKeepDirCombined: 1 |
|||
m_LightmapKeepDynamicPlain: 1 |
|||
m_LightmapKeepDynamicDirCombined: 1 |
|||
m_LightmapKeepShadowMask: 1 |
|||
m_LightmapKeepSubtractive: 1 |
|||
m_FogKeepLinear: 1 |
|||
m_FogKeepExp: 1 |
|||
m_FogKeepExp2: 1 |
|||
m_AlbedoSwatchInfos: [] |
|||
m_LightsUseLinearIntensity: 0 |
|||
m_LightsUseColorTemperature: 0 |
|||
m_LogWhenShaderIsCompiled: 0 |
|||
m_AllowEnlightenSupportForUpgradedProject: 0 |
|||
@ -0,0 +1,295 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!13 &1 |
|||
InputManager: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Axes: |
|||
- serializedVersion: 3 |
|||
m_Name: Horizontal |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: left |
|||
positiveButton: right |
|||
altNegativeButton: a |
|||
altPositiveButton: d |
|||
gravity: 3 |
|||
dead: 0.001 |
|||
sensitivity: 3 |
|||
snap: 1 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Vertical |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: down |
|||
positiveButton: up |
|||
altNegativeButton: s |
|||
altPositiveButton: w |
|||
gravity: 3 |
|||
dead: 0.001 |
|||
sensitivity: 3 |
|||
snap: 1 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire1 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: left ctrl |
|||
altNegativeButton: |
|||
altPositiveButton: mouse 0 |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire2 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: left alt |
|||
altNegativeButton: |
|||
altPositiveButton: mouse 1 |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire3 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: left shift |
|||
altNegativeButton: |
|||
altPositiveButton: mouse 2 |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Jump |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: space |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Mouse X |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 0 |
|||
dead: 0 |
|||
sensitivity: 0.1 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 1 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Mouse Y |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 0 |
|||
dead: 0 |
|||
sensitivity: 0.1 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 1 |
|||
axis: 1 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Mouse ScrollWheel |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 0 |
|||
dead: 0 |
|||
sensitivity: 0.1 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 1 |
|||
axis: 2 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Horizontal |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 0 |
|||
dead: 0.19 |
|||
sensitivity: 1 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 2 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Vertical |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 0 |
|||
dead: 0.19 |
|||
sensitivity: 1 |
|||
snap: 0 |
|||
invert: 1 |
|||
type: 2 |
|||
axis: 1 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire1 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: joystick button 0 |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire2 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: joystick button 1 |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Fire3 |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: joystick button 2 |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Jump |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: joystick button 3 |
|||
altNegativeButton: |
|||
altPositiveButton: |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Submit |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: return |
|||
altNegativeButton: |
|||
altPositiveButton: joystick button 0 |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Submit |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: enter |
|||
altNegativeButton: |
|||
altPositiveButton: space |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
- serializedVersion: 3 |
|||
m_Name: Cancel |
|||
descriptiveName: |
|||
descriptiveNegativeName: |
|||
negativeButton: |
|||
positiveButton: escape |
|||
altNegativeButton: |
|||
altPositiveButton: joystick button 1 |
|||
gravity: 1000 |
|||
dead: 0.001 |
|||
sensitivity: 1000 |
|||
snap: 0 |
|||
invert: 0 |
|||
type: 0 |
|||
axis: 0 |
|||
joyNum: 0 |
|||
@ -0,0 +1,35 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!387306366 &1 |
|||
MemorySettings: |
|||
m_ObjectHideFlags: 0 |
|||
m_EditorMemorySettings: |
|||
m_MainAllocatorBlockSize: -1 |
|||
m_ThreadAllocatorBlockSize: -1 |
|||
m_MainGfxBlockSize: -1 |
|||
m_ThreadGfxBlockSize: -1 |
|||
m_CacheBlockSize: -1 |
|||
m_TypetreeBlockSize: -1 |
|||
m_ProfilerBlockSize: -1 |
|||
m_ProfilerEditorBlockSize: -1 |
|||
m_BucketAllocatorGranularity: -1 |
|||
m_BucketAllocatorBucketsCount: -1 |
|||
m_BucketAllocatorBlockSize: -1 |
|||
m_BucketAllocatorBlockCount: -1 |
|||
m_ProfilerBucketAllocatorGranularity: -1 |
|||
m_ProfilerBucketAllocatorBucketsCount: -1 |
|||
m_ProfilerBucketAllocatorBlockSize: -1 |
|||
m_ProfilerBucketAllocatorBlockCount: -1 |
|||
m_TempAllocatorSizeMain: -1 |
|||
m_JobTempAllocatorBlockSize: -1 |
|||
m_BackgroundJobTempAllocatorBlockSize: -1 |
|||
m_JobTempAllocatorReducedBlockSize: -1 |
|||
m_TempAllocatorSizeGIBakingWorker: -1 |
|||
m_TempAllocatorSizeNavMeshWorker: -1 |
|||
m_TempAllocatorSizeAudioWorker: -1 |
|||
m_TempAllocatorSizeCloudWorker: -1 |
|||
m_TempAllocatorSizeGfx: -1 |
|||
m_TempAllocatorSizeJobWorker: -1 |
|||
m_TempAllocatorSizeBackgroundWorker: -1 |
|||
m_TempAllocatorSizePreloadManager: -1 |
|||
m_PlatformMemorySettings: {} |
|||
@ -0,0 +1,91 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!126 &1 |
|||
NavMeshProjectSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
areas: |
|||
- name: Walkable |
|||
cost: 1 |
|||
- name: Not Walkable |
|||
cost: 1 |
|||
- name: Jump |
|||
cost: 2 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
- name: |
|||
cost: 1 |
|||
m_LastAgentTypeID: -887442657 |
|||
m_Settings: |
|||
- serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.75 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_SettingNames: |
|||
- Humanoid |
|||
@ -0,0 +1,48 @@ |
|||
{ |
|||
"MonoBehaviour": { |
|||
"m_Enabled": true, |
|||
"m_EditorHideFlags": 0, |
|||
"m_Name": "", |
|||
"m_EditorClassIdentifier": "UnityEditor.PS5.Extensions:UnityEditor.PS5:PS5Settings", |
|||
"npConfigZipPath": "", |
|||
"monoEnv": "", |
|||
"scriptOptimizationLevel": 2, |
|||
"enableApplicationExit": false, |
|||
"resetTempFolder": true, |
|||
"disableAutoHideSplash": false, |
|||
"playerPrefsSupport": false, |
|||
"appType": 0, |
|||
"restrictedAudioUsageRights": false, |
|||
"backgroundImagePath": "", |
|||
"startupBackgroundImagePath": "", |
|||
"startupForegroundImagePath": "", |
|||
"startupImagesFolder": "", |
|||
"iconImagesFolder": "", |
|||
"bgmPath": "", |
|||
"playerPrefsMaxSize": 32768, |
|||
"videoOutInitialWidth": 1920, |
|||
"useResolutionFallback": false, |
|||
"videoOutPixelFormat": 0, |
|||
"videoOutOutputMode": 1, |
|||
"paramFilePath": "", |
|||
"passcode": "43Qhdb1LKPSQtajdtkZiXMrQn2mgGHrU", |
|||
"updateReferencePackage": "", |
|||
"includedModules": [], |
|||
"sharedBinaryContentLabels": [], |
|||
"sharedBinarySystemFolders": [], |
|||
"workspaceName": "workspace0", |
|||
"buildCompressionType": 0, |
|||
"buildCompressionLevel": 0, |
|||
"keepPackageFiles": false, |
|||
"buildSubtarget": 0, |
|||
"sdkOverride": "", |
|||
"saveDataImagePath": "", |
|||
"configFileParsed": false, |
|||
"operatingSystemCanDisableSplashScreen": false, |
|||
"supportsVR": false, |
|||
"requiresVR": false, |
|||
"vrrSupport": 0, |
|||
"psvr2PlayAreaSupport": 0, |
|||
"psvr2DetailedGazeTrackingStatusEnabled": false |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &1 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 61 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_EnablePreReleasePackages: 0 |
|||
m_EnablePackageDependencies: 0 |
|||
m_AdvancedSettingsExpanded: 1 |
|||
m_ScopedRegistriesSettingsExpanded: 1 |
|||
m_SeeAllPackageVersions: 0 |
|||
oneTimeWarningShown: 0 |
|||
m_Registries: |
|||
- m_Id: main |
|||
m_Name: |
|||
m_Url: https://packages.unity.com |
|||
m_Scopes: [] |
|||
m_IsDefault: 1 |
|||
m_Capabilities: 7 |
|||
m_UserSelectedRegistryName: |
|||
m_UserAddingNewScopedRegistry: 0 |
|||
m_RegistryInfoDraft: |
|||
m_Modified: 0 |
|||
m_ErrorMessage: |
|||
m_UserModificationsInstanceId: -830 |
|||
m_OriginalInstanceId: -832 |
|||
m_LoadAssets: 0 |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"m_Name": "Settings", |
|||
"m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", |
|||
"m_Dictionary": { |
|||
"m_DictionaryValues": [] |
|||
} |
|||
} |
|||
@ -0,0 +1,56 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!19 &1 |
|||
Physics2DSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 4 |
|||
m_Gravity: {x: 0, y: -9.81} |
|||
m_DefaultMaterial: {fileID: 0} |
|||
m_VelocityIterations: 8 |
|||
m_PositionIterations: 3 |
|||
m_VelocityThreshold: 1 |
|||
m_MaxLinearCorrection: 0.2 |
|||
m_MaxAngularCorrection: 8 |
|||
m_MaxTranslationSpeed: 100 |
|||
m_MaxRotationSpeed: 360 |
|||
m_BaumgarteScale: 0.2 |
|||
m_BaumgarteTimeOfImpactScale: 0.75 |
|||
m_TimeToSleep: 0.5 |
|||
m_LinearSleepTolerance: 0.01 |
|||
m_AngularSleepTolerance: 2 |
|||
m_DefaultContactOffset: 0.01 |
|||
m_JobOptions: |
|||
serializedVersion: 2 |
|||
useMultithreading: 0 |
|||
useConsistencySorting: 0 |
|||
m_InterpolationPosesPerJob: 100 |
|||
m_NewContactsPerJob: 30 |
|||
m_CollideContactsPerJob: 100 |
|||
m_ClearFlagsPerJob: 200 |
|||
m_ClearBodyForcesPerJob: 200 |
|||
m_SyncDiscreteFixturesPerJob: 50 |
|||
m_SyncContinuousFixturesPerJob: 50 |
|||
m_FindNearestContactsPerJob: 100 |
|||
m_UpdateTriggerContactsPerJob: 100 |
|||
m_IslandSolverCostThreshold: 100 |
|||
m_IslandSolverBodyCostScale: 1 |
|||
m_IslandSolverContactCostScale: 10 |
|||
m_IslandSolverJointCostScale: 10 |
|||
m_IslandSolverBodiesPerJob: 50 |
|||
m_IslandSolverContactsPerJob: 50 |
|||
m_AutoSimulation: 1 |
|||
m_QueriesHitTriggers: 1 |
|||
m_QueriesStartInColliders: 1 |
|||
m_CallbacksOnDisable: 1 |
|||
m_ReuseCollisionCallbacks: 1 |
|||
m_AutoSyncTransforms: 0 |
|||
m_AlwaysShowColliders: 0 |
|||
m_ShowColliderSleep: 1 |
|||
m_ShowColliderContacts: 0 |
|||
m_ShowColliderAABB: 0 |
|||
m_ContactArrowScale: 0.2 |
|||
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} |
|||
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} |
|||
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} |
|||
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} |
|||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|||
@ -0,0 +1,7 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1386491679 &1 |
|||
PresetManager: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_DefaultPresets: {} |
|||
@ -0,0 +1,719 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!129 &1 |
|||
PlayerSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 23 |
|||
productGUID: c761d4da6d67eda46b3111988a48b64b |
|||
AndroidProfiler: 0 |
|||
AndroidFilterTouchesWhenObscured: 0 |
|||
AndroidEnableSustainedPerformanceMode: 0 |
|||
defaultScreenOrientation: 4 |
|||
targetDevice: 2 |
|||
useOnDemandResources: 0 |
|||
accelerometerFrequency: 60 |
|||
companyName: DefaultCompany |
|||
productName: FSRTestBuiltin |
|||
defaultCursor: {fileID: 0} |
|||
cursorHotspot: {x: 0, y: 0} |
|||
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} |
|||
m_ShowUnitySplashScreen: 1 |
|||
m_ShowUnitySplashLogo: 1 |
|||
m_SplashScreenOverlayOpacity: 1 |
|||
m_SplashScreenAnimation: 1 |
|||
m_SplashScreenLogoStyle: 1 |
|||
m_SplashScreenDrawMode: 0 |
|||
m_SplashScreenBackgroundAnimationZoom: 1 |
|||
m_SplashScreenLogoAnimationZoom: 1 |
|||
m_SplashScreenBackgroundLandscapeAspect: 1 |
|||
m_SplashScreenBackgroundPortraitAspect: 1 |
|||
m_SplashScreenBackgroundLandscapeUvs: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
m_SplashScreenBackgroundPortraitUvs: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
m_SplashScreenLogos: [] |
|||
m_VirtualRealitySplashScreen: {fileID: 0} |
|||
m_HolographicTrackingLossScreen: {fileID: 0} |
|||
defaultScreenWidth: 1920 |
|||
defaultScreenHeight: 1080 |
|||
defaultScreenWidthWeb: 960 |
|||
defaultScreenHeightWeb: 600 |
|||
m_StereoRenderingPath: 0 |
|||
m_ActiveColorSpace: 1 |
|||
m_MTRendering: 1 |
|||
mipStripping: 0 |
|||
numberOfMipsStripped: 0 |
|||
m_StackTraceTypes: 010000000100000001000000010000000100000001000000 |
|||
iosShowActivityIndicatorOnLoading: -1 |
|||
androidShowActivityIndicatorOnLoading: -1 |
|||
iosUseCustomAppBackgroundBehavior: 0 |
|||
iosAllowHTTPDownload: 1 |
|||
allowedAutorotateToPortrait: 1 |
|||
allowedAutorotateToPortraitUpsideDown: 1 |
|||
allowedAutorotateToLandscapeRight: 1 |
|||
allowedAutorotateToLandscapeLeft: 1 |
|||
useOSAutorotation: 1 |
|||
use32BitDisplayBuffer: 1 |
|||
preserveFramebufferAlpha: 0 |
|||
disableDepthAndStencilBuffers: 0 |
|||
androidStartInFullscreen: 1 |
|||
androidRenderOutsideSafeArea: 1 |
|||
androidUseSwappy: 1 |
|||
androidBlitType: 0 |
|||
androidResizableWindow: 0 |
|||
androidDefaultWindowWidth: 1920 |
|||
androidDefaultWindowHeight: 1080 |
|||
androidMinimumWindowWidth: 400 |
|||
androidMinimumWindowHeight: 300 |
|||
androidFullscreenMode: 1 |
|||
defaultIsNativeResolution: 1 |
|||
macRetinaSupport: 1 |
|||
runInBackground: 1 |
|||
captureSingleScreen: 0 |
|||
muteOtherAudioSources: 0 |
|||
Prepare IOS For Recording: 0 |
|||
Force IOS Speakers When Recording: 0 |
|||
deferSystemGesturesMode: 0 |
|||
hideHomeButton: 0 |
|||
submitAnalytics: 1 |
|||
usePlayerLog: 1 |
|||
bakeCollisionMeshes: 0 |
|||
forceSingleInstance: 0 |
|||
useFlipModelSwapchain: 1 |
|||
resizableWindow: 0 |
|||
useMacAppStoreValidation: 0 |
|||
macAppStoreCategory: public.app-category.games |
|||
gpuSkinning: 1 |
|||
xboxPIXTextureCapture: 0 |
|||
xboxEnableAvatar: 0 |
|||
xboxEnableKinect: 0 |
|||
xboxEnableKinectAutoTracking: 0 |
|||
xboxEnableFitness: 0 |
|||
visibleInBackground: 1 |
|||
allowFullscreenSwitch: 1 |
|||
fullscreenMode: 1 |
|||
xboxSpeechDB: 0 |
|||
xboxEnableHeadOrientation: 0 |
|||
xboxEnableGuest: 0 |
|||
xboxEnablePIXSampling: 0 |
|||
metalFramebufferOnly: 0 |
|||
xboxOneResolution: 0 |
|||
xboxOneSResolution: 0 |
|||
xboxOneXResolution: 3 |
|||
xboxOneMonoLoggingLevel: 0 |
|||
xboxOneLoggingLevel: 1 |
|||
xboxOneDisableEsram: 0 |
|||
xboxOneEnableTypeOptimization: 0 |
|||
xboxOnePresentImmediateThreshold: 0 |
|||
switchQueueCommandMemory: 0 |
|||
switchQueueControlMemory: 16384 |
|||
switchQueueComputeMemory: 262144 |
|||
switchNVNShaderPoolsGranularity: 33554432 |
|||
switchNVNDefaultPoolsGranularity: 16777216 |
|||
switchNVNOtherPoolsGranularity: 16777216 |
|||
switchNVNMaxPublicTextureIDCount: 0 |
|||
switchNVNMaxPublicSamplerIDCount: 0 |
|||
stadiaPresentMode: 0 |
|||
stadiaTargetFramerate: 0 |
|||
vulkanNumSwapchainBuffers: 3 |
|||
vulkanEnableSetSRGBWrite: 0 |
|||
vulkanEnablePreTransform: 1 |
|||
vulkanEnableLateAcquireNextImage: 0 |
|||
vulkanEnableCommandBufferRecycling: 1 |
|||
m_SupportedAspectRatios: |
|||
4:3: 1 |
|||
5:4: 1 |
|||
16:10: 1 |
|||
16:9: 1 |
|||
Others: 1 |
|||
bundleVersion: 0.1 |
|||
preloadedAssets: [] |
|||
metroInputSource: 0 |
|||
wsaTransparentSwapchain: 0 |
|||
m_HolographicPauseOnTrackingLoss: 1 |
|||
xboxOneDisableKinectGpuReservation: 1 |
|||
xboxOneEnable7thCore: 1 |
|||
vrSettings: |
|||
enable360StereoCapture: 0 |
|||
isWsaHolographicRemotingEnabled: 0 |
|||
enableFrameTimingStats: 0 |
|||
enableOpenGLProfilerGPURecorders: 1 |
|||
useHDRDisplay: 0 |
|||
D3DHDRBitDepth: 0 |
|||
m_ColorGamuts: 00000000 |
|||
targetPixelDensity: 30 |
|||
resolutionScalingMode: 0 |
|||
resetResolutionOnWindowResize: 0 |
|||
androidSupportedAspectRatio: 1 |
|||
androidMaxAspectRatio: 2.1 |
|||
applicationIdentifier: |
|||
Standalone: com.DefaultCompany.FSRTestBuiltin |
|||
buildNumber: |
|||
Standalone: 0 |
|||
iPhone: 0 |
|||
tvOS: 0 |
|||
overrideDefaultApplicationIdentifier: 0 |
|||
AndroidBundleVersionCode: 1 |
|||
AndroidMinSdkVersion: 22 |
|||
AndroidTargetSdkVersion: 0 |
|||
AndroidPreferredInstallLocation: 1 |
|||
aotOptions: |
|||
stripEngineCode: 1 |
|||
iPhoneStrippingLevel: 0 |
|||
iPhoneScriptCallOptimization: 0 |
|||
ForceInternetPermission: 0 |
|||
ForceSDCardPermission: 0 |
|||
CreateWallpaper: 0 |
|||
APKExpansionFiles: 0 |
|||
keepLoadedShadersAlive: 0 |
|||
StripUnusedMeshComponents: 1 |
|||
VertexChannelCompressionMask: 4054 |
|||
iPhoneSdkVersion: 988 |
|||
iOSTargetOSVersionString: 11.0 |
|||
tvOSSdkVersion: 0 |
|||
tvOSRequireExtendedGameController: 0 |
|||
tvOSTargetOSVersionString: 11.0 |
|||
uIPrerenderedIcon: 0 |
|||
uIRequiresPersistentWiFi: 0 |
|||
uIRequiresFullScreen: 1 |
|||
uIStatusBarHidden: 1 |
|||
uIExitOnSuspend: 0 |
|||
uIStatusBarStyle: 0 |
|||
appleTVSplashScreen: {fileID: 0} |
|||
appleTVSplashScreen2x: {fileID: 0} |
|||
tvOSSmallIconLayers: [] |
|||
tvOSSmallIconLayers2x: [] |
|||
tvOSLargeIconLayers: [] |
|||
tvOSLargeIconLayers2x: [] |
|||
tvOSTopShelfImageLayers: [] |
|||
tvOSTopShelfImageLayers2x: [] |
|||
tvOSTopShelfImageWideLayers: [] |
|||
tvOSTopShelfImageWideLayers2x: [] |
|||
iOSLaunchScreenType: 0 |
|||
iOSLaunchScreenPortrait: {fileID: 0} |
|||
iOSLaunchScreenLandscape: {fileID: 0} |
|||
iOSLaunchScreenBackgroundColor: |
|||
serializedVersion: 2 |
|||
rgba: 0 |
|||
iOSLaunchScreenFillPct: 100 |
|||
iOSLaunchScreenSize: 100 |
|||
iOSLaunchScreenCustomXibPath: |
|||
iOSLaunchScreeniPadType: 0 |
|||
iOSLaunchScreeniPadImage: {fileID: 0} |
|||
iOSLaunchScreeniPadBackgroundColor: |
|||
serializedVersion: 2 |
|||
rgba: 0 |
|||
iOSLaunchScreeniPadFillPct: 100 |
|||
iOSLaunchScreeniPadSize: 100 |
|||
iOSLaunchScreeniPadCustomXibPath: |
|||
iOSLaunchScreenCustomStoryboardPath: |
|||
iOSLaunchScreeniPadCustomStoryboardPath: |
|||
iOSDeviceRequirements: [] |
|||
iOSURLSchemes: [] |
|||
macOSURLSchemes: [] |
|||
iOSBackgroundModes: 0 |
|||
iOSMetalForceHardShadows: 0 |
|||
metalEditorSupport: 1 |
|||
metalAPIValidation: 1 |
|||
iOSRenderExtraFrameOnPause: 0 |
|||
iosCopyPluginsCodeInsteadOfSymlink: 0 |
|||
appleDeveloperTeamID: |
|||
iOSManualSigningProvisioningProfileID: |
|||
tvOSManualSigningProvisioningProfileID: |
|||
iOSManualSigningProvisioningProfileType: 0 |
|||
tvOSManualSigningProvisioningProfileType: 0 |
|||
appleEnableAutomaticSigning: 0 |
|||
iOSRequireARKit: 0 |
|||
iOSAutomaticallyDetectAndAddCapabilities: 1 |
|||
appleEnableProMotion: 0 |
|||
shaderPrecisionModel: 0 |
|||
clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea |
|||
templatePackageId: com.unity.template.3d@8.1.3 |
|||
templateDefaultScene: Assets/Scenes/SampleScene.unity |
|||
useCustomMainManifest: 0 |
|||
useCustomLauncherManifest: 0 |
|||
useCustomMainGradleTemplate: 0 |
|||
useCustomLauncherGradleManifest: 0 |
|||
useCustomBaseGradleTemplate: 0 |
|||
useCustomGradlePropertiesTemplate: 0 |
|||
useCustomProguardFile: 0 |
|||
AndroidTargetArchitectures: 1 |
|||
AndroidTargetDevices: 0 |
|||
AndroidSplashScreenScale: 0 |
|||
androidSplashScreen: {fileID: 0} |
|||
AndroidKeystoreName: |
|||
AndroidKeyaliasName: |
|||
AndroidBuildApkPerCpuArchitecture: 0 |
|||
AndroidTVCompatibility: 0 |
|||
AndroidIsGame: 1 |
|||
AndroidEnableTango: 0 |
|||
androidEnableBanner: 1 |
|||
androidUseLowAccuracyLocation: 0 |
|||
androidUseCustomKeystore: 0 |
|||
m_AndroidBanners: |
|||
- width: 320 |
|||
height: 180 |
|||
banner: {fileID: 0} |
|||
androidGamepadSupportLevel: 0 |
|||
chromeosInputEmulation: 1 |
|||
AndroidMinifyWithR8: 0 |
|||
AndroidMinifyRelease: 0 |
|||
AndroidMinifyDebug: 0 |
|||
AndroidValidateAppBundleSize: 1 |
|||
AndroidAppBundleSizeToValidate: 150 |
|||
m_BuildTargetIcons: [] |
|||
m_BuildTargetPlatformIcons: [] |
|||
m_BuildTargetBatching: |
|||
- m_BuildTarget: Standalone |
|||
m_StaticBatching: 1 |
|||
m_DynamicBatching: 0 |
|||
- m_BuildTarget: tvOS |
|||
m_StaticBatching: 1 |
|||
m_DynamicBatching: 0 |
|||
- m_BuildTarget: Android |
|||
m_StaticBatching: 1 |
|||
m_DynamicBatching: 0 |
|||
- m_BuildTarget: iPhone |
|||
m_StaticBatching: 1 |
|||
m_DynamicBatching: 0 |
|||
- m_BuildTarget: WebGL |
|||
m_StaticBatching: 0 |
|||
m_DynamicBatching: 0 |
|||
m_BuildTargetShaderSettings: [] |
|||
m_BuildTargetGraphicsJobs: |
|||
- m_BuildTarget: MacStandaloneSupport |
|||
m_GraphicsJobs: 0 |
|||
- m_BuildTarget: Switch |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: MetroSupport |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: AppleTVSupport |
|||
m_GraphicsJobs: 0 |
|||
- m_BuildTarget: BJMSupport |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: LinuxStandaloneSupport |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: PS4Player |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: iOSSupport |
|||
m_GraphicsJobs: 0 |
|||
- m_BuildTarget: WindowsStandaloneSupport |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: XboxOnePlayer |
|||
m_GraphicsJobs: 1 |
|||
- m_BuildTarget: LuminSupport |
|||
m_GraphicsJobs: 0 |
|||
- m_BuildTarget: AndroidPlayer |
|||
m_GraphicsJobs: 0 |
|||
- m_BuildTarget: WebGLSupport |
|||
m_GraphicsJobs: 0 |
|||
m_BuildTargetGraphicsJobMode: |
|||
- m_BuildTarget: PS4Player |
|||
m_GraphicsJobMode: 0 |
|||
- m_BuildTarget: XboxOnePlayer |
|||
m_GraphicsJobMode: 0 |
|||
m_BuildTargetGraphicsAPIs: |
|||
- m_BuildTarget: AndroidPlayer |
|||
m_APIs: 150000000b000000 |
|||
m_Automatic: 1 |
|||
- m_BuildTarget: iOSSupport |
|||
m_APIs: 10000000 |
|||
m_Automatic: 1 |
|||
- m_BuildTarget: AppleTVSupport |
|||
m_APIs: 10000000 |
|||
m_Automatic: 1 |
|||
- m_BuildTarget: WebGLSupport |
|||
m_APIs: 0b000000 |
|||
m_Automatic: 1 |
|||
m_BuildTargetVRSettings: |
|||
- m_BuildTarget: Standalone |
|||
m_Enabled: 0 |
|||
m_Devices: |
|||
- Oculus |
|||
- OpenVR |
|||
m_DefaultShaderChunkSizeInMB: 16 |
|||
m_DefaultShaderChunkCount: 0 |
|||
openGLRequireES31: 0 |
|||
openGLRequireES31AEP: 0 |
|||
openGLRequireES32: 0 |
|||
m_TemplateCustomTags: {} |
|||
mobileMTRendering: |
|||
Android: 1 |
|||
iPhone: 1 |
|||
tvOS: 1 |
|||
m_BuildTargetGroupLightmapEncodingQuality: |
|||
- m_BuildTarget: Android |
|||
m_EncodingQuality: 1 |
|||
- m_BuildTarget: iPhone |
|||
m_EncodingQuality: 1 |
|||
- m_BuildTarget: tvOS |
|||
m_EncodingQuality: 1 |
|||
m_BuildTargetGroupLightmapSettings: [] |
|||
m_BuildTargetNormalMapEncoding: |
|||
- m_BuildTarget: Android |
|||
m_Encoding: 1 |
|||
- m_BuildTarget: iPhone |
|||
m_Encoding: 1 |
|||
- m_BuildTarget: tvOS |
|||
m_Encoding: 1 |
|||
m_BuildTargetDefaultTextureCompressionFormat: |
|||
- m_BuildTarget: Android |
|||
m_Format: 3 |
|||
playModeTestRunnerEnabled: 0 |
|||
runPlayModeTestAsEditModeTest: 0 |
|||
actionOnDotNetUnhandledException: 1 |
|||
enableInternalProfiler: 0 |
|||
logObjCUncaughtExceptions: 1 |
|||
enableCrashReportAPI: 0 |
|||
cameraUsageDescription: |
|||
locationUsageDescription: |
|||
microphoneUsageDescription: |
|||
bluetoothUsageDescription: |
|||
switchNMETAOverride: |
|||
switchNetLibKey: |
|||
switchSocketMemoryPoolSize: 6144 |
|||
switchSocketAllocatorPoolSize: 128 |
|||
switchSocketConcurrencyLimit: 14 |
|||
switchScreenResolutionBehavior: 2 |
|||
switchUseCPUProfiler: 0 |
|||
switchUseGOLDLinker: 0 |
|||
switchLTOSetting: 0 |
|||
switchApplicationID: 0x01004b9000490000 |
|||
switchNSODependencies: |
|||
switchTitleNames_0: |
|||
switchTitleNames_1: |
|||
switchTitleNames_2: |
|||
switchTitleNames_3: |
|||
switchTitleNames_4: |
|||
switchTitleNames_5: |
|||
switchTitleNames_6: |
|||
switchTitleNames_7: |
|||
switchTitleNames_8: |
|||
switchTitleNames_9: |
|||
switchTitleNames_10: |
|||
switchTitleNames_11: |
|||
switchTitleNames_12: |
|||
switchTitleNames_13: |
|||
switchTitleNames_14: |
|||
switchTitleNames_15: |
|||
switchPublisherNames_0: |
|||
switchPublisherNames_1: |
|||
switchPublisherNames_2: |
|||
switchPublisherNames_3: |
|||
switchPublisherNames_4: |
|||
switchPublisherNames_5: |
|||
switchPublisherNames_6: |
|||
switchPublisherNames_7: |
|||
switchPublisherNames_8: |
|||
switchPublisherNames_9: |
|||
switchPublisherNames_10: |
|||
switchPublisherNames_11: |
|||
switchPublisherNames_12: |
|||
switchPublisherNames_13: |
|||
switchPublisherNames_14: |
|||
switchPublisherNames_15: |
|||
switchIcons_0: {fileID: 0} |
|||
switchIcons_1: {fileID: 0} |
|||
switchIcons_2: {fileID: 0} |
|||
switchIcons_3: {fileID: 0} |
|||
switchIcons_4: {fileID: 0} |
|||
switchIcons_5: {fileID: 0} |
|||
switchIcons_6: {fileID: 0} |
|||
switchIcons_7: {fileID: 0} |
|||
switchIcons_8: {fileID: 0} |
|||
switchIcons_9: {fileID: 0} |
|||
switchIcons_10: {fileID: 0} |
|||
switchIcons_11: {fileID: 0} |
|||
switchIcons_12: {fileID: 0} |
|||
switchIcons_13: {fileID: 0} |
|||
switchIcons_14: {fileID: 0} |
|||
switchIcons_15: {fileID: 0} |
|||
switchSmallIcons_0: {fileID: 0} |
|||
switchSmallIcons_1: {fileID: 0} |
|||
switchSmallIcons_2: {fileID: 0} |
|||
switchSmallIcons_3: {fileID: 0} |
|||
switchSmallIcons_4: {fileID: 0} |
|||
switchSmallIcons_5: {fileID: 0} |
|||
switchSmallIcons_6: {fileID: 0} |
|||
switchSmallIcons_7: {fileID: 0} |
|||
switchSmallIcons_8: {fileID: 0} |
|||
switchSmallIcons_9: {fileID: 0} |
|||
switchSmallIcons_10: {fileID: 0} |
|||
switchSmallIcons_11: {fileID: 0} |
|||
switchSmallIcons_12: {fileID: 0} |
|||
switchSmallIcons_13: {fileID: 0} |
|||
switchSmallIcons_14: {fileID: 0} |
|||
switchSmallIcons_15: {fileID: 0} |
|||
switchManualHTML: |
|||
switchAccessibleURLs: |
|||
switchLegalInformation: |
|||
switchMainThreadStackSize: 1048576 |
|||
switchPresenceGroupId: |
|||
switchLogoHandling: 0 |
|||
switchReleaseVersion: 0 |
|||
switchDisplayVersion: 1.0.0 |
|||
switchStartupUserAccount: 0 |
|||
switchTouchScreenUsage: 0 |
|||
switchSupportedLanguagesMask: 0 |
|||
switchLogoType: 0 |
|||
switchApplicationErrorCodeCategory: |
|||
switchUserAccountSaveDataSize: 0 |
|||
switchUserAccountSaveDataJournalSize: 0 |
|||
switchApplicationAttribute: 0 |
|||
switchCardSpecSize: -1 |
|||
switchCardSpecClock: -1 |
|||
switchRatingsMask: 0 |
|||
switchRatingsInt_0: 0 |
|||
switchRatingsInt_1: 0 |
|||
switchRatingsInt_2: 0 |
|||
switchRatingsInt_3: 0 |
|||
switchRatingsInt_4: 0 |
|||
switchRatingsInt_5: 0 |
|||
switchRatingsInt_6: 0 |
|||
switchRatingsInt_7: 0 |
|||
switchRatingsInt_8: 0 |
|||
switchRatingsInt_9: 0 |
|||
switchRatingsInt_10: 0 |
|||
switchRatingsInt_11: 0 |
|||
switchRatingsInt_12: 0 |
|||
switchLocalCommunicationIds_0: |
|||
switchLocalCommunicationIds_1: |
|||
switchLocalCommunicationIds_2: |
|||
switchLocalCommunicationIds_3: |
|||
switchLocalCommunicationIds_4: |
|||
switchLocalCommunicationIds_5: |
|||
switchLocalCommunicationIds_6: |
|||
switchLocalCommunicationIds_7: |
|||
switchParentalControl: 0 |
|||
switchAllowsScreenshot: 1 |
|||
switchAllowsVideoCapturing: 1 |
|||
switchAllowsRuntimeAddOnContentInstall: 0 |
|||
switchDataLossConfirmation: 0 |
|||
switchUserAccountLockEnabled: 0 |
|||
switchSystemResourceMemory: 16777216 |
|||
switchSupportedNpadStyles: 22 |
|||
switchNativeFsCacheSize: 32 |
|||
switchIsHoldTypeHorizontal: 0 |
|||
switchSupportedNpadCount: 8 |
|||
switchSocketConfigEnabled: 0 |
|||
switchTcpInitialSendBufferSize: 32 |
|||
switchTcpInitialReceiveBufferSize: 64 |
|||
switchTcpAutoSendBufferSizeMax: 256 |
|||
switchTcpAutoReceiveBufferSizeMax: 256 |
|||
switchUdpSendBufferSize: 9 |
|||
switchUdpReceiveBufferSize: 42 |
|||
switchSocketBufferEfficiency: 4 |
|||
switchSocketInitializeEnabled: 1 |
|||
switchNetworkInterfaceManagerInitializeEnabled: 1 |
|||
switchPlayerConnectionEnabled: 1 |
|||
switchUseNewStyleFilepaths: 0 |
|||
switchUseLegacyFmodPriorities: 1 |
|||
switchUseMicroSleepForYield: 1 |
|||
switchEnableRamDiskSupport: 0 |
|||
switchMicroSleepForYieldTime: 25 |
|||
switchRamDiskSpaceSize: 12 |
|||
ps4NPAgeRating: 12 |
|||
ps4NPTitleSecret: |
|||
ps4NPTrophyPackPath: |
|||
ps4ParentalLevel: 11 |
|||
ps4ContentID: ED1633-NPXX51362_00-0000000000000000 |
|||
ps4Category: 0 |
|||
ps4MasterVersion: 01.00 |
|||
ps4AppVersion: 01.00 |
|||
ps4AppType: 0 |
|||
ps4ParamSfxPath: |
|||
ps4VideoOutPixelFormat: 0 |
|||
ps4VideoOutInitialWidth: 1920 |
|||
ps4VideoOutBaseModeInitialWidth: 1920 |
|||
ps4VideoOutReprojectionRate: 60 |
|||
ps4PronunciationXMLPath: |
|||
ps4PronunciationSIGPath: |
|||
ps4BackgroundImagePath: |
|||
ps4StartupImagePath: |
|||
ps4StartupImagesFolder: |
|||
ps4IconImagesFolder: |
|||
ps4SaveDataImagePath: |
|||
ps4SdkOverride: |
|||
ps4BGMPath: |
|||
ps4ShareFilePath: |
|||
ps4ShareOverlayImagePath: |
|||
ps4PrivacyGuardImagePath: |
|||
ps4ExtraSceSysFile: |
|||
ps4NPtitleDatPath: |
|||
ps4RemotePlayKeyAssignment: -1 |
|||
ps4RemotePlayKeyMappingDir: |
|||
ps4PlayTogetherPlayerCount: 0 |
|||
ps4EnterButtonAssignment: 1 |
|||
ps4ApplicationParam1: 0 |
|||
ps4ApplicationParam2: 0 |
|||
ps4ApplicationParam3: 0 |
|||
ps4ApplicationParam4: 0 |
|||
ps4DownloadDataSize: 0 |
|||
ps4GarlicHeapSize: 2048 |
|||
ps4ProGarlicHeapSize: 2560 |
|||
playerPrefsMaxSize: 32768 |
|||
ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ |
|||
ps4pnSessions: 1 |
|||
ps4pnPresence: 1 |
|||
ps4pnFriends: 1 |
|||
ps4pnGameCustomData: 1 |
|||
playerPrefsSupport: 0 |
|||
enableApplicationExit: 0 |
|||
resetTempFolder: 1 |
|||
restrictedAudioUsageRights: 0 |
|||
ps4UseResolutionFallback: 0 |
|||
ps4ReprojectionSupport: 0 |
|||
ps4UseAudio3dBackend: 0 |
|||
ps4UseLowGarlicFragmentationMode: 1 |
|||
ps4SocialScreenEnabled: 0 |
|||
ps4ScriptOptimizationLevel: 0 |
|||
ps4Audio3dVirtualSpeakerCount: 14 |
|||
ps4attribCpuUsage: 0 |
|||
ps4PatchPkgPath: |
|||
ps4PatchLatestPkgPath: |
|||
ps4PatchChangeinfoPath: |
|||
ps4PatchDayOne: 0 |
|||
ps4attribUserManagement: 0 |
|||
ps4attribMoveSupport: 0 |
|||
ps4attrib3DSupport: 0 |
|||
ps4attribShareSupport: 0 |
|||
ps4attribExclusiveVR: 0 |
|||
ps4disableAutoHideSplash: 0 |
|||
ps4videoRecordingFeaturesUsed: 0 |
|||
ps4contentSearchFeaturesUsed: 0 |
|||
ps4CompatibilityPS5: 0 |
|||
ps4AllowPS5Detection: 0 |
|||
ps4GPU800MHz: 1 |
|||
ps4attribEyeToEyeDistanceSettingVR: 0 |
|||
ps4IncludedModules: [] |
|||
ps4attribVROutputEnabled: 0 |
|||
monoEnv: |
|||
splashScreenBackgroundSourceLandscape: {fileID: 0} |
|||
splashScreenBackgroundSourcePortrait: {fileID: 0} |
|||
blurSplashScreenBackground: 1 |
|||
spritePackerPolicy: |
|||
webGLMemorySize: 16 |
|||
webGLExceptionSupport: 1 |
|||
webGLNameFilesAsHashes: 0 |
|||
webGLDataCaching: 1 |
|||
webGLDebugSymbols: 0 |
|||
webGLEmscriptenArgs: |
|||
webGLModulesDirectory: |
|||
webGLTemplate: APPLICATION:Default |
|||
webGLAnalyzeBuildSize: 0 |
|||
webGLUseEmbeddedResources: 0 |
|||
webGLCompressionFormat: 1 |
|||
webGLWasmArithmeticExceptions: 0 |
|||
webGLLinkerTarget: 1 |
|||
webGLThreadsSupport: 0 |
|||
webGLDecompressionFallback: 0 |
|||
webGLPowerPreference: 2 |
|||
scriptingDefineSymbols: {} |
|||
additionalCompilerArguments: {} |
|||
platformArchitecture: {} |
|||
scriptingBackend: {} |
|||
il2cppCompilerConfiguration: {} |
|||
managedStrippingLevel: {} |
|||
incrementalIl2cppBuild: {} |
|||
suppressCommonWarnings: 1 |
|||
allowUnsafeCode: 0 |
|||
useDeterministicCompilation: 1 |
|||
enableRoslynAnalyzers: 1 |
|||
selectedPlatform: 0 |
|||
additionalIl2CppArgs: |
|||
scriptingRuntimeVersion: 1 |
|||
gcIncremental: 1 |
|||
assemblyVersionValidation: 1 |
|||
gcWBarrierValidation: 0 |
|||
apiCompatibilityLevelPerPlatform: {} |
|||
m_RenderingPath: 1 |
|||
m_MobileRenderingPath: 1 |
|||
metroPackageName: Template_3D |
|||
metroPackageVersion: |
|||
metroCertificatePath: |
|||
metroCertificatePassword: |
|||
metroCertificateSubject: |
|||
metroCertificateIssuer: |
|||
metroCertificateNotAfter: 0000000000000000 |
|||
metroApplicationDescription: Template_3D |
|||
wsaImages: {} |
|||
metroTileShortName: |
|||
metroTileShowName: 0 |
|||
metroMediumTileShowName: 0 |
|||
metroLargeTileShowName: 0 |
|||
metroWideTileShowName: 0 |
|||
metroSupportStreamingInstall: 0 |
|||
metroLastRequiredScene: 0 |
|||
metroDefaultTileSize: 1 |
|||
metroTileForegroundText: 2 |
|||
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} |
|||
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} |
|||
metroSplashScreenUseBackgroundColor: 0 |
|||
platformCapabilities: {} |
|||
metroTargetDeviceFamilies: {} |
|||
metroFTAName: |
|||
metroFTAFileTypes: [] |
|||
metroProtocolName: |
|||
vcxProjDefaultLanguage: |
|||
XboxOneProductId: |
|||
XboxOneUpdateKey: |
|||
XboxOneSandboxId: |
|||
XboxOneContentId: |
|||
XboxOneTitleId: |
|||
XboxOneSCId: |
|||
XboxOneGameOsOverridePath: |
|||
XboxOnePackagingOverridePath: |
|||
XboxOneAppManifestOverridePath: |
|||
XboxOneVersion: 1.0.0.0 |
|||
XboxOnePackageEncryption: 0 |
|||
XboxOnePackageUpdateGranularity: 2 |
|||
XboxOneDescription: |
|||
XboxOneLanguage: |
|||
- enus |
|||
XboxOneCapability: [] |
|||
XboxOneGameRating: {} |
|||
XboxOneIsContentPackage: 0 |
|||
XboxOneEnhancedXboxCompatibilityMode: 0 |
|||
XboxOneEnableGPUVariability: 1 |
|||
XboxOneSockets: {} |
|||
XboxOneSplashScreen: {fileID: 0} |
|||
XboxOneAllowedProductIds: [] |
|||
XboxOnePersistentLocalStorageSize: 0 |
|||
XboxOneXTitleMemory: 8 |
|||
XboxOneOverrideIdentityName: |
|||
XboxOneOverrideIdentityPublisher: |
|||
vrEditorSettings: {} |
|||
cloudServicesEnabled: |
|||
UNet: 1 |
|||
luminIcon: |
|||
m_Name: |
|||
m_ModelFolderPath: |
|||
m_PortalFolderPath: |
|||
luminCert: |
|||
m_CertPath: |
|||
m_SignPackage: 1 |
|||
luminIsChannelApp: 0 |
|||
luminVersion: |
|||
m_VersionCode: 1 |
|||
m_VersionName: |
|||
apiCompatibilityLevel: 6 |
|||
activeInputHandler: 0 |
|||
windowsGamepadBackendHint: 0 |
|||
cloudProjectId: |
|||
framebufferDepthMemorylessMode: 0 |
|||
qualitySettingsNames: [] |
|||
projectName: |
|||
organizationId: |
|||
cloudEnabled: 0 |
|||
legacyClampBlendShapeWeights: 0 |
|||
playerDataPath: |
|||
forceSRGBBlit: 1 |
|||
virtualTexturingSupportEnabled: 0 |
|||
@ -0,0 +1,2 @@ |
|||
m_EditorVersion: 2021.3.16f1 |
|||
m_EditorVersionWithRevision: 2021.3.16f1 (4016570cf34f) |
|||
@ -0,0 +1,241 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!47 &1 |
|||
QualitySettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 5 |
|||
m_CurrentQuality: 5 |
|||
m_QualitySettings: |
|||
- serializedVersion: 2 |
|||
name: Very Low |
|||
pixelLightCount: 0 |
|||
shadows: 0 |
|||
shadowResolution: 0 |
|||
shadowProjection: 1 |
|||
shadowCascades: 1 |
|||
shadowDistance: 15 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 0 |
|||
skinWeights: 1 |
|||
textureQuality: 1 |
|||
anisotropicTextures: 0 |
|||
antiAliasing: 0 |
|||
softParticles: 0 |
|||
softVegetation: 0 |
|||
realtimeReflectionProbes: 0 |
|||
billboardsFaceCameraPosition: 0 |
|||
vSyncCount: 0 |
|||
lodBias: 0.3 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 4 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
- serializedVersion: 2 |
|||
name: Low |
|||
pixelLightCount: 0 |
|||
shadows: 0 |
|||
shadowResolution: 0 |
|||
shadowProjection: 1 |
|||
shadowCascades: 1 |
|||
shadowDistance: 20 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 0 |
|||
skinWeights: 2 |
|||
textureQuality: 0 |
|||
anisotropicTextures: 0 |
|||
antiAliasing: 0 |
|||
softParticles: 0 |
|||
softVegetation: 0 |
|||
realtimeReflectionProbes: 0 |
|||
billboardsFaceCameraPosition: 0 |
|||
vSyncCount: 0 |
|||
lodBias: 0.4 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 16 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
- serializedVersion: 2 |
|||
name: Medium |
|||
pixelLightCount: 1 |
|||
shadows: 1 |
|||
shadowResolution: 0 |
|||
shadowProjection: 1 |
|||
shadowCascades: 1 |
|||
shadowDistance: 20 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 0 |
|||
skinWeights: 2 |
|||
textureQuality: 0 |
|||
anisotropicTextures: 1 |
|||
antiAliasing: 0 |
|||
softParticles: 0 |
|||
softVegetation: 0 |
|||
realtimeReflectionProbes: 0 |
|||
billboardsFaceCameraPosition: 0 |
|||
vSyncCount: 1 |
|||
lodBias: 0.7 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 64 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
- serializedVersion: 2 |
|||
name: High |
|||
pixelLightCount: 2 |
|||
shadows: 2 |
|||
shadowResolution: 1 |
|||
shadowProjection: 1 |
|||
shadowCascades: 2 |
|||
shadowDistance: 40 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 1 |
|||
skinWeights: 2 |
|||
textureQuality: 0 |
|||
anisotropicTextures: 1 |
|||
antiAliasing: 0 |
|||
softParticles: 0 |
|||
softVegetation: 1 |
|||
realtimeReflectionProbes: 1 |
|||
billboardsFaceCameraPosition: 1 |
|||
vSyncCount: 1 |
|||
lodBias: 1 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 256 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
- serializedVersion: 2 |
|||
name: Very High |
|||
pixelLightCount: 3 |
|||
shadows: 2 |
|||
shadowResolution: 2 |
|||
shadowProjection: 1 |
|||
shadowCascades: 2 |
|||
shadowDistance: 70 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 1 |
|||
skinWeights: 4 |
|||
textureQuality: 0 |
|||
anisotropicTextures: 2 |
|||
antiAliasing: 2 |
|||
softParticles: 1 |
|||
softVegetation: 1 |
|||
realtimeReflectionProbes: 1 |
|||
billboardsFaceCameraPosition: 1 |
|||
vSyncCount: 1 |
|||
lodBias: 1.5 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 1024 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
- serializedVersion: 2 |
|||
name: Ultra |
|||
pixelLightCount: 4 |
|||
shadows: 2 |
|||
shadowResolution: 2 |
|||
shadowProjection: 1 |
|||
shadowCascades: 4 |
|||
shadowDistance: 150 |
|||
shadowNearPlaneOffset: 3 |
|||
shadowCascade2Split: 0.33333334 |
|||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} |
|||
shadowmaskMode: 1 |
|||
skinWeights: 4 |
|||
textureQuality: 0 |
|||
anisotropicTextures: 2 |
|||
antiAliasing: 2 |
|||
softParticles: 1 |
|||
softVegetation: 1 |
|||
realtimeReflectionProbes: 1 |
|||
billboardsFaceCameraPosition: 1 |
|||
vSyncCount: 1 |
|||
lodBias: 2 |
|||
maximumLODLevel: 0 |
|||
streamingMipmapsActive: 0 |
|||
streamingMipmapsAddAllCameras: 1 |
|||
streamingMipmapsMemoryBudget: 512 |
|||
streamingMipmapsRenderersPerFrame: 512 |
|||
streamingMipmapsMaxLevelReduction: 2 |
|||
streamingMipmapsMaxFileIORequests: 1024 |
|||
particleRaycastBudget: 4096 |
|||
asyncUploadTimeSlice: 2 |
|||
asyncUploadBufferSize: 16 |
|||
asyncUploadPersistentBuffer: 1 |
|||
resolutionScalingFixedDPIFactor: 1 |
|||
customRenderPipeline: {fileID: 0} |
|||
excludedTargetPlatforms: [] |
|||
m_PerPlatformDefaultQuality: |
|||
Android: 2 |
|||
GameCoreScarlett: 5 |
|||
GameCoreXboxOne: 5 |
|||
Lumin: 5 |
|||
Nintendo 3DS: 5 |
|||
Nintendo Switch: 5 |
|||
PS4: 5 |
|||
PS5: 5 |
|||
Server: 0 |
|||
Stadia: 5 |
|||
Standalone: 5 |
|||
WebGL: 3 |
|||
Windows Store Apps: 5 |
|||
XboxOne: 5 |
|||
iPhone: 2 |
|||
tvOS: 2 |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Game xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" configVersion="0"> |
|||
<Identity Name="FSRTestBuiltin" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" /> |
|||
<ShellVisuals DefaultDisplayName="Default Display Name" PublisherDisplayName="DefaultCompany" StoreLogo="StoreLogo.png" Square150x150Logo="Logo.png" Square44x44Logo="SmallLogo.png" Description="Default Description" BackgroundColor="#000000" SplashScreenImage="SplashScreen.png" /> |
|||
<VirtualMachine /> |
|||
</Game> |
|||
@ -0,0 +1,167 @@ |
|||
{ |
|||
"templatePinStates": [], |
|||
"dependencyTypeInfos": [ |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.AnimationClip", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEditor.Animations.AnimatorController", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.AnimatorOverrideController", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEditor.Audio.AudioMixerController", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.ComputeShader", |
|||
"ignore": true, |
|||
"defaultInstantiationMode": 1, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Cubemap", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.GameObject", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEditor.LightingDataAsset", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": false |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.LightingSettings", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Material", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEditor.MonoScript", |
|||
"ignore": true, |
|||
"defaultInstantiationMode": 1, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.PhysicMaterial", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.PhysicsMaterial2D", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Rendering.VolumeProfile", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEditor.SceneAsset", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": false |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Shader", |
|||
"ignore": true, |
|||
"defaultInstantiationMode": 1, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.ShaderVariantCollection", |
|||
"ignore": true, |
|||
"defaultInstantiationMode": 1, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Texture", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Texture2D", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
}, |
|||
{ |
|||
"userAdded": false, |
|||
"type": "UnityEngine.Timeline.TimelineAsset", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 0, |
|||
"supportsModification": true |
|||
} |
|||
], |
|||
"defaultDependencyTypeInfo": { |
|||
"userAdded": false, |
|||
"type": "<default_scene_template_dependencies>", |
|||
"ignore": false, |
|||
"defaultInstantiationMode": 1, |
|||
"supportsModification": true |
|||
}, |
|||
"newSceneOverride": 0 |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!78 &1 |
|||
TagManager: |
|||
serializedVersion: 2 |
|||
tags: [] |
|||
layers: |
|||
- Default |
|||
- TransparentFX |
|||
- Ignore Raycast |
|||
- |
|||
- Water |
|||
- UI |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
- |
|||
m_SortingLayers: |
|||
- name: Default |
|||
uniqueID: 0 |
|||
locked: 0 |
|||
@ -0,0 +1,9 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!5 &1 |
|||
TimeManager: |
|||
m_ObjectHideFlags: 0 |
|||
Fixed Timestep: 0.02 |
|||
Maximum Allowed Timestep: 0.33333334 |
|||
m_TimeScale: 1 |
|||
Maximum Particle Timestep: 0.03 |
|||
@ -0,0 +1,36 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!310 &1 |
|||
UnityConnectSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 1 |
|||
m_Enabled: 0 |
|||
m_TestMode: 0 |
|||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events |
|||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events |
|||
m_ConfigUrl: https://config.uca.cloud.unity3d.com |
|||
m_DashboardUrl: https://dashboard.unity3d.com |
|||
m_TestInitMode: 0 |
|||
CrashReportingSettings: |
|||
m_EventUrl: https://perf-events.cloud.unity3d.com |
|||
m_Enabled: 0 |
|||
m_LogBufferSize: 10 |
|||
m_CaptureEditorExceptions: 1 |
|||
UnityPurchasingSettings: |
|||
m_Enabled: 0 |
|||
m_TestMode: 0 |
|||
UnityAnalyticsSettings: |
|||
m_Enabled: 0 |
|||
m_TestMode: 0 |
|||
m_InitializeOnStartup: 1 |
|||
m_PackageRequiringCoreStatsPresent: 0 |
|||
UnityAdsSettings: |
|||
m_Enabled: 0 |
|||
m_InitializeOnStartup: 1 |
|||
m_TestMode: 0 |
|||
m_IosGameId: |
|||
m_AndroidGameId: |
|||
m_GameIds: {} |
|||
m_GameId: |
|||
PerformanceReportingSettings: |
|||
m_Enabled: 0 |
|||
@ -0,0 +1,12 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!937362698 &1 |
|||
VFXManager: |
|||
m_ObjectHideFlags: 0 |
|||
m_IndirectShader: {fileID: 0} |
|||
m_CopyBufferShader: {fileID: 0} |
|||
m_SortShader: {fileID: 0} |
|||
m_StripUpdateShader: {fileID: 0} |
|||
m_RenderPipeSettingsPath: |
|||
m_FixedTimeStep: 0.016666668 |
|||
m_MaxDeltaTime: 0.05 |
|||
@ -0,0 +1,8 @@ |
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!890905787 &1 |
|||
VersionControlSettings: |
|||
m_ObjectHideFlags: 0 |
|||
m_Mode: Visible Meta Files |
|||
m_CollabEditorSettings: |
|||
inProgressEnabled: 1 |
|||
@ -0,0 +1,10 @@ |
|||
{ |
|||
"m_SettingKeys": [ |
|||
"VR Device Disabled", |
|||
"VR Device User Alert" |
|||
], |
|||
"m_SettingValues": [ |
|||
"False", |
|||
"False" |
|||
] |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Game xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" configVersion="0"> |
|||
<Identity Name="FSRTestBuiltin" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" /> |
|||
<ShellVisuals DefaultDisplayName="Default Display Name" PublisherDisplayName="DefaultCompany" StoreLogo="StoreLogo.png" Square150x150Logo="Logo.png" Square44x44Logo="SmallLogo.png" Description="Default Description" BackgroundColor="#000000" SplashScreenImage="SplashScreen.png" /> |
|||
<VirtualMachine /> |
|||
</Game> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue