Qualcuno sa come abilitare la fusione in OpenGL (Android) su un HTC Desire. Sto cercando di disegnare triangoli colorati e usare il valore alfa del buffer dei colori per fonderli con lo sfondo (o un altro triangolo).Perché il blending di OpenGL non funziona su HTC Desire?
Funziona sia sull'emulatore (2.1) che su un htc hero 2.1 ma non sul mio desiderio con 2.2. C'è qualche differenza hardware tra un eroe e un desiderio che causa questo?
La roba principale dal codice è (non in ordine):
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
private final static float[] colors = {
1f, 0f, 0f, 0.5f, // point 0 red
1f, 0f, 0f, 0.5f, // point 1 red
1f, 0f, 0f, 0.5f, // point 2 red
1f, 0f, 0f, 0.5f, // point 3 red
1f, 0f, 0f, 0.5f, // point 4 red
1f, 0f, 0f, 0.5f, // point 5 red
1f, 0f, 0f, 0.5f, // point 6 red
1f, 0f, 0f, 0.5f, // point 7 red
};
PS. Posso fornire più codice se qualcuno ne ha bisogno ...
Direi che il desiderio non implementa la funzione. A differenza di Direct3D, che ricade sul rendering del software, con OpenGL se una funzione non è implementata, semplicemente non funziona. O almeno è così che funzionava. – ChrisF
Il fatto è che i triangoli di fusione con trame sembrano funzionare sul Desiderio. Ma non quando si usano i buffer dei colori. – Sunkas
Esattamente il contrario è vero .. Con DirectX, se una funzionalità viene segnalata come supportata, verrà eseguita in hardware. Con OpenGL (incluso GL | ES) una funzione che non è un'estensione deve essere supportata. Se non in hardware, quindi nel software. Per OpenGL | ES 1.0 la miscelazione alfa è obbligatoria. –