Comment faire un rendu de clip en OpenGL (simple rectangle)? Veuillez publier un exemple C++.Comment faire un rendu de clip en OpenGL (C++)
Répondre
Si vous voulez uniquement afficher un rectangle spécifique, vous avez besoin d'une combinaison de quelque chose comme glFrustrum
ou glOrtho
avec glViewPort
. C'est en fait le glViewPort
qui définit le rectangle de découpage. glFrustrum
, glOrtho
(gluPerspective
, etc.) puis de mapper un ensemble de coordonnées réelles à ce rectangle. Généralement, vous remarquerez à peine le glViewPort
, parce qu'il est normalement réglé sur toute la surface de la fenêtre que vous utilisez, et ce que vous changez est le mappage pour obtenir des vues différentes dans la fenêtre.
Si vous ajustez simplement glFrustum
(par exemple) par lui-même, la zone d'affichage sur l'écran restera la même, et vous modifierez simplement le mappage afin que vous remplissiez toujours toute la zone de la fenêtre, la caméra virtuelle autour, de sorte que vous faites un zoom avant ou arrière (etc.) sur le "monde" affiché. Inversement, si vous ajustez simplement glViewPort
, vous affichez exactement les mêmes données, mais dans un rectangle plus petit. Pour "découper" les données dans le rectangle le plus petit, vous devez ajuster les deux à la fois, dans plus ou moins les directions "opposées" de sorte que votre rectangle de vue-port devienne plus petit, vous zoomez sur votre vue pour compenser .
Ce dont vous avez probablement besoin est le mécanisme scissor d'OpenGL.
Il clips rendu de pixels qui ne tombent pas dans un rectangle défini par x
, y
, width
et height
paramètres.
Notez également que cet état OpenGL, lorsqu'il est activé, affecte la commande glClear
en limitant la zone effacée.
comment empêcher que tous les objets de scène rendus dans le futur soient tronqués par ce rectangle de découpage? En d'autres termes, si vous vouliez simplement appliquer ce rectangle de découpage pour les enfants d'un élément GUI mais que vous souhaitiez ensuite rendre d'autres objets dans la scène, comment empêcheriez-vous que tous les autres objets soient tronqués par ce rectangle? – BigSauce
Je ne sais pas exactement ce que vous voulez dire, mais la pratique courante consiste à séparer le rendu 3D du rendu GUI en utilisant FBO et passe. – Stringer
- 1. Problème de rendu OpenGL
- 2. opengl hors écran rendu
- 3. rendu en OpenGL en utilisant CAOpenGLLayer
- 4. Rendu de widgets dans un canevas OpenGL en Java
- 5. Rendu OpenGL L-System
- 6. Comment faire pivoter un GluCynlinder dans OpenGL?
- 7. OpenGL: Rendu rapide hors-écran
- 8. Rendu du feu dans OpenGL
- 9. Rendu de forme d'onde audio OpenGL
- 10. Comment faire un clip, cliquable après être devenu visible?
- 11. Rendu du navigateur via OpenGL
- 12. Optimisation de ce rendu OpenGL algorithme
- 13. QT Webkit & Contexte de rendu OpenGL
- 14. Comment lire un clip audio dans JNLP?
- 15. Comment faire ray tracing dans OpenGL moderne?
- 16. Fond de panneau de rendu en C#
- 17. OpenGL texutre mappé rendu des polices
- 18. Opengl ES - Rendu incorrect sur l'axe z?
- 19. comment insérer un clip dans mon jeu?
- 20. Touches détecter dans une scène OpenGL rendu
- 21. Graphique de rendu C#
- 22. Les sprites OpenGL tremblent légèrement au rendu
- 23. Erreur C2664 dans une tentative de faire un peu OpenGl en C++
- 24. Comment dessiner un arc en OpenGL
- 25. opengl en C# en utilisant Tao.OpenGL
- 26. Flashing clip
- 27. Comment faire un bouton d'icône en C++
- 28. peut OpenGL faire cela?
- 29. Comment renommer un clip dans Flash CS4?
- 30. Rendu de plusieurs images vers un bitmap en C# Winforms
Il est probablement préférable de décrire ce que vous avez essayé, plutôt que de simplement demander par exemple du code. Voici un lien vers le livre rouge OpenGL, qui est gratuit en ligne et contient probablement des informations sur ce que vous cherchez. http://www.glprogramming.com/red/ – Feanor
Merci pour le lien. J'ai joué avec glFrustum, projections etc., mais il y a trop longtemps. Je voudrais recevoir un bon exemple simple d'écrêtage. –