mieki256's diary



2017/08/30(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3 に mesa-utils-extraをインストールしてみた

Linux の場合、OpenGLの動作確認ができるパッケージとして mesa-utils があって。

例えば Raspberry Pi3 (Raspbian)の場合、以下でインストールができる。というか最初から入ってる。
sudo apt install mesa-utils

実行は以下。
glxgears
glxinfo
glxgears で、ギアが3つ表示されてFPSが出力される。glxinfo で、OpenGL の実装状況(?)が確認できる。

それらと似た感じで、 _OpenGL ES について動作確認できる、mesa-utils-extra というパッケージがあるようで。OpenGL ES てのは…OpenGLから機能を削って組み込み用途向けにしたもの、という説明でいいのだろうか。スマートフォン等で使われてるらしいけど。

インストールは以下。
sudo apt install mesa-utils-extra
es2gears
es2_info
es2gears で、ギアが3つ表示されてFPSが出力される。es2_info で、OpenGL ES の実装状況が確認できる。

ということで Raspberry Pi3上で mesa-utils-extra をインストールして動作確認してみたのだけど。

どうやら OpenGL と同様に、sudo raspi-config で OpenGLを有効(GL driverを有効)にしないと、正常表示されないようで。デフォルト状態では色がおかしかったり、形がおかしかったり。OpenGL ES ならすんなり描画できるのかなと期待したけど、甘かった…。

#2 [raspberrypi] Raspberry Pi3上でpygameのスクリプトを動かしてみた

Raspberry Pi3上でpygameを動かしたら、実はそこそこの速度で動いちゃったりしないのかな、と疑問が湧いてきたので試しに動かしてみたり。

スクリプトソースや画像は以下。

_pygame_fullscreen_py.zip

処理内容は…。640x480の画面で、64x64ドットのスプライト x 160枚 + BG x 2枚を描画しつつ、ogg再生をするスクリプト。

結果は…。OpenGLドライバを無効化した状態で40FPS前後、OpenGLドライバを有効化した状態で17FPS前後しか出なかった。やっぱり pygame は遅い。

いやまあ、何もしなくても ―― ソフトウェアによる描画処理だけでも40FPSも出るのか、という捉え方もありそうだけど…。60FPSなんて贅沢(?)を言わず30FPS決め打ちで動かせばそこそこソレっぽくはなるかも、てな気持ちになろうと思えばなれなくもないというか。

ホントか嘘かは知らないけど昔のSEGAのゲームは30FPSで動かしてたという話をどこかで聞いた記憶もあるし。PS1のリッジレーサーだって最初は30FPSだったし。自分がガラケー用のゲームを作ってた頃は10FPS程度で動かしていたしで。30FPSでも一応リアルタイム2Dゲームっぽいものを作れなくはないかもな、みたいな。

でも、Ruby + gosu なら60FPSで動くのだから、わざわざ Python + ○○を使って描画が遅いソレを作る意味は無いよな…。

#3 [raspberrypi] Raspberry PiでOpenGLはあてにしないほうがいいのではないか

ふと気が付いたけど、Raspberry PiでOpenGLはあてにしないほうがいいのではないかと今頃になって思えてきたりもして。

と言うのも、メモリ容量の関係で、OpenGL を有効にできるのは Pi2 や Pi3 のみ、だったことを思い出したからで。Pi1 や Zero は、OpenGL を有効にできない…。

安いし小さいということで、お子さんに Raspberry Pi Zero を買い与えたご家庭があるかもしれんけど、そういう環境ではOpenGLを使ったアレコレは動かせないのだよな…。その場合は pygame のソフトウェア描画で作るのが精一杯、かなあ…。うーん。

_Raspberry Pi2 の X11 で OpenGL のハードウェアアクセラレート ・ その2 ・ | Raspberry Pi によると、OpenGLを有効にした場合、
Minecraft も動作しません。Minecraft は X11 上で動作するアプリケーションですが、実際にはコンソールの OpenGL ES 描画結果を X11 上にレイヤ合成しているので、OpenGL ES/OpenVG アプリケーションが動作しないのと同じ理由でしょう。

Raspberry Pi2 の X11 で OpenGL のハードウェアアクセラレート ・ その2 ・ | Raspberry Pi より

とあるから…。逆に考えると OpenGL を有効にできなくても、Minecraft と同様のやり方 ―― OpenGL ES をアレすれば、ぬるぬる動かせる、ということなのかしら。いや、Pi1 や Zero 上では Minecraft がどの程度の速度で動いてるのか分からんけど。

このあたりが参考に…なりそうな予感…。

_Raspberry Pi メモ (7) OpenGL ES2(1) - Jun's homepage
_Raspberry Pi メモ (8) OpenGL ES2(2) - Jun's homepage
_Raspberry Pi メモ (19) - Jun's homepage

でも、40FPSしか出ない、という話も書いてあるな…。うーん。

#4 [raspberrypi] Raspberry Pi3に繋いだカメラで撮影できない

raspistill -o 01.jpg と打って撮影しようとしたら、以下のエラーが。
* failed to open vchiq instance
パーミッションの問題という話が。

_Raspberry Pi カメラモジュール | an10.info
_ラズパイのカメラモジュールで[failed to open vchiq instance]エラー - Qiita
_Omxplayer - Page 2 - Raspberry Pi Forums

sudo vi /etc/udev/rules.d/10-vchiq-permissions.rules
以下を追加。
SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"

sudo gpasswd -a ユーザ名 video
または、
usermod -a -G video ユーザ名

あるいはパーミッションを変更。
$ ls -l /dev/ | grep vch
crw------- 1 root video   246,   0 11月  4  2016 vchiq
sudo chmod a+rw /dev/vchiq
$ ls -l /dev/ | grep vch
crw-rw-rw- 1 root video   246,   0 11月  4  2016 vchiq

コレで撮影できるようになった。

#5 [raspberrypi] Raspberry Pi3にVNCでアクセス

raspbian stretch は RealVNC が標準でインストールされているらしい。アクセスできるか動作確認。
sudo apt install realvnc-vnc-server realvnc-vnc-viewer

設定を変更してvncを有効にする。
sudo raspi-config

再起動。
sudo reboot

デスクトップ画面のタスクバー?のあたりにVNCのアイコンが表示された。

Windows10 x64 からアクセス。…今までは Raspberry Pi3 + tightvncserver に、Windows10 x64 + UltraVNC の VNC Viewer でアクセスしてたけど、何故かソレではアクセスできず。仕方ないので、RealVNC系の Viewer もインストールすることに。

_VNC (Virtual Network Computing) - Raspberry Pi Documentation
_Download VNC Viewer | RealVNC

VNC-Viewer-6.17.731-Windows.exe をDLしてインストール。

VNC Viewer を起動して、Raspberry Pi3 のIPアドレスにアクセス。Raspberry Pi3 のデスクトップ画面が表示された。

#6 [raspberrypi] Raspberry Pi3でOpenGL ES関係のデモプログラムを動かしてみたり

/opt/vc/src/hello_pi/ 以下に、OpenGL ES 関係のデモが入ってるらしい。

_デモプログラム − Raspberry Pi公式ドキュメントを日本語訳
_OpenGL ES on RaspberryPi | Shinya Matsuyama

cd /opt/vc/src/hello_pi/
ls -al

各プログラムはCで書かれてるっぽい。ソースしか存在しないので、ビルドする。
sudo ./rebuild.sh

各フォルダ内に、*.bin というファイルが作成された。それぞれを実行すれば色々なデモが見れる。
cd hello_triangle
./hello_triangle.bin
cd ../hello_teapot
./hello_teapot.bin

Raspberry Pi3 上では、どちらもかなり滑らかに動いた。しかも全画面表示。これが…Raspberry Pi3の実力…。Cで書いてOpenGL ESを使えばこのくらいの速度で動かせるよ、ということか…。

ちなみに、RealVNC Viewer でアクセスしても各デモの結果を見ることができた。RealVNC なら OpenGL ES の描画結果を表示できる、ということなのだな…。 *1
*1: RealVNC ではなく tightvncserver を使った場合、OpenGL関係の結果は見れない、という話をどこかで見かけた記憶があるような。

以上、1 日分です。

過去ログ表示

Prev - 2017/08 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project