2010-06-09 56 views
1

我創建使用OpenGL繪圖應用程序。我創建了一個生成漸變紋理的算法。然後我將這些映射到我的多邊形,這很好。我意識到這需要多少內存。創建1000個漸變大約需要800MB,這太多了。是否有替代品的紋理,還是有辦法來壓縮他們,還是另闢蹊徑漸變映射到不使用盡可能多的內存多邊形?漸變和內存

感謝

我的多邊形是凹的,我用GLUTesselator,它們是五彩和點到點

回答

4

是......梯度超級容易在OpenGL做的;你根本不需要紋理。從這裏內存的工作......你只是做這樣的事情:

glBegin(GL_POLYGON); 
glColor3ub(255,0,0); // red 
glVertex2f(-1,-1); 
glVertex2f(1,-1); 
glColor3ub(0,0,255); // blue 
glVertex2f(1,1); 
glVertex2f(-1,1); 
glEnd(); 
// draws a square that fades from red to blue 

如果你改變一個頂點的顏色,它只是創建這兩個點之間的梯度。

2

您也可以嘗試在程序上產生碎片着色器內的梯度。

如果通過紋理壓縮路徑走,你可以使用glCompressedTexImage2D,通過GL擴展提供壓縮的紋理格式,常見的一種是S3TC/DXT1。