2012-12-17 13 views

回答

6

OpenGL的工作方式基本上是一個大的全局狀態機。綁定紋理時,以後繪製的每個三角形都將使用該紋理。

這裏的問題在於文本繪圖並未解除其紋理,因此之後繪製的形狀將使用該紋理而不是紋理。你認爲它是「禁用」渲染的原因是因爲紋理由其他一切都是透明的字符組成。你看到的是OpenGL在不透明度爲0的情況下繪製你的形狀。

當你禁用GL_TEXTURE_2D會發生什麼情況是紋理被解除綁定,並且你沒有紋理定期繪製。

+2

這很有道理。所以我猜測有很多glEnable和glDisable調用渲染不同的東西並不罕見。謝謝一堆 – adamk33n3r

2

因爲字符串的紋理被應用。因爲你可能沒有設置任何紋理座標,所以它可能會使用透明紋理的一部分,因此你什麼都看不到。

+0

因此,字符串的紋理覆蓋整個屏幕,覆蓋形狀? – adamk33n3r

+0

@ adamk33n3r nope字符串紋理的透明部分涵蓋了你的形狀,因此沒有任何繪製... – Goz

+0

看到一些代碼可能也有幫助... – Goz

相關問題