我需要让用户可以插入一些自定义几何图形,例如点。
他可以指定尺寸和颜色。
试图了解不同参数的工作方式,我在我的平台上获得了这些值:
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?