40 votes

Ressources d'apprentissage OpenGL 4.x

Je sais qu'il y a une question à propos de l'apprentissage d'OpenGL. Voici ce que je sais:

  • mathématiques pour la 3D
  • 3D théorie

Voici ce que je veux savoir: - OpenGL 4.0 Core profil (ou dernier) - Langage de Shader 400 (ou dernier) - chaque partie de dessus (si il ne fonctionne pas sur tous les fournisseurs puis il toujours ne me dérange pas)

Voici ce que je NE veux PAS savoir - correction de la fonction de pipeline (ne pas utiliser jamais!) plus d'OpenGL - Compatibilité profil

Je préfère la plus grande partie de l'info, comme des tutoriels, des articles, des livres.

PS: Si vous connaissez des ressources sur opengl 3.x profil de base, post trop

31voto

Nicol Bolas Points 133791

Je vous l'aversion des réponses négatives, mais j'ai peur que j'ai à donner à cette question.

En définitive, vous êtes en demandant pour les débutants matériel qui utilise des fonctionnalités uniques pour version d'OpenGL 4.0 et ci-dessus. Eh bien, regardons quelques-unes des caractéristiques uniques de 4.x.

Peut-être la plus grande caractéristique est de pavage. Qu'est-ce que cela signifie? Il signifie le pavage des primitives pour générer plus primitives. Avant même de commencer à comprendre ce que cela signifie, il faut d'abord comprendre comment les primitives se rendait à tous. Qui utilise pré-4.x au niveau des fonctionnalités.

Mais même avec une compréhension profonde de la façon dont le rendu fonctionne, il y a toujours un problème. Afin d'avoir toute discussion significative sur le pavage de shaders, on doit d'abord avoir une bonne compréhension de pavage des algorithmes. Et ce n'est pas un sujet simple. Pour un tutoriel pour apprendre à un utilisateur d'utiliser le pavage de shaders, le tutoriel va d'abord introduire des courbes splines et des correctifs ou des surfaces de subdivision. Ces deux sont longues, des sujets qui ont de nombreux livres blancs consacrés. Seulement après avoir détaillé les algorithmes d'un utilisateur doit être prêt à voir comment ces algorithmes sont mis en œuvre dans le pavage de shader.

Ou, pour le dire d'une autre façon, de pavage shaders ne sont pas débutant matériel. Je ne serais même pas les qualifier comme intermédiaire au niveau matériel.

Une autre grande caractéristique de 4.x niveau matériel est shader du chargement de l'image du magasin (et son compagnon, compteurs atomiques), l'âme en 4.2. Il permet pour certains de très chouettes choses, y compris de commande indépendant de la transparence. Cependant, pour qu'un utilisateur puisse même commencer à comprendre toutes les bizarreries autour d'elle, l'utilisateur doit être intimement familier avec la profonde fonctionnement de moderne shader matériel. Donc aucun tutoriel faudrait d'abord expliquer comment moderne VLIW/SIMD à base de matériel de travaux, ainsi que la façon dont les shaders sont utilisés avec ce type de matériel. Encore une fois, ce n'est pas anodin de matériel.

Une autre grande caractéristique de 4.x le matériel est rendu indirect. C'est, en mettant les paramètres d'une glDraw appel dans la mémoire tampon de l'objet lui-même. Le problème est qu'il n'y a vraiment qu'une seule raison d'utiliser cette fonctionnalité: parce que le GPU de données générées directement dans un ou plusieurs tampons pour plus tard rendu. Et en faisant cela implique généralement une certaine forme de GPGPU opération, ce qui est beaucoup, non pas un débutant-niveau de la rubrique.

Toutes ces fonctionnalités sont très utiles et ont une véritable utilité. Mais aucun d'entre eux doit être utilisé par les débutants; dans certains cas, même pas un niveau intermédiaire, les programmeurs doivent les toucher.

