有沒有辦法告訴OpenGL不要將完全透明片段的深度寫入深度緩衝區?OpenGL:我能否從深度緩衝區中遮蓋完全透明的碎片?
可以肯定的是,我想渲染的紋理從來都不是半透明的;其alpha值只有1.0或0.0,並且我使用GL_NEAREST過濾器,所以它不會插入任何值。
我認爲當片段的alpha值爲0.0時OpenGL能夠簡單地不寫入深度緩衝區是合理的(這樣我可以以任何順序渲染具有這種紋理的基元) ),但我找不到一種方法讓OpenGL做到這一點。有沒有人知道它是否可行,在那種情況下,它是如何完成的?
謝謝!這是我正在尋找的GL_ALPHA_TEST。我很驚訝,我沒有找到它。 :) – Dolda2000 2010-11-04 01:13:42
@ user134252:你是否有任何令人信服的理由使用固定管道?從長遠來看,着色器通常不那麼頭疼。此外,固定管道在較新的opengl版本中已棄用,所以避免它是一個好主意(一些固定管道功能實際上可能未在硬件中實現並迫使軟件退回)。假設你還在學習opengl(如果我錯了,請原諒)如果學習未來的思維方式而不是棄用的方式,是不是更有意義?就像一個建議。 – Grizzly 2010-11-04 01:23:59
首先,我仍然希望保持與某些設備的向後兼容性。但是,即使如此,固定功能管線的優點是可以很容易地組合各種功能(如選擇啓用照明,alpha測試,紋理和相互獨立的功能),而無需實施整個元編程系統用於着色器代碼組合。這很重要,如果你問我。 – Dolda2000 2011-03-31 07:15:40