【发布时间】:2014-05-26 18:06:26
【问题描述】:
所以我最近开始学习 JOGL,因为我对 Vanillla Java 感到无聊,因为我没有想到任何想法。我已经学会了如何绘制三角形、线条和一切简单的东西,但我不明白。什么是opengl测量单位,因为默认情况下它显然不计算像素。 我的渲染方法:
private void render(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glBegin(GL.GL_LINES);
gl.glVertex3f( 0.25f, -0.25f, 0);
gl.glVertex3f(-0.25f, 0.25f, 0);
gl.glEnd(); }
即使是一个愚蠢的人也不会明白,渲染一条 0.25 像素宽的线是不可能的。那么这里有什么问题呢? :) 期待您的回答! 最好的问候!
【问题讨论】:
-
我不确定是否有任何单位,但是...默认屏幕坐标是
1.0到-1.0AFAIK.. 但是,您不仅限于使用这些坐标(在处理 0.0032 等内容时很难使用),所以为了更容易,您可以根据自己的喜好更改视图模型矩阵以扩展它。 -
那些默认屏幕坐标是错误的。同样,您可以将它们设置为您想要的任何内容。如果您将屏幕尺寸设置为
-1.0-1.0,那么0.0将位于屏幕中间。许多程序将屏幕尺寸设置为匹配像素,因此1.0GL 单位真的是 1 像素。 -
顺便问下好问题。
-
@Qix 需要注意的是 [-1.0,1.0] 坐标范围适用于视口的角落(在窗口坐标中定义) .因此,如果没有视口映射,就无法在投影和像素比例之间建立任何关系。
-
谢谢大家!我现在可以理解更多了 :) 很棒的人,很棒的网站!