0
所以我使用的是OpenGL ES 2.0,我將透明對象渲染成一個在另一個之上,但是如果我在片段着色器中低於0.05,則任何東西都不呈現。我的渲染配置設置爲:GLES 2.0+ Alpha沒有顯示
glClearColor(0, 0, 0, 0);
glDisable(GL_DITHER);
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
我都試過GL_UNSIGNED_BYTE和GL_UNSIGNED_SHORT_4_4_4_4作爲渲染目標的紋理類型,沒有運氣。
還有什麼我可以做的,以提高alpha值的精度,並融合?以0.05作爲最小alpha值,它只給我20個(1.0/0.05 = 20)值。基本上,我將渲染紋理視爲一組數據,並使用頂點着色器將值添加到不同的像素。
編輯:我使用浮動highp,似乎沒有幫助。
你不應該需要highp;中性(fp16)足夠精確,足以處理更多精度小於2dp的小數位數。 – solidpixel
好吧,無論什麼原因,它只是在低於0.05的任何情況下都不起作用,因爲0.049也是行不通的。對於我所做的事情,我能做的更好的價值越低。 –