XGRIDS文檔
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 靈視 P1

    • 產品概述
    • 設備基本操作
    • 使用 LCC Scan App
    • 維護及保養
    • 常見問題
  • 靈光 K 系列

    • 靈光 K1

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 地圖融合
      • 典型場景路線規劃建議
      • 注意事項
      • 常見問題
    • 靈光 K2

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 地圖融合
      • 典型場景路線規劃建議
      • 注意事項
      • 常見問題
  • 靈光 L 系列

    • 靈光 L2 Pro

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 實時測量功能
      • 附錄
      • 常見問題
  • Lixel Studio

    • 版權
    • 安裝與激活
    • 界面說明
    • 文件
    • 工程處理
    • 工具
    • 平面繪製
    • 行業應用
    • 設置
    • 設備感知
  • Lixel CyberColor

    • LCC Studio

      • 入門
      • 版本與更新
      • 下載及安裝
      • 介面概覽及導覽
      • 重建前準備
      • 模型重建
      • 單模型重建
      • 地圖融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 設定與帳戶
      • 設置與賬號
      • Converter
      • 影片重建
      • 視頻重建
      • 常見問題
    • LCC Scene Editor

      • 版本與更新
      • 賬號與登錄
      • 產品概覽與主頁
      • 編輯器界面介紹
      • 三種場景漫游快捷操作
      • 文件
      • 設置
      • 編輯操作
      • 窗口
      • 全局工具欄
      • 資產與屬性
      • 左側工具欄
      • 視點
      • 跳轉點
      • 天空盒
      • 標注
      • 測量
      • 場景漫游
      • 場景報告
      • 智能戶型圖(3D Layout)
      • 小地圖
      • 預覽模式(Viewer)
      • 幫助
      • 常見問題 / FAQ
      • 出生點
    • LCC Model Editor

      • 版本與更新
      • 新手指引
      • 概覽與界面
      • 文件操作
      • 選擇器
      • 編輯操作
      • 測量
      • 調色
      • 資產管理
      • 設置與幫助
      • 常見問題 / FAQ
    • 採集指南

      • 概述
      • 採集設備總覽
      • 通用採集原則
      • 室內場景採集
      • 室外場景採集
      • 大場景採集(地圖融合)
      • 空地融合採集
      • 物體採集
      • 人物採集
      • 影片重建採集
      • 高清補拍
      • 控制點(靈視 P1)
      • 常見問題與排查
    • 歷史版本
  • Plugin & SDK

    • Unreal

      • 介紹
      • 快速入門 - Windows
      • 快速入門 - Linux
      • 快速入門 - Quest3
      • 版本與授權
      • 渲染
      • 畫面調節
      • 法線與光照
      • 場景編輯
      • 性能參數說明
      • 性能優化指南
      • 第三方與引擎插件集成
      • 代理網格
      • 加載動畫
      • 碰撞
      • 尋路系統支持
      • 單層水支持
      • 本地化
      • 常見問題
      • 故障排查
      • 日誌與診斷
      • 聯繫我們
      • API 參考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日誌

        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

ALCCClippingVolume:3DGS 裁剪體

裁剪體 Actor,用盒形或球形體積裁掉 LCC 場景的一部分。

模塊LCC4UnrealRuntime
頭文件Tools/LCCClippingVolume.h
父類AVolume
面板顯示名LCC Clipping Volume
#include "Tools/LCCClippingVolume.h"

使用步驟、演示效果與屬性面板說明見場景編輯 - 裁剪框。本頁只列接口。

Properties

屬性類型說明
bEnabledbool是否參與裁剪
ModeEClipTypeInside 裁掉體積內部,Outside 裁掉體積外部
VolumeTypeEClipVolumeTypeBox 盒形,Sphere 球形

取值含義見 EClipType 與 EClipVolumeType。

三個屬性都沒有 Setter,運行時賦值後需要調用 Refresh 才生效。運行時改變換也一樣。

Methods

SetUpdateComponent

UFUNCTION(BlueprintCallable, Category = "XGrids")
void SetUpdateComponent(ULCCComponentBase* Component);

