载入中...
搜索中...
未找到
PbrSurface.h
浏览该文件的文档.
1#pragma once
2
3#include <array>
4#include <cstddef>
5#include <cstdint>
6#include "common/Export.h"
7#include "common/Result.h"
8namespace eve::graphics {
9class Texture;
11enum class PbrNormalMode : uint32_t {
12 TangentXYZ = 0,
13 VegetationRG = 1,
14 VegetationRAG = 2,
15 VegetationAG = 3
16};
18enum class PbrVegetationBackfaceNormalMode : uint32_t { Flip = 0, Mirror = 1, Same = 2 };
20enum class PbrCullMode : uint32_t { Inherit = 0, None = 1, Back = 2, Front = 3 };
40 Texture* texture = nullptr;
41 uint32_t texcoord = 0;
42 bool srgbDecode = true;
43 std::array<float, 2> offset{0, 0}, scale{1, 1};
44 float rotation = 0;
45 uint32_t wrapS = 10497, wrapT = 10497, minFilter = 9987, magFilter = 9729;
46};
60 std::array<float, 3> color{1, 1, 1};
61 float intensity = 0, strength = 1, normalDistortion = .5f, scattering = 2;
62 float direct = .9f, ambient = .1f, shadow = .5f, maskAmount = 0;
63 float globalIntensity = 1, overlay = 1;
67 float maskMinimum = 0, maskMaximum = 0;
68};
104 std::array<PbrTextureBinding, 3> textures{};
105 std::array<float, 4> color{1, 1, 1, 1}, colorTwo{1, 1, 1, 1};
106 std::array<float, 2> uvScale{1, 1}, uvOffset{0, 0};
110 float meshMinimum = 0, meshMaximum = 1;
111 uint32_t uvMode = 0, colorMode = 0, blendMode = 0, alphaMode = 1;
112 uint32_t maskMode = 0, meshMode = 0;
113 bool inverseUvScale = false;
114};
123 Texture* texture = nullptr;
124 std::array<float, 9> usage{};
125 std::array<float, 4> fallback{1, 0, 0, 1};
126 std::array<float, 4> coords{1, 1, 0, 0};
127 uint32_t layer = 0;
128 bool usePivotPosition = false;
129};
135 Texture* texture = nullptr;
136 std::array<float, 9> usage{};
137 std::array<float, 4> fallback{1, 1, 1, 0}, coords{1, 1, 0, 0};
138 uint32_t layer = 0;
139 bool usePivotPosition = false;
140};
154 Texture* texture = nullptr;
155 std::array<float, 9> usage{};
156 std::array<float, 4> fallback{0, 0, 0, 1}, coords{1, 1, 0, 0};
158 uint32_t layer = 0;
160};
162enum class PbrVegetationMotionMode : uint32_t { Disabled, Object };
172 Texture* texture = nullptr;
173 Texture* noise = nullptr;
174 std::array<float, 9> usage{};
175 std::array<float, 4> fallback{1, 0, .5f, 0}, coords{1, 1, 0, 0};
176 std::array<float, 2> globalDirection{1, 0};
177 std::array<float, 3> worldOrigin{0, 0, 0};
178 double time = 0;
179 float dynamicMode = 0, rigidity = .5f, facing = .5f;
181 float branch = .2f, rolling = .2f, branchSpeed = 6, branchScale = 3, branchVariation = 0;
182 float flutter = .2f, flutterSpeed = 20, flutterScale = 10, flutterVariation = 0;
186 uint32_t layer = 0;
188};
194 Texture* noise = nullptr;
195 float global = 0, variation = 0;
196 float glancing = 0, camera = 1, constant = 0;
198 bool detailFade = false;
199 bool enabled = false;
200};
203 float minimum = 0, maximum = 1, phase = 1, global = 1;
204 bool enabled = false;
205};
208 std::array<float, 3> colorOne{1, 1, 1}, colorTwo{1, 1, 1};
209 float minimum = 0, maximum = 1;
210 bool enabled = false;
211};
275[[nodiscard]] EVENGINE_API_BACKENDS Result<void> validatePbrSurface(const PbrSurface& surface);
276} // namespace eve::graphics
#define EVENGINE_API_BACKENDS
Definition Export.h:108
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
PbrNormalMode
Per-fragment normal decoding, evaluated after texture filtering.
Definition PbrSurface.h:11
PbrCullMode
Raster face culling requested by a PBR material.
Definition PbrSurface.h:20
PbrVegetationBackfaceNormalMode
TVE tangent-space normal treatment for back-facing fragments.
Definition PbrSurface.h:18
PbrTextureSlot
Canonical glTF texture roles, with fixed semantic channels (not a UV set limit).
Definition PbrSurface.h:22
Result< void > validatePbrSurface(const PbrSurface &s)
Validate finite material factors and sampler enums without changing the input.
Definition PbrSurface.cpp:4
PbrVegetationMotionMode
Select source-equivalent GPU motion evaluation for rest vegetation geometry.
Definition PbrSurface.h:162
PbrVegetationDeformationSource
Select the single owner of vegetation vertex deformation for a draw. RestMesh leaves authored positio...
Definition PbrSurface.h:146
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
bool alphaToCoverage
Enable alpha-to-coverage for masked rendering when the active target is multisampled.
Definition PbrSurface.h:245
std::array< float, 3 > motionHighlightColor
Owning linear nonnegative motion-highlight RGB; zero disables the effect. Multiplies final albedo by ...
Definition PbrSurface.h:269
bool colorMaskEnabled
Optional per-fragment RGB blend using projected ORM alpha as the color mask. Primary RGB remains Mate...
Definition PbrSurface.h:233
float albedoTextureStrength
Interpolate texture RGB from white; texture alpha is unaffected. Range [0,1].
Definition PbrSurface.h:237
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
std::array< float, 3 > colorMaskSecondary
Definition PbrSurface.h:234
PbrVegetationDetail vegetationDetail
Definition PbrSurface.h:255
PbrVegetationGradient vegetationGradient
Definition PbrSurface.h:262
std::array< float, 3 > emissive
Definition PbrSurface.h:220
PbrTranslucency translucency
Per-light vegetation backlighting. Native ambient RGB supplies the GI term. Positive maskAmount with ...
Definition PbrSurface.h:253
PbrVegetationAlpha vegetationAlpha
Definition PbrSurface.h:260
PbrNormalMode normalMode
Normal reconstruction; vegetation modes require a linear Normal texture and normalScale in [-8,...
Definition PbrSurface.h:242
PbrVegetationColorStages vegetationColor
Definition PbrSurface.h:254
std::array< float, 3 > specularColor
Definition PbrSurface.h:220
PbrVegetationEmission vegetationEmission
Definition PbrSurface.h:261
One borrowed texture plus independently owned UV/sampler parameters. Texture is graphics-factory-owne...
Definition PbrSurface.h:39
std::array< float, 2 > offset
Definition PbrSurface.h:43
std::array< float, 2 > scale
Definition PbrSurface.h:43
Owning vegetation translucency controls, evaluated per light after normal mapping....
Definition PbrSurface.h:59
std::array< float, 3 > color
Definition PbrSurface.h:60
float maskMinimum
Independent ORM-alpha endpoints in [0,1]. Reversed ranges are valid; maximum-minimum+0....
Definition PbrSurface.h:67
TVE global-alpha controls applied after optional detail alpha blending. When enabled,...
Definition PbrSurface.h:193
Owning per-fragment TVE surface-stage inputs in linear space. Scalar controls are [0,...
Definition PbrSurface.h:82
std::array< float, 4 > fieldColor
Definition PbrSurface.h:83
std::array< float, 3 > vertexOcclusionColor
Definition PbrSurface.h:84
PbrVegetationBackfaceNormalMode backfaceNormalMode
Definition PbrSurface.h:94
std::array< float, 3 > overlayColor
Definition PbrSurface.h:84
Borrowed TVE Colors RGBA16F array and owning layer sampling controls. RGB is linear tint and alpha is...
Definition PbrSurface.h:134
std::array< float, 4 > fallback
Definition PbrSurface.h:137
std::array< float, 4 > coords
Definition PbrSurface.h:137
std::array< float, 9 > usage
Definition PbrSurface.h:136
TVE secondary material layer evaluated after primary texture sampling. Three borrowed bindings contai...
Definition PbrSurface.h:103
std::array< PbrTextureBinding, 3 > textures
Definition PbrSurface.h:104
std::array< float, 2 > uvScale
Definition PbrSurface.h:106
std::array< float, 4 > colorTwo
Definition PbrSurface.h:105
std::array< float, 4 > color
Definition PbrSurface.h:105
std::array< float, 2 > uvOffset
Definition PbrSurface.h:106
TVE emissive remap and global Extras modulation for the borrowed emissive texture binding.
Definition PbrSurface.h:202
Borrowed TVE Extras RGBA16F array and owning sampling controls. Channels are emissive,...
Definition PbrSurface.h:122
std::array< float, 4 > coords
Definition PbrSurface.h:126
std::array< float, 9 > usage
Definition PbrSurface.h:124
std::array< float, 4 > fallback
Definition PbrSurface.h:125
TVE mesh-height gradient tint, masked by the blended main/detail blue channel.
Definition PbrSurface.h:207
std::array< float, 3 > colorTwo
Definition PbrSurface.h:208
std::array< float, 3 > colorOne
Definition PbrSurface.h:208
Borrowed TVE Motion atlas/noise and owning explicit object-motion controls. Object mode requires an u...
Definition PbrSurface.h:171
std::array< float, 4 > coords
Definition PbrSurface.h:175
std::array< float, 9 > usage
Definition PbrSurface.h:174
std::array< float, 3 > worldOrigin
Definition PbrSurface.h:177
std::array< float, 4 > fallback
Definition PbrSurface.h:175
std::array< float, 2 > globalDirection
Definition PbrSurface.h:176
PbrVegetationMotionMode mode
Definition PbrSurface.h:187
Borrowed TVE Vertex RGBA16F array and object-level size controls. TVE Plant Standard 12....
Definition PbrSurface.h:153
std::array< float, 9 > usage
Definition PbrSurface.h:155
std::array< float, 4 > coords
Definition PbrSurface.h:156
std::array< float, 4 > fallback
Definition PbrSurface.h:156
PbrVegetationDeformationSource source
Definition PbrSurface.h:159