载入中...
搜索中...
未找到
PbrVariantPlan.cpp
浏览该文件的文档.
44 if (surface.vegetationAlpha.enabled && surface.vegetationAlpha.noise) plan.fragmentFlags |= PbrFadeNoise;
54 plan.fragmentTextures = std::popcount(plan.canonicalTextureMask) + std::popcount(plan.detailTextureMask) +
70 plan.fragmentSamplers = std::uint32_t(fragmentSamplers.size()) + std::popcount(plan.fragmentFlags);
75 plan.fragmentSamplers > limits.samplersPerStage || plan.vertexTextures > limits.sampledTexturesPerStage ||
78 DiagnosticCode::Unsupported, "WebGPU PBR material exceeds per-stage texture or sampler limits"));
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Result< PbrVariantPlan > planPbrVariant(const PbrSurface &surface, bool environment, bool shadows, const PbrVariantLimits &limits)
Plan only resources reachable for an immutable PBR draw snapshot.
Definition PbrVariantPlan.cpp:25
Result< void > validatePbrSurface(const PbrSurface &s)
Validate finite material factors and sampler enums without changing the input.
Definition PbrSurface.cpp:4
@ Unsupported
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
PbrVegetationMotion vegetationMotion
Definition PbrSurface.h:259
PbrVegetationExtras vegetationExtras
Definition PbrSurface.h:256
std::array< PbrTextureBinding, std::size_t(PbrTextureSlot::Count)> textures
Definition PbrSurface.h:219
PbrVegetationVertex vegetationVertex
Definition PbrSurface.h:258
PbrVegetationColors vegetationColors
Definition PbrSurface.h:257
PbrVegetationDetail vegetationDetail
Definition PbrSurface.h:255
PbrVegetationAlpha vegetationAlpha
Definition PbrSurface.h:260
std::array< PbrTextureBinding, 3 > textures
Definition PbrSurface.h:104
PbrVegetationDeformationSource source
Definition PbrSurface.h:159
Device resource limits relevant to one extended PBR shader variant.
Definition PbrVariantPlan.h:29
Stable resource-layout key and checked stage counts for a PBR snapshot.
Definition PbrVariantPlan.h:35
std::uint32_t fragmentSamplers
Definition PbrVariantPlan.h:43
std::uint32_t detailTextureMask
Definition PbrVariantPlan.h:39
std::uint32_t vertexFlags
Definition PbrVariantPlan.h:41
std::array< std::uint32_t, 11 > canonicalSamplerRepresentatives
Definition PbrVariantPlan.h:47
std::array< std::uint32_t, 3 > detailSamplerRepresentatives
Definition PbrVariantPlan.h:50
std::uint32_t fragmentTextures
Definition PbrVariantPlan.h:42
std::uint32_t vertexTextures
Definition PbrVariantPlan.h:44
std::uint32_t vertexSamplers
Definition PbrVariantPlan.h:45
std::uint32_t fragmentFlags
Definition PbrVariantPlan.h:40
std::uint32_t canonicalTextureMask
Definition PbrVariantPlan.h:38