OpenGL(または少なくともPyOpenGL)のすべての関数は、glRotatef
やglColor3f
などの末尾にf
という文字列がありますが、意味が分かりません。単精度浮動小数点数をデフォルトで使用する1.0f
のように機能しますか?OpenGL関数(glRotatefなど)で 'f'とは何ですか?
私はここにいますが(2つの質問をすることが許せば)、glColor3f
とglColor3fv
の違いは何ですか?
OpenGL(または少なくともPyOpenGL)のすべての関数は、glRotatef
やglColor3f
などの末尾にf
という文字列がありますが、意味が分かりません。単精度浮動小数点数をデフォルトで使用する1.0f
のように機能しますか?OpenGL関数(glRotatefなど)で 'f'とは何ですか?
私はここにいますが(2つの質問をすることが許せば)、glColor3f
とglColor3fv
の違いは何ですか?
f
は、関数がfloat
を予期していることを示しています。したがって、i
がある場合、その機能にはint
が必要であることが示されます。 v
はベクトルを表します。したがって、glColor3fv
は、「浮動小数点型ベクトル」つまり浮動小数点型の配列を想定しています。
これは、glColor
のドキュメントに明示されています。
void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
void glColor3fv(const GLfloat *v);
フォーマットは、より明確明細書で説明される:
最終
v
文字は、存在する場合、コマンドはではなく値の配列(ベクトル)へのポインタを取ることを示しています一連の個々の議論。は、一般的に、コマンド宣言はフォーム
rtype Name{∈1234}{∈ b s i i64 f d ub us ui ui64}{∈v}
rtype
を持つ関数の戻り型です。中カッコ({})は一連のタイプ記述子(以下の表を参照)を囲み、その中の1つが選択されます。 ∈は型記述子を示さない。文字がない場合、引数の型は明示的に指定されます。最後の文字が
v
でなければ、N
は1,2,3,4の数字で与えられます(数字がない場合は引数の数が固定されます)。最後の文字が
v
の場合、arg1
のみが存在し、指定されたタイプの値のN
の配列です。+------+----------------------------------+ | Type | Descriptor Corresponding GL Type | +------+----------------------------------+ | b | byte | | s | short | | i | int | | i64 | int64 | | f | float | | d | double | | ub | ubyte | | us | ushort | | ui | uint | | ui64 | uint64 | +------+----------------------------------+
∈シンボル "の要素である" を意味します。
同じ原理がさまざまなもの、たとえばGL_RGBA32F
対GL_RGBA8I
で使用されています。これはOpenGLに特有のものではなく、様々なライブラリが期待したり返すタイプのプレフィックスを使います。
ありがとう!まさに私が探していたもので、リンクされたページは非常に便利です – polarisfox64
あなたは大歓迎です! :) – Vallentin
@ polarisfox64:もし*なぜこのすべてが必要なのか不思議であれば、OpenGLはC APIであり、Cには関数のオーバーロードはありません。 – peppe
[glColor](https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glColor.xml)を見ましたか? – Vallentin
私は持っていませんでした。私はそれが接尾辞なしで来るかもしれないことを知らなかったので、私はそのように見なかった。ポインタありがとう!私の推測は、右の笑だったことがわかる – polarisfox64