繁体   English   中英

OpenGL缩放顶点数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM