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

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

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

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

Q&A

解決済

1回答

2173閲覧

GL_POINTSで画面を埋め尽くせない

kotet

総合スコア19

OpenGL

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

0グッド

0クリップ

投稿2016/06/29 05:27

編集2016/06/29 05:56

OpenGL + GLFWで練習をしているのですが、行き詰ってしまったので質問します。
自分はまず適当な色のドットで画面全体を埋め尽くそうと考えました。
そのためには画面の幅や高さから全ピクセルが埋まるように-1.01.0の座標を計算しなければならないと思うので、以下のような式を書きました。width=500は画面の幅、xは0widthまでの整数で、ともにdoubleにキャストされています。

x * (2.0 / width) -1.0

しかし思ったようには動かず、右半分に点を打てていない部分が現れました。

キャプチャ

なぜこのようなことが画面の右半分にだけ起こるのでしょうか?
また、このような座標の計算方法は適切でしょうか?
どうすればGL_POINTSで画面を埋め尽くすことができるのでしょうか?
そもそもこういった画面を生成するときにGL_POINTSは適切なのでしょうか?

このような現象をどう検索すればいいのかもわからず困っています。どうかよろしくお願いします。

追記:
問題が起きているのはWindowsでの話です。コードを書いたUbuntuの方では発生しませんでした。
キャプチャ

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

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

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

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

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

guest

回答1

0

ベストアンサー

おそらくですが、ディスプレイ座標の変換の過程で丸め誤差が発生するのが原因だと思われます。
コード全体があればまだ他にも原因が見えるかもしれませんが、そのコードだけでは判断がつかないです。

普通ピクセル単位で座標調整する必要があるとき、glOrthoを使い、ディスプレイのサイズぴったりの「平行投影」に切り替えて行います。ここらへんが参考になるかと。
http://d.hatena.ne.jp/ousttrue/20090423/1240471770

投稿2016/06/29 06:03

編集2016/06/29 06:04
masaya_ohashi

総合スコア9206

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

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

kotet

2016/06/29 07:14

ありがとうございます、glOrthoを使い試行錯誤した結果うまく表示させることができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問