2010-02-28 5 views
0

J'utilise OpenGL comme l'extrémité inférieure pour un moteur de mosaïque 2D. Lorsque tout est en 2D, il est simple d'optimiser certains problèmes. Par exemple, défilement. Si je sais qu'une certaine section de l'écran doit faire défiler le bas, alors je peux juste bliter sur cette partie. Je suis en train de bouger plus d'un pixel à la fois. Sans support matériel explicite (pensez vieux nintendo hw), cela nécessite beaucoup de pixels écrit. Un sur puce bitblt serait la meilleure chose suivante. Essentiellement, je regarde comment je peux optimiser mes appels GL pour utiliser les rendus de texture VRAM comme Blits hardware efficaces.2D Moteur de défilement sur OpenGL via le matériel?

Est-il possible d'avoir GL faire défiler le framebuffer, ou devrais-je simplement se résigner à double-buffering et re-rendre une scène entière pour chaque image?

Thx

Répondre

0

Je ne vois pas comment vous se déplacer, à tout le moins, faire un rect rendu plein écran avec une texture chaque image (quand il est défilement en fait). Je n'ai pas vu la possibilité de déplacer le pointeur de tampon de trame sur les cartes graphiques pendant un moment maintenant. Toutefois, vous pouvez limiter la quantité de scène dont vous avez besoin pour rendre chaque image. Si vous conservez votre scène de défilement sous la forme d'une texture, vous pouvez lier à un tampon de cadre hors écran et restituer la partie invalide de celle-ci. Ensuite, vous utilisez simplement la manipulation UV pour faire votre blit rectangle plein écran final.

+0

thx. le but était d'éviter le double tampon. – drudru

Questions connexes