2009-08-20 6 views

Répondre

9

La chose la plus importante que vous devez apprendre est de savoir comment rendre le rendu à la texture.

Lorsque vous avez deux scènes dans 2 textures, il est vraiment simple de faire un fondu enchaîné entre elles. En fait, c'est assez simple de faire tout le manoir des effets de fondu intéressants :)

+0

Merci, je vais me pencher sur le rendu à la texture. J'ai réfléchi à cela, mais je ne savais pas quel impact cela pouvait avoir sur la performance. – BrenMcGuire

+0

Aujourd'hui, ce n'est pas le cas. Vous ne seriez pas capable de faire la plupart des effets en plein écran sans cela. – Goz

+1

Dommage que EXT_framebuffer_object soit toujours bloqué dans l'extension hell :( – genpfault

1

Voici sample code of a cross fade. Cela semble un peu différent de ce que Goz a depuis que les deux scènes sont dynamiques. L'exemple utilise le tampon stencil pour le fondu enchaîné.

+2

Thing is. le Rage 128 a été publié il y a plus de 10 ans Render-to-texture ne fonctionnait pas bien à cette époque Il est beaucoup plus facile de rendre la scène A à la texture A, rendre la scène B à la texture B est ajouté au frame buffer, et son bonus est tel qu'il est optimisé pour l'enfer et fournit TOUTES sortes d'effets intéressants.Le genre de tricherie au tampon que vous suggérez fonctionne bien, mais ce n'est pas ce que font la plupart des développeurs et donc Sera plus lent et beaucoup plus complexe Ça marche bien :) – Goz

+0

J'ai trouvé ce lien avant de poster la question, mais ce n'était pas l'effet de cross-fad ng for (ce n'est pas ce que j'appellerais même un cross-fade). – BrenMcGuire

0

Je pourrais penser à un autre moyen de fondu enchaîné, mais cela dépend de la complexité de votre rendu de scène. Si c'est simple, vous pouvez démarrer un programme de shader avant de rendre la deuxième scène qui fait l'effet de blending désiré. Je voudrais essayer glBlend (GL_ALPHA, GL_ONE_MINUS_SRC_ALPHA) et manipuler les valeurs alpha des fragments dans le shader.

Les FBO font partie de la catégorie. disponible depuis des années déjà - extension ou non. Si votre moteur de rendu est complexe et utilise des programmes de shader, vous pouvez tout aussi bien rendre les deux scènes aux FBO et les fusionner. L'utilisation des FBO est une technique très courante pour permettre d'appliquer facilement toutes sortes de rendu d'effets.