トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
OpenGL
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ 基本事項


___

■ GL の原則

一度設定した 内容は 変更されるまで有効 State を保存する場所を Rendering Context という WARNING State の状態を正しく管理しないと, 想定しない動作に悩まされる 以下の方法をとる init 時に 頻繁に利用する State にする State を変更するときは 属性 Stack ( Push, Pop ) で囲む

     Module 設計, Object 指向 と合性が良い
        変更する Code が責任をもって元の State に戻す

     Code が前提にしているものを取り除く

        特定の State を前提にしている Code は他の Code を追加すると破壊されてしまう

     Code の再利用が簡単になる

___

■ 描画命令の順

DESC Command の発行順に描画される Primitive 単位でも同じこと glDrawElements();
    clearcolor -> drawtri
    drawtri -> clearcolor では 上塗りされる
TIP matrix の順番も特に指定する必要なし( 現在のstate が描画時に反映 ) 描画時とは begin() - end() の間

  glMatrixMode( MV );
  glMatrixMode( PROJ );
  draw

  glMatrixMode( PROJ );
  glMatrixMode( MV );
  draw

  glMatrixMode( PROJ ); // これは既に有効ではない

透明に関しては以下の3種類 1. 不透明( 手前から, 塗りを減らすため ) 3. クリップ( 奥から描画, αテストの部分が補間の関係でマージンができる為 ) 2. 半透明( 奥から描画 )
___

■ glPushAttrib

SYNTAX void glPushAttrib( GLbitfield ); DESC 指定した Group の属性を Stack に Push 利用してみたが, かなり効果的 1 Primitive 描画毎に Push, Pop してもいい
    // 全部 保存
    glPushAttrb( GL_ALL_ATTRIB_BITS );

___

■ glPopAttrib

___

■ glPushClientAttrib

___

■ glPopClientAttrib

___

■ State の設定 クエリ

___

■ glIsEnabled()

SYNTAX bool glIsEnabled( GLenum val ); DESC test whether a capability is enabled
___

■ glGet

DESC OpenGL の実装依存の情報を取得する ( init 時にする ) 問い合わせる型にあった関数を利用する
  float m[16];
  glGetFloatv( GL_MODELVIEW_MATRIX, m );


___

■ Stack を使って管理する

State の変更を管理するための stack( 属性スタック ) が Server, Client 側にある
___

■ glPushAttrb

SYNTAX glPushAttrb( GLbitfield mask ) glPopAttrb();

    // Material, Light 属性のみを Push する
    glPushAttrb( GL_LIGHTING_BIT );

    // そして元に戻す
    glPopAttrb();

    // Stack のサイズをしらべる
    int nr;
    glGetIntegerv( GL_MAX_ATTRIB_STACK_DEPTH, &nr );

___

■ 開発環境

以下の Header, library が必要 OpenGL Header, library Window System の Header, library visualstudio.net には OpenGL 1.1 の Header と Export StubLibrary がふくまれる // version 1.1 以降の機能, 拡張機能 を利用するには glext.h が必要 #include "GL/glext.h" Microsoft Compiler は glu1.2 の header, StubLibrary を含む
___

■ 用語

___

■ Primitive

DESC Primitive とは 1 つ以上の 頂点のグループ 線の Primitive は 2 つ以上の頂点が必要。 プリミティブは頂点を組み立てることで生成される。






金利比較.COM
NINJAIDX 9