12
votes

Comment OpenGL est-il implémenté dans un système d'exploitation?

Je regarde dans les API de Linux et graphiques, mais je suis confondu à la manière dont OpenGL est mis en œuvre dans les systèmes d'exploitation. Est-ce juste un ensemble de bibliothèques qui utilisent le noyau pour "parler" à votre carte graphique sur laquelle des pixels de couleur ou non? Si oui, je ne sais pas où se trouve le pipeline - comment les scènes 3D sont rastralisées et la géométrie des ombres.

et comment les GPU peuvent-ils prendre en charge les langages de shader de DX et OGL? - Et où les langues de Shader s'intègrent-elles réellement? - Sont-ils compilées ou interprétées au moment de l'exécution?

Je n'ai pas beaucoup d'expérience avec les API graphiques moi-même malgré l'utilisation de plusieurs moteurs de jeu - généralement le Nitty Gritty est bien perdu avec plusieurs couches d'abstraction.


3 commentaires

Vous pourriez avoir un look cette série de poteaux de blog qui peuvent vous éclairer: fgiesen.wordpress.com/2011/07/01/...


Dupliqué possible de Comment OpenGL fonctionne-t-il au plus bas niveau?


Dupliqué possible de Comment OpenGL fonctionne-t-il au niveau le plus bas?


3 Réponses :


-1
votes

Je ne peux pas parler à la manière dont l'API est mise en œuvre.

Mais je sais de l'expérience que les shaders sont compilés. Donc, vous les compilez et envoyez-les à votre GPU où ils sont exécutés.


0 commentaires

0
votes

au moins sur la plupart des cartes graphiques typiques, la plupart des pipelines OpenGL (fixes ou programmables) sont implémentées dans le matériel graphique lui-même. Cela est encore plus vrai de DirectX (c'est-à-dire DirectX, il manque un peu de fonctionnalité dans OpenGL qui n'est pas directement pris en charge par le matériel actuel).

Les shaders sont normalement compilés. La carte graphique a un processeur à usage spécial (ou souvent plus d'un) de sorte que le compilateur prend l'entrée dans la langue de Shader et le transforme dans la langue d'assemblage pour ce processeur, tout comme un compilateur C pour la CPU. Soutenir différentes langues d'entrée n'est pas un lot entier différent d'une seule entrée de support de la CPU en C, C ++, Pascal, Fortran, COBOL, etc.


0 commentaires