簡體   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