载入中...
搜索中...
未找到
MeshVfxScalability.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include <cstddef>
6#include <cstdint>
7#include <span>
8#include <vector>
9
10namespace eve::stylize {
11
13enum class MeshVfxLodTier : std::uint8_t {
14 Full,
15 Reduced,
16 Minimal,
17 Culled,
18};
19
22 float fullQualityMinPixels = 96.0f;
24 float maximumDistance = 80.0f;
25 std::uint32_t workUnitBudget = 128;
26 std::uint32_t fullWorkUnits = 4;
27 std::uint32_t reducedWorkUnits = 2;
28 std::uint32_t minimalWorkUnits = 1;
29 std::uint32_t reducedTrailSampleStride = 2;
30 std::uint32_t minimalTrailSampleStride = 4;
31 std::uint32_t reducedMeshUpdateInterval = 2;
32 std::uint32_t minimalMeshUpdateInterval = 4;
33};
34
37 std::uint64_t stableInstanceId = 0;
38 float distance = 0.0f;
40 std::int32_t priority = 0;
41 bool visible = true;
42};
43
46 std::uint64_t stableInstanceId = 0;
48 std::uint32_t trailSampleStride = 1;
49 std::uint32_t meshUpdateInterval = 1;
50 std::uint32_t workUnits = 0;
51
52};
53
62public:
68
74 [[nodiscard]] std::vector<MeshVfxLodDecision> plan(std::span<const MeshVfxLodCandidate> candidates) const;
75
77 [[nodiscard]] const MeshVfxScalabilityPolicy& policy() const noexcept { return policy_; }
78
79private:
81};
82
83} // namespace eve::stylize
#define EVENGINE_API_WORLD
Definition Export.h:109
Selects mesh VFX quality under a deterministic per-view work budget.
const MeshVfxScalabilityPolicy & policy() const noexcept
Returns the policy used by this planner.
MeshVfxLodTier
Runtime quality tier selected for one mesh VFX instance.
View-dependent input used to prioritize one mesh VFX instance.
Deterministic rendering decision for one input candidate.
Global deterministic quality and work budget for mesh VFX.