查看: 1294|回复: 4

求助:osg在docker中如何渲染?

[复制链接]

该用户从未签到

发表于 2024-5-8 10:08:31 | 显示全部楼层 |阅读模式
需求是:使用osg在后台渲染,把渲染的结果传给前端;就想到了离屏渲染这个方法,然后
我使用了osgprerender和osgautocapture两个例子,指定渲染是--pbuffer
在docker中运行报错了
A Unable to open display ":0.0"
Viewer::realize() - failed to set up any windows
看意思是必须需要一个显示器才能渲染,这个该怎么办呢?
谢谢各位!!!

该用户从未签到

 楼主| 发表于 2024-5-8 16:28:59 | 显示全部楼层
后来,经跟踪,在这里报错了:_display为空,(上面的报错修改一下:Error: Unable to open display ":0.0")
virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits)
    {
        if (traits->pbuffer)
        {
#if 1
            osg::ref_ptr<osgViewer:ixelBufferX11> pbuffer = new PixelBufferX11(traits);
            if (pbuffer->valid()) return pbuffer.release();
            else return 0;
#else
            osg::ref_ptr<osgViewer::GraphicsWindowX11> window = new GraphicsWindowX11(traits);
            if (window->valid()) return window.release();
            else return 0;
#endif
        }
        else
        {
            osg::ref_ptr<osgViewer::GraphicsWindowX11> window = new GraphicsWindowX11(traits);
            if (window->valid()) return window.release();
            else return 0;
        }
    }

===》

oid PixelBufferX11::init()
{
    if (_initialized) return;

    if (!_traits)
    {
        _valid = false;
        return;
    }

    if (_traits->target != 0)
    {
        // we don't support Pbuffer render to texture under GLX.
        _valid = false;
        return;
    }


    _display = XOpenDisplay(_traits->displayName().c_str());

    unsigned int screen = _traits->screenNum;

    if (!_display)
    {
       OSG_NOTICE<<"Error: Unable to open display \"" << XDisplayName(_traits->displayName().c_str()) << "\"."<<std::endl;
        _valid = false;
        return;
    }

该用户从未签到

 楼主| 发表于 2024-5-10 20:07:32 | 显示全部楼层
我安装了x11,可以渲染了,但是没有到达目的,我想无X11

该用户从未签到

 楼主| 发表于 2024-5-10 20:08:34 | 显示全部楼层
安装了X11后成功了,但是没有达到目的,我想的是无X11运行;怎么办?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表