JoGL:渲染一个点,参数

时间:2012-10-01 08:42:15

标签: opengl parameters rendering point

我需要让用户可以插入一些自定义几何体,比如一个点。

他可以指定大小和颜色。

尝试了解不同参数的工作原理,我在平台上得到了这些值:

GL_POINT_SIZE_MIN:33062

GL_POINT_SIZE_MAX:33063

  GL中不推荐使用GL_POINT_SIZE_RANGE和GL_POINT_SIZE_GRANULARITY   版本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]);

现在我明白了:

  

min:0.0 max:63.375

     

范围:1.0 - 63.375粒度:0.125

它看起来更好,但是,如果范围从1.0开始,为什么min是0.0f?

1 个答案:

答案 0 :(得分:1)

GL_POINT_SIZE_RANGE:glGet将返回两个值,其中第一个是最小值,而secound是最大点大小(从最小值到最大值)。

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