\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 ) で囲む
■ 描画命令の順
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