Come rimuovere (ritagliare) un rettangolo trasparente in una Texture, in modo che il foro risulti traslucido.Tagliare un quadrato traslucido in una trama
Su Android vorrei usare l'approccio Xfermodes:
Ma in libgdx dovrò usare OpenGL. Finora ho quasi raggiunto quello che stavo cercando, tramite il glBlendFunc Da questo bello e molto utile page ho learend che
glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);
dovrebbe risolvere il mio problema, ma ho provato, e non ha abbastanza lavoro come previsto:
batch.end();
batch.begin();
//Draw the background
super.draw(batch, x, y, width, height);
batch.setBlendFunction(GL20.GL_ZERO,
GL20.GL_ONE_MINUS_SRC_ALPHA);
//draw the mask
mask.draw(batch, x + innerButtonTable.getX(), y
+ innerButtonTable.getY(), innerButtonTable.getWidth(),
innerButtonTable.getHeight());
batch.end();
batch.setBlendFunction(GL20.GL_SRC_ALPHA,
GL20.GL_ONE_MINUS_SRC_ALPHA);
batch.begin();
Si sta semplicemente rendendo l'area della maschera completamente nera, mentre mi aspettavo trasparenza, qualsiasi idea.
Questo è ciò che ottengo:
Questo è quello che mi aspettavo:
Hai un pezzo di codice per noi, per favore? Sarà meglio per capire la tua domanda. –
hmm bene, ho pensato a qualche frammento ma non ho alcun approccio fino ad ora, quindi spero che una domanda generica sia più utile. Ma documenterò i miei permessi fino ad ora. – joecks
Ottengo l'effetto plain-black-mask dal sito 'glblendfunc.php' per quei parametri' setBlendFunc'. Puoi allegare uno screenshot di ciò che stai ricevendo o di quello che vuoi? (Inoltre, nota al sito 'glblendfunc.php' il" primo piano "ha le stesse dimensioni dello" sfondo ", quindi l'intero alfa del primo piano viene applicato all'intero sfondo.) –