Mayavi中points3d的mode=point模式下如何修改点大小?
解决Mayavi点云渲染速度与点大小的问题
一、调整mode='point'的点大小
mode='point'模式下scale_factor参数不生效,需直接修改actor的point_size属性放大点:
sp = points3d(x, y, z, z, mode='point') sp.actor.point_size = 3 # 数值按需调整,比如3、5等 sp.actor.property.lighting = False
该模式保留快速渲染优势,调整后点尺寸可满足可视化需求。
二、加速mode='sphere'模式的渲染
若必须使用球体模式,可通过以下方案降低耗时:
- 降低球体细分精度:默认球体分辨率较高,减少细分面数能大幅提速,且基本保留球体外观:
sp = points3d(x, y, z, z, mode='sphere', scale_mode='none', scale_factor=0.1) # 修改球体分辨率,默认是20,可改为8、4等,数值越小面数越少速度越快 sp.glyph.glyph_source.glyph_source.resolution = 8 sp.actor.property.lighting = False - 复用场景资源:生成数百张图时,不要每次重新创建
points3d对象,复用已有对象仅更新点的坐标、颜色等属性,避免重复初始化开销。 - 关闭冗余渲染特性:除关闭光照外,还可关闭着色进一步提速:
sp.actor.property.shading = False - 启用硬件加速:确保Mayavi使用OpenGL硬件加速后端(如Qt或WX后端),避免性能较差的Tk后端。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

