2014-07-07 42 views
1

我在學習一些OpenGL通過this guide,我已經到了一個使用色彩索引模式的例子。在第6章中,示例6-4建立了顏色索引模式下行的反鋸齒。我編寫了代碼並編譯了它。代碼運行,但問題是應該着色的行只是白色的。我在初始化卡這一行()函數:OpenGL色彩索引模式不起作用,色彩映射的大小爲0

printf("The size of the color map is %d entries\n", glutGet(GLUT_WINDOW_COLORMAP_SIZE)); 

其中印有「顏色貼圖的大小爲0的條目」

難道我intialize somethign錯誤的或者不我實現的OpenGL真的沒有任何顏色索引彩色圖條目?它是如此未使用?這很奇怪嗎?

+2

不要。永遠。使用。顏色。指數。模式。就是不要。它完全被棄用。並且從未在一些實現上工作。 – derhass

+0

我編輯了你的文章的標題,使其更加搜索友好。我希望你能和你在一起。我希望每個搜索「OpenGL顏色索引模式」的人都能找到這個,以便他們知道他們不應該使用它。 –

回答

2

顏色索引模式從未真正起作用,並且當前的OpenGL實現實際上不支持它。最好的情況下,你放棄一些軟件後備。最糟糕的情況是你得到醜陋的渲染。不要打擾它,並跳過這一章。

此外,您正在閱讀的指南嚴重過時。

+0

它似乎仍然作爲Windows PIXELFORMATDESCRIPTOR結構中的選項出現。這顯然不一定意味着實現支持它。當然不是任何人都應該使用它。當它大約5年前最初在Mac OS中被刪除時,因爲人們仍在玩一個老遊戲(Diablo?),這顯然使用了它。我相信當時它已經恢復了,但我相信現在已經很久了。 –

+0

@ReetoKoradi:如果有一件事情是Microsoft關心的,那麼它的向後兼容性。如果他們在一個結構中引入了一些標誌或某些元素,那麼只要支持使用這些結構的API存在,這些標誌就會存在。但是,SetPixelFormat必須選擇一種像素格式,該格式實際上由給定的系統配置支持。 – datenwolf

+0

@datenwolf謝謝。關於這個指南的年代,我計劃在完成這個之後,深入到更現代的OpenGL。紅皮書涵蓋了許多基本知識,希望可以幫助我瞭解更高級的內容。 –