簡體   English   中英

翻譯先前繪制的元素(OpenGL)

[英]Translate Previously Drawn Elements (OpenGL)

如何變換以前繪制的元素? 我已經在屏幕上繪制了大約400萬個頂點,在繪制之后我想對其進行翻譯。 我希望每次翻譯時都不要重繪它們(400萬!)

這是相關的代碼。

glOrtho(0, 1024, 0, 576, 0, -4096);
glTranslatef(-512, -288, 512);
glRotatef(45, 1, 0, 0);
glTranslatef(512, 0, -512);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.F, 1.F, 1.F);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_INT, 0, &vertices[0]);
glDrawElements(GL_QUADS, vertexIndex.size(), GL_UNSIGNED_INT, &vertexIndex[0]);
glDisableClientState(GL_VERTEX_ARRAY);
// I would like to translate here

您的頂點位置不可能在內部與轉換矩陣相乘,以獲取在屏幕上繪制的最終位置。

因此,如果您嘗試在繪制后更改矩陣,則它不會對繪制的頂點產生任何影響,並且不會對頂點產生任何影響。

要解決您的問題,只需在繪制之前對其進行轉換即可……這是標准方式,沒有其他方法可以實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM