請不要告訴我使用24位紋理或類似的東西,因爲這是我的寵物項目,它需要支持1,4,8,16和32位紋理格式。如何在opengl中加載灰度4位每像素紋理?
現在,所有上述格式的工作,甚至1bpp,除了4位之一。我還應該提到使用的顏色是16灰度。此外,我使用的紋理都填充到4個字節。
因此,例如,讓說,我希望加載這個4×4紋理
BYTE Img[4][4] = {
{0xCD, 0xEF, 0x00, 0x00},
{0x89, 0xAB, 0x00, 0x00},
{0x45, 0x67, 0x00, 0x00},
{0x01, 0x23, 0x00, 0x00},
};
每個半字節應代表紋元。 0x00用於填充目的。
我怎麼加載這樣的紋理?現在
,我tryed與
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE4, 4, 4, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, pTex);
但由於某些原因,它產生相同的結果與使用使用GL_LUMINANCE一個8位的紋理,我只在屏幕上看到一個2x4的紋理圖案,與其他一半黑色。
我也試過用glPixelMapfv,但我不能讓它工作,我得到的只是一個空白的紋理。
我希望我已經足夠清楚,如果不是,只是告訴我,我會做出更正。
您需要以某種方式解碼,因此每個完整字節都是單個紋素 –