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

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

ただいまの
回答率

90.61%

  • C++

    3341questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • OpenGL

    156questions

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

openGLで表示した画像がおかしい

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,129

albacrow

score 30

openglで画像を描画しようとしているのですが、画像の一部がぼけたり透明部分との境がおかしくなったりと困っています。
画像で心当たりがあれば教えていただけないでしょうか。

使用画像
イメージ説明出力
イメージ説明
テクスチャ生成
    glEnable( GL_TEXTURE_2D );

    glGenTextures(1, &texture);
    glBindTexture( GL_TEXTURE_2D, texture );
    
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 

    gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGBA,img->sizeX,img->sizeY,GL_RGBA,GL_UNSIGNED_BYTE,img->data);

    glBindTexture( GL_TEXTURE_2D, 0 );

    glDisable( GL_TEXTURE_2D );

描画
    glEnable( GL_TEXTURE_2D );
    glBindTexture( GL_TEXTURE_2D, texture );

    glEnable( GL_ALPHA_TEST );
    glBegin( GL_QUADS );
    
    glColor4f( 1, 1, 1, 1 );
    glTexCoord2f( u0, v0 );glVertex2d( x1, y2 );
    glTexCoord2f( u0, v1 );glVertex2d( x1, y1 );
    glTexCoord2f( u1, v1 );glVertex2d( x2, y1 );
    glTexCoord2f( u1, v0 );glVertex2d( x2, y2 );

    glEnd();

    glDisable( GL_ALPHA_TEST );

    glDisable( GL_TEXTURE_2D );

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

見た感じ、データの並び順が設定に合っていないように見えます。
まずはこのブログ記事を読んでみては如何でしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/04 01:02

    回答ありがとうございます。
    データの並び順に付いては、画像読み込みの際に自分で変えているので問題はないと考えています。
    直したいところとしては、画像の右が赤く、左が青くなっているところですが、心当たりはありませんでしょうか?

    キャンセル

  • 2015/10/04 05:09 編集

    自分が気になっているのは、ビッグエンディアンとリトルエンディアンを間違って設定しているのではないか…と思っていたもので前述のブログ記事を引き合いにしたのですが、そこが間違ってなければ、ちょっと思い当たらないです。

    OpenGLのWikiに下記のようなページがあるので、ありがちなミスがないか確認してみた方が良いかもしれません。
    https://www.opengl.org/wiki/Common_Mistakes

    もしくはglGetErrorで状態エラーが出ていないか確認するのも、地味な作業ですが何もないよりはマシです。
    https://www.opengl.org/wiki/Common_Mistakes#glGetError

    キャンセル

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    wordpress 投稿一覧にある文章の表示範囲

    初めてwordpressを使いました。HTMLやCSSの基本はわかりますが、それ以外あまりわかりません。 図のように投稿一覧で、各投稿の文章を全て表示させるのではなく最初の2~3

  • 解決済

    3点から長方形を作りたい

    javaで3次元の3つの点から長方形を書こうと思っています。 しかし、与えられた3つの点は長方形の頂点ではないため、そのまま使うと歪んでしまいます。 ↑ABを通りCを使って

  • 解決済

    GLFWでフルスクリーンでウィンドウを作成するには

    glfwでウィンドウをフルスクリーンで作成するにはどうすればよいのでしょうか? GLFWwindow* window = glfwCreateWindow(width,heigh

  • 解決済

    Unityで生成した映像をOpenGLで表示したい

    実現したいこと Unity初心者です。 以前、映像を編集して画面に出力するプログラムをOpenGLを使って作ったのですが、その映像を生成する段階をUnityで行いたいと考え

  • 解決済

    OpenGLの"glTexImage2D"で動的確保した多次元配列を受け渡したい

    現在OpenGLで,動的確保を行い画素情報を格納した多次元配列をOpenGL側の"glTexImage2D"という関数に引き渡そうとしています. 静的に多次元配列を確保してい

  • 受付中

    ER図について

    つぶやきアプリを作っているのですが、 ER図を作るとする例えばどんなものがありますか?? サンプル程度でいいので教えていただきたいです

  • 解決済

    visualstudioC++とOpenGL ビルドできるがウィンドウ表示されない

    visual studioC++で3次元のグラフを作成したく、OpenGLを使用しようと思い、使えるように環境を整えました。以下のソースコードを書き、ビルドしたところ、無事にビルド

  • 解決済

    Game Jam Menu Template での画面遷移

     前提 現在Unityで3Dのすごろく(風)ゲームを作成しています。 Game Jam Menu Template を使ってタイトル画面を作成しています。  実現したいこと タ

同じタグがついた質問を見る

  • C++

    3341questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • OpenGL

    156questions

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