4
我想繪製與alpha的球體,但我有我的Z緩衝區的問題。有些像素是透明的,但在Zbuffer中寫入,所以後面的不透明像素被隱藏起來。OpenGl alpha測試 - 如何取代AlphaFunc棄用?
這裏是我的設置:
gl Enable: gl DEPTH_TEST.
gl DepthFunc: gl LEQUAL.
gl Disable: gl CULL_FACE.
gl Enable: gl BLEND.
gl BlendFunc: gl SRC_ALPHA with: gl ONE_MINUS_SRC_ALPHA.
我知道該功能glAlphaFunc(GREATER, aFloat)
和enable(ALPHA_TEST)
能做到這一點,但我讀了它,因爲3.1版本的OpenGL棄用功能。我如何在不使用ALPHAFunc的情況下進行正確的渲染?有人知道一個技巧,或通過着色器做到這一點嗎?
在現代GL你應該做的是,在片段着色器,例如'if(result.a> threshold)discard;'。 – keltar
您的問題與此非常相似:http://stackoverflow.com/questions/23280692/opengl-es2-alpha-test-problems/23283256。我現在不會將它建議爲重複的,因爲它是一個稍微不同的用例。但我在這個問題上的答案仍然適用於你的情況。 –