多くの状態変数には連続値の範囲があります。
GLfloat
は、通常のfloat
のように、ビット単位で固定サイズです。 32ビットIEEE-754は32ビットの記憶域しか持たない。したがって、2^32の別個の値しか取ることができません(これらの値のかなりの数は同一または比類のないものとみなされます)。 2^32が大きいのですが、依然として非常に有限です。
OpenGLコンテキストには、明確に指定された状態値の有限集合があります。各状態値は、離散値の有限集合をとることができる。 OpenGLコンテキストを有限状態マシンとしてモデル化することができます。状態の値を変更するだけで状態遷移が行われます(OpenGLオブジェクト、特にプログラムオブジェクトはこのビューをいくらか複雑にします)。
すべてのことが言われているが、の主なポイント声明本当に実際の有限状態機械で行うには何もを持っていない「OpenGLは、ステートマシンがあります」。文は通常、リマインダとして言われていること:
のOpenGL はあなたが最後にそれを設定したもの忘れてしまった場合でも、コンテキストに最後に設定した状態を覚えています。
OpenGLは、の最後のセットの状態を、最後に設定したものを忘れたとしても記憶します。
OpenGLは状態を記憶しているため、ステートマシンです。明示的にトランジションを実行しない限り、トランジションは現在の状態にとどまります。
基本的には、現在の状態を追跡したり、レンダリングの開始時にすべての状態を設定するそれがあなたが思っているものであることを確認してください。
回答ありがとうございました。私はフロート変数は実際には高レベルの概念を議論するときに連続として考えることができる連続的な範囲をモデリングしていると思いますが、とにかく2番目の部分は私の質問に完全に答えます。 –