日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口

發(fā)布時(shí)間:2025/3/15 Ubuntu 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

需要調(diào)用vtk對體數(shù)據(jù)進(jìn)行渲染處理,處理結(jié)果直接存為圖片而不通過窗口顯示。

直接使用vtkRenderWindow加上vtkWindowToImageFilter類寫入,在調(diào)用渲染的過程中會(huì)出現(xiàn)窗口閃爍。

最簡單的方式為在調(diào)用vtkRenderwindow->Render()時(shí),首先設(shè)置渲染窗口為off-screen渲染,調(diào)用函數(shù)OffScreenRenderingOn(),調(diào)用后窗口不會(huì)出現(xiàn)。

如果使用桌面系統(tǒng)(windows或Ubuntu desktop等),創(chuàng)建的窗口可以在內(nèi)存中不顯示,此問題可以解決(效率不確定)。但使用Ubuntu server調(diào)用時(shí)會(huì)出現(xiàn)以下錯(cuò)誤:
bad x server connection

基于版本:

  • Ubuntu Server 16.04.2 LTS
  • vtk 7.1.1
  • mesa 17.2.2
  • zlib 1.2.11

思路

vtk off-screen渲染需要調(diào)用x-server的渲染或mesa的渲染接口,UbuntuServer默認(rèn)沒有安裝x-server,因此需要使用mesa中的osmesa(offscreen mesa)渲染。

需要安裝mesa的off-screen渲染支持,然后重新編譯vtk為直接支持off-screen的版本。(兩處編譯均有坑)

具體步驟

安裝osmesa

  • 安裝gcc編譯器(Ubuntu Server默認(rèn)沒有安裝,Ubuntu desktop默認(rèn)已經(jīng)安裝)

sudo apt-get install build-essential

  • 安裝zlib,安裝時(shí)存在的依賴。官網(wǎng)下載安裝

./configure
make
make install

  • 安裝osmesa

官方給出的安裝選項(xiàng)為
configure --enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast

但是--disable-dri選項(xiàng)會(huì)出錯(cuò),實(shí)際運(yùn)行如下
configure --enable-osmesa --disable-driglx-direct --with-gallium-drivers=swrast

此處會(huì)出現(xiàn)成噸未知包(Ubuntu Server中,Ubuntu desktop貌似沒有少這么多)
懶得一個(gè)個(gè)找,照著網(wǎng)上的搜了一堆之后還是需要一個(gè)個(gè)找漏的。

sudo apt-get install x11proto-gl-dev

sudo apt-get install 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

sudo apt-get install libxcb-xfixes0 libxcb-xfixes0-dev

sudo apt-get install libxcb-present-dev libxcb-sync-dev

sudo apt-get install libxshmfence-dev

出現(xiàn)找不到的包時(shí),可以使用 apt search pkg_name

以上為吐槽,可以一步步執(zhí)行,偷懶的話可以直接使用完整安裝命令:

sudo apt-get install 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

./configure沒有問題后,運(yùn)行 make && make install,編譯安裝

vtk 代碼編譯

使用的cmake-gui,需要勾選advanced選項(xiàng)才能看到需要的設(shè)置項(xiàng)。

與Google到的選項(xiàng)不怎么一樣,不知道是不是版本問題,可以在search框中搜索選項(xiàng)修改。本文主要修改:

  • VTK_USE_OFFSCREEN on
  • VTK_OPENGL_HAS_OSMESA on
  • VTK_USE_X off

之后使用正常方式編譯執(zhí)行代碼

同上,vtkRenderWindow在執(zhí)行render之前調(diào)用函數(shù)OffScreenRenderingOn()

得到的程序即可在Ubuntu Server下運(yùn)行

未知問題

需要重啟電腦???!! 原因未知,本來在ctrl+alt+f1中運(yùn)行出錯(cuò),使用ctrl+alt+f2打開另一個(gè)命令行之后程序運(yùn)行沒問題....

轉(zhuǎn)載于:https://www.cnblogs.com/fly2wind/p/7662981.html

總結(jié)

以上是生活随笔為你收集整理的在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。