我當前的渲染器通過其頂點的位置和顏色繪製窗體。它還不能處理紋理。如果無法加載紋理,則回退爲純色
struct Form
{
unsigned int Positions, Colors, Elements, Program;
};
現在我想實現紋理的能力。由於在最終遊戲中不會有沒有紋理但顏色的表單,我想要替換顏色特徵而不是開發旁邊的特徵。
因此,渲染器必須通過其頂點的位置和紋理座標來繪製窗體。
struct Form
{
unsigned int Positions, Coordinates, Elements, Texture, Program;
};
到目前爲止,這麼好。但是,如果沒有紋理渲染的能力,我的應用程序不能繪製表單,如果他們的圖像文件不存在或由於某種原因無法加載。因此,如果圖像文件無法加載,我想實現一個後備到一個給定的純色(如粉紅色)。
如何在不完全開發兩個並排功能的情況下實現此後備?有沒有共同的方法?我希望這可以在着色器中完成。或者,也許我可以向視頻卡發送粉紅色紋理,然後將所有表單視爲相同。可悲的是,我不知道如何實現,甚至可能。
白色作爲後備顏色就好了,這並不重要。所以我可以傳遞一個空指針到'glTexImage2D'並且網格會被繪製? – danijar
@sharethis:向glTexImage2D傳遞一個空指針實際上是初始化一個紋理對象。如果你爲所有mipmap級別執行此操作,你將獲得完整的mipmappable紋理!或者你只需指定級別0並關閉mipmapping。我正在考慮glBindTexture(GL_TEXTURE_ ...,0),但用空指針初始化紋理也很好。 – datenwolf
這很好,因爲用空指針初始化紋理不需要切換mipmapping。無論如何,現在顏色是黑色的,但這並不重要。也許是因爲它是默認的紋理邊框顏色... – danijar