Canvas THREE.JS:如何检查渲染的对象组?

Canvas THREE.JS:如何检查渲染的对象组?,canvas,three.js,screenshot,render,Canvas,Three.js,Screenshot,Render,我需要在我的对象组被添加并在场景中渲染后制作屏幕截图 我尝试将eventListener添加到“已添加”事件中,该事件在对象添加到场景时触发,但它仍然没有渲染,因此它在屏幕截图上不存在 add: function ( object ) { if ( arguments.length > 1 ) { for ( var i = 0; i < arguments.length; i ++ ) { thi

我需要在我的对象组被添加并在场景中渲染后制作屏幕截图

我尝试将eventListener添加到“已添加”事件中,该事件在对象添加到场景时触发,但它仍然没有渲染,因此它在屏幕截图上不存在

    add: function ( object ) {

        if ( arguments.length > 1 ) {

            for ( var i = 0; i < arguments.length; i ++ ) {

                this.add( arguments[ i ] );

            }

            return this;

        }

        if ( object === this ) {

            console.error( "THREE.Object3D.add: object can't be added as a child of itself.", object );
            return this;

        }

        if ( (object && object.isObject3D) ) {

            if ( object.parent !== null ) {

                object.parent.remove( object );

            }

            object.parent = this;
            object.dispatchEvent( { type: 'added' } );
据我所知,这对我并没有帮助,因为渲染是在向场景添加对象并创建屏幕快照后调用的,这就是为什么订阅对我并没有帮助

下面是代码示例:

   let group = new THREE.Group();   

    // here some objects were added to group

    scene.add(group);

    window.open(renderer.domElement.toDataURL('image/png'), 'screenshot');

有什么建议吗?

1)欢迎来到StackOverflow!对象可能无法渲染的原因有很多。我们需要更多的信息来帮助你。请考虑创建一个(最好是一个片段)来帮助我们调试正在发生的事情。2) THREE.js不发出“渲染”事件。@TheJim01 Hi。谢谢你的建议。但是我的对象被渲染了。所有工作正常,但对象在创建屏幕截图后渲染;这是我的问题,我需要找到它们被渲染的时刻;我假设您在某处运行了一个
requestAnimationFrame
循环。确保实际调用
renderer.render(场景、摄影机)在创建屏幕截图之前。在调用
窗口之前手动调用它。打开
,或者在
请求动画帧
循环中包含逻辑,以便在添加组后在调用结束时创建屏幕截图。@TheJim01哦,谢谢!!!这对我来说太简单了。
   let group = new THREE.Group();   

    // here some objects were added to group

    scene.add(group);

    window.open(renderer.domElement.toDataURL('image/png'), 'screenshot');