我創建使用OpenGL繪圖應用程序。我創建了一個生成漸變紋理的算法。然後我將這些映射到我的多邊形,這很好。我意識到這需要多少內存。創建1000個漸變大約需要800MB,這太多了。是否有替代品的紋理,還是有辦法來壓縮他們,還是另闢蹊徑漸變映射到不使用盡可能多的內存多邊形?漸變和內存
感謝
我的多邊形是凹的,我用GLUTesselator,它們是五彩和點到點
我創建使用OpenGL繪圖應用程序。我創建了一個生成漸變紋理的算法。然後我將這些映射到我的多邊形,這很好。我意識到這需要多少內存。創建1000個漸變大約需要800MB,這太多了。是否有替代品的紋理,還是有辦法來壓縮他們,還是另闢蹊徑漸變映射到不使用盡可能多的內存多邊形?漸變和內存
感謝
我的多邊形是凹的,我用GLUTesselator,它們是五彩和點到點
是......梯度超級容易在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
如果你改變一個頂點的顏色,它只是創建這兩個點之間的梯度。
您也可以嘗試在程序上產生碎片着色器內的梯度。
如果通過紋理壓縮路徑走,你可以使用glCompressedTexImage2D,通過GL擴展提供壓縮的紋理格式,常見的一種是S3TC/DXT1。