GLPOINTSIZE
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
glPointSize
- ラスタ処理される点の直径を指定する
書式
void glPointSize(
GLfloat size )
delim $$
引き数
- size
-
ラスタ処理される点の直径を指定する。
初期値は 1 である。
説明
glPointSize は、エイリアスのある点、アンチエイリアス処理されている点の
両方について、ラスタ処理される際の直径を指定する。
点の大きさを 1 以外の値を指定した場合、点のアンチエイリアス処理が
有効かどうかで影響が異なる。
点のアンチエイリアス処理を有効または無効にするには、引き数
GL_POINT_SMOOTH を指定して glEnable および glDisable を
呼ぶこと。
点のアンチエイリアス処理は初期状態では無効になっている。
アンチエイリアス処理が無効になっている場合は、
実際の大きさは、与えられた大きさを最も近い整数値に丸め込むことで
決められる。
(丸めた結果が 0 になる場合には、点の大きさは 1 の場合と同じように扱われる。)
丸めた後の大きさが奇数になる場合には、点を表すピクセルのフラグメント
の中心 ($ x $, $ y $) は
( $ |_ ~ x sub w ~ _| ~+~ .5 $, $ |_ ~ y sub w ~ _| ~+~ .5 $)
と計算される。
ここで $w$ はウィンドウ座標を表す。
中心が ($ x $, $ y $) であり、丸められた大きさを持つ正方形格子の内側に
中心があるピクセルのすべてでフラグメントが作られる。
大きさが偶数の場合は、中心点は
( $ |_ ~ x sub w ~+~ .5 ~ _|$, $ |_ ~ y sub w ~+~ .5 ~ _| $)
であり、
ラスタ処理されるフラグメント群のそれぞれの中心は、
中心が ($ x $, $ y $) にあり、丸められた大きさを持つ正方形の中にある
半整数のウィンドウ座標となる。
アンチエイリアス処理された点に対するラスタ処理で作られる
すべてのピクセルフラグメントは、同じ関連データを割り当てられる。
これはその点に対応する頂点のデータである。
アンチエイリアスが有効な場合は、
点のラスタ処理はによるフラグメントの作り方は次のようになる。
すなわち、現在の点の大きさと同じ直径を持ち、その点について
($ x sub w $, $ y sub w $) である点を中心とする円の内側の領域と重なる、
それぞれのピクセル正方形に対してフラグメントを作る。
それぞれのフラグメントがカバーする値は、円領域と、それに対応する
ピクセル正方形が重なる部分のウィンドウ座標領域である。
この値は保存され、ラスタ処理の最終ステップで使われる。
各フラグメントに関連するデータは、ラスタ処理される点に関連する
データである。
点のアンチエイリアス処理が有効であっても、必ずしもどんな大きさにも
対応しているわけではない。
未対応の値が要求された場合には、対応している値のうちで最も
近いものが使われる。
対応が保証されている値は 1 だけである。
他の値への対応状況は実装によって異なる。
対応している範囲および対応している範囲内での値同士の差を問い合わせるには、
引き数 GL_SMOOTH_POINT_SIZE_RANGE および GL_SMOOTH_POINT_SIZE_GRANULARITY
を指定して glGet を呼ぶこと。
エイリアスがある点について範囲と粒度を問い合わせるには、
GL_ALIASED_POINT_SIZE_RANGE および GL_ALIASED_POINT_SIZE_GRANULARITY を
指定して glGet を呼ぶこと。
注意
glPointSize で指定した点の大きさは、GL_POINT_SIZE で
問い合わせた際に必ず返される。
エイリアスのある点、アンチエイリアス処理される点に対しての
値の範囲調整や丸めは、指定される値に対して影響を与えない。
アンチエイリアス処理されない点の大きさは、
実装依存の最大値に収められることがある。
この最大値を問い合わせることはできないが、
この値はアンチエイリアス処理される点の大きさの最大値より
小さくなることはなく、それに最も近い整数値に丸められる。
GL_POINT_SIZE_RANGE および GL_POINT_SIZE_GRANULARITY は
バージョン 1.2 以降の GL では使うべきでない関数である。
この機能は GL_SMOOTH_POINT_SIZE_RANGE および
GL_SMOOTH_POINT_SIZE_GRANULARITY に置き換わっている。
エラー
GL_INVALID_VALUE:
size が 0 以下の時に起こる。
GL_INVALID_OPERATION:
glBegin と、その対になる glEnd の間で
glPointSize が実行されると起こる。
関連する取得値
引き数 GL_POINT_SIZE を指定した glGet
引き数 GL_ALIASED_POINT_SIZE_RANGE を指定した glGet
引き数 GL_ALIASED_POINT_SIZE_GRANULARITY を指定した glGet
引き数 GL_SMOOTH_POINT_SIZE_RANGE を指定した glGet
引き数 GL_SMOOTH_POINT_SIZE_GRANULARITY を指定した glGet
引き数 GL_POINT_SMOOTH を指定した glGet
関連項目
glEnable(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:09 GMT, January 12, 2009