普通の人は度の計算に慣れているので、OpenGLは単純に使用することを目的としています。度で動作するすべての関数は「高レベル」関数であることに注意してください。
OpenGL自体の場合、ラジアンを受け取るか度を受け取るかは違いはありません。いずれにせよ、それらは内部で変換行列に変換されるため、どちらか一方を使用しても計算上の利点はありません。
では、学位を使用して許可できるのであれば、なぜ人々のことを複雑にするのでしょうか。OpenGLで真剣にコーディングする人は誰でも、とにかくクォータニオンから計算された独自の行列を提供します。
同じ精神で、マトリックスはあらゆる点でよりエレガントであり、より高度な制御を可能にするので、なぜ持っているのかglRotatef
、とにかく持っているのかを尋ねることができます。gluPerspective
ポイントごと:
- エレガンシー-マトリックスはあらゆる面でよりエレガントです
- Cライブラリ-Cライブラリは計算上の理由でそれらを使用します。角度をとるGL関数は、計算の重いタスク(行列を直接使用する)に使用することを意図していません。おそらく、実装には度のルックアップテーブルがあります。
- 他のライブラリ-Clibと同じ理由でCライブラリに続く-また、それは真実ではありません-多くのC ++ライブラリは選択を許可し、一部は後者を使用します
- 計算の利便性-重要ではありません-内部表現は行列です。効率を上げるためにルックアップテーブルを使用して計算を行う可能性があります-角度を直接操作する必要がないため、表現は重要ではありません
また、次の点にも注意してください。度を使用するすべての関数は、現在の標準(3.2)で非推奨になっています。glRotatef
度をとる唯一の関数、または実際には角度をとる関数です。gluは、ヘビーデューティー展開用ではないユーティリティライブラリであるため、読みやすさに合わせて調整されており、gluPerspective(... 60.0f..)
FOVの提供に関しては、はるかに読みやすく「標準」gluPerspective( ... M_PI / 3.0f ... )
です。
最後の注意: