基于egl / osmesa 的VTK offscreen rendering (离屏渲染)方案

本文介绍在Linux服务器(Docker环境中)进行VTK离屏渲染的解决方案,详细描述了osmesa配置步骤及VTK 8.2.0的编译过程,同时提供了一个使用osmesa进行离屏渲染的示例代码。

 

Linux服务器(docker中),通常没有 x server,直接运行离屏渲染程序,报下列错误:

ERROR: In /home/whistler/Desktop/build/VTK-8.2.0/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx, line 452
vtkXOpenGLRenderWindow (0x34ae140): bad X server connection.

简单解决办法如下:(虚拟 x server)

https://blog.csdn.net/Ericohe/article/details/108380926

上述方法存在速度问题,追求高性能绘制方案,只有基于(osmesa 或者OpenGL EGL)两个方案。

下列试验osmesa的方案。

Ubuntu系统安装必要的依赖包

apt-get update  
apt-get install -y build-essential libgl1-mesa-dev libglu1-mesa-dev libosmesa6-dev
apt-get install -y x11proto-gl-dev libdrm-dev libxxf86vm-dev libxt-dev xutils-dev flex bison xcb libx11-xcb-dev libxcb-glx0 libxcb-glx0-dev xorg-dev libxcb-dri3-dev libxcb-dri2-0-dev libxcb-xfixes0 libxcb-xfixes0-dev libxcb-present-dev libxcb-sync-dev libxshmfence-dev

apt-get install cmake
apt-get install software-properties-common
add-apt-repository ppa:ubuntu-x-swat/updates
apt-get update
apt-get dist-upgrade
apt install mesa-utils
glxinfo | grep "OpenGL version"
apt install nvidia-utils-390
nvidia-smi

vtk 8.2.0 编译源代码

VTK EGL (GPU加速 )

Dockerfile

FROM nvidia/opengl:1.2-glvnd-devel-ubuntu18.04
 
RUN apt-get update && \
apt-get install -y vim git cmake && \
apt-get install -y python3 python3-pip && \
apt-get install -y libz-dev && \
apt-get clean
RUN pip3 install conan==1.17.0
# RUN apt-get install -y build-essential libgl1-mesa-dev libglu1-mesa-dev libosmesa6-dev libglew-dev 
# RUN apt-get install -y libegl1-mesa-dev # for EGL

VTK OSMESA 为软件驱动

git clone https://gitlab.kitware.com/vtk/vtk.git
cd vtk
git checkout v8.2.0
git status

mkdir /app/vtk_install
mkdir build
cd build

# egl
cmake -DCMAKE_INSTALL_PREFIX=/app/vtk_install -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_Group_Views=ON -DModule_vtkRenderingParallel=ON -DVTK_Group_Rendering=ON -DVTK_Group_StandAlone=ON -DVTK_USE_X=OFF -DVTK_OPENGL_HAS_EGL=ON -DVTK_OPENGL_HAS_OSMESA=OFF -DVTK_RENDERING_BACKEN
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值