表2.2 GLhalfは16ビット浮動小数点スカラーであるが、ヘッダファイルには、それが整数型だ意味GLhalfは浮動小数点型か整数か? OpenGLの仕様に
typedef unsigned short GLhalf;
として定義されるglext.h言います。どちらが正しいですか?
表2.2 GLhalfは16ビット浮動小数点スカラーであるが、ヘッダファイルには、それが整数型だ意味GLhalfは浮動小数点型か整数か? OpenGLの仕様に
typedef unsigned short GLhalf;
として定義されるglext.h言います。どちらが正しいですか?
GPhalでは、GLhalfは16ビット浮動小数点スカラー数で、その形式で加算/乗算されます。
CPUでは、多くのCコンパイラには16ビット浮動小数点型がありません。したがって、符号なしの短い定義は、各値がメモリ内で16ビットを占めることをCコンパイラに伝えるためです。
残念ながら、これはCコンパイラが/ etc /これらの値を追加/掛けさせることを意味します.CPUは16ビット整数演算を実行するため、これらの値を完全に縮めることになります。そうしないでください。 "foo = 2"と書かないでください
Cの半精度浮動小数点ライブラリを得ることができます。また、一部のCコンパイラは16ビット浮動小数点をサポートしています。 GLhalfでCPU操作をしたい場合は、それらのうちの1つを使用できます。
16ビット浮動小数点を作成できるライブラリの1つを共有するように気をつけますか?半精度の数値の演算は、単精度のものより速く実行されるので、パフォーマンスが向上しますね。 –
自分自身を使用していないので推奨しません。フォーマットがエミュレートされるので、CPUではそれほど高速ではありませんので、操作ごとに複数のCPU命令が必要です。 –
これは仕様ではありません。テキストは「符号なしスカラー**で符号化された半精度浮動小数点値**」です。 – BDL
@BDL:これはその質問の重複ではありません。その質問は 'GL_HALF_FLOAT'列挙子に関するものです。これは、その列挙子を使用しているものが消費するデータを埋めるために使用するCまたはC++データ型に関するものです。 –