142 votes

Quel est le concept d’et les différences entre ' FrameBuffer ' et ' RenderBuffer ' en OpenGL ?

Je suis confus au sujet de concept de FrameBuffer et RenderBuffer. Je sais qu'ils sont tenus de rendre, mais je veux comprendre avant de les utiliser.

Je sais que certains bitmap tampon est nécessaire pour le stockage temporaire de dessin résultat. La mémoire tampon d'arrière. Et l'autre tampon requise pour être vu sur l'écran lors de ces dessins sont en cours. Le tampon. Et retournez-les, et tirer à nouveau. Je sais que ce concept, mais c'est dur pour vous connecter ces objets de ce concept.

Quel est le concept et les différences?

209voto

fernacolo Points 1626

La mémoire d'Image de l'objet n'est pas réellement un tampon, mais un agrégateur objet qui contient une ou plusieurs pièces jointes, qui, de par leur tour, sont réels tampons. Vous pouvez comprendre de la mémoire Tampon de Trame que C structure où chaque membre est un pointeur vers une mémoire tampon. Sans aucun attachement, une mémoire d'Image de l'objet a un très faible encombrement.

Maintenant, chaque tampon relié à une mémoire Tampon de Trame peut être un Tampon de Rendu ou une texture.

Le Rendu de la mémoire Tampon est un tampon (un tableau d'octets, ou des entiers, ou pixels). Le Tampon de Rendu des magasins de valeurs de pixels au format natif, donc il est optimisé pour l'écran de rendu. En d'autres mots, le dessin d'un Tampon de Rendu peut être beaucoup plus rapide que le dessin d'une texture. L'inconvénient est que les pixels utilise un natif, dépendant de l'implémentation du format, de sorte que la lecture à partir d'un Tampon de Rendu est beaucoup plus difficile que la lecture à partir d'une texture. Néanmoins, une fois un Tampon de Rendu a été peint, on peut copier son contenu directement à l'écran (ou à d'autres Tampon de Rendu, je crois), très rapidement à l'aide de pixel opérations de transfert. Cela signifie qu'un Tampon de Rendu peut être utilisé pour mettre en œuvre efficacement la double mémoire tampon de motif que vous avez mentionné.

Tampons de rendu sont un concept relativement nouveau. Devant eux, une mémoire Tampon de Trame a été utilisé pour rendre une texture, qui peuvent être plus lents à cause d'une texture utilise un format standard. Il est toujours possible de se rendre à une texture, et c'est assez utile quand on a besoin d'effectuer plusieurs passages sur chaque pixel de construire une scène, ou de dessiner une scène sur une surface d'un autre de la scène!

OpenGL wiki a cette page qui montre plus de détails et de liens.

63voto

ChrisF Points 74295

Cette page a certains détails qui, je pense, expliquer la différence tout à fait bien. Tout d'abord:

Le rendu final de destination de l'OpenGL pipeline est appelé [la] framebuffer.

Considérant ce qui suit:

Renderbuffer Objet
En outre, renderbuffer objet est nouvellement introduit pour l'écran de rendu. Il permet de rendre une scène directement à un renderbuffer objet, au lieu de rendre à une texture de l'objet. Renderbuffer est tout simplement un stockage de données objet contenant une image unique d'un restituable format interne. Il est utilisé pour stocker OpenGL logique tampons qui n'ont pas de correspondant de format de texture, comme pochoir ou le tampon de profondeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X