「GLUTによる「手抜き」OpenGL入門」を見つけC言語でのプログラミングも簡単なサンプルが載っていたのでCentOS6.6マシンでコンパイルを済ませて、描画を確認しようと思ったら・・・表示されません。(記事は膨大なので改めて読む必要があると思っています。)
MacintoshにもOpenGLを搭載しているので、OpenGL動作確認用のサンプルプログラムの「glxgears」をターミナルから起動してみると、動く色の違う3つのギアが見れたのでどうなれば正しく動いている状態かはわかりました。
![glxgears(Macintosh)](https://stat.ameba.jp/user_images/20150505/11/storager-fan/7d/87/p/t02200242_0298032813296988449.png?caw=800)
CentOSマシンに戻ってデスクトップから[設定]-[NVIDIA X Server Settings]を立ち上げてみると、[OpenGL/GLX information]が「GLXサーバー問い合わせ失敗」となっていたので,
![OpenCL/GLX エラー](https://stat.ameba.jp/user_images/20150505/15/storager-fan/c4/37/j/t02200220_0800080013297198097.jpg?caw=800)
OpenGL/GLXの設定に関わる問題とはわかったのですが、表示が出ない原因を探るため、今日もネットだけが頼りです。検索してみた結果、古い記事なのですが、「NVIDIAドライバでOpenGLが有効にならない場合は」という記事がありました。
# vi /var/log/Xorg.0.log
で(EE)と付いている行を順番に見ていくと記事と同じエラーメッセージでした。もしかするとこの記事の方法で対策できるかもしれないと思い、 /etc/X11/xorg.conf を書き換えてみました。
但し、記事は古いので現在の環境にはそのままでは利用できません。X-Windowsは立ち上がっているものの、OpenGL/GLXの初期化に失敗しているので、Xのログファイルを順に読んでいきシステムが設定している ModulePathを推測していきました。
(記事からの引用)
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia" ←追加
ModulePath "/usr/lib/xorg/modules"
EndSection
(実際の適用)
Section "Files"
FontPath "/usr/share/fonts/default/Type1"
ModulePath "/usr/lib64/nvidia/xorg" #Nvidia module
ModulePath "/usr/lib64/xorg/modules"
EndSection
このように書き換えて再起動してみると、[NVIDIA X Server Settings]のエラーが消えて、「glxgears」がMacintoshと同じ様に表示されて何とか問題解決しました。
(ウインドウタイトルバーが少し違います)
![glxgears centos new](https://stat.ameba.jp/user_images/20150505/18/storager-fan/5a/f6/p/t02200240_0304033213297348337.png?caw=800)
ここ数日Linuxを使っていますが、Macintoshの楽さに慣れてしまってこういったトラブル対策で時間を取られるのがちょっと鬱陶しくなってきています。
CentOSマシンでは、OpenGLに直接は関係ないのですが、「 【CentOS6】あるユーザーがsudoできるようにする」でsudoコマンドで通常ログインするユーザーをwheelグループに
# usermod -G wheel (ユーザー名)
で追加するという環境整備も今回済ませました。(この方が安全な使い方なので)
#追記(2023/11/07)
「GLUTによる「手抜き」OpenGL入門」のサイトは書籍になっている様で、
https://www.amazon.co.jp/GLUTによるOpenGL入門―「OpenGL-Utility-Toolkit」で簡単3Dプログラミング-I・-BOOKS/dp/4777511340
を購入しました。