#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()
|
inline |
◆ effectiveHair()
|
inline |
◆ 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()
|
inline |
◆ meshForDistance()
|
inline |
◆ usesParts()
|
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
|
staticconstexpr |
在文件 RenderSystem3D.h 第 220 行定义.
被这些函数引用 eve::graphics::Renderable3D::clearMeshLod(), eve::procgen::Procgen::configureGtsTerrainTileLods(), eve::procgen::Procgen::configurePcgMeshLods(), eve::graphics::Renderable3D::setMeshLod(), eve::graphics::Renderable3D::setMeshLodFadeWidth() , 以及 eve::graphics::Renderable3D::setMeshLodRendererState().
◆ kMaxParts
|
staticconstexpr |
在文件 RenderSystem3D.h 第 221 行定义.
被这些函数引用 eve::avatar::AvatarInstance::bindSkinnedPart(), eve::graphics::Renderable3D::clearParts(), eve::graphics::Renderable3D::clearPartSortPriority(), eve::avatar::AvatarInstance::defineEquipmentSkinnedVisual3D(), eve::graphics::Renderable3D::setPart() , 以及 eve::graphics::Renderable3D::setPartSortPriority().
◆ 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
在文件 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 行定义.
该结构体的文档由以下文件生成:
- src/modules/graphics/RenderSystem3D.h
- src/modules/graphics/Renderable3D.cpp