首页 / 浏览问题 / 组件GIS / 问题详情
请问一下怎么输出具有ui设计界面、三维可视化模型及粒子特效场景的图片呢
15EXP 2025年04月21日

在设计好的软件界面中,左边是ui界面,可以输入各种参数;右边是生成的三维场景包含三维模型及粒子特效,二者在同一界面内怎么输出不同场景下该界面的图片呢,因为要输出不同时间下的三维场景,我想实现在不同时间步下图片的批量自动输出,尝试过采用此命令:

BufferedImage screenFullImage = robot.createScreenCapture(screenRect);但是此命令截取图片不全,而且很模糊,清晰度不够

还尝试过outputScenePicture这个命令无法输出地下模式状态下的三维模型及粒子特效,请问怎么解决

万分感谢!

1个回答

你好,可以通过Scene.out[utScenePictrue将场景输出高分辨率图片

  •  
6,102EXP 2025年04月21日
这个命令无法输出地下模式状态下的三维模型及粒子特效,我是想输出三维模型及粒子特效一起输出图片,但这个命令无法解决哎

你好  我这边测试使用iObjects java11.3.0版本将地 下模式状态下的三维模型及粒子特效输出为图片是正常的没有问题呢

但是尝试以后还是输出不了跟踪图层粒子特效的图片,三维模型可以输出了,但是图片里面的粒子特效消失了,这是咋回事儿呢,代码如下

// 设置粒子的三维样式
                    GeoStyle3D geoStyle3D = new GeoStyle3D();
                    geoStyle3D.setAltitudeMode(AltitudeMode.RELATIVE_UNDER_GROUND);
                    geoParticle.setStyle3D(geoStyle3D);
                    // 添加粒子几何对象到跟踪图层上
                    m_sceneControl.getScene().getTrackingLayer().add(geoParticle, "Particle"+i);
//                    // 设置相机视角,这里简单以第一个点为例设置相机,可根据需求调整
//                    if (i == 0) {
//                        Camera camera = new Camera(point.getX(), point.getY(), 800);
//                        camera.setHeading(10);
//                        camera.setTilt(50);
//                        m_sceneControl.getScene().setCamera(camera);
//                    }
                }
            }
            // 所有粒子添加完成后统一刷新场景
            m_sceneControl.getScene().outputScenePicture("screenshot.png",3000,3000,true);
            m_sceneControl.getScene().refresh();
            m_layer3DsTree.reload();

建议前去官网下载最新版本的组件包进行使用https://support.supermap.com/DownloadCenter/ProductPlatform.aspx 

另外注意不要创建好粒子对象之后马上就导出,建议可以先将导出代码放到按钮里面去执行看看效果

...