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

有人可以向我解释这些奇怪的价值观吗?我的意思是,如何将最小值和最大值相差一个?

上面的值是通过以下方式获取的:

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 将返回两个值,第一个是最小值,第二个是最大点大小(范围从 min 到 max)。

GL_POINT_SIZE_GRANULARITY:glGet 将返回单个值,描述粒度,例如 0.1:您可以指定点大小为 1.1、1.2、1.3,但不能指定 1.05、1.15 等。

于 2012-10-01T08:51:09.063 回答