feat(render): implement Campaign AR and terrain fidelity

This commit is contained in:
Erik 2026-08-22 13:13:29 +02:00
parent 99cf26e00c
commit 7a5f96ede5
368 changed files with 50611 additions and 950 deletions

View file

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<!-- The only acdream dependency available to an external render pack. -->
<ProjectReference Include="..\..\src\AcDream.Plugin.Abstractions\AcDream.Plugin.Abstractions.csproj">
<Private>false</Private>
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="plugin.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,54 @@
using AcDream.Plugin.Abstractions.Rendering;
namespace AcDream.RenderPacks.NoOp;
/// <summary>
/// Minimal external render-pack entry point. It declares no resources, passes,
/// pipeline variants, shaders, or GPU capabilities, so selecting it is a
/// renderer no-op while still exercising discovery and atomic activation.
/// </summary>
public sealed class NoOpRenderPack : IRenderPackPlugin, IRenderPackAssets
{
private static RenderPackDescriptor Descriptor { get; } = new(
"sample.no-op-render-pack",
"No-op Render Pack Sample",
new Version(1, 0, 0),
RenderPackApi.Current,
RenderPackTier.Tier1,
RequiredCapabilities: [],
OptionalCapabilities: [],
Resources: [],
Passes: [],
SceneReplays: [],
PipelineVariants: [],
QualityPresets:
[
new RenderQualityPreset(
"conformance",
"Conformance",
RequiredCapabilities: [],
ResourceOverrides: [],
SettingOverrides: [],
MaxResidentGpuBytes: 0,
MaxIncrementalGpuMillisecondsP50: 0,
MaxIncrementalGpuMillisecondsP99: 0,
MaxIncrementalCpuMillisecondsP50: 0,
MaxIncrementalCpuMillisecondsP99: 0),
],
Settings: [],
AtmospherePolicy: null)
{
FeatureSummary = "No visual changes; exercises render-pack discovery and atomic activation.",
};
public void Register(IRenderPackRegistry registry)
{
ArgumentNullException.ThrowIfNull(registry);
registry.Register(Descriptor, this);
}
public Stream OpenRead(string assetKey) =>
throw new FileNotFoundException(
"The no-op conformance pack declares no assets.",
assetKey);
}

View file

@ -0,0 +1,10 @@
{
"version": 2,
"dependencies": {
"net10.0": {
"acdream.plugin.abstractions": {
"type": "Project"
}
}
}
}

View file

@ -0,0 +1,10 @@
{
"$schema": "../../docs/render-packs/plugin-manifest-v1.schema.json",
"id": "sample.no-op-render-pack",
"displayName": "No-op Render Pack Sample",
"version": "1.0.0",
"entryDll": "AcDream.RenderPacks.NoOp.dll",
"apiVersion": 1,
"dependencies": [],
"kinds": ["renderPack"]
}