0
我想知道在OpenGL中使用紋理時如何減少圖形內存的消耗。我的代碼:減少OpenGL紋理使用的內存量
glGenTextures(1,&textura);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,textura);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB,0,GL_COMPRESSED_RGBA_ARB,ilancho,ilalto,0,GL_RGBA,GL_UNSIGNED_BYTE,ildata);
//MAIN LOOP
glEnable(GL_TEXTURE_RECTANGLE_ARB);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,textura);
glLoadIdentity();
glTranslatef(320.0,240.0,0.0);
glBegin(GL_TRIANGLE_FAN);
glTexCoord2d(0.0,0.0);
glVertex2f(-320.0, 240.0);
glTexCoord2d(0.0,480.0);
glVertex2f(-320.0,-240.0);
glTexCoord2d(640.0,480.0);
glVertex2f(320.0,-240.0);
glTexCoord2d(640.0,0.0);
glVertex2f(320.0, 240.0);
glEnd();
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,0);
glDisable(GL_TEXTURE_RECTANGLE_ARB);
我用RivaTuner的檢查顯存的消費,似乎是相同的,無論是否壓縮。
我在做什麼錯?
我有一個NVIDIA顯卡geforce 6200 512mb ddr2。
哦,我明白了。有沒有其他的選擇來減少顯卡的內存消耗? –
@JavierRamírez:首先,DXT(S3TC)紋理壓縮算法在很多年前就已經出現了非二次冪紋理的問題。如果您使用的是紋理矩形,它會使我相信您的硬件/軟件實現是在GL 2.0之前,並且可能屬於不喜歡壓縮NPOT紋理的類別。如果僅對非標準化紋理座標使用紋理矩形,則可能需要嘗試使用常規2D紋理並自己計算標準化紋理座標。看看是否改變了一切。 –
我改變了兩個權力,仍然沒有工作,任何想法的紋理? –