綁定要更新的 LCC Component。

參數類型說明
ComponentULCCComponentBase*目標 Component

Refresh() 需要這個綁定才能生效,它內部就是把綁定的 Component 標記為需要重建渲染狀態。沒綁定時 Refresh() 不會觸發渲染更新。

用 AddClippingVolume 添加時通常已建立關聯;運行時動態創建的裁剪體如果改動不生效,先檢查是否調過這個方法。

Refresh

UFUNCTION(BlueprintCallable, Category = "XGrids")
void Refresh();

手動觸發一次裁剪結果更新,內部會把綁定的 LCC Component 標記為需要重建渲染狀態。

運行時改動裁剪體後必須調用它,修改才會生效,包括:

  • 改屬性:bEnabled、Mode、VolumeType。這幾個屬性沒有 Setter,直接賦值不會通知渲染側。
  • 改變換:SetActorLocation、SetActorRotation、SetActorScale3D。

自動更新只發生在編輯器裏:細節面板改屬性走 PostEditChangeProperty,拖動 gizmo 走 EditorApplyTranslation 等函數,這些路徑都在 WITH_EDITOR 下,運行時不存在。

前提是已經調過 SetUpdateComponent 或通過 AddClippingVolume 建立了關聯。沒有綁定 Component 時不會觸發任何渲染更新。

批量修改多個裁剪體時,逐個改完屬性後各自調一次 Refresh()。

運行時創建

#include "Tools/LCCClippingVolume.h"
#include "LCCComponentBase.h"

ALCCClippingVolume* AMyTool::CreateBoxClip(
    ULCCComponentBase* Component, const FVector& Location, const FVector& Extent)
{
    ALCCClippingVolume* Volume = GetWorld()->SpawnActor<ALCCClippingVolume>(
        ALCCClippingVolume::StaticClass(), Location, FRotator::ZeroRotator);
    if (!Volume)
    {
        return nullptr;
    }

    Volume->VolumeType = EClipVolumeType::Box;
    Volume->Mode = EClipType::Inside;
    Volume->bEnabled = true;

    // AVolume 的尺寸通過縮放控制
    Volume->SetActorScale3D(Extent / 100.0f);

    Volume->SetUpdateComponent(Component);
    Component->AddClippingVolume(Volume);

    return Volume;
}

臨時開關裁剪效果不要增刪數組,直接改 bEnabled 更輕量。注意改完要調 Refresh():

for (ALCCClippingVolume* Volume : MyVolumes)
{
    if (Volume)
    {
        Volume->bEnabled = bEnable;
        Volume->Refresh();
    }
}

運行時移動裁剪體做動畫,同樣每次都要刷新:

// 讓裁剪體掃過場景
FVector Loc = ClipVolume->GetActorLocation();
Loc.X += 200.0f * DeltaTime;
ClipVolume->SetActorLocation(Loc);
ClipVolume->Refresh();          // 運行時變換不會自動更新

藍圖節點見場景編輯 - 藍圖方法。

Notes

  • 裁剪只影響渲染,不影響碰撞。裁掉的區域仍可被射線打中、仍會擋住角色。
  • 多個裁剪體同時作用時各自獨立判定,效果疊加。既有 Inside 又有 Outside 時容易出現意外結果。
  • 同時生效的裁剪體數量有上限,未授權時為 50 個,超出的不參與渲染並輸出警告。裁剪體與剖切面共用這個配額。授權說明見版本與授權。
  • 銷毀裁剪體只會觸發一次渲染更新,不會從 Component 的 ClippingVolumes 數組裏移除元素,數組中會殘留失效指針(渲染時會自動跳過)。需要保持數組乾淨的話,銷毀前先調 RemoveClippingVolume。

See Also

  • 場景編輯:完整使用說明
  • ALCCSectionPlane:用平面剖切
  • ULCCComponentBase:AddClippingVolume 與 RemoveClippingVolume
上一頁
ALCC2ProxyMesh
下一頁
ALCCSectionPlane