タグ

openglに関するma38suのブックマーク (8)

  • ビューポート

    印刷作業 さて、モデルビュー、射影に続く最後の変換作業はビューポートです ビューポートは、例えるならば撮影した映像の印刷作業と言えるでしょう これまで、モデルビューは被写体、射影はカメラの設定のようなものでした これらで決定された映像をどのように印刷するかがビューポートなのです 映像を証明写真とするか、巨大なポスターにするかは自由なのです ただし、私たちが扱うのは印刷用紙ではなくコンピュータ グラフィックスです そのため、ビューポートはウィンドウのサイズに合わせて描画されています しかし、特定のサイズに固定したり、サイズを変更してスケーリングすることも自由です ビューポートの設定は glViewport() 関数を使います void glViewport(GLint x , GLint y , GLsizei width , GLsizei height); x と y には、ビューポート

    ma38su
    ma38su 2017/02/22
    複数画面
  • バーテックスシェーダによる座標系変換 · けんごのお屋敷

    OpenGL 基礎シリーズの第 3 回です。 座標変換 プリミティブの描画には頂点座標が必要なのはわかった。だって、座標情報がないとそもそもどこに描画していいのかがわからないんだから。でもよく考えてみて欲しい、この座標情報って どの座標系における座標 なんだろう?それって最初に出てきた右手座標系とかいう座標系じゃないの?うーん、そうなんだけどここで話したいのはそういうことじゃない。それじゃディスプレイ上の座標に配置してるに決まってるよ!いやいやそんなことはない。私達は今、OpenGL 上で 3D 空間を扱っている。でも現実のディスプレイは 2D の平面。はい、これらはそもそも次元が違う。 最初にバーテックスシェーダの概要を書いた時に座標系の変換過程を図に示したのを思い出してみると、3D 空間を扱うためには少なくとも 4 つの座標系があった。最初に頂点座標を配置した座標系から最終的にはクリッ

    バーテックスシェーダによる座標系変換 · けんごのお屋敷
  • [OpenGL] 任意の頂点形式に対応可能な頂点バッファオブジェクトの設定方法

    頂点バッファオブジェクト(VBO)については、t-potさんや床井研究室さん、Project Asuraさんといった、有名どころの方々がサンプルを載せてくれています。 が、t-potさんの例では、頂点座標、法線、テクスチャ座標をそれぞれ別個のVBOとして用意しているため、t-potさんも文中で書かれていますが、 GPUのデータキャッシュのヒット率が非常に悪くなり、パフォーマンスが出ません。また、インデックスバッファを使っていないというところも非効率と言えるでしょう。 また、床井研究室さんのところでは、ページの一番下のところで、頂点座標、法線、テクスチャ座標のデータを一つのVBOに格納したサンプルを示されていますが、 という感じで、頂点座標、法線、テクスチャ座標それぞれのデータが離れているため、これもGPUのキャッシュのヒット率が悪く、パフォーマンスがよくありません。 頂点座標、法線、テクス

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    ma38su
    ma38su 2014/09/30
    マウス選択
  • 「OpenGLを使ってJavaでも3Dを楽しもう」第3回 プログラムで3Dを表示する

    initメソッドは起動時に1度だけコールされ,reshapeはフレームのサイズを変更したときなどにコールされます。描画を行うにはdisplayメソッドに記述します。 GLEventListenerインタフェースをインプリメントしたクラスは,javax.media.opengl.GLAutoDrawableインタフェースをインプリメントしたクラスにaddGLEventListenerメソッドを使用して登録します。 GLAutoDrawableインタフェースをインプリメントしたクラスとして,AWTで使用できるjavax.media.opengl.GLCanvasクラス,Swingで使用できるGLJPanelクラスがあります。 サンプルでは立方体を描画させるので,SimpleCubeクラスとしましょう。ここまでの説明した部分を記述すると次のようになります。AWTを使用するので,GLCanvasク

    「OpenGLを使ってJavaでも3Dを楽しもう」第3回 プログラムで3Dを表示する
  • Frequently Asked Questions

    今までにあった質問 質問1:マウスを使ってオブジェクトを選択するには? 質問2:マウスでクリックした場所の3次元位置を求めるには? 質問3:透視変換の場合にウィンドウをリサイズしても表示図形の大きさが変らないようにするには? 質問4:IsoTrak や SuperGlobe からデータを取ると,表示がぎこちなくなるのですが? 質問5:視点を移動するのではなく,物体をぐるぐる回す方法は? 質問6:円柱はどうやって描くんですか? 質問7:glFrustum() を使って正確な立体視を行う方法は? 質問1 マウスを使ってオブジェクトを選択するには? 回答1 セレクションを使えば, マウス(あるいはスクリーン上の領域) がどのオブジェクトを指して(含んで) いるのかを調べることができます. glRenderMode(GL_SELECT) を実行してセレクションモードに入ると, オブジェクトを描画し

    ma38su
    ma38su 2014/09/28
    マウス位置の検出方法など
  • プログラムのメモ帳 OpenGL jogl

    先日JavaでOpenGLが使えるJOGLを導入して、いろんなサイトのサンプルコードを参考に動かしてみました。 で、テクスチャの貼りつけ等まで出来たのですが、どうやら描画した順番で描画されているらしく、奥の方に描画したものが、手前に描画されたものよりも手前に来てしまったりして、どうにもなりませんでした。 いろいろ調べてみると、OpenGLでは深さによる描画モードもあるらしく、GLUTと合わせて簡単に設定できるそうです。 しかし、JOGLのGLUTにはその深さ優先での描画モードを設定するメソッドが見当たりません。ネットで調べてみると同じ問題に遭遇してそうな人がたくさんいるように見受けられ、最近私はC++でコードを書いてるので、C++に移行することにしました。 そんなわけで、いろいろなサイトにあるサンプルコードがそのまま使えるようになったので、いろいろと試してみました。 参考サイト:http:

  • GLUTによる「手抜き」OpenGL入門

    資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日語 (OpenG

  • 1