0

ポイントなどのカスタム ジオメトリをユーザーが挿入できるようにする必要があります。

彼はサイズと色を指定できます。

さまざまなパラメーターがどのように機能するかを取得しようとして、プラットフォームでこれらの値を取得しました。

GL_POINT_SIZE_MIN: 33062

GL_POINT_SIZE_MAX: 33063

GL_POINT_SIZE_RANGE と GL_POINT_SIZE_GRANULARITY は、GL バージョン 1.2 以降では非推奨です。それらの機能は、GL_SMOOTH_POINT_SIZE_RANGE および GL_SMOOTH_POINT_SIZE_GRANULARITY に置き換えられました。

GL_SMOOTH_POINT_SIZE_RANGE: 2834

GL_SMOOTH_POINT_SIZE_GRANULARITY: 2835

誰かがこれらの奇妙な値を説明してくれませんか? つまり、最小値と最大値が 1 だけ異なるのはなぜでしょうか。

上記の値は、次のように取得されます。

System.out.println("max: "+GL2.GL_POINT_SIZE_MAX+" min: "+GL2.GL_POINT_SIZE_MIN);
System.out.println("range: "+GL2.GL_SMOOTH_POINT_SIZE_RANGE+" granularity: "+GL2.GL_SMOOTH_POINT_SIZE_GRANULARITY);

datenwolf と Denis Germ の提案で、次のようにパラメーターを取得しています。

float ps[] = new float[5];

gl2.glGetFloatv(GL2.GL_POINT_SIZE_MIN, ps, 0);
gl2.glGetFloatv(GL2.GL_POINT_SIZE_MAX, ps, 1);
gl2.glGetFloatv(GL2.GL_SMOOTH_POINT_SIZE_RANGE, ps, 2);
gl2.glGetFloatv(GL2.GL_SMOOTH_POINT_SIZE_GRANULARITY, ps,4);
        
System.out.println("min: "+ps[0]+" max: "+ps[1]);
System.out.println("range: "+ps[2]+" - "+ps[3]+" granularity: "+ps[4]);

そして今、私は得る:

最小: 0.0 最大: 63.375

範囲: 1.0 - 63.375 粒度: 0.125

見栄えは良くなりますが、範囲が 1.0 から始まるのに、なぜ min が 0.0f なのですか?

4

1 に答える 1

1

GL_POINT_SIZE_RANGE: glGet は 2 つの値を返します。最初の値は最小値で、2 番目の値は最大ポイント サイズ (最小から最大までの範囲) です。

GL_POINT_SIZE_GRANULARITY: glGet は、粒度を表す単一の値を返します。たとえば、0.1: ポイント サイズを 1.1、1.2、1.3 として指定できますが、1.05、1.15 などは指定できません。

于 2012-10-01T08:51:09.063 に答える