导出 PDF

所选内容将按目录顺序合并下载。已选文档之间可在 PDF 内跳转,未选文档链接将打开在线页面。

跳转到正文

ULodGlspComponent C++ 扩展接口 ​

ULodGlspComponent · API参考

以下接口没有蓝图反射标记,适用于自定义 LOD 调度、拾取或渲染集成。

LOD 计算与调度 ​

接口说明
GetLevelFittedByProjectedVoxelError(...)按体素屏幕投影误差选择 LOD。
GetLevelFittedByScreenPixelQuality(...)按 允许误差 = 4 / Quality 选择 LOD,并输出本地单位/像素。
GetLevelFittedAverageSplatScreenSize(...)按平均 Splat 屏幕半径选择 LOD。
ChangeLevelWithView(...)可提供共享视图快照,并控制是否允许动态过滤。
NeedsDynamicFilterUpdate(...)判断当前层是否需要重新过滤。
InvalidateViewDependentLod()标记视图相关 LOD 结果失效。
RequestExplicitLodReschedule()即使层级未变化,也强制重新调度。
HasPendingExplicitLodReschedule()判断强制重调度是否尚未完成。
IsTaskRunning()判断是否有 LOD 任务运行。
ShouldUseFullData()判断当前 VR 视图是否使用完整数据。
IsDynamicV2ActiveForCurrentView()判断当前 VR 视图是否使用 Dynamic V2。

Chunk、驻留数据与拾取 ​

接口说明
GetChunkBounds()返回当前 Chunk 的本地包围盒。
GetChunkResourceName()返回缓存 Chunk 名称或回退名称。
GetResidentRenderCenter(...)返回驻留点的 Alpha 加权世界中心。
GetResidentRenderRevision()返回驻留渲染数据修订号。
RaycastSplats(...)在当前 CPU 驻留点中检测最近命中。
CopyResidentRenderSnapshot(...)复制内部渲染快照;字节布局不是稳定存储格式。

SDK 内部协作 ​

接口说明
GetSplatAssetInterface()以 ISplatAsset 接口返回当前资产。
GetCollisionAsset()返回资产关联的碰撞数据。
GetCollisionSourceFingerprint()返回碰撞源指纹。
SupportsLodRenderFeatures()固定返回 true。
HasExplicitSceneSurfaceProxy()返回 Actor 下发的表面代理状态。
SetRenderFeatureSettings(...)Actor 向 Chunk 传播渲染设置。

C++ 示例 ​

按屏幕像素质量计算并切换 LOD:

cpp
double LocalUnitsPerPixel = 0.0;
const int32 Lod = Chunk->GetLevelFittedByScreenPixelQuality(
    CameraPosition,
    ViewProjection,
    ViewportSize,
    Chunk->ScreenPixelQuality,
    LocalUnitsPerPixel);

if (Lod != INDEX_NONE && !Chunk->IsTaskRunning())
{
    Chunk->ChangeLevel(Lod);
}

检测当前驻留数据:

cpp
FVector HitCenter;
float HitDistance = 0.0f;
const bool bHit = Chunk->RaycastSplats(
    RayOrigin, RayDirection, 100000.0f, 1.0f,
    HitCenter, HitDistance);

Unreal 生命周期重载和私有函数不属于文档范围。

返回 ULodGlspComponent

LiSplat Unreal SDK 产品文档中心