Maintenant, pour être tout à fait juste, il y a quelques 4.2 caractéristiques qui sont à la fois non-basée sur le matériel (de sorte qu'ils sont souvent mis en œuvre sur le 3.3 et versions inférieures) et très utile. Programme distinct des objets, par exemple. Ces caractéristiques frapper pendant que j'écrivais mon 3.3 base de tutoriels, et j'ai envisagé de revenir sur eux et de l'intégration de cette fonctionnalité. La seule raison pour laquelle je ne l'ai pas, c'est parce que les implémentations (pilotes) ne sont pas encore totalement stable à l'égard de cette fonctionnalité. Mais il serait utile de le faire.

Le point principal que je suis dessus, c'est ceci: si vous êtes à la scène dans vos graphiques savoir où vous êtes prêt à tirer parti des caractéristiques uniques de GL 4.x le matériel, alors vous aussi vous avez assez d'expérience de graphiques que vous n'avez pas besoin explicite, étape par étape, des instructions pour mettre en œuvre les fonctionnalités de matériel graphique. Vous serait le genre de personne qui pouvait lire la GL_ARB_tessellation_shader extension de la spécification et de comprendre comment leur faire faire ce que vous avez besoin.

Cela étant dit, si vous êtes intéressés par des documents qui enseigne OpenGL core 3.0 ou mieux, l' OpenGL Wiki a une belle collection de ces liens. Dans l'intérêt de la divulgation complète, j'ai écrit l'un d'eux.

11voto

Firas Assaad Points 10339

La 5ème édition de OpenGL SuperBible a été récemment publié. Cette édition reflète OpenGL 3.3 qui a été publié en même temps que OpenGL 4.0, le livre ne couvre que le profil de base et n'assume aucune avant OpenGL connaissances.

C'est ce que j'ai obtenu à partir de l'ouvrage de description de toute façon. J'ai la 4e édition et c'est une excellente ressource pour l'OpenGL 2.0, donc je suppose que la nouvelle édition ainsi que la dernière OpenGL Shading Language livre allait être juste ce que vous cherchez.

Le Durian Logiciel a une série de tutoriels couvrant moderne OpenGL. Ils visent à OpenGL 2.0, mais éviter d'utiliser tout obsolète fonctionnalité dans les versions ultérieures.

10voto

ccxvii Points 566

Il y a vraiment très peu de différence entre OpenGL 3.0 et 4.1. Si vous vous en tenez à la version 3.0 ou ultérieure du profil de base, vous ne pouvez pas utiliser la fonction fixe pipeline. Ce que vous êtes vraiment à la demande, c'est un tutoriel OpenGL qui n'utilise pas de fonction fixes pipeline.

Jason L. McKesson est excellent tutoriel "Apprendre Graphismes 3D de Programmation" commence en utilisant les shaders pour les premiers rudiments, et ne touche jamais le fixe en fonction de pipeline.

http://www.arcsynthesis.org/gltut/index.html

Je le recommande fortement.

5voto

blazt Points 111

Je suis récemment tombé sur ce livre en ligne: OpenGLBook.com

Je ne l'ai pas encore lu, mais la description indique qu'il s'agit d'une ressource de programmation OpenGL 4.0 gratuite au format livre en ligne.

4voto

Calvin1602 Points 5922

Excellente question, vraiment. Comme une question de fait, la documentation est rare.

Il y a une bonne présentation ici : http://sites.google.com/site/opengltutorialsbyaks/

Vous aimerez peut-être aussi groovounet de ogl4 échantillons pack : http://www.g-truc.net/post-0310.html

mais j'ai peur que c'est assez bien. Se cachent sur opengl, les forums de discussion pour plus d'infos ...

EDIT : trouvé quelques secondes plus tôt. Directement à partir de SIGGRAPH http://nvidia.fullviewmedia.com/siggraph2010/02-dev-barthold-lichtenbelt-mark-kilgard.html

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