Files
Bachelor-Arbeit-Adrian-Haefner/Library/PackageCache/com.unity.xr.arfoundation@ef86c118adc4/Runtime/ARFoundation/ARDefaultCameraBackgroundRenderingParams.cs
adriadri6972 d3d9c5f833 upload project
2025-07-31 15:21:08 +02:00

62 lines
2.1 KiB
C#

using System.Runtime.CompilerServices;
using UnityEngine.XR.ARSubsystems;
namespace UnityEngine.XR.ARFoundation
{
internal class ARDefaultCameraBackgroundRenderingParams
{
readonly XRCameraBackgroundRenderingParams m_DefaultRenderParamsAfterOpaques;
readonly XRCameraBackgroundRenderingParams m_DefaultRenderParamsBeforeOpaques;
internal ARDefaultCameraBackgroundRenderingParams()
{
m_DefaultRenderParamsAfterOpaques = new(
BuildFullscreenMesh(-1f),
Matrix4x4.Ortho(0f, 1f, 0f, 1f, 0f, 1f));
m_DefaultRenderParamsBeforeOpaques = new(
BuildFullscreenMesh(0.1f),
Matrix4x4.Ortho(0f, 1f, 0f, 1f, -0.1f, 9.9f));
}
static Mesh BuildFullscreenMesh(float zVal)
{
const float bottomV = 0f;
const float topV = 1f;
var mesh = new Mesh
{
vertices = new[]
{
new Vector3(0f, 0f, zVal),
new Vector3(0f, 1f, zVal),
new Vector3(1f, 1f, zVal),
new Vector3(1f, 0f, zVal),
},
uv = new[]
{
new Vector2(0f, bottomV),
new Vector2(0f, topV),
new Vector2(1f, topV),
new Vector2(1f, bottomV),
},
triangles = new[] { 0, 1, 2, 0, 2, 3 }
};
mesh.UploadMeshData(false);
return mesh;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public XRCameraBackgroundRenderingParams SelectDefaultBackgroundRenderParametersForRenderMode(XRCameraBackgroundRenderingMode currentRenderingMode)
{
return currentRenderingMode switch
{
XRCameraBackgroundRenderingMode.AfterOpaques => m_DefaultRenderParamsAfterOpaques,
XRCameraBackgroundRenderingMode.BeforeOpaques => m_DefaultRenderParamsBeforeOpaques,
XRCameraBackgroundRenderingMode.None => default,
_ => default
};
}
}
}