2009-07-27 8 views

risposta

5

Non c'è un modo integrato di rendering del testo in OpenGL ma due tecniche più o meno comuni: Rendering dei glifi usando la geometria (meno comune) o usando il mapping delle texture (molto più comune). Per il tuo caso, la mappatura delle texture sarebbe molto semplice: configura un CGBitmapContext e rendi il testo usando Quartz. Quindi carica l'immagine nella texture generata in precedenza utilizzando glTexSubImage2D.

Sull'iPhone potresti anche mettere un UILabel sopra la tua vista OpenGL e lasciare che UIKit esegua il rendering. Nella mia applicazione questo non ha colpito le prestazioni (anche se Apple afferma di sì).

+0

come si sovrappone UILabel alla vista openGL? –

+0

Basta aggiungerlo come sottoview: '[myGLView addSubview: myUILabel];' –

+0

AAAAAH !! Un widget in cima alla tua sottoview/?? – bobobobo

3

È possibile utilizzare Texture2D e il metodo initWithString per disegnare il testo in OpenGL. Vedi l'esempio di atterraggio incidente che è incluso nel sdk per iPhone.

Si potrebbe anche utilizzare un UILabel e averlo sopra il livello opengl.

+0

sai dove posso trovare il font necessario? –

+0

nvm lol ho trovato la lista dei nomi dei font su google = p –

3

Come detto prima, Texture2D è una buona idea, ma Crash Landing è stato rimosso da molti punti di Apple, cosa che potresti fare, è scaricare il Cocos2d e quindi estrarre la classe Texture2D fornita lì (è la stessa classe fornito da Apple, ma con un paio di altre cose) Cocos 2D for iPhone