载入中...
搜索中...
未找到
eve::graphics::Renderable3D::MeshRenderer结构体 参考

#include <RenderSystem3D.h>

类

struct  LodRendererState
 LodRendererState public API. 更多...
 

Public 成员函数

Mesh * meshForDistance (float distance) const
 Pick LOD mesh for a camera distance; falls back to mesh when LOD disabled.
 
int lodLevelForDistance (float distance) const
 Lod level for distance.
 
void lodBlendForDistance (float distance, int &primary, int &secondary, float &secondaryWeight) const
 Select primary/secondary levels and secondary weight for the active fade policy.
 
bool usesParts () const
 Uses parts.
 
bool effectiveHair () const
 Effective hair.
 
bool effectiveCastShadow () const
 Effective cast shadow.
 

Public 属性

Mesh * mesh = nullptr
 
Texture * texture = nullptr
 
Texture * normalTexture = nullptr
 
bool packedNormalMask = false
 
Texture * heightTexture = nullptr
 
Shader * shader = nullptr
 
std::optional< MeshInstanceRange > instances
 Optional value-owned instance range; forward custom shader path only.
 
Material * material = nullptr
 Optional packed material; when set, overrides texture/shader/PBR fields below.
 
Shader * xrayShader = nullptr
 Optional X-ray shader used to paint this entity's occluded silhouette (see Shader::setXray). When xrayHighlight is set, the entity is skipped from the G-buffer (so its pixels record occluder depth) and drawn a second time over the scene with the X-ray shader. Only the part hidden behind buildings shows the highlight; visible parts render normally.
 
bool xrayHighlight = false
 
float r = 1
 
float g = 1
 
float b = 1
 
float a = 1
 
float metallic = 0.f
 
float roughness = 0.45f
 
float texBombScale = 4.f
 
float texBombStrength = 0.f
 
float texBombRot = 1.f
 
float parallaxScale = 0.f
 
float parallaxMinLayers = 8.f
 
float parallaxMaxLayers = 32.f
 
bool visible = true
 
int layer = 0
 
uint32_t reflectionCaptureMask = 1u
 
bool receiveLight = true
 
bool castShadow = true
 
bool receiveShadow = true
 
bool castOcclusion = true
 
bool customLightProbe = false
 
std::array< glm::vec4, 9 > customLightProbeSh {}
 
bool isHair = false
 Alpha-blended hair/fur card pass (drawn after opaque meshes, back-to-front).
 
Camera3D * camera = nullptr
 
int partCount = 0
 Multi-part model slots (one mesh + material per Assimp mesh / body region). When partCount > 0, each part is drawn; otherwise mesh + material/fields.
 
ModelPart parts [kMaxParts] = {}
 
int lodCount = 0
 Optional geometric LOD. When lodCount > 0, lodMeshes[0..lodCount) are used instead of mesh based on camera distance. lodDistances[i] is the distance at which rendering switches from lodMeshes[i] to lodMeshes[i+1].
 
Mesh * lodMeshes [kMaxLodLevels] = {}
 
float lodDistances [kMaxLodLevels - 1] = {25.f, 60.f, 120.f}
 
float lodCullDistance = 0.f
 Distance beyond which the complete LOD chain is culled; zero disables.
 
LodRendererState lodRendererStates [kMaxLodLevels] = {}
 
float lodFadeWidths [kMaxLodLevels] = {}
 
int lodFadeMode = 0
 
bool lodAnimateCrossFading = false
 
float lodCrossFadeDuration = 0.5f
 
int lodAnimatedCurrent = -2
 
int lodAnimatedPrevious = -2
 
float lodAnimatedProgress = 1.f
 

静态 Public 属性

static constexpr int kMaxLodLevels = 4
 
static constexpr int kMaxParts = Material::kMaxPartsHint
 

详细描述

在文件 RenderSystem3D.h 第 219 行定义.

成员函数说明

◆ effectiveCastShadow()

bool eve::graphics::Renderable3D::MeshRenderer::effectiveCastShadow ( ) const
inline

Effective cast shadow.

在文件 RenderSystem3D.h 第 336 行定义.

引用了 material.

◆ effectiveHair()

bool eve::graphics::Renderable3D::MeshRenderer::effectiveHair ( ) const
inline

Effective hair.

在文件 RenderSystem3D.h 第 330 行定义.

引用了 material.

◆ lodBlendForDistance()

void eve::graphics::Renderable3D::MeshRenderer::lodBlendForDistance ( float  distance,
int &  primary,
int &  secondary,
float &  secondaryWeight 
) const

Select primary/secondary levels and secondary weight for the active fade policy.

在文件 Renderable3D.cpp 第 202 行定义.

引用了 boundary, distance, level, lodAnimateCrossFading, lodAnimatedCurrent, lodAnimatedPrevious, lodAnimatedProgress, lodCount, lodCullDistance, lodDistances, lodFadeMode, lodFadeWidths, lodLevelForDistance(), secondary, start , 以及 width.

◆ lodLevelForDistance()

int eve::graphics::Renderable3D::MeshRenderer::lodLevelForDistance ( float  distance) const
inline

Lod level for distance.

在文件 RenderSystem3D.h 第 315 行定义.

引用了 distance , 以及 level.

被这些函数引用 lodBlendForDistance().

◆ meshForDistance()

Mesh * eve::graphics::Renderable3D::MeshRenderer::meshForDistance ( float  distance) const
inline

Pick LOD mesh for a camera distance; falls back to mesh when LOD disabled.

@ownership Returns a borrowed mesh. @lifetime Same as the selected Graphics resource.

Mesh for distance.

在文件 RenderSystem3D.h 第 305 行定义.

引用了 distance, level , 以及 mesh.

◆ usesParts()

bool eve::graphics::Renderable3D::MeshRenderer::usesParts ( ) const
inline

Uses parts.

在文件 RenderSystem3D.h 第 327 行定义.

类成员变量说明

◆ a

float eve::graphics::Renderable3D::MeshRenderer::a = 1

在文件 RenderSystem3D.h 第 243 行定义.

◆ b

float eve::graphics::Renderable3D::MeshRenderer::b = 1

在文件 RenderSystem3D.h 第 243 行定义.

◆ camera

Camera3D* eve::graphics::Renderable3D::MeshRenderer::camera = nullptr

在文件 RenderSystem3D.h 第 263 行定义.

◆ castOcclusion

bool eve::graphics::Renderable3D::MeshRenderer::castOcclusion = true

在文件 RenderSystem3D.h 第 258 行定义.

◆ castShadow

bool eve::graphics::Renderable3D::MeshRenderer::castShadow = true

在文件 RenderSystem3D.h 第 256 行定义.

◆ customLightProbe

bool eve::graphics::Renderable3D::MeshRenderer::customLightProbe = false

在文件 RenderSystem3D.h 第 259 行定义.

◆ customLightProbeSh

std::array<glm::vec4, 9> eve::graphics::Renderable3D::MeshRenderer::customLightProbeSh {}

在文件 RenderSystem3D.h 第 260 行定义.

◆ g

float eve::graphics::Renderable3D::MeshRenderer::g = 1

在文件 RenderSystem3D.h 第 243 行定义.

◆ heightTexture

Texture* eve::graphics::Renderable3D::MeshRenderer::heightTexture = nullptr

@ownership Borrowed Graphics texture. @lifetime Must not outlive Graphics.

在文件 RenderSystem3D.h 第 228 行定义.

◆ instances

std::optional<MeshInstanceRange> eve::graphics::Renderable3D::MeshRenderer::instances

Optional value-owned instance range; forward custom shader path only.

在文件 RenderSystem3D.h 第 231 行定义.

◆ isHair

bool eve::graphics::Renderable3D::MeshRenderer::isHair = false

Alpha-blended hair/fur card pass (drawn after opaque meshes, back-to-front).

在文件 RenderSystem3D.h 第 262 行定义.

◆ kMaxLodLevels

◆ kMaxParts

◆ layer

int eve::graphics::Renderable3D::MeshRenderer::layer = 0

在文件 RenderSystem3D.h 第 253 行定义.

◆ lodAnimateCrossFading

bool eve::graphics::Renderable3D::MeshRenderer::lodAnimateCrossFading = false

在文件 RenderSystem3D.h 第 296 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodAnimatedCurrent

int eve::graphics::Renderable3D::MeshRenderer::lodAnimatedCurrent = -2

在文件 RenderSystem3D.h 第 298 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodAnimatedPrevious

int eve::graphics::Renderable3D::MeshRenderer::lodAnimatedPrevious = -2

在文件 RenderSystem3D.h 第 299 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodAnimatedProgress

float eve::graphics::Renderable3D::MeshRenderer::lodAnimatedProgress = 1.f

在文件 RenderSystem3D.h 第 300 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodCount

int eve::graphics::Renderable3D::MeshRenderer::lodCount = 0

Optional geometric LOD. When lodCount > 0, lodMeshes[0..lodCount) are used instead of mesh based on camera distance. lodDistances[i] is the distance at which rendering switches from lodMeshes[i] to lodMeshes[i+1].

在文件 RenderSystem3D.h 第 277 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodCrossFadeDuration

float eve::graphics::Renderable3D::MeshRenderer::lodCrossFadeDuration = 0.5f

在文件 RenderSystem3D.h 第 297 行定义.

◆ lodCullDistance

float eve::graphics::Renderable3D::MeshRenderer::lodCullDistance = 0.f

Distance beyond which the complete LOD chain is culled; zero disables.

在文件 RenderSystem3D.h 第 281 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodDistances

float eve::graphics::Renderable3D::MeshRenderer::lodDistances[kMaxLodLevels - 1] = {25.f, 60.f, 120.f}

在文件 RenderSystem3D.h 第 279 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodFadeMode

int eve::graphics::Renderable3D::MeshRenderer::lodFadeMode = 0

在文件 RenderSystem3D.h 第 295 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodFadeWidths

float eve::graphics::Renderable3D::MeshRenderer::lodFadeWidths[kMaxLodLevels] = {}

在文件 RenderSystem3D.h 第 294 行定义.

被这些函数引用 lodBlendForDistance().

◆ lodMeshes

Mesh* eve::graphics::Renderable3D::MeshRenderer::lodMeshes[kMaxLodLevels] = {}

在文件 RenderSystem3D.h 第 278 行定义.

◆ lodRendererStates

LodRendererState eve::graphics::Renderable3D::MeshRenderer::lodRendererStates[kMaxLodLevels] = {}

在文件 RenderSystem3D.h 第 293 行定义.

◆ material

Material* eve::graphics::Renderable3D::MeshRenderer::material = nullptr

Optional packed material; when set, overrides texture/shader/PBR fields below.

在文件 RenderSystem3D.h 第 233 行定义.

◆ mesh

Mesh* eve::graphics::Renderable3D::MeshRenderer::mesh = nullptr

在文件 RenderSystem3D.h 第 223 行定义.

◆ metallic

float eve::graphics::Renderable3D::MeshRenderer::metallic = 0.f

在文件 RenderSystem3D.h 第 244 行定义.

◆ normalTexture

Texture* eve::graphics::Renderable3D::MeshRenderer::normalTexture = nullptr

在文件 RenderSystem3D.h 第 225 行定义.

◆ packedNormalMask

bool eve::graphics::Renderable3D::MeshRenderer::packedNormalMask = false

在文件 RenderSystem3D.h 第 226 行定义.

◆ parallaxMaxLayers

float eve::graphics::Renderable3D::MeshRenderer::parallaxMaxLayers = 32.f

在文件 RenderSystem3D.h 第 251 行定义.

◆ parallaxMinLayers

float eve::graphics::Renderable3D::MeshRenderer::parallaxMinLayers = 8.f

在文件 RenderSystem3D.h 第 250 行定义.

◆ parallaxScale

float eve::graphics::Renderable3D::MeshRenderer::parallaxScale = 0.f

在文件 RenderSystem3D.h 第 249 行定义.

◆ partCount

int eve::graphics::Renderable3D::MeshRenderer::partCount = 0

Multi-part model slots (one mesh + material per Assimp mesh / body region). When partCount > 0, each part is drawn; otherwise mesh + material/fields.

在文件 RenderSystem3D.h 第 269 行定义.

◆ parts

ModelPart eve::graphics::Renderable3D::MeshRenderer::parts[kMaxParts] = {}

在文件 RenderSystem3D.h 第 270 行定义.

◆ r

float eve::graphics::Renderable3D::MeshRenderer::r = 1

在文件 RenderSystem3D.h 第 243 行定义.

◆ receiveLight

bool eve::graphics::Renderable3D::MeshRenderer::receiveLight = true

在文件 RenderSystem3D.h 第 255 行定义.

◆ receiveShadow

bool eve::graphics::Renderable3D::MeshRenderer::receiveShadow = true

在文件 RenderSystem3D.h 第 257 行定义.

◆ reflectionCaptureMask

uint32_t eve::graphics::Renderable3D::MeshRenderer::reflectionCaptureMask = 1u

在文件 RenderSystem3D.h 第 254 行定义.

◆ roughness

float eve::graphics::Renderable3D::MeshRenderer::roughness = 0.45f

在文件 RenderSystem3D.h 第 245 行定义.

◆ shader

Shader* eve::graphics::Renderable3D::MeshRenderer::shader = nullptr

在文件 RenderSystem3D.h 第 229 行定义.

◆ texBombRot

float eve::graphics::Renderable3D::MeshRenderer::texBombRot = 1.f

在文件 RenderSystem3D.h 第 248 行定义.

◆ texBombScale

float eve::graphics::Renderable3D::MeshRenderer::texBombScale = 4.f

在文件 RenderSystem3D.h 第 246 行定义.

◆ texBombStrength

float eve::graphics::Renderable3D::MeshRenderer::texBombStrength = 0.f

在文件 RenderSystem3D.h 第 247 行定义.

◆ texture

Texture* eve::graphics::Renderable3D::MeshRenderer::texture = nullptr

在文件 RenderSystem3D.h 第 224 行定义.

◆ visible

bool eve::graphics::Renderable3D::MeshRenderer::visible = true

在文件 RenderSystem3D.h 第 252 行定义.

◆ xrayHighlight

bool eve::graphics::Renderable3D::MeshRenderer::xrayHighlight = false

在文件 RenderSystem3D.h 第 242 行定义.

◆ xrayShader

Shader* eve::graphics::Renderable3D::MeshRenderer::xrayShader = nullptr

Optional X-ray shader used to paint this entity's occluded silhouette (see Shader::setXray). When xrayHighlight is set, the entity is skipped from the G-buffer (so its pixels record occluder depth) and drawn a second time over the scene with the X-ray shader. Only the part hidden behind buildings shows the highlight; visible parts render normally.

在文件 RenderSystem3D.h 第 241 行定义.


该结构体的文档由以下文件生成: