2021/09/01(水) [n年前の日記]
#1 [povray][ubuntu][debian] qtpovmodelerを動かせないか実験中
POV-Ray専用モデリングツール kpovmodeler からKDE関連の記述を削除して Qt に置き換えたらしい qtpovmodeler を、Ubuntu Linux 20.04 LTS 上で動かせないものか実験中。
_dickbalaska/qtpovmodeler: povray modeler
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?
ビルドの仕方は以下…だと思う。たぶん。
ビルドは通ったし、画面も表示されたけど、プリミティブを何一つ追加できないのが気になるわけで。惜しい。もうちょっとで動きそうな感じに見えるのだけどな…。
起動時に baseinsertrules.xml が見つからないと言っているのが気になる。ファイル名からして、基本形状の挿入時に必要になるファイルではないのだろうか…。
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?: Re: building povmodeler?
上記のやり取りで、「/usr/share/povmodeler/ 内に以下のファイル群が入っている」みたいな話をしているように見える。
作者さんは、他の版の .deb をインストールしてから qtpovmodeler 本体を制作しているので、必要な関連ファイルは .deb でインストール済みであることを前提にしている模様。ただ、その .deb ファイルは404なんだよな…。
各ファイルは、git clone してビルドした際のディレクトリの中に、いくつか存在している。であれば、/usr/share/povmodeler/ を作成して、コピーしてやれば済むのではないか…? 試してみる。
この状態で qtpovmodeler を実行してみたところ、プリミティブが追加できるようになった。また、POV-Ray でレンダリングすることもできた。
_dickbalaska/qtpovmodeler: povray modeler
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?
ビルドの仕方は以下…だと思う。たぶん。
sudo apt install libfreetype6 libfreetype6-dev libqt5x11extras5 libqt5x11extras5-dev libqt5opengl5 libqt5opengl5-dev mkdir qtpovmodeler cd qtpovmodeler git clone https://github.com/dickbalaska/qtpovmodeler.git cd qtpovmodeler qmake make -j4 ./qtpovmodeler
ビルドは通ったし、画面も表示されたけど、プリミティブを何一つ追加できないのが気になるわけで。惜しい。もうちょっとで動きそうな感じに見えるのだけどな…。
起動時に baseinsertrules.xml が見つからないと言っているのが気になる。ファイル名からして、基本形状の挿入時に必要になるファイルではないのだろうか…。
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?: Re: building povmodeler?
上記のやり取りで、「/usr/share/povmodeler/ 内に以下のファイル群が入っている」みたいな話をしているように見える。
- baseinsertrules.xml
- examples
- library
- povraydocmap.xml
- questionmark.png
作者さんは、他の版の .deb をインストールしてから qtpovmodeler 本体を制作しているので、必要な関連ファイルは .deb でインストール済みであることを前提にしている模様。ただ、その .deb ファイルは404なんだよな…。
各ファイルは、git clone してビルドした際のディレクトリの中に、いくつか存在している。であれば、/usr/share/povmodeler/ を作成して、コピーしてやれば済むのではないか…? 試してみる。
sudo mkdir /usr/share/povmodeler sudo cp baseinsertrules.xml /usr/share/povmodeler sudo cp -r examples /usr/share/povmodeler sudo cp povraydocmap.xml /usr/share/povmodeler sudo cp questionmark.png /usr/share/povmodelerlibrary とやらは見当たらなかったのでコピーできなかった。
この状態で qtpovmodeler を実行してみたところ、プリミティブが追加できるようになった。また、POV-Ray でレンダリングすることもできた。
◎ 雑感。 :
いくつか気になる点はあるけれど…。
それでも、GUIでプリミティブ配置を確認しつつ作業していけるあたりはイイ感じだなと。
また、レンダリングする直前、POV-Ray 3.7 に渡すコマンドラインオプションを編集できるダイアログを表示してくれるので、本家 kpovmodeler のように、利用できないオプションを勝手に出力されて POV-Ray 3.7 がエラーを出して終わりというトホホな状況も避けられる。 *1
何より、KDE (TDE) をインストールしてない環境でも動いてくれるのはありがたい…。
- ツールバー上からレンダリングボタンが無くなっていて、View → Render を選ばないとレンダリングできない。地味に面倒臭い。
- .pov をエクスポートする際、毎回保存先フォルダを指定し直さないといけない。地味に面倒臭い。
- 端末上から実行すると、ガンガン警告メッセージが出てくる。結構不具合を抱えた状態でどうにか動いてるらしい。
それでも、GUIでプリミティブ配置を確認しつつ作業していけるあたりはイイ感じだなと。
また、レンダリングする直前、POV-Ray 3.7 に渡すコマンドラインオプションを編集できるダイアログを表示してくれるので、本家 kpovmodeler のように、利用できないオプションを勝手に出力されて POV-Ray 3.7 がエラーを出して終わりというトホホな状況も避けられる。 *1
何より、KDE (TDE) をインストールしてない環境でも動いてくれるのはありがたい…。
◎ povmodelerの種類についてメモ。 :
POV-Ray公式のニュースグループ上のやり取りによると、kpovmodeler のフォーク版は、少なくとも3種類あるようで。
_eticre/povmodeler: povray modeler
_POV-Ray: Newsgroups: povray.programming: povmodeler
_tribad/povmodeler: povray modeler
_POV-Ray: Newsgroups: povray.programming: povmodeler
_dickbalaska/qtpovmodeler: povray modeler
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?
eticre版 povmodeler は、kpovmodeler からKDE関連を削除してQtに置き換えてみた最初のフォーク版。cmakeを使用する。まだ一部にKDE関連の記述が残っているらしい。
simbad(tribad)版 povmodeler は、eticre版を元にして、UIデザインを変更、KDE関連の記述を更に削除、一部のバグを修正した版。これも cmakeを使用する。一時期は .debファイルも配布していたが、現在それらの .debファイルは404になってる。
dickbalaska版 qtpovmodeler は、おそらく eticre版を元にして、qmakeを使用するようにした版。povmodeler という名前は eticre版や simbad(tribad)版で既に使っているという理由で、qtpovmodeler にリネームしたらしい。一度ビルドが通った後は、qtcreator を使って開発作業を進めてるとのこと。
ちなみに、手元の環境、Ubuntu Linux 20.04 LTS x64上では、dickbalaska版 qtpovmodeler しかビルドできなかった。eticre版 povmodeler と simbad(tribad)版 povmodeler はビルドが通らなかった。
もしかすると、Debian Linux上なら、eticre版やsimbad(tribad)版もビルドが通ったりするのだろうか…?
- eticreさんが作った povmodeler。
- simbad(tribad)さんが作った povmodeler。
- Dick Balaskaさんが作った qtpovmodeler。
_eticre/povmodeler: povray modeler
_POV-Ray: Newsgroups: povray.programming: povmodeler
_tribad/povmodeler: povray modeler
_POV-Ray: Newsgroups: povray.programming: povmodeler
_dickbalaska/qtpovmodeler: povray modeler
_POV-Ray: Newsgroups: povray.tools.general: building povmodeler?
eticre版 povmodeler は、kpovmodeler からKDE関連を削除してQtに置き換えてみた最初のフォーク版。cmakeを使用する。まだ一部にKDE関連の記述が残っているらしい。
simbad(tribad)版 povmodeler は、eticre版を元にして、UIデザインを変更、KDE関連の記述を更に削除、一部のバグを修正した版。これも cmakeを使用する。一時期は .debファイルも配布していたが、現在それらの .debファイルは404になってる。
dickbalaska版 qtpovmodeler は、おそらく eticre版を元にして、qmakeを使用するようにした版。povmodeler という名前は eticre版や simbad(tribad)版で既に使っているという理由で、qtpovmodeler にリネームしたらしい。一度ビルドが通った後は、qtcreator を使って開発作業を進めてるとのこと。
ちなみに、手元の環境、Ubuntu Linux 20.04 LTS x64上では、dickbalaska版 qtpovmodeler しかビルドできなかった。eticre版 povmodeler と simbad(tribad)版 povmodeler はビルドが通らなかった。
もしかすると、Debian Linux上なら、eticre版やsimbad(tribad)版もビルドが通ったりするのだろうか…?
◎ Debian Linux 11 bullseye上で試してみた。 :
Windows10 x64 21H1 + VMware Workstation 16 Player 上で Debian Linux 11 64bit bullseye をインストールして試してみた。debian-11.0.0-amd64-netinst.iso を使ってインストールしようとしたけれど、パッケージのダウンロードが遅くて遅くて3時間ぐらいかかった…。
さておき、ビルドに必要になりそうなパッケージをインストール。
simbad(tribad)版 povmodeler を git clone して cmake。
エラーが出た。
Debian ならビルドが通るわけでもないみたいだなと…。
eticre版povmodeler はどうだろう。そちらも試してみた。
警告メッセージが色々出てきたけど、こちらはビルドが通った。つまり、比較的素の状態に近い Debian Linux 上なら、eticre版 povmodeler もビルドできそう、ということになるのだろうか。
make install をしたら、 ~/.local/share/povmodeler/ 以下にインストールされた。中に入ってたファイル群は以下。
libraryフォルダがある…。qtpovmodeler も、この libraryフォルダを /usr/share/povmodeler/ にコピーすればいいのかな。
それはともかく、~/.local/share/povmodeler/povmodeler を実行したら画面が表示された。POV-Ray でレンダリングもできた。しかし、POV-Ray のウインドウを閉じることができない…。povmodeler を終了させて、killall povray でプロセスを殺すしかないな…。
今のところ、dickbalaska版 qtpovmodeler が、一番イイ感じで動いてくれた印象。関連ファイルを手動でコピーしてやる必要はあるけれど…。
さておき、ビルドに必要になりそうなパッケージをインストール。
apt install build-essential cmake git apt install libfreetype6 libfreetype6-dev libqt5x11extras5 libqt5x11extras5-dev libqt5opengl5 libqt5opengl5-dev apt install libx11-dev xorg-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libglfw3 libglfw3-dev libglew-dev apt install libxml2-dev apt install povray
simbad(tribad)版 povmodeler を git clone して cmake。
mkdir povmodeler cd povmodeler git clone https://github.com/tribad/povmodeler.git cd povmodeler mkdir build cd build cmake .. make -j4
エラーが出た。
[100%] Linking CXX executable povmodeler /usr/bin/ld: missing --end-group; added as last command line option /usr/bin/ld: ../modelifc/libmodelifc.so: undefined reference to `xmlFree' /usr/bin/ld: ../modelifc/libmodelifc.so: undefined reference to `xmlGetProp' collect2: error: ld returned 1 exit status make[2]: *** [src/modeller/CMakeFiles/povmodeler.dir/build.make:603: src/modeller/povmodeler] エラー 1 make[1]: *** [CMakeFiles/Makefile2:339: src/modeller/CMakeFiles/povmodeler.dir/all] エラー 2 make: *** [Makefile:171: all] エラー 2Ubuntu Linux 20.04 LTS で試したときと同じエラー。
Debian ならビルドが通るわけでもないみたいだなと…。
eticre版povmodeler はどうだろう。そちらも試してみた。
git clone https://github.com/eticre/povmodeler.git cd povmodeler mkdir build cd build cmake .. make -j4
警告メッセージが色々出てきたけど、こちらはビルドが通った。つまり、比較的素の状態に近い Debian Linux 上なら、eticre版 povmodeler もビルドできそう、ということになるのだろうか。
make install をしたら、 ~/.local/share/povmodeler/ 以下にインストールされた。中に入ってたファイル群は以下。
$ ls ~/.local/share/povmodeler/
baseinsertrules.xml examples/ liblpovmodeler.a libpovmodelerpart.a library/ org.povmodeler.xml povmodeler povmodeler.desktop povraydocmap.xml questionmark.png
libraryフォルダがある…。qtpovmodeler も、この libraryフォルダを /usr/share/povmodeler/ にコピーすればいいのかな。
それはともかく、~/.local/share/povmodeler/povmodeler を実行したら画面が表示された。POV-Ray でレンダリングもできた。しかし、POV-Ray のウインドウを閉じることができない…。povmodeler を終了させて、killall povray でプロセスを殺すしかないな…。
今のところ、dickbalaska版 qtpovmodeler が、一番イイ感じで動いてくれた印象。関連ファイルを手動でコピーしてやる必要はあるけれど…。
*1: もっとも、コマンドラインオプションを一旦ダイアログで表示する機能は将来削除したい、みたいな話も出ていたようだけど…。それをやると、kpovmodeler と同じトラップが将来発動すると思うんだけどな…。
[ ツッコむ ]
以上です。