2010-05-28 49 views
1

每當我在顯示列表中輸入一個轉換(gltranslate,glrotate,gsccale)時,轉換將保持爲顯示列表中的一個命令。每次顯示列表被渲染時,它將一遍又一遍地計算。顯示列表和轉換

有沒有一種方法,我可以做一個OpenGL改造和轉化頂點座標可以在顯示列表,而不是改造& INTIAL座標永久保存?

+4

你怎麼知道顯示列表數據的內部格式是什麼?你擁有的是一個不透明的手柄,對吧? – 2010-05-28 02:36:21

回答

3

在將矩陣提交給顯示列表之前,應用您的矩陣將其轉換爲manually

但德魯大廳是正確的:當編譯你的顯示列表時,驅動程序可能已經做了類似的事情。

+1

實際上它可能不是。顯示列表實現是那些很難同時進行正確和優化的事情之一,因爲要處理的角落案例太多。問題示例:1.沒有什麼能夠確保GL旋轉將以MODELVIEW矩陣爲目標。如果PROJECTION在glCallList之前激活,那麼行爲必須不同。 2.旋轉需要在顯示列表執行後在矩陣堆棧的頂部處於活動狀態......並且我確信我沒有想到所有的角落情況。 – Bahbar 2011-02-14 10:37:35