You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11 64位下R rgl lidR渲染缓慢及树顶显示异常求助

lidR中locate_trees函数rgl渲染问题的解决方案

一、rgl显卡使用逻辑

rgl默认优先调用GPU渲染,但如果系统图形设置未指定R使用独立显卡,可能会 fallback 到集成显卡。你可以通过以下命令确认当前rgl使用的设备:

rgl::rgl.info()

如果输出显示使用集成显卡,需在系统图形设置中(比如Windows「图形设置」)将R.exe设置为「高性能Nvidia处理器」,强制R调用独立显卡。

二、渲染加速方法

  1. 抽稀LiDAR点云:1.7GB的点云数据量过大,手动修正前先抽稀点云保留核心信息,大幅降低渲染负载:
    # 按比例抽稀,保留60万点(可根据需求调整数量)
    LiDAR_sampled = filter_poi(LiDAR_File, sample(1:npoints(LiDAR_File), 600000))
    
  2. 调整rgl渲染参数:减少点大小、关闭不必要的渲染效果:
    rgl::par3d(pointsize = 1) # 缩小点尺寸
    rgl::rgl.light(enabled = FALSE) # 关闭光照加速渲染
    
  3. 限制渲染区域:如果只需要修正特定区域的树顶,先裁剪点云到目标区域:
    # 裁剪到指定范围(替换为你的目标区域坐标)
    LiDAR_clipped = clip_rectangle(LiDAR_File, xleft=1000, ybottom=2000, xright=1500, ytop=2500)
    

三、窗口异常问题解决

  1. 更新rgl版本:R 4.2.1搭配的旧版rgl可能存在兼容性bug,安装适配的二进制版本:
    install.packages("rgl", type = "binary")
    
  2. 强制清理rgl窗口:遇到持续弹出空白窗口时,执行以下命令关闭所有rgl会话:
    rgl::closeall()
    
    之后重启R会话再重新运行代码。
  3. 手动初始化rgl窗口:在调用locate_trees前手动打开rgl窗口,避免自动窗口管理的异常:
    rgl::rgl.open()
    TTops_Manual = locate_trees(LiDAR_sampled, manual(TTops))
    

优化后的完整代码示例

library(lidR)

# 检查rgl设备信息
rgl::rgl.info()

# 导入并抽稀LiDAR数据
LiDAR_File = readLAS("path/file_name.las")
LiDAR_sampled = filter_poi(LiDAR_File, sample(1:npoints(LiDAR_File), 600000))

# 调整rgl渲染参数
rgl::par3d(pointsize = 1)
rgl::rgl.light(enabled = FALSE)

# 查找树顶并手动修正
TTops = find_trees(LiDAR_sampled, lmf(ws = 15, hmin = 5))
TTops_Manual = locate_trees(LiDAR_sampled, manual(TTops))

# 异常时关闭所有rgl窗口
# rgl::closeall()

内容的提问来源于stack exchange,提问作者Ed_Gravy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 04:36:23