[英]OpenGL scaling vertex arrays
我有一个如下绘制的顶点数组(我正在将其转换为单个glDrawArrays调用,因此这里不是问题):
gl.glVertexPointer(3, GL.GL_FLOAT, 0, buff);
for ( int i = 0; i < numPoints; i++ ) {
gl.glDrawArrays(GL.GL_LINE_LOOP, i*verticesPerPoint, verticesPerPoint);
}
这可行,但是我想缩放正在绘制的线循环。 我尝试在调用glDrawArrays之前先调用glScaled
,但是随后这些点没有显示出来。 我本来以为缩放只是在适当的地方缩放了线环,但事实并非如此。
注意缓冲区中的顶点是未缩放的,因为我希望能够以不同的比例重用同一缓冲区。 我的想法是,我可以将图形重绘为恒定的像素大小,而不必在每次通过时都重新创建数组。
谁能解释我在做什么错,或者甚至有可能这样做?
你肯定glScale与设置为GL_MODELVIEW矩阵模式的当前矩阵模式中应用? 如果是这样,它是在任何对象空间转换之前还是之后被调用的? 使用glScale [f / d]是一种声音方法-将应用于顶点数据-但是提到“恒定像素大小”表明这也许是一个2D问题。 在这种情况下,可能值得研究glViewport的机制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.