質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

3回答

1983閲覧

OpenGLのプログラム実行時におけるエラー

Run0928

総合スコア2

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2020/10/16 12:31

編集2020/10/16 12:35

前提・実現したいこと

OpenGLをこれから使いたいと思い,まずは入門的なところから練習していた矢先にエラーが出てよくわからなくなってしまいました.
OSはvirtualboxの仮想環境下においてubuntuを利用しています.
コンパイルはできます.そのあとに実行ができません.

発生している問題・エラーメッセージ

freeglut (./glut_main): ERROR: Internal error <FBConfig with necessary capabilities not found> in function fgOpenWindow

該当のソースコード

C++

1#include <GL/glut.h> 2 3void display(void) { 4glClear(GL_COLOR_BUFFER_BIT); 5glRotatef(1,0,0,1); 6glutWireTeapot(1); 7glutSwapBuffers(); 8} 9 10 void timer(int value){ 11 glutPostRedisplay(); 12 glutTimerFunc(1000/60,timer,0); 13 } 14 15int main(int argc, char *argv[]) 16{ 17 glutInit(&argc, argv); 18 glutInitDisplayMode(GL_DOUBLE); 19 glutInitWindowSize(640,640); 20 glutCreateWindow(argv[0]); 21 glutDisplayFunc(display); 22 glutTimerFunc(0,timer,0); 23 glutMainLoop(); 24 return 0; 25}

試したこと

解決策を調べましたが何もわからず何もしていません

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasutakatou

2020/10/16 23:34

ネットの情報だと https://daily.belltail.jp/?p=673 このようにSSHでフォワードしているときに似たような問題が起きている事が散見されます。 該当する環境ではないですよね?あとバージョンの問題もありそうなのでOpenGLの版数など 分かる範囲でバージョンを記載ください。他のOpenGLのコードは動きますでしょうか?
Run0928

2020/10/17 08:16

返信ありがとうございます。 リモート操作ではないので環境は異なるのかなと思います。 openglはhttps://qiita.com/BitPositive/items/db8b13e7d34e5349237bを見て5日前に入れました。 またこのリンク内にあるテストプログラムは動きました。
yasutakatou

2020/10/17 08:54

なるほど!追記ありがとうございました。となるとあまりネットに無い事例が起きてるような気がしますね。。
Run0928

2020/10/17 14:20

そうですか。。謎です。。
yasutakatou

2020/10/18 00:58

片言の直訳サイトしか見つからないのですが https://ja.ojit.com/so/opengl/1337270 これの「答え」の部分から何か分かる事ありますか?他も探してますがなかなかよさげな情報は無くて・・
Run0928

2020/10/19 05:59

もしかしてvirtualboxってリモートディスプレイの部類に入るから無理みたいな感じですかね?
yasutakatou

2020/10/19 11:13

はい。サイトの記述によるとそうなります。ただ、バージョン2.4.06のバグと書かれているので 該当バージョンだけかもしれないですが、他のバージョンでどうなるかまでは情報を探し切れていません。 申し訳ないです!
Run0928

2020/10/19 14:38

いえいえ,探していただきありがとうございます!
yasutakatou

2020/10/20 00:31

でも、どうしましょうか?お困りの現象解決できてないですよね。。
Run0928

2020/10/20 03:43

そうですね..どなたかわかる方がいればいいのですが...
txty

2020/11/02 15:03 編集

https://qiita.com/BitPositive/items/db8b13e7d34e5349237b を1語1句間違えずやっても動きませんか。よく、読んでいなく、動くとは書いてあるのを今、確認しました。自分もあまり試してみたことないから分かりませんけど、全部消してから最小構成から、動くか確認→小さいコードを1行ずつうっては、コンパイルで確かめ、動くか確認して。(最近それだけじゃ駄目なことに気がつきましたが。)(glutのがライブラリが動くのなら動くはずなので。sample動かしたことないので。) http://gameprogrammingunit.web.fc2.com/gl/render.htm glFlush()とかあまりつかった記憶ありませんが、こんな風にでるのですかね。void disp( void ) { glClear(GL_COLOR_BUFFER_BIT); glutWireTeapot(0.7); glFlush(); }
guest

回答3

0

ベストアンサー

c

1 //glutInitDisplayMode(GL_DOUBLE); 2 glutInitDisplayMode(GLUT_DOUBLE);

GL_DOUBLE」ではなく、「GLUT_DOUBLE」です。
(「GL_DOUBLE」も定義としてあるのでコンパイルエラーにならないところが厄介なところですが)

うちのubuntuでは、これを直したら動きました。

投稿2020/11/13 11:48

編集2020/11/13 11:50
katsuko

総合スコア3543

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

txty

2020/11/13 12:19

katsukoさん>たしかに同じメッセージで直すと動きます。気づきませんでした。
guest

0

opengl

1[なんかいろいろ引用してアニメーションにしました。](https://seesaawiki.jp/w/mikk_ni3_92/d/%a5%a2%a5%cb%a5%e1%a1%bc%a5%b7%a5%e7%a5%f3) 2 3 4#include <GL/glut.h> 5#include <stdio.h> 6 7 8 9void idle(void) 10{ 11 glutPostRedisplay(); //再描画 ( ※display()関数を呼び出す関数 ) 12} 13 14 15void disp( void ) { 16static double r=0.0; 17 18glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 19 20 21 22printf("%ld\n",r); 23 24glRotated(r,0,1,0); 25 26glutWireTeapot(0.65); 27 28glutSwapBuffers(); 29 30if(++r>=360)r=0; 31 32} 33 34int main(int argc , char ** argv) { 35 glutInit(&argc , argv); 36 glutInitWindowPosition(100 , 50); 37 glutInitWindowSize(500 , 500); 38 glutInitDisplayMode( GLUT_RGBA); 39 40 glutCreateWindow("Kitty on your lap"); 41 glutDisplayFunc(disp); 42 43 glutIdleFunc(idle); 44 glutMainLoop(); 45} 46

投稿2020/11/13 08:10

編集2020/11/13 08:58
txty

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サンプルのコードは以下で出ます。リンク先を引用しました。<GL/glut.h>のテストコードはできていると書かれていたので書きたしました。

opengl

1 2#include <GL/glut.h> 3 4void disp( void ) { 5 glClear(GL_COLOR_BUFFER_BIT); 6 7glutWireTeapot(0.65); 8 9 glFlush(); 10} 11 12int main(int argc , char ** argv) { 13 glutInit(&argc , argv); 14 glutInitWindowPosition(100 , 50); 15 glutInitWindowSize(500 , 500); 16 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); 17 18 glutCreateWindow("Kitty on your lap"); 19 glutDisplayFunc(disp); 20 glutMainLoop(); 21}

すいません。-2評価を、もらいましたがどこが悪いか教えてもらえるでしょうか。

投稿2020/11/09 13:24

編集2020/11/13 06:04
txty

